netdata-plugin-perf-1.44.1-bp156.1.5 >  A fDJI%z \6Tt/A銾ႄO-Ql4缻0nf佨(N靤HOZ;f>ؘNa>JWL&:{ЌsͷR1;f iI/nM( RNs}cG:j^:kWݦQ+#TKmàGP+ )Zk }ChN\_`/įnT@CyE@{*60$`(mOXqR}x]Ucc839138961eed68e13d8b6d94a41eff73d7c6988eb35b189d4335ec9f1084db42b288b36826ce312c71ab31d1398b2d8a344ea2̉fDJI%z xJ| ]i4fnʩ9#)>F.)_+@ێXbmKkkQ5XmT>FӲə;=OXI&T᳎ c+9%l:_+Xv LN8MEyFVrCP Gj, {.Nj2sKR'ىPb2=ᩳtmZcl5lOf dm{)GS6)!W}9@aۘi\2 ̀JXF)2}DpD`?Pd ' Xj     ] `diqp[(8C9C:C>FGHI XY\@]D^Pblcd~efluvwpxtyxz LCnetdata-plugin-perf1.44.1bp156.1.5The perf metrics collector for the Netdata AgentThis plugin allows the Netdata to collect metrics from the Linux perf subsystem.fDJci02-armsrv3 /0SUSE Linux Enterprise 15 SP6openSUSEApache-2.0 AND BSD-2-Clause AND GPL-3.0-or-later AND MIT AND BSD-3-Clause AND LGPL-2.1-or-later AND OFL-1.1 AND CC-BY-4.0 AND WTFPLhttps://bugs.opensuse.orgSystem/Monitoringhttp://my-netdata.io/linuxaarch64 if [ -x /usr/bin/chkstat ]; then /usr/bin/chkstat -n --set --system fi /0fDJZ4d8dd6d36a2b2b9cf14c88c41c6c344da866c2ac22f3ff64f221eca711774d71rootnetdatanetdata-1.44.1-bp156.1.5.src.rpmnetdata-plugin-perfnetdata-plugin-perf(aarch-64)netdata:/usr/lib/netdata/plugins.d/perf.plugin@@@@@@@@@@@@@@@@@@@@@@     /bin/shld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.33)(64bit)libc.so.6(GLIBC_2.34)(64bit)libc.so.6(GLIBC_2.38)(64bit)libcrypto.so.3()(64bit)libcrypto.so.3(OPENSSL_3.0.0)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libgcc_s.so.1(GCC_3.3.1)(64bit)libjson-c.so.5()(64bit)libjson-c.so.5(JSONC_0.14)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.17)(64bit)libm.so.6(GLIBC_2.29)(64bit)libssl.so.3()(64bit)libssl.so.3(OPENSSL_3.0.0)(64bit)libuuid.so.1()(64bit)libuuid.so.1(UUID_1.0)(64bit)libuv.so.1()(64bit)netdatarpmlib(CompressedFileNames)rpmlib(FileCaps)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)1.44.13.0.4-14.6.1-14.6.0-14.0-15.2-14.14.3epez@etVeReH@eH@e6`@e@d^@d@djd\d)n@c@c@c@c5bbnbMia Herkt ecsos Andreas Schwab Mia Herkt Mia Herkt Mia Herkt ecsos ecsos Mia Herkt Mia Herkt Mia Herkt Duarte Pousa Mia Herkt Paolo Stivanin Mia Herkt Mia Herkt Mia Herkt Mia Herkt Mia Herkt Mia Herkt Mia Herkt Mia Herkt Wolfgang Engel Mia Herkt Mia Herkt Mia Herkt Mia Herkt Mia Herkt Paolo Stivanin Mia Herkt Duarte Pousa Mia Herkt Andreas Schneider Andreas Schneider Andreas Schneider Paolo Stivanin Dirk Mueller Mia Herkt Stefan Seyfried Mia Herkt Mia Herkt Paolo Stivanin Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>Martin Herkt <9+suse@cirno.systems>9+suse@cirno.systems9@cirno.systems9@cirno.systems9@cirno.systems9@cirno.systems9@cirno.systemsplinnell@opensuse.org9@cirno.systems9@cirno.systemsjengelh@inai.dendas@suse.debenedikt@g5r.eualoisio@gmx.comnirmoy.das@suse.comnirmoy.das@suse.com- Provide user/group symbol for the user generated during pre.- Update to 1.44.1 See https://github.com/netdata/netdata/tree/v1.44.1- Update to v1.44.0 (go.d.plugin 0.57.2) See https://github.com/netdata/netdata/tree/v1.44.0 and https://github.com/netdata/go.d.plugin/tree/v0.57.2 https://github.com/netdata/go.d.plugin/tree/v0.57.1 https://github.com/netdata/go.d.plugin/tree/v0.57.0 - Fix some forgotten code to use python311 in Leap.- XEN only exists on x86 and aarch64 - Enable freeipmi plugin everywhere- Update to v1.43.2 See https://github.com/netdata/netdata/releases/tag/v1.43.2- Update to v1.43.1 (go.d.plugin 0.56.4) See https://github.com/netdata/netdata/releases/tag/v1.43.1 and https://github.com/netdata/go.d.plugin/releases/tag/v0.56.4 - Required golang bumped to 1.21 - Remove suid bits from freeipmi and nfacct plugins- Update to v1.43.0 (go.d.plugin 0.56.3) See https://github.com/netdata/netdata/releases/tag/v1.43.0 and https://github.com/netdata/go.d.plugin/releases/tag/v0.56.3 https://github.com/netdata/go.d.plugin/releases/tag/v0.56.2 https://github.com/netdata/go.d.plugin/releases/tag/v0.56.1 https://github.com/netdata/go.d.plugin/releases/tag/v0.56.0- Update to v1.42.4 (go.d.plugin 0.55.0) See https://github.com/netdata/netdata/releases/tag/v1.42.4 and https://github.com/netdata/go.d.plugin/releases/tag/v0.55.0 Also https://github.com/netdata/netdata/releases/tag/v1.42.3- Update to v1.42.2 (go.d.plugin 0.54.1) See https://github.com/netdata/netdata/releases/tag/v1.42.2 and https://github.com/netdata/go.d.plugin/releases/tag/v0.54.1 Also https://github.com/netdata/netdata/releases/tag/v1.42.1 and https://github.com/netdata/netdata/releases/tag/v1.42.0 and https://github.com/netdata/netdata/releases/tag/v1.41.0 - Switch Leap to python311 and remove python2 completely. - Extended rpmlintrc to build also under Leap.- Update to v1.40.1 (go.d.plugin 0.54.0) See https://github.com/netdata/netdata/releases/tag/v1.40.1 and https://github.com/netdata/go.d.plugin/releases/tag/v0.54.0 Also https://github.com/netdata/netdata/releases/tag/v1.40.0 and https://github.com/netdata/go.d.plugin/releases/tag/v0.53.2 - Split off plugin packages- Update to v1.39.1 (go.d.plugin 0.53.0) See https://github.com/netdata/netdata/releases/tag/v1.39.1 and https://github.com/netdata/go.d.plugin/releases/tag/v0.53.0- Update to v1.39.0 (go.d.plugin 0.52.2) Changes: https://github.com/netdata/netdata/releases/tag/v1.39.0 https://github.com/netdata/go.d.plugin/releases/tag/v0.52.0 https://github.com/netdata/go.d.plugin/releases/tag/v0.52.1 https://github.com/netdata/go.d.plugin/releases/tag/v0.52.2 Note: Future package versions will be split, with each collector plugin getting its own package. See also https://blog.netdata.cloud/split-plugin-packages/ On openSUSE, when using ZYpp-based package management, dependency resolution should cause these split-off packages to be installed automatically when upgrading from older versions, such that existing configurations should not be negatively affected by this change. For new installs, they will be soft dependencies, and only selected automatically when installation of recommended packages is requested. - Refresh netdata-logrotate-su.patch- Update go.d.plugin to 0.51.4 See https://github.com/netdata/go.d.plugin/releases/tag/v0.51.4- Update to v1.38.1 (go.d.plugin 0.51.0) See https://github.com/netdata/netdata/releases/tag/v1.38.0 and https://github.com/netdata/netdata/releases/tag/v1.38.1- Update to 1.37.1: * Parent agent crash when many children instances (re)connect at the same time, causing simultaneous SSL re-initialization. * Agent crash during dbengine database file rotation while a page is being read while being deleted. * Agent crash on metrics page alignment when metrics were stopped being collected for a long time and then started again. * Broken Fedora native packages. * Fix dbengine backfilling statistics.- Update to 1.37.0 (go.d.plugin 0.45.0) Collectors * New collectors + Add Pandas collector (python.d/pandas) gh#netdata/netdata#13773 + Add NGINX Plus collector (go.d/nginxplus) gh#netdata/go.d.plugin#992 + Add NVMe collector (go.d/nvme) gh#netdata/go.d.plugin#973 + Add Ping collector (go.d/ping) gh#netdata/go.d.plugin#952 + Add Cassandra collector (go.d/cassandra) gh#netdata/go.d.plugin#901 + Add systemd-logind collector (go.d/logind) gh#netdata/go.d.plugin#786 + Add Docker collector (go.d/docker) gh#netdata/go.d.plugin#760 + Add PgBouncer collector (go.d/pgbouncer) gh#netdata/go.d.plugin#748 + Add ProxySQL collector (go.d/proxysql) gh#netdata/go.d.plugin#703 * Improvements + Allow statsd tags to modify chart metadata on the fly (stats.d.plugin) gh#netdata/netdata#14014 + Add Cassandra icon to dashboard info (go.d/cassandra) gh#netdata/netdata#13975 + Add ping dashboard info and alarms (go.d/ping) gh#netdata/netdata#13916 + Add WMI Process dashboard info (go.d/wmi) gh#netdata/netdata#13910 + Add processes dashboard info (go.d/wmi) gh#netdata/netdata#13910 + Add TCP dashboard description (go.d/wmi) gh#netdata/netdata#13878 + Add Cassandra dashboard description (go.d/cassandra) gh#netdata/netdata#13835 + Respect NETDATA_INTERNALS_MONITORING (python.d.plugin) gh#netdata/netdata#13793 + Add ZFS hit rate charts (proc.plugin) gh#netdata/netdata#13757 + Add alarms filtering via config (python.d/alarms) gh#netdata/netdata#13701 + Add ProxySQL dashboard info (go.d/proxysql) gh#netdata/netdata#13669 + Update PostgreSQL dashboard info (go.d/postgres) gh#netdata/netdata#13661 + Add _collect_job label (job name) to charts (python.d.plugin) gh#netdata/netdata#13648 + Re-add chrome to the webbrowser group (apps.plugin) gh#netdata/netdata#13642 + Add labels to charts (tc.plugin) gh#netdata/netdata#13634 + Improve the gui and email app groups and improve GUI coverage (apps.plugin) gh#netdata/netdata#13631 + Update Postgres "connections" dashboard info (go.d/postgres) gh#netdata/netdata#13619 + Assorted updates for apps_groups.conf (apps.plugin) gh#netdata/netdata#13618 + Add spiceproxy to proxmox group (apps.plugin) gh#netdata/netdata#13615 + Improve coverage of Linux kernel threads (apps.plugin) gh#netdata/netdata#13612 + Improve dashboard info for WAL and checkpoints (go.d/postgres) gh#netdata/netdata#13607 + Update logind dashboard info (go.d/logind) gh#netdata/netdata#13597 + Add collecting power state (python.d/nvidia_smi) gh#netdata/netdata#13580 + Improve PostgreSQL dashboard info (go.d/postgres) gh#netdata/netdata#13573 + Add apt group to apps_groups.conf (apps.plguin) gh#netdata/netdata#13571 + Add more monitoring tools to apps_groups.conf (apps.plugin) gh#netdata/netdata#13566 + Add docker dashboard info (go.d/docker) gh#netdata/netdata#13547 + Add discovering chips, and features at runtime (python.d/sensors) gh#netdata/netdata#13545 + Add summary dashboard for PostgreSQL (go.d/postgres) gh#netdata/netdata#13534 + Add jupyter to apps_groups.conf (apps.plugin) gh#netdata/netdata#13533 + Improve performance and add co-re support for more modules (ebpf.plugin) gh#netdata/netdata#13530 + Use LVM UUIDs in chart ids for logical volumes (proc.plugin) gh#netdata/netdata#13525 + Reduce CPU and memory usage (ebpf.plugin) gh#netdata/netdata#13397 + Add 'domain' label to charts (go.d/whoisquery) gh#netdata/go.d.plugin#1002 + Add 'source' label to charts (go.d/x509check) gh#netdata/go.d.plugin#1001 + Add 'host' label to charts (go.d/portcheck) gh#netdata/go.d.plugin#1000 + Add 'url' label to charts (go.d/httpcheck) gh#netdata/go.d.plugin#999 + Remove pipeline instance from family and add it as a chart label (go.d/logstash) gh#netdata/go.d.plugin#998 + Add http cache io/iops metrics (go.d/nginxplus) gh#netdata/go.d.plugin#997 + Add resolver metrics (go.d/nginxplus) gh#netdata/go.d.plugin#996 + Add MSSQL metrics (go.d/wmi) gh#netdata/go.d.plugin#991 + Add IIS data collection job (go.d/web_log) gh#netdata/go.d.plugin#977 + Add IIS metrics (go.d/wmi) gh#netdata/go.d.plugin#972 + Add services metrics (go.d/wmi) gh#netdata/go.d.plugin#961 + Resolve 'hostname' in job name (go.d.plugin) gh#netdata/go.d.plugin#959 + Add processes metrics (go.d/wmi) gh#netdata/go.d.plugin#953 + Resolve 'hostname' in URL (go.d.plugin) gh#netdata/go.d.plugin#941 + Add TCP metrics (go.d/wmi) gh#netdata/go.d.plugin#938 + Add collection of Table_open_cache_overflows (go.d/dns_query) gh#netdata/go.d.plugin#936 + Allow to set a list of record types in config (go.d/dns_query) gh#netdata/go.d.plugin#912 + Create a chart per server instead of a dimension per server (go.d/dns_query) gh#netdata/go.d.plugin#911 + Respect NETDATA_INTERNALS_MONITORING env variable (go.d.plugin) gh#netdata/go.d.plugin#908 + Add query status chart (go.d/dns_query) gh#netdata/go.d.plugin#903 + Add collection of agent metrics (go.d/consul) gh#netdata/go.d.plugin#900 + Create a chart per health check (go.d/consul) gh#netdata/go.d.plugin#899 + Add collection of master link status (go.d/redis) gh#netdata/go.d.plugin#856 + Add collection of master slave link metrics (go.d/redis) gh#netdata/go.d.plugin#851 + Add collection of time elapsed since last RDB save (go.d/redis) gh#netdata/go.d.plugin#850 + Add ping latency chart (go.d/redis) gh#netdata/go.d.plugin#849 + Check for 'connect' privilege before querying database size (go.d/postgres) gh#netdata/go.d.plugin#845 + Allow to set data collection job labels in config (go.d.plugin) gh#netdata/go.d.plugin#840 + Improve histogram buckets dimensions (go.d/postgres) gh#netdata/go.d.plugin#833 + Add acquired locks utilization chart (go.d/postgres) gh#netdata/go.d.plugin#831 + Add _collect_job label (job name) to charts (go.d.plugin) gh#netdata/go.d.plugin#814 + Add TCP socket connection support and the state path modification (go.d/phpfpm) gh#netdata/go.d.plugin#805 + Create a dimension for every unit state (go.d/systemdunits) gh#netdata/go.d.plugin#795 + Improve Galera state and status charts gh#netdata/go.d.plugin#779 + Add discovering dhcp-ranges at runtime (go.d/dnsmasq_dhcp) gh#netdata/go.d.plugin#778 + Add collecting image and volume stats (go.d/docker) gh#netdata/go.d.plugin#777 + Add Percona MySQL compatibility (go.d/mysql) gh#netdata/go.d.plugin#776 + Add collection of additional user statistics metrics gh#netdata/go.d.plugin#775 * Bug fixes + Fix eBPF crashes on exit (ebpf.plugin) gh#netdata/netdata#14012 + Fix not working on Oracle linux (ebpf.plugin) gh#netdata/netdata#13935 + Fix retry logic when reading network interfaces speed (proc.plugin) gh#netdata/netdata#13893 + Fix systemd chart update (ebpf.plugin) gh#netdata/netdata#13884 + Fix handling qemu-1- prefix when extracting virsh domain gh#netdata/netdata#13866 + Fix collection of carrier, duplex, and speed metrics when network interface is down (proc.plugin) gh#netdata/netdata#13850 + Fix various issues (ebpf.plugin) gh#netdata/netdata#13624 + Fix apps plugin users charts description (apps.plugin) gh#netdata/netdata#13621 + Fix chart id length check (cgroups.plugin) gh#netdata/netdata#13601 + Fix not respecting update_every for polling (python.d/nvidia_smi) gh#netdata/netdata#13579 + Fix containers name resolution when Docker is a snap package (cgroups.plugin) gh#netdata/netdata#13523 + Fix handling string and float values (go.d/nvme) gh#netdata/go.d.plugin#993 + Fix handling ExpirationDate with space (go.d/whoisquery) gh#netdata/go.d.plugin#974 + Fix query queryable databases (go.d/postgres) gh#netdata/go.d.plugin#960 + Fix not respecting headers config option (go.d/pihole) gh#netdata/go.d.plugin#942 + Fix dns_queries_percentage metric calculation (go.d/pihole) gh#netdata/go.d.plugin#922 + Fix data collection when auth.bind query is not supported (go.d/dnsmasq) gh#netdata/go.d.plugin#902 + Fix data collection when too many db tables and indexes (go.d/postgres) gh#netdata/go.d.plugin#857 + Fix creation of bloat charts if no bloat metrics collected (go.d/postgres) gh#netdata/go.d.plugin#846 + Fix unregistering connStr at runtime (go.d/postgres) gh#netdata/go.d.plugin#843 + Fix bloat size percentage calculation (go.d/postgres) gh#netdata/go.d.plugin#841 + Fix charts when binary log and MyISAM are disabled (go.d/mysql) gh#netdata/go.d.plugin#763 + Fix data collection jobs cleanup on exit (go.d.plugin) gh#netdata/go.d.plugin#758 + Fix handling the case when no images are found (go.d/docker) gh#netdata/go.d.plugin#739 * Other + Don't let slow disk plugin thread delay shutdown gh#netdata/netdata#14044 + Remove nginx_plus collector (python.d.plugin) gh#netdata/netdata#13995 + Enable collecting ECC memory errors by default gh#netdata/netdata#13970 + Make Statsd dictionaries multi-threaded gh#netdata/netdata#13938 + Remove NFS readahead histogram (proc.plugin) gh#netdata/netdata#13819 + Merge netstat, snmp, and snmp6 modules (proc.plugin) gh#netdata/netdata#13806 + Rename dockerd job on lock registration (python.d/dockerd) gh#netdata/netdata#13537 + Remove python.d/* announced in v1.36.0 deprecation notice (python.d.plugin) gh#netdata/netdata#13503 + Remove blocklist file existence state chart (go.d/pihole) gh#netdata/go.d.plugin#914 + Remove instance-specific information from chart families (go.d/portcheck) gh#netdata/go.d.plugin#790 + Remove spaces in "HTTP Response Time" chart dimensions (go.d/httpcheck) gh#netdata/go.d.plugin#788 Health * Engine + Add support of chart labels in alerts gh#netdata/netdata#13290 * Notifications + Add an option to retry on telegram API limit error gh#netdata/netdata#13119 + Set default curl connection timeout if not set gh#netdata/netdata#13529 * Alarms + Use 'host' label in alerts info (health.d/ping.conf) gh#netdata/netdata#13955 + Remove pihole_blocklist_gravity_file_existence_state (health.d/pihole.conf) gh#netdata/netdata#13826 + Fix the systemd_mount_unit_failed_state alarm name (health.d/systemdunits.conf) gh#netdata/netdata#13796 + Add 1m delay for tcp reset alarms (health.d/tcp_resets.conf) gh#netdata/netdata#13761 + Add new Redis alarms (health.d/redis.conf) gh#netdata/netdata#13715 + Fix inconsistent alert class names gh#netdata/netdata#13699 + Disable Postgres last vacuum/analyze alarms (health.d/postgres.conf) gh#netdata/netdata#13698 + Add node level AR based example (health.d/ml.conf) gh#netdata/netdata#13684 + Add Postgres alarms (health.d/postgres.conf) gh#netdata/netdata#13671 + Adjust systemdunits alarms (health.d/systemdunits.conf) gh#netdata/netdata#13623 + Add Postgres total connection utilization alarm (health.d/postgres.conf) gh#netdata/netdata#13620 + Adjust mysql_galera_cluster_size_max_2m lookup to make time in warn/crit predictable (health.d/mysql.conf) gh#netdata/netdata#13563 Other Notable Changes * Improvements + Add replication of metrics (gaps filling) during streaming gh#netdata/netdata#13873 + Remove anomaly rates chart gh#netdata/netdata#13763 + Add disabling netdata monitoring section of the dashboard gh#netdata/netdata#13788 + Add host labels for ephemerality and nodes with unstable connections gh#netdata/netdata#13784 + Allow netdata plugins to expose functions for querying more information about specific charts gh#netdata/netdata#13720 + Improve Health engine performance by adding a thread per host gh#netdata/netdata#13712 + Improve streaming performance by 25% on the child gh#netdata/netdata#13708 + Improve agent shutdown time gh#netdata/netdata#13649 + Add disabling Cloud functionality via NETDATA_DISABLE_CLOUD environment variable gh#netdata/netdata#13106 * Bug Fixes + Fix sanitizing command arguments executed by the health component gh#netdata/netdata#14064 + Fix control of streaming API keys and MACHINE GUIDs in stream.conf gh#netdata/netdata#14063 + Fix build on old versions of openssl on Centos gh#netdata/netdata#14045 + Fix merging duplicate replication requests gh#netdata/netdata#14037 + Fix various problems in streaming compression, query planner and replication gh#netdata/netdata#14023 + Fix ACLK connection resets on parents with a lot of children gh#netdata/netdata#14004 + Fix crash when netdata cannot execute its external plugins gh#netdata/netdata#13978 + Fix metrics suffix for counters when using remote write exporter gh#netdata/netdata#13977 + Fix replicating non-existing child host gh#netdata/netdata#13968 + Fix local dashboard cloud links gh#netdata/netdata#13953 + Fix stopping Netdata on WSL1 gh#netdata/netdata#13948 + Fix negative values when removing a "percentage-of- incremental-row" dimension gh#netdata/netdata#13945 + Fix chart definition end time_t printing and parsing gh#netdata/netdata#13942 + Fix not using system CA certificates when streaming gh#netdata/netdata#13941 + Fix segfault when a dimension is deleted while replicated gh#netdata/netdata#13932 + Fix compiling without dbengine gh#netdata/netdata#13931 + Fix crash on query plan switch gh#netdata/netdata#13920 + Fix crash when free hosts if a change on db mode is not needed gh#netdata/netdata#13912 + Fix timeframe matching in query engine gh#netdata/netdata#13911 + Fix reading health "enable" from the configuration gh#netdata/netdata#13894 + Fix segmentation fault on 32-bit RPi gh#netdata/netdata#13876 + Fix ml_info call via ACLK gh#netdata/netdata#13863 + Fix compiling with LTO enabled on FreeBSD gh#netdata/netdata#13854 + Fix tiers update frequency gh#netdata/netdata#13844 + Fix crash on child reconnect and lost metrics gh#netdata/netdata#13821 + Fix post-processing of contexts gh#netdata/netdata#13807 + Fix initialization of chart variables gh#netdata/netdata#13795 + Fix Array Allocator memory leak gh#netdata/netdata#13792 + Fix chart variables initialization gh#netdata/netdata#13786 + Fix compilation on CentOS 7.9 gh#netdata/netdata#13775 + Fix count of currently streaming senders on the localhost gh#netdata/netdata#13755 + Fix streaming crash when child reconnects and is archived on the parent gh#netdata/netdata#13754 + Fix sending NodeInfo during first database cleanup gh#netdata/netdata#13740 + Fix starting an archived host in dbengine if dbengine is not compiled gh#netdata/netdata#13724 + Fix building judy without dbengine gh#netdata/netdata#13703 + fix typo not deleting collected flag; force removing collected flag on child disconnect gh#netdata/netdata#13672 + Fix access to old data when nmap is used gh#netdata/netdata#13666 + Fix container virtualization info detection gh#netdata/netdata#13653 + Fix rrdcontexts left in the post-processing queue from the garbage collector gh#netdata/netdata#13645 + Fix a memory leak on archived host creation gh#netdata/netdata#13641 + Fix worker utilization cleanup gh#netdata/netdata#13633 + Fix loading db rows when chart_id or dim_id is null gh#netdata/netdata#13608 + Fix crash on rrdcontext apis when rrdcontexts is not initialized gh#netdata/netdata#13578 + Fix a failure to build eBPF with CMake gh#netdata/netdata#13568 + Fix a crash when xen libraries are misconfigured gh#netdata/netdata#13535 + Fix crashes on 32bit system gh#netdata/netdata#13511- Update to 1.36.1 Fixes * An issue that could cause agents running on 32bit distributions to crash during data exchange with the cloud. gh#netdata/netdata#13511 - go.d.plugin 0.40.1 Fixes * agent: do cleanup on exit gh#netdata/go.d.plugin#758 * mysql: create a dimension per Galera state/status. gh#netdata/go.d.plugin#779 * docker: remove data usage call. gh#netdata/go.d.plugin#780 * httpcheck: remove spaces in "HTTP Response Time" chart dimensions. gh#netdata/go.d.plugin#788 * portcheck: remove instance-specific information from chart families. gh#netdata/go.d.plugin#790 * docker: handle the case when no images are found. gh#netdata/go.d.plugin#739 * postgres: delay unregistering connString. gh#netdata/go.d.plugin#839 * postgres: fix bloat size perc calc. gh#netdata/go.d.plugin#841 * postgres: fix unregistering connStr at runtime. gh#netdata/go.d.plugin#843 * postgres: query database size only if has 'connect' privilege. gh#netdata/go.d.plugin#845 * postgres: don't create bloat charts if no bloat metrics collected. gh#netdata/go.d.plugin#846 Collectors * docker: collect the number of running containers and their health state gh#netdata/go.d.plugin#760 * logind: Keeps track of user logins and sessions by querying the systemd-logind API. gh#netdata/go.d.plugin#786 * proxysql: Monitor connections, slow queries, lagging, backends status, and more. gh#netdata/go.d.plugin#703 * [WIP] nvidia_smi: Monitors Nvidia GPU using the nvidia-smi CLI tool. gh#netdata/go.d.plugin#844 Improvements * mysql: produce binary log and MyISAM charts if they're enabled gh#netdata/go.d.plugin#763 * mysql: collect more user stats metrics. gh#netdata/go.d.plugin#775 * mysql: add Percona MySQL compatibility. gh#netdata/go.d.plugin#776 * docker: collect images and volumes stats. gh#netdata/go.d.plugin#777 * dnsmasq_dhcp: discover dhcp-ranges at runtime. gh#netdata/go.d.plugin#778 * postgres: collect table and index metrics. * systemdunits: create dimension for each unit state. gh#netdata/go.d.plugin#795 * phpfpm: added the ability to directly connect to a TCP socket and modify the status path. gh#netdata/go.d.plugin#805 * agent: add _collect label (job name) to charts. gh#netdata/go.d.plugin#814 * postgres: track acquired locks utilization. gh#netdata/go.d.plugin#831 * postgres: human-friendly histogram buckets. gh#netdata/go.d.plugin#833 * postgres: human-friendly histogram buckets. gh#netdata/go.d.plugin#833 * agent: allow to define labels in config. gh#netdata/go.d.plugin#840- Drop netdata-smartd-log-path.patch - Update to 1.36.0 (go.d.plugin 0.35.0) Collectors * New + Add PgBouncer collector (go.d/pgbouncer) gh#netdata/netdata#748 + Add WireGuard collector (go.d/wireguard) gh#netdata/netdata#744 + Add PostgresSQL collector (go.d/postgres) gh#netdata/netdata#718 + Add Chrony collector (go.d/chrony) gh#netdata/netdata#678 + Add Kubernetes State collector (go.d/k8s_state) gh#netdata/netdata#673 * Improvements + Add WireGuard description and icon to dashboard info gh#netdata/netdata#13483 + Resolve nomad containers name (cgroups.plugin) gh#netdata/netdata#13481 + Update postgres dashboard info gh#netdata/netdata#13474 + Improve Chrony dashboard info gh#netdata/netdata#13371 + Improve config file parsing error message (python.d) gh#netdata/netdata#13363 + Add fstype label to disk charts (diskspace.plugin) gh#netdata/netdata#13245 + Add support for loadin modules from user plugin directories (python.d) gh#netdata/netdata#13214 + Add user plugin dirs to environment variables gh#netdata/netdata#13203 + Add second data collection job that tries to read from '/var/lib/smartmontools/' (python.d/smartd) gh#netdata/netdata#13188 + Add type label for network interfaces (proc.plugin) gh#netdata/netdata#13187 + Add k8s_state dashboard_info gh#netdata/netdata#13181 + Add dimension per physical link state to the "Interface Physical Link State" chart (proc.plugin) gh#netdata/netdata#13176 + Add dimension per operational state to the "Interface Operational State" chart (proc.plugin) gh#netdata/netdata#13167 + Add dimension per duplex state to the "Interface Duplex State" chart (proc.plugin) gh#netdata/netdata#13165 + Add cargo/rustc/bazel/buck to apps_groups.conf (apps.plugin) gh#netdata/netdata#13143 + Add a separate thread for slow mountpoints in the diskspace plugin (diskspace.plugin) gh#netdata/netdata#13067 + Add simple dimension algorithm guess logic when algorithm is not set (go.d/snmp) gh#netdata/netdata#737 + Add common stub_status locations (go.d/nginx) gh#netdata/netdata#702 * Bug fixes + Fix cgroup name detection for docker containers in containerd cgroup (cgroups.plugin) gh#netdata/netdata#13470 + Fix not handling log rotation (python.d/smartd) gh#netdata/netdata#13460 + Fix kubepods patterns to filter pods when using Kind cluster (cgroups.plugin) gh#netdata/netdata#13324 + Fix 'zmstat*' pattern to exclude zoneminder scripts (apps.plugin) gh#netdata/netdata#13314 + Fix kubepods name resolution in a kind cluster (cgroups.plugin) gh#netdata/netdata#13302 + Fix extensive error logging (cgroups.plugin) gh#netdata/netdata#13274 + Fix qemu VMs and LXC containers name resolution (cgroups.plugin) gh#netdata/netdata#13220 + Fix duplicate mountinfo (proc.plugin) gh#netdata/netdata#13215 + Fix removing netdev chart labels (cgroups.plugin) gh#netdata/netdata#13200 + Fix import collection for py3.10+ (python.d) gh#netdata/netdata#13136 + Fix not setting connection timeout for pymongo4+ (python.d/mongodb) gh#netdata/netdata#13135 + Fix not handling slow setting spec.NodeName for Pods (go.d/k8s_state) gh#netdata/netdata#717 + Fix empty charts when ServerMPM is prefork gh#netdata/netdata#715 + Fix parsing multiple values in nginx upstream_response_time (go.d/web_log) gh#netdata/netdata#711 + Fix collecting metrics for Nodes with dots in name (go.d/k8s_state) gh#netdata/netdata#710 + Fix adding dimensions to User CPU Time chart at runtime (go.d/mysql) gh#netdata/netdata#689 eBPF * Fix data collection frequency gh#netdata/netdata#13351 * Fix crash on cleanup gh#netdata/netdata#13259 Exporting * Fix a base64_encode bug gh#netdata/netdata#13074 * Fix sent metrics calculation gh#netdata/netdata#13435 * Move host tags to netdata_info gh#netdata/netdata#13358 * Fix exporting to OpenTSDB gh#netdata/netdata#13355 * Fix exporting to Graphite gh#netdata/netdata#13261 * Add exporting chart variables gh#netdata/netdata#13221 Other notable changes * Improvements + Enable rrdcontexts by default gh#netdata/netdata#13471 + Add rrdcontext support for hidden charts gh#netdata/netdata#13466 + Load host labels for archived hosts gh#netdata/netdata#13464 + Add /api/v1/weights endpoint gh#netdata/netdata#13449 + Add stats about currently collected metrics and disk space to tiering endpoint gh#netdata/netdata#13445 + Show last 15 alerts in notification gh#netdata/netdata#13434 + Add tiering statistics API endpoint gh#netdata/netdata#13420 + Send chart context with alert events to the cloud gh#netdata/netdata#13409 + Send node info message sooner gh#netdata/netdata#13348 + Use new MQTT as default gh#netdata/netdata#13287 + Better ACLK debug communication log gh#netdata/netdata#13281 + Add Multi-Tier database backend for long term metrics storage gh#netdata/netdata#13263 + Add natural and virtual points support to Query Engine gh#netdata/netdata#13248 + Delay health until obsoletions check is complete gh#netdata/netdata#13239 + Enable ML by default gh#netdata/netdata#13158 + Add multi-granularity support to Query Engine and MC improvements gh#netdata/netdata#13155 + Add an option to use malloc for page cache instead of mmap gh#netdata/netdata#13142 + Significantly improve metrics correlations (73x times faster) gh#netdata/netdata#13107 + Add SSL received/send bytes statistics to ACLK gh#netdata/netdata#13091 * Bug fixes + Fix crash on Agent startup if data rotation needs to be done gh#netdata/netdata#13473 + Fix agent crash when archived host has not been registered to the cloud gh#netdata/netdata#13437 + Fix gap filling on dbengine gaps gh#netdata/netdata#13417 + Fix 32bit calculation on array allocator gh#netdata/netdata#13343 + Fix crash on start on slow disks because ml is initialized before dbengine starts gh#netdata/netdata#13342 + Fix crash when the host_labels health line contains the name/value of a label that does not exist on the host gh#netdata/netdata#13305 + Fix incorrect dimension names in Redis alarms gh#netdata/netdata#13296 + Fix Query Engine alignment gh#netdata/netdata#13282 + Fix vbi parser in mqtt5 implementation gh#netdata/netdata#13277 + Fix alignment in charts endpoint gh#netdata/netdata#13275 + Fix data query on stale chart gh#netdata/netdata#13159 + Fix crashes due to misaligned allocations gh#netdata/netdata#13137 + Fix buffer overflow detected by the compiler gh#netdata/netdata#13120 + Fix 100% CPU when using SSL and a child disconnect from a parent gh#netdata/netdata#13112 Deprecation notice The following items will be removed in our next minor release (v1.37.0): Component Type Will be replaced by python.d/postgres collector go.d/postgres Deprecated in this release: Component Type Replaced by python.d/chrony collector collector go.d/chrony python.d/ovpn_status_log collector go.d/openvpn_status_log- Fix %fdupes usage that resulted in the webserver refusing to serve required assets - Update to 1.35.1 (go.d.plugin 0.33.1) Netdata now comes with on-device machine learning. Unsupervised ML models are trained for every metric, at the edge (on your devices), enabling real time anomaly detection across your infrastructure. Update netdata.conf with the following information to enable ML on your agent: [ml] enabled = yes More information on the Netdata blog: https://www.netdata.cloud/blog/introducing-anomaly-advisor-unsupervised-anomaly-detection-in-netdata/ Collectors * New + Add "UPS Load Usage" in Watts chart (charts.d/apcupsd) gh#netdata/netdata#12965 + Add Pressure Stall Information stall time charts (proc.plugin, cgroups.plugin) gh#netdata/netdata#12869 + Add "CPU Time Relative Share" chart when running inside a K8s cluster (cgroups.plugin) gh#netdata/netdata#12741 + Add a collector that parses the log files of the OpenVPN server (go.d/openvpn_status_log) gh#netdata/netdata#675 * Improvements + Add Tailscale apps_groups.conf (apps.plugin) gh#netdata/netdata#13033 + Skip collecting network interface speed and duplex if carrier is down (proc.plugin) gh#netdata/netdata#13019 + Run the /net/dev module in a separate thread (proc.plugin) gh#netdata/netdata#12996 + Add dictionary support to statsd gh#netdata/netdata#12980 + Add an option to filter the alarms (python.d/alarms) gh#netdata/netdata#12972 + Update net, aws, and ha groups in apps_groups.conf (apps.plugin) gh#netdata/netdata#12921 + Add k8s_cluster_name label to cgroup charts in K8s on GKE (cgroups.plugin) gh#netdata/netdata#12858 + Exclude Proxmox bridge interfaces (proc.plugin) gh#netdata/netdata#12789 + Add filtering by cgroups name and improve renaming in K8s (cgroups.plugin) gh#netdata/netdata#12778 + Execute the renaming script only for containers in K8s (cgroups.plugin) gh#netdata/netdata#12747 + Add k8s_qos_class label to cgroup charts in K8s (cgroups.plugin) gh#netdata/netdata#12737 + Reduce the CPU time required for cgroup-network-helper.sh (cgroups.plugin) gh#netdata/netdata#12711 + Add Proxmox VE processes to apps_groups.conf (apps.plugin) gh#netdata/netdata#12704 + Add Caddy to apps_groups.conf (apps.plugin) gh#netdata/netdata#12678 * Bug fixse + Fix adding wrong labels to cgroup charts (cgroups.plugin) gh#netdata/netdata#13062 + Fix cpu_guest chart context (apps.plugin) gh#netdata/netdata#12983 + Fix counting unique values in Sets (statsd.plugin) gh#netdata/netdata#12963 + Fix collecting data from uninitialized containers in K8s (cgroups.plugin) gh#netdata/netdata#12912 + Fix CPU-specific data in the "C-state residency time" chart dimensions (proc.plugin) gh#netdata/netdata#12898 + Fix disabling K8s pod/container cgroups when fail to rename them (cgroups.plugin) gh#netdata/netdata#12865 + Fix memory usage calculation by considering ZFS ARC as cache on Linux (proc.plugin) gh#netdata/netdata#12847 + Fix adding network interfaces when the cgroup proc is in the host network namespace (cgroups.plugin) gh#netdata/netdata#12788 + Fix not setting chart units (go.d/snmp) gh#netdata/netdata#682 + Fix not collecting Integer type values (go.d/snmp) gh#netdata/netdata#680 eBPF * Add CO-RE algorithms to all threads related to memory gh#netdata/netdata#12684 * Fix wrong chart type for ip charts gh#netdata/netdata#12698 * Fix disabled apps (ebpf.plugin) gh#netdata/netdata#13044 * Fix "libbpf: failed to load" warnings gh#netdata/netdata#12831 * Re-enable socket module by default gh#netdata/netdata#12702 Health * Fix not respecting host labels when creating alerts for children instances gh#netdata/netdata#13053 * Expose anomaly-bit option to health gh#netdata/netdata#12835 * Add priority to Gotify notifications to trigger sound & vibration on the Gotify phone app gh#netdata/netdata#12753 * Add Gotify notification method gh#netdata/netdata#12639 Streaming * Improve failover logic when the Agent is configured to stream to multiple destinations gh#netdata/netdata#12866 * Increase the default "buffer size bytes" to 10MB gh#netdata/netdata#12913 Exporting * Add the URL query parameter that filters charts from the /allmetrics API query gh#netdata/netdata#12820 * Make the "send charts matching" option behave the same as the "filter" URL query parameter for prometheus format gh#netdata/netdata#12832 Other Notable Changes * Improvements + Add hostname to mirrored hosts int the /api/v1/info endpoint gh#netdata/netdata#13030 + Optimize query engine queries gh#netdata/netdata#12988 + Optimize query engine and cleanup gh#netdata/netdata#12978 + Improve the web server work distribution across worker threads gh#netdata/netdata#12975 + Check link local address before querying cloud instance metadata gh#netdata/netdata#12973 + Speed up query engine by refactoring rrdeng_load_metric_next() gh#netdata/netdata#12966 + Optimize the dimensions option store to the metadata database gh#netdata/netdata#12952 + Add detailed dbengine stats gh#netdata/netdata#12948 + Stream Metric Correlation version to parent and advertise Metric Correlation status to the Cloud gh#netdata/netdata#12940 + Move directories, logs, and environment variables configuration options to separate sections gh#netdata/netdata#12935 + Adjust the dimension liveness status check gh#netdata/netdata#12933 + Make sqlite PRAGMAs user configurable gh#netdata/netdata#12917 + Add worker jobs for cgroup-rename, cgroup-network and cgroup-first-time gh#netdata/netdata#12910 + Return stable or nightly based on version if the file check fails gh#netdata/netdata#12894 + Take into account the in queue wait time when executing a data query gh#netdata/netdata#12885 + Add fixes and improvements to workers library gh#netdata/netdata#12863 + Pause alert pushes to the cloud gh#netdata/netdata#12852 + Allow to use the new MQTT 5 implementation gh#netdata/netdata#12838 + Set a page wait timeout and retry count gh#netdata/netdata#12836 + Allow external plugins to create chart labels gh#netdata/netdata#12834 + Reduce the number of messages written in the error log due to out of bound timestamps gh#netdata/netdata#12829 + Cleanup the node instance table on startup gh#netdata/netdata#12825 + Accept a data query timeout parameter from the cloud gh#netdata/netdata#12823 + Write the entire request with parameters in the access.log file gh#netdata/netdata#12815 + Add a parameter for how many worker threads the libuv library needs to pre-initialize gh#netdata/netdata#12814 + Optimize linking of foreach alarms to dimensions gh#netdata/netdata#12813 + Add a hyphen to the list of available characters for chart names gh#netdata/netdata#12812 + Speed up queries by providing optimization in the main loop gh#netdata/netdata#12811 + Add workers utilization charts for Netdata components gh#netdata/netdata#12807 + Fill missing removed events after a crash gh#netdata/netdata#12803 + Speed up buffer increases (minimize reallocs) gh#netdata/netdata#12792 + Speed up reading big proc files gh#netdata/netdata#12791 + Make dbengine page cache undumpable and dedupuble gh#netdata/netdata#12765 + Speed up execution of external programs gh#netdata/netdata#12759 + Remove per chart configuration gh#netdata/netdata#12728 + Check for chart obsoletion on children re-connections gh#netdata/netdata#12707 + Add a 2 minute timeout to stream receiver socket gh#netdata/netdata#12673 + Improve Agent cloud chart synchronization gh#netdata/netdata#12655 + Add the ability to perform a data query using an offline node id gh#netdata/netdata#12650 + Implement ks_2samp test for Metric Correlations gh#netdata/netdata#12582 + Reduce alert events sent to the cloud gh#netdata/netdata#12544 + Store alert log entries even if alert it is repeating gh#netdata/netdata#12226 + Improve storage number unpacking by using a lookup table gh#netdata/netdata#11048 * Bug fixes + Fix locking access to chart labels gh#netdata/netdata#13064 + Fix coverity 378625 gh#netdata/netdata#13055 + Fix dictionary crash walkthrough empty gh#netdata/netdata#13051 + Fix the retry count and netdata_exit check when running a sqlite3_step command gh#netdata/netdata#13040 + Fix sending first time seen dimensions with zero timestamp to the Cloud gh#netdata/netdata#13035 + Fix gap filling on dbengine gaps gh#netdata/netdata#13027 + Fix coverity issue 378598 gh#netdata/netdata#13022 + Fix coverity issue 378617,378615 gh#netdata/netdata#13021 + Fix a dimension 100% anomaly rate despite no change in the metric value gh#netdata/netdata#13005 + Fix compilation warnings gh#netdata/netdata#12993 + Fix crash because of corrupted label message from streaming gh#netdata/netdata#12992 + Fix nanosleep on platforms other than Linux gh#netdata/netdata#12991 + Fix disabling a streaming destination because of denied access gh#netdata/netdata#12971 + Fix "unused variable" compilation warning gh#netdata/netdata#12969 + Fix virtualization detection on FreeBSD gh#netdata/netdata#12964 + Fix buffer overflow when logging "command_to_be_logged" in analytics gh#netdata/netdata#12947 + Fix "global statistics" section in netdata.conf gh#netdata/netdata#12916 + Fix virtualization detection when systemd-detect-virt is not available gh#netdata/netdata#12911 + Fix the log entry for incoming cloud start streaming commands gh#netdata/netdata#12908 + Fix release channel in the node info message gh#netdata/netdata#12905 + Fix alarms count in /api/v1/alarm_count gh#netdata/netdata#12896 + Fix multihost queries alignment gh#netdata/netdata#12870 + Fix negative worker jobs busy time gh#netdata/netdata#12867 + Fix reported by coverity issues related to memory and structure dereference gh#netdata/netdata#12846 + Fix memory leaks and mismatches of the use of the z functions for allocations gh#netdata/netdata#12841 + Fix using obsolete charts/dims in prediction thread gh#netdata/netdata#12833 + Fix not skipping ACLK dimension update when dimension is freed gh#netdata/netdata#12777 + Fix coverity warning about not checking return value in receiver setsockopt gh#netdata/netdata#12772 + Fix disk size calculation on macOS gh#netdata/netdata#12764 + Fix "implicit declaration of function" compilation warning gh#netdata/netdata#12756 + Fix Valgrind errors gh#netdata/netdata#12619 + Fix redirecting alert emails for a child to the parent gh#netdata/netdata#12609 Deprecation Notice The following items will be removed in our next minor release (v1.36.0): Component Type Will be replaced by python.d/chrony collector go.d/chrony - python.d/ovpn_status_log collector go.d/openvpn_status_log Deprecated in this release: Component Type Replaced by node.d plugin - node.d/snmp collector go.d/snmp python.d/apache collector go.d/apache python.d/couchdb collector go.d/couchdb python.d/dns_query_time collector go.d/dnsquery python.d/dnsdist collector go.d/dnsdist python.d/elasticsearch collector go.d/elasticsearch python.d/energid collector go.d/energid python.d/freeradius collector go.d/freeradius python.d/httpcheck collector go.d/httpcheck python.d/isc_dhcpd collector go.d/isc_dhcpd python.d/mysql collector go.d/mysql python.d/nginx collector go.d/nginx python.d/phpfpm collector go.d/phpfpm python.d/portcheck collector go.d/portcheck python.d/powerdns collector go.d/powerdns python.d/redis collector go.d/redis python.d/web_log collector go.d/weblog- Update to 1.34.1 (go.d.plugin 0.32.3) Collectors * New collectors + Add CPU throttling charts (cgroups.plugin) (gh#netdata/netdata#12591) + Add clock status chart (timex.plugin) (gh#netdata/netdata#12501) + Add Asterisk configuration file with synthetic charts (statsd.plugin) (gh#netdata/netdata#12381) + Add new chart for process states metrics (apps.plugin) (gh#netdata/netdata#12305) + Add thermal zone metrics collection (go.d/wmi) (gh#netdata/netdata#667) + Add SNMP data collector (go.d/snmp) (gh#netdata/netdata#644) * Improvements + Add 'locust' to apps_groups.conf (gh#netdata/netdata#12498) + Enable timex plugin for non-linux systems (timex.plugin) (gh#netdata/netdata#12489) + Prefer 'blkio.*_recursive' files when available (cgroups.plugin) (gh#netdata/netdata#12462) + Add 'stress-ng' and 'gremlin' to apps_groups.conf (apps.plugin) (gh#netdata/netdata#12165) + Add Apple Filing Protocol daemons into 'afp' group (apps.plugin) (gh#netdata/netdata#12078) + Show the number of processes/threads for empty apps groups (apps.plugin) (gh#netdata/netdata#11834) + Add a configuration option to set application (go.d/prometheus) (gh#netdata/netdata#669) * Bug fixes + Fix collecting data when 'ntp_adjtime' call fails (timex.plugin) (gh#netdata/netdata#12667) + Fix chart titles with instance-specific information (gh#netdata/netdata#12644) + Fix CPU utilization calculation (cgroups.plugin) (gh#netdata/netdata#12622) + Fix cgroup version detection with systemd (cgroups.plugin) (gh#netdata/netdata#12553) + Fix network charts context (cgroups.plugin) (gh#netdata/netdata#12454) + Fix charts context (cups.plugin) (gh#netdata/netdata#12444) + Fix recursion in apcupsd_check (charts.d/apcupsd) (gh#netdata/netdata#12418) + Fix double host prefix when Netdata running in a podman container (cgroups.plugin) (gh#netdata/netdata#12380) + Fix config file check in stock config directory (ioping.plugin) (gh#netdata/netdata#12327) + Fix setting of 'time offset' configuration option (timex.plugin) (gh#netdata/netdata#12281) + Fix logical drive data parsing error (python.d/hpssa) (gh#netdata/netdata#12206) + Fix getting username when UID is unknown on the host (python.d/nvisia_smi) (gh#netdata/netdata#12184) + Fix a typo in ZFS ARC Cache size info (gh#netdata/netdata#12138) + Fix collecting of renamed metrics (go.d/k8s_kubelet) (gh#netdata/netdata#674) + Fix reading stock configuration files in k8s (go.d.plugin) (gh#netdata/netdata#670) + Fix runtime chart context hard coding (go.d.plugin) (gh#netdata/netdata#668) + Fix failed check because of invalid metric type (go.d/prometheus) (gh#netdata/netdata#665) + Fix handling of replica set charts dimensions (go.d/mongodb) (gh#netdata/netdata#646) eBPF * Improvements + Improve chart titles and dashboard info (gh#netdata/netdata#12665) + Update eBPF dashboard info (gh#netdata/netdata#12617) + Update links in the dashboard info (gh#netdata/netdata#12581) + Add monitoring for inbound and outbound connections (gh#netdata/netdata#12532) + Improve eBPF dashboard info (gh#netdata/netdata#12467) + Add CO-RE support for eBPF plugin (gh#netdata/netdata#12318) + Update libbpf version and adjust eBPF modules for using new version of libbpf (gh#netdata/netdata#12190) * Bug fixes + Fix missing chart context for cgroups charts (gh#netdata/netdata#12671) + Fix eBFP plugin crash on exit (gh#netdata/netdata#12590) + Fix unnecessary error log lines for proc and sys files (gh#netdata/netdata#12385) + Fix removing pid file on exit (gh#netdata/netdata#12379) Dashboard * Change color of Netdata logo on left sidebar (gh#netdata/netdata#12607) * Update Community section and the links for opening a new issue on GitHub in 'Need Help?' modal (gh#netdata/netdata#12607) * Add 'Netdata Cloud connection status' modal (gh#netdata/netdata#12407) Streaming * Fix parsing of 'os_name' for older agent versions streaming to a parent (gh#netdata/netdata#12425) * Deactivate streaming compression at runtime in case of a compressor buffer overflow (gh#netdata/netdata#12037) Exporting * Remove backends subsystem (gh#netdata/netdata#12146) Health * Fix ioping_disk_latency alarm green/red thresholds (gh#netdata/netdata#12351) * Fix ioping_disk_latency alarm lookup value (gh#netdata/netdata#12329) * Adjust 10s_ipv4_tcp_resets_sent alarm warn expression (gh#netdata/netdata#12320) * Add alarms for charts.d/nut collector (gh#netdata/netdata#12285) * Fix respecting of 'delay' parameter when using 'repeat' feature (gh#netdata/netdata#12164) ML * Fix training/prediction stats charts context (gh#netdata/netdata#12610) * Enable streaming of anomaly_detection.* charts (gh#netdata/netdata#12606) * Update ML-related charts (gh#netdata/netdata#12574) * Reduce min 'dbengine anomaly rate every' from 60s to 30s (gh#netdata/netdata#12543) * ML-related changes to address issue/discussion comments. (gh#netdata/netdata#12494) * Skip 'foreach' alarms for dimensions of anomaly rate chart. (gh#netdata/netdata#12441) * Prepend context in anomaly rate dimension id (gh#netdata/netdata#12342) * Skip training of constant metrics (gh#netdata/netdata#12212) * Track anomaly rates with DBEngine (gh#netdata/netdata#12083) Other notable changes * Improvements + Add a chart label filter parameter in context data queries (gh#netdata/netdata#12652) + Add a timeout parameter to data queries (gh#netdata/netdata#12649) + Add k8s cluster name to host labels (GKE only) (gh#netdata/netdata#12638) + Add cloud providers info to host labels and /api/v1/info (gh#netdata/netdata#12613) + Reduce logging on child reconnect (gh#netdata/netdata#12594) + Improve ACLK sync logging (gh#netdata/netdata#12534) + Add more info to netdatacli 'aclk-state' (gh#netdata/netdata#12458) + Remove "web files" options leftovers (gh#netdata/netdata#12403) + Improve agent to cloud synchronization performance (gh#netdata/netdata#12348) + Remove owner check from webserver (gh#netdata/netdata#12339) + Change default OOM score and scheduling policy to behave more sanely (gh#netdata/netdata#12271) + Add more info to aclk-state API call (gh#netdata/netdata#12231) + Add -W keepopenfds option (gh#netdata/netdata#12211) + Remove chart specific configuration from netdata.conf except enabled (gh#netdata/netdata#12209) + Improve cleaning up of orphan hosts (gh#netdata/netdata#12201) + Add install method to /api/v1/info as label (gh#netdata/netdata#12040) + Add all query types to aclk_processed_query_type (gh#netdata/netdata#12036) + Create a removed alert event if chart goes obsolete (gh#netdata/netdata#12021) + Add chart for incoming proto msgs in new cloud protocol (gh#netdata/netdata#11969) * Bug fixes + Fix deadlock when deleting a child instance host and ML training is running (gh#netdata/netdata#12681) + Fix Netdata crash during anomaly calculation (gh#netdata/netdata#12672) + Fix not clean ACLK shutdown when agent is shutting down (gh#netdata/netdata#12625) + Fix shutting down the agent when the creation of the management API key file failed (gh#netdata/netdata#12623) + Fix respecting of dimension hidden option when executing a query (gh#netdata/netdata#12570) + Fix Agent crash on api/v1/info call (gh#netdata/netdata#12565) + Fix CPU frequency detection in system-info.sh (gh#netdata/netdata#12550) + Fix sending alert events with missing timezone data (gh#netdata/netdata#12547) + Fix invalid pointer reference when executing agent CLI commands (gh#netdata/netdata#12540) + Fix memory leaks on Netdata exit (gh#netdata/netdata#12511) + Fix wrong 'metrics-count' in /api/v1/info (gh#netdata/netdata#12504) + Fix issue with charts not properly synchronized with the cloud (gh#netdata/netdata#12451) + Fix high CPU usage for unclaimed agents (gh#netdata/netdata#12449) + Fix a case when claim_id is sent in uppercase (gh#netdata/netdata#12423) + Fix crash when netdatacli command output too long (gh#netdata/netdata#12393) + Fix Netdata crash on ACLK alerts streaming (gh#netdata/netdata#12392) + Fix build info output when dbengine is not compiled (gh#netdata/netdata#12354) + Fix container virtualization detection with systemd-detect-virt (gh#netdata/netdata#12338) + Fix returning 0 for unknown CPU frequency in system-info.sh (gh#netdata/netdata#12323) + Fix CPU frequency detection for containers (gh#netdata/netdata#12306) + Fix long timeouts on the cloud because the agent does not respond for failed queries with a failed message (gh#netdata/netdata#12277) + Fix registration of child nodes in the cloud through the parent (gh#netdata/netdata#12241) + Fix node information send to the cloud for older agent versions (gh#netdata/netdata#12223) + Fix Netdata crash on ACLK alerts streaming when 'info' field is missing (gh#netdata/netdata#12210) + Fix claiming with wget (gh#netdata/netdata#12163) + Fix CPU frequency calculation in system-info.sh (gh#netdata/netdata#12162) + Fix data query option allow_past to correctly work in memory mode ram and save (gh#netdata/netdata#12136) + Fix the format=array output in context queries (gh#netdata/netdata#12129) + Fix Netdata crash when there are charts with ids which differ only by symbols that are not '_' or alphanumeric and no unique names are provided (gh#netdata/netdata#12067) Deprecation notice The following items will be removed in our next minor release (v1.35.0): Patch releases (if any) will not be affected. Component Type Replaced by node.d plugin - node.d/snmp collector go.d/snmp python.d/apache collector go.d/apache python.d/couchdb collector go.d/couchdb python.d/dns_query_time collector go.d/dnsquery python.d/dnsdist collector go.d/dnsdist python.d/elasticsearch collector go.d/elasticsearch python.d/energid collector go.d/energid python.d/freeradius collector go.d/freeradius python.d/httpcheck collector go.d/httpcheck python.d/isc_dhcpd collector go.d/isc_dhcpd python.d/mysql collector go.d/mysql python.d/nginx collector go.d/nginx python.d/phpfpm collector go.d/phpfpm python.d/portcheck collector go.d/portcheck python.d/powerdns collector go.d/powerdns python.d/redis collector go.d/redis python.d/web_log collector go.d/weblog Deprecated in this release: Component Type Replaced by backends subsystem exporting engine node.d/fronius collector - node.d/sma_webbox collector - node.d/stiebeleltron collector - node.d/named collector go.d/bind- Update to 1.33.1 Dashboard * Add legacy protocol deprecation notification in the header (gh#netdata/netdata#12117) * Fix handling of after and before URL params in direct links (gh#netdata/netdata#12052) Bug fixes * Fix compilation errors cased by including "lz4.h" when stream compression is disabled (gh#netdata/netdata#12049) * Disable ebpf socket thread causing crashes on some systems (gh#netdata/netdata#12085) * Fix ACLK reconnect endless loop (gh#netdata/netdata#12074) * Fix compilation errors when openssl is not available and compiling with --disable-https and --disable-cloud (gh#netdata/netdata#12071) Other notable changes * Adds legacy protocol deprecation banner to agent log (gh#netdata/netdata#12065)- Update to 1.33.0 (go.d.plugin 0.31.2) Collectors * Improvements + Prefer python3 if available (python.d) (gh#netdata/netdata#12001) + Add bar1 memory usage chart (python.d/nvidia_smi) (gh#netdata/netdata#11956) + Add a note that Netfilter's "new" and "ignore" counters are removed in the latest kernel (gh#netdata/netdata#11950) + Consider mat. views as tables in table size/count chart (python.d/postgres) (gh#netdata/netdata#11816) + Use block_size instead of 8*1024 (python.d/postgres) (gh#netdata/netdata#11815) * Bug fixes + Fix handling of port_rcv_data and port_xmit_data counters (proc/infiniband) (gh#netdata/netdata#11994) + Fix handling of decoding errors in ExecutableService (python.d) (gh#netdata/netdata#11979) + Fix lack of sufficient system capabilities (perf.plugin) (gh#netdata/netdata#11958) + Fix Netfilter accounting charts priority (nfacct.plugin) (gh#netdata/netdata#11952) + Fix lack of sufficient system capabilities (nfacct.plugin) (gh#netdata/netdata#11951) + Fix collecting user statistics for LDAP users (python.d/nvidia_smi) (gh#netdata/netdata#11858) + Fix tps decode, and add memory usage chart (python.d/spigotmc) (gh#netdata/netdata#11797) + Fix collecting replica set stats (go.d/mongodb) (gh#netdata/netdata#639) eBPF * Improvements + Add ebpf.plugin informational charts and various optimizations (gh#netdata/netdata#11992) + Update libbpf library to v0.6.1 (gh#netdata/netdata#11865) * Bug fixes + Fix disabling specific ebpf collectors (gh#netdata/netdata#12014) + Fix cachestat on kernel 5.15.x (gh#netdata/netdata#11833) Health * Add sending notifications to channels support to PushBullet (gh#netdata/netdata#11850) Streaming * Add LZ4 streaming data compression (gh#netdata/netdata#11821) Other * Improvements + Add install type info to -W buildinfo output. (gh#netdata/netdata#12010) + Add support for NVME disks with blkext driver (gh#netdata/netdata#12007) + Perform a host metadata update on child reconnection (gh#netdata/netdata#11965) + Send ML feature information with UpdateNodeInfo (gh#netdata/netdata#11913) + Use absolute features when doing training/prediction. (gh#netdata/netdata#11876) + Send the cloud protocol used to posthog (gh#netdata/netdata#11842) + Remove ACLK Legacy (gh#netdata/netdata#11841) * Bug fixes + Fix access to freed memory in ACLK (gh#netdata/netdata#12015) + Fix a typo in the dashboard_info.js spigot part (gh#netdata/netdata#12008) + Fix queue removed alerts (gh#netdata/netdata#11996) + Fix coverity 374746 (gh#netdata/netdata#11973) + Fix ACLK chart description (gh#netdata/netdata#11970) + Fix a broken link in dashboard_info.js (gh#netdata/netdata#11948) + Fix an error in configure.ac (gh#netdata/netdata#11937) + Fix handling of the "-url" parameter in the claiming script (gh#netdata/netdata#11919) + Fix time_t format (gh#netdata/netdata#11897) + Fix compiling with AWS Kinesis support (gh#netdata/netdata#11867) + Fix cmake build (gh#netdata/netdata#11862) + Fix compilation warnings (gh#netdata/netdata#11846) Deprecation notice The following items will be removed in the next release: * backends subsystem. Has been replaced by the exporting engine. * node.d/fronius collector. Will be moved to the netdata/community repository. * node.d/sma_webbox collector. Will be moved to the netdata/community repository. * node.d/stiebeleltron collector. Will be moved to the netdata/community repository. * node.d/named collector. Has been replaced by go.d/bind. Will be moved to the netdata/community repository. Deprecated in this release Legacy ACLK support is officially removed in this release.- Update to 1.32.1 (go.d.plugin 0.31.0) Bug fixes * Use the chart id instead of chart name in response to incoming cloud context queries (gh#netdata/netdata#11898) * Fix used_swap alarm calculation (gh#netdata/netdata#11868) * Initialize enabled parameter to 1 in AlarmLogHealth message (gh#netdata/netdata#11856) - Changes in 1.32.0: New Cloud backend and Agent communication protocol This Agent release supports our new Cloud backend. From here, we will be offering much faster and simpler communication, reliable alerts and exchange of metadata, and first-time support for the parent-child relationship of Netdata agents. This is the first Agent release that allows Netdata Cloud to use the Netdata Agent as a distributed time-series database that supports replication and query routing, for every metric! eBPF latency monitoring, container monitoring, and more We use eBPF to monitor all running processes, without the cooperation of the processes and without sniffing data traffic. This new release includes 13 new eBPF monitoring features, including I/O latency, BTRFS, EXT4, NFS, XFS and ZFS latencies, IRQs latencies, extended swap monitoring, and more. Machine learning (ML) powered anomaly detection ​This release links Netdata Agent with dlib, the popular C++ machine learning algorithms library, which we use to automatically detect anomalies out-of-the-box, at the edge! Once enabled, Netdata trains an ML model for every metric, which is then used to detect outliers in real-time. The resulting "anomaly bit" (where 0=normal, 1=anomalous) associated with each database entry is stored alongside the raw metric value with zero additional storage overhead! This feature is still in development, so it is disabled by default. If you would like to test it and provide feedback, you can go to the new [ml] section in netdata.conf and set enabled=yes to turn on anomaly detection. After restarting Netdata, you should see the Anomaly Detection menu with charts highlighting the overall number and percent of anomalous metrics on your node. This can be a very useful single number summary of the state of your node. New timezone selector and time controls in the user interface We implemented a new timezone picker and time controls to enhance administrative abilities in the dashboard. Dashboard * Add various updates to dashboard info (gh#netdata/netdata#11639) * Add timex plugin chart descriptions (gh#netdata/netdata#11635) * Add proc plugin zfs chart descriptions (gh#netdata/netdata#11630) * Add proc plugin infiniband chart descriptions (gh#netdata/netdata#11628) * Add proc plugin pagetypeinfo chart descriptions (gh#netdata/netdata#11627) * Add proc plugin net_wireless chart descriptions (gh#netdata/netdata#11626) * Add proc plugin net_rpc_nfs and net_rpc_nfsd chart descriptions (gh#netdata/netdata#11625) * Add proc plugin power_supply chart descriptions (gh#netdata/netdata#11619) * Add cgroups plugin systemd services chart descriptions (gh#netdata/netdata#11618) * Add cgroups plugin chart descriptions (gh#netdata/netdata#11607) * Add apps plugin chart descriptions (gh#netdata/netdata#11601) * Add proc plugin vmstat chart descriptions (gh#netdata/netdata#11597) * Add proc plugin ksm chart descriptions (gh#netdata/netdata#11595) * Add proc plugin edac chart descriptions (gh#netdata/netdata#11589) * Add proc plugin stat chart descriptions (gh#netdata/netdata#11586) * Add proc plugin net_stat_synproxy chart descriptions (gh#netdata/netdata#11581) * Add proc plugin softirqs chart descriptions (gh#netdata/netdata#11577) * Add proc plugin net_stat_conntrack chart descriptions (gh#netdata/netdata#11576) * Add proc plugin uptime chart descriptions (gh#netdata/netdata#11569) * Add proc plugin net_sockstat and net_sockstat6 chart descriptions (gh#netdata/netdata#11567) * Add proc plugin net_snmp6 chart descriptions (gh#netdata/netdata#11565) * Add proc plugin net_sctp_snmp chart descriptions (gh#netdata/netdata#11564) * Add proc plugin net_snmp chart descriptions (gh#netdata/netdata#11557) * Add proc plugin net_netstat chart descriptions (gh#netdata/netdata#11554) * Add proc plugin net_ip_vs_stats chart descriptions (gh#netdata/netdata#11546) * Add proc plugin net_dev chart descriptions (gh#netdata/netdata#11543) * Add proc plugin meminfo chart descriptions (gh#netdata/netdata#11541) * Add proc plugin mdstat chart descriptions (gh#netdata/netdata#11537) * Add proc plugin interrupts chart descriptions (gh#netdata/netdata#11532) * Add proc plugin diskstats chart descriptions (gh#netdata/netdata#11528) * Add proc plugin ipc semaphores chart descriptions (gh#netdata/netdata#11523) * Remove 'vernemq.queue_messages_in_queues' from dashboard info (gh#netdata/netdata#11403) * Move MD arrays charts under Disks (gh#netdata/netdata#11119) Collectors * New + Add Traefik collector (go.d/traefik) (gh#netdata/go.d.plugin#605) + Add HAProxy collector (go.d/haproxy) (gh#netdata/go.d.plugin#599) + Add Mongodb collector (go.d/mongodb) (gh#netdata/go.d.plugin#598) + Add Ethereum Node collector (go.d/geth) (gh#netdata/go.d.plugin#585) * Improvements + Add AWS to apps_groups.conf (gh#netdata/netdata#11826) + Show stats for systemd protected mount points (diskspace plugin) (gh#netdata/netdata#11767) + Add support for v1.7.0+ (go.d/coredns) (gh#netdata/go.d.plugin#619) + Add "/basic_status" job nginx.conf (go.d/nginx) (gh#netdata/go.d.plugin#612) + Add sharding metrics (go.d/mongodb) (gh#netdata/go.d.plugin#609) + Add thread operations metrics (go.d/mysql) (gh#netdata/go.d.plugin#607) + Add replica sets metrics (go.d/mongodb) (gh#netdata/go.d.plugin#604) + Add databases metrics (go.d/mongodb) (gh#netdata/go.d.plugin#602) + Add more OS(OperatingSystem) charts (go.d/wmi) (gh#netdata/go.d.plugin#593) + Add caddy job to prometheus.conf (go.d/prometheus) (gh#netdata/go.d.plugin#581) + Add AOF file size metrics (go.d/redis) (gh#netdata/go.d.plugin#578) + Add openethereum/geth jobs to prometheus.con (go.d/prometheus) (gh#netdata/go.d.plugin#578) + Update whois/whois-parser packages and add timeout configuration option (go.d/whoisquery) (gh#netdata/go.d.plugin#576) + Disable reporting min/avg/max group uptime by default (apps plugin) (gh#netdata/netdata#11609) + Add sorting of the list of databases in alphabetical order (python.d/postgres) (gh#netdata/netdata#11580) + Add terra related binaries to blockchains group (apps plugin) (gh#netdata/netdata#11437) + Add instruction per cycle charts (perf plugin) (gh#netdata/netdata#11392) + Add autovacuum and tx wraparound charts (python.d/postgres) (gh#netdata/netdata#11267) + Add web3 and blockchains groups (apps plugin) (gh#netdata/netdata#11220) + Implement merging user/stock configuration files (python.d plugin) (gh#netdata/netdata#11217) + Rename default job from 'local' to 'anomalies' (python.d/anomalies) (gh#netdata/netdata#11178) + Add standby lag and blocking transactions charts (python.d/postgres) (gh#netdata/netdata#11169) * Bug fixes + Fix renaming for cgroups with dots in the path (cgroups plugin) (gh#netdata/netdata#11775) + Fix exiting on SIGPIPE (go.d plugin) (gh#netdata/go.d.plugin#630) + Fix domain syntax validation (go.d/whoisquery) (gh#netdata/go.d.plugin#629) + Fix missing NONE in valid request methods (go.d/squidlog) (gh#netdata/go.d.plugin#621) + Remove wrong "queue_messages_in_queues" chart (go.d/vernemq) (gh#netdata/go.d.plugin#601) + Fix HTTP/socket client initialization order (go.d/phpfpm) (gh#netdata/go.d.plugin#591) + Fix scraping metrics when resources are not discovered (go.d/vsphere) (gh#netdata/go.d.plugin#589) + Fix LTSV log format parsing (go.d/weblog) (gh#netdata/go.d.plugin#584) + Fix expiration date parsing (go.d/whoisquery) (gh#netdata/go.d.plugin#575) + Fix containers name resolution for crio/containerd runtime (cgroups plugin) (gh#netdata/netdata#11756) + Add sensors to charts.d.conf and add a note on how to enable it (charts.d plugin) (gh#netdata/netdata#11715) + Fix crashing of the wal query if wal-file was removed concurrently (python.d/postgres) (gh#netdata/netdata#11697) + Fix "lsns: unknown column" logging (cgroups plugin) (gh#netdata/netdata#11687) + Fix nfsd RPC metrics and remove unused nfsd charts and metrics (proc/nfsd) (gh#netdata/netdata#11632) + Fix "proc4ops" chart family (proc/nfsd) (gh#netdata/netdata#11623) + Fix swap size calculation (cgroups plugin) (gh#netdata/netdata#11617) + Fix RSS memory counter for systemd services (cgroups plugin) (gh#netdata/netdata#11616) + Fix VBE parsing (python.d/varnish) (gh#netdata/netdata#11596) + Remove unused synproxy chart (proc/synproxy) (gh#netdata/netdata#11582) + Fix zpool state parsing (proc/zfs) (gh#netdata/netdata#11545) + Fix null values returned by '_cat/indices' API (python.d/elasticsearch) (gh#netdata/netdata#11501) + Fix replication_slot chart on standby (python.d/postgres) (gh#netdata/netdata#11455) + Fix an inconsistent status check (charts.d/apcupsd) (gh#netdata/netdata#11435) + Fix plugin name (stats.d plugin) (gh#netdata/netdata#11400) + Fix lack of "module" in chart definition (all chart.d modules) (gh#netdata/netdata#11390) + Fix various python modules charts contexts (python.d/smartd_log, mysql, zscores) (gh#netdata/netdata#11310) + Fix current operation charts title and context (proc/mdstat) (gh#netdata/netdata#11289) + Fix handling of adding slabs after discovery (slabinfo plugin) (gh#netdata/netdata#11257) eBPF * New + Add MD flush calls tracking (gh#netdata/netdata#11681) + Add shared memory system calls tracking (gh#netdata/netdata#11560) + Add OOM kills tracking (gh#netdata/netdata#11470) + Add soft IRQ latency tracking (gh#netdata/netdata#11445) + Add hard IRQ latency tracking (gh#netdata/netdata#11410) + Add mount/umount calls tracking (gh#netdata/netdata#11358) + Add btrfs latency monitoring (gh#netdata/netdata#11348) + Add ZFS latency monitoring (gh#netdata/netdata#11330) + Add NFS latency monitoring (gh#netdata/netdata#11313) + Add disk latency monitoring (gh#netdata/netdata#11276) + Add XFS latency monitoring (gh#netdata/netdata#11238) + Add ext4 latency monitoring (gh#netdata/netdata#11224) + Add extended swap monitoring (gh#netdata/netdata#11090) * Improvements + Add (eBPF) to submenu (gh#netdata/netdata#11721) + Process monitoring cleanup and improvements (gh#netdata/netdata#11643) + Add integration with cgroups plugin (socket, shared memory, cachestat) (gh#netdata/netdata#11642) + Add integration with cgroups plugin (process, file descriptor, VFS, directory cache and OOMkill) (gh#netdata/netdata#11611) + Add initial integration with cgroups plugin (swap) (gh#netdata/netdata#11573) + Add integration with cgroups plugin (create shared memory with cgroups) (gh#netdata/netdata#11559) + Update charts descriptions (gh#netdata/netdata#11547) + Convert eBPF submenus to lowercase (gh#netdata/netdata#11511) + Socket monitoring code improvements and update charts descriptions (gh#netdata/netdata#11441) + Move file operation monitoring to a separate thread (gh#netdata/netdata#11401) + Add module names for threads (gh#netdata/netdata#11387) + Move repeating part of latency chart descriptions to the family level (gh#netdata/netdata#11363) + Reduce plugin's memory usage (gh#netdata/netdata#11256) + Assorted improvements and fixes (gh#netdata/netdata#11230) + Move VFS monitoring to a separate threads and add new charts (gh#netdata/netdata#11187) * Bug fixes + Fix command line arguments (gh#netdata/netdata#11670) + Fix hardirq/softirq value init logic (gh#netdata/netdata#11471) + Fix VFS index reference (gh#netdata/netdata#11356) + Fix a case when multiple eBPF plugins are running (gh#netdata/netdata#11287) + Fix applying configuration options (gh#netdata/netdata#11253) + Fix a segfault when ebpf_load_program returns null pointer (gh#netdata/netdata#11203) + Fix a wrong pointer to a function and move parser to main thread (gh#netdata/netdata#11152) Health * Improvements + Remove pihole_blocked_queries alert (gh#netdata/netdata#11829) + Improve check for supported -F parameter in sendmail (gh#netdata/netdata#11506) + Add custom e-mail headers (gh#netdata/netdata#11454) + Add 'cockroachdb_underreplicated_ranges' alarm (gh#netdata/netdata#11360) + Disable 'oom_kill' alarm on k8s nodes (gh#netdata/netdata#11359) + Add geth stock alarms (gh#netdata/netdata#11341) + Remove pythond modules specific last_collected alarms (gh#netdata/netdata#11307) + Remove CockroachDB deprecated alarms (gh#netdata/netdata#11235) + Add new email notification template (gh#netdata/netdata#11219) + Add system clock synchronization state alarm (gh#netdata/netdata#11177) + Add python.d/go.d jobs last_collected_secs alarms (gh#netdata/netdata#11168) + Make stocks alarms less sensitive (gh#netdata/netdata#11153) * Bug fixes + Fix swap_used alarm calculation (gh#netdata/netdata#11672) + Fix ram level alarms (gh#netdata/netdata#11452) + Fix 'gearman_workers_queued' alarm (gh#netdata/netdata#11361) + Fix sending MS Teams notifications to multiple channels (gh#netdata/netdata#11355) + Fix sendmail 'unrecognized option: F' issue (gh#netdata/netdata#11283) + Update old logo to new one (gh#netdata/netdata#11263) + Swap class and type attributes in stock alarm configurations (gh#netdata/netdata#11240) + Fix alarm line 'charts' matching (gh#netdata/netdata#11204) Other * Improvements + Clean compilation warnings (gh#netdata/netdata#11810) + Fix coverity issues (gh#netdata/netdata#11809) + Add commands to check and fix database corruption (gh#netdata/netdata#11828) + Use two digits after the decimal point for the anomaly rate. (gh#netdata/netdata#11804) + Always queue alerts to aclk_alert (gh#netdata/netdata#11806) + Add some logging for cloud new architecture to access.log (gh#netdata/netdata#11788) + Delete from aclk alerts table if ack'ed from cloud one day ago (gh#netdata/netdata#11779) + Remove feature flag for ACLK new cloud architecture (gh#netdata/netdata#11774) + Insert alert into aclk_alert directly instead of queuing it (gh#netdata/netdata#11769) + Store and submit dimension delete messages for new cloud architecture (gh#netdata/netdata#11765) + Implement cloud initiated disconnect command (gh#netdata/netdata#11723) + Announce proto capability and enable if cloud supports (gh#netdata/netdata#11476) + Add exit points between env and OTP (gh#netdata/netdata#11751) + Improve the ACLK sync process for the new cloud architecture (gh#netdata/netdata#11744) + Disable C++ warnings from dlib library. (gh#netdata/netdata#11738) + Add queue removed alerts to cloud for new architecture (gh#netdata/netdata#11704) + Add support to stream chart labels on a parent - child setup (gh#netdata/netdata#11675) + Add snapshot message for cloud new architecture (gh#netdata/netdata#11664) + Add protobuf to -W buildinfo output. (gh#netdata/netdata#11634) + Add new alarm status protocol messages (gh#netdata/netdata#11612) + Add local webserver API/v1 call "aclk" (gh#netdata/netdata#11588) + Make New Cloud architecture optional for ACLK-NG (gh#netdata/netdata#11587) + Enable additional functionality for the new cloud architecture (gh#netdata/netdata#11579) + Add alert message support for ACLK new architecture (gh#netdata/netdata#11552) + Add support for Anomaly Detection MVP (gh#netdata/netdata#11548) + Add New Cloud Protocol files to CMake (gh#netdata/netdata#11536) + Add archive uploads for dist, package build, and static build checks. (gh#netdata/netdata#11534) + Add node message support for ACLK new architecture (gh#netdata/netdata#11514) + Clean netdata naming (gh#netdata/netdata#11484) + Add aclk/cloud state command to netdatacli (gh#netdata/netdata#11462) + Add chart message support for ACLK new architecture (gh#netdata/netdata#11447) + Add Alert Related API for new protocol (gh#netdata/netdata#11424) + Update SQLite version from v3.33.0 to 3.36.0 (gh#netdata/netdata#11423) + Add SQLite unit tests (gh#netdata/netdata#11422) + Add NodeInstanceInfo API (gh#netdata/netdata#11419) + Use SQLite to store the health log and alert configurations. (gh#netdata/netdata#11399) + Add ACLK synchronization event loop (gh#netdata/netdata#11396) + Add HTTP basic authentication to Prometheus remote write and HTTP versions of Graphite, JSON, OpenTSDB (gh#netdata/netdata#11394) + Add new Cloud chart related parsers and generators (gh#netdata/netdata#11393) + Remove warning when GCC 8.x is used (gh#netdata/netdata#11389) + Add support to allow ACLK-NG to grow MQTT buffer (gh#netdata/netdata#11340) + Add support for bundled protobuf (gh#netdata/netdata#11335) + Add ACLK-NG cloud request type charts (gh#netdata/netdata#11326) + Add HTTP access log messages for ACLK-NG (gh#netdata/netdata#11318) + Add a log message when the page cache manager sleeps for more than 1 second. (gh#netdata/netdata#11314) + Add hop count for children (gh#netdata/netdata#11311) + Remove access check for install-type file (gh#netdata/netdata#11288) + Support TLS SNI in ACLK-NG (gh#netdata/netdata#11285) + Make ACLK-NG the default if available (gh#netdata/netdata#11272) + Add extra posthog attributes (gh#netdata/netdata#11237) + Add support to ACLK-NG for new Cloud NodeInstance related msgs (gh#netdata/netdata#11234) + Add support so ACLK NG and Legacy can coexist (gh#netdata/netdata#11225) + Move cleanup of obsolete charts to a separate thread (gh#netdata/netdata#11222) + Add check to only report the exit code when anonymous statistics script fails (gh#netdata/netdata#11215) + Reduce memory needed per dimension (gh#netdata/netdata#11212) + Improve dbengine intialization to ignore journal files that can not be read (gh#netdata/netdata#11210) + Use memory mode RAM if memory mode dbengine is specified but not available (gh#netdata/netdata#11207) + Improve return status check for the execution of anonymous statistics script (gh#netdata/netdata#11188) + Reuse the SN_EXISTS bit to track anomaly status. (gh#netdata/netdata#11154) + Remove deprecated command line options (gh#netdata/netdata#11149) + Remove unecessary relative paths when including headers. (gh#netdata/netdata#11124) + Add field to provide UTC offset in seconds and edit health config command (gh#netdata/netdata#11051) * Bug fixes + Set NETDATA_CONTAINER_OS_DETECTION properly (gh#netdata/netdata#11827) + Fix agent crash when ACLK sync thread is not initialized (gh#netdata/netdata#11820) + Simple fix for the data API query (gh#netdata/netdata#11787) + Use the proper format specifier when logging configuration options. (gh#netdata/netdata#11795) + Use correct hop count if host is already in memory (gh#netdata/netdata#11785) + Fix proc/interrupts parser (gh#netdata/netdata#11783) + Skip sending hidden dimensions via ACLK (gh#netdata/netdata#11770) + Fix host hop count reported to the cloud (gh#netdata/netdata#11768) + Fix log if D_ACLK is used (gh#netdata/netdata#11763) + Fix retention message duration when no local metrics are found (gh#netdata/netdata#11762) + Fix an issue with incomplete payload served when https is enabled (gh#netdata/netdata#11754) + Fix a type in the popocorn information message (gh#netdata/netdata#11745) + Fix /api/v1/info if ml-info is missing (gh#netdata/netdata#11739) + Fix typo in aclk_query.c (gh#netdata/netdata#11737) + Fix online chart in NG not updated properly (gh#netdata/netdata#11734) + Fix coverity CID #373610 (gh#netdata/netdata#11719) + Fix loading old and custom dashboards (gh#netdata/netdata#11710) + Fix coverity issues 373612 & 373611 (gh#netdata/netdata#11684) + Fix warnings from -Wformat-truncation=2 (gh#netdata/netdata#11676) + Fix interval usage and reduce I/O (gh#netdata/netdata#11662) + Fix build issue related to legacy aclk and new arch code (gh#netdata/netdata#11655) + Fix typo in URL when calling env (gh#netdata/netdata#11651) + Fix false poll timeout (gh#netdata/netdata#11650) + Fix chart config overflow (gh#netdata/netdata#11645) + Fix an overflow when unsigned integer subtracted (gh#netdata/netdata#11638) + Fix coverity issues 373400-373402 (gh#netdata/netdata#11631) + Fix proper initialization struct with zeroes (gh#netdata/netdata#11621) + Fix https client (gh#netdata/netdata#11608) + Fix CID 339027 and reverse arguments (gh#netdata/netdata#11578) + Fix resource leak when analytics thread stops (gh#netdata/netdata#11575) + Fix coverity report issues CID_373247-373251 (gh#netdata/netdata#11549) + Fix coverity issues for health config (gh#netdata/netdata#11535) + Fix issue with log messages appearing in the terminal instead of the error.log on startup (gh#netdata/netdata#11524) + Fix issues in Alarm API (gh#netdata/netdata#11491) + Fix list corruption in ACLK sync code and remove fatal (gh#netdata/netdata#11444) + Fix coverity reported issues 372243 - 372248 (gh#netdata/netdata#11429) + Fix CID 372233 to CID 372236 (gh#netdata/netdata#11411) + Fix bundled protobuf linkage on systems needing -latomic (gh#netdata/netdata#11406) + Fix coverity issue 372222 (gh#netdata/netdata#11404) + Fix typo in analytics.c (gh#netdata/netdata#11329) + Fix coverity errors in ACLK (gh#netdata/netdata#11322) + Fix confusing error in ACLK Legacy (gh#netdata/netdata#11278) + Fix an issue to send correct aclk implementation used by agent to posthog. (gh#netdata/netdata#11247) + Fix error on --disable-cloud (gh#netdata/netdata#11244) + Fix mqtt_websockets submodule version (gh#netdata/netdata#11196) + Fix claiming script exit code when daemon not running and the claim was successful (gh#netdata/netdata#11195) + Fix loading of class, component and type from health log when sufficient fields are detected. (gh#netdata/netdata#11193) + Fix typo in aclk.c (gh#netdata/netdata#11170)- Fix build on s390x (Adding s390x to ifnarch statement for xenstat in spec file)- Update to 1.31.0 (go.d.plugin 0.29.0) The v1.31.0 release of Netdata comes with re-packaged and redesigned elements of the dashboard to help you focus on your metrics, even more Linux kernel insights via eBPF, on-node machine learning to help you find anomalies, and much more. This release contains 10 new collectors, 54 improvements (7 in the dashboard), 31 documentation updates, and 29 bug fixes. At a glance We re-packaged and redesigned portions of the dashboard to improve the overall experience. Part of this effort is better handling of dashboard code during installation—anyone using third-party packages (such as the Netdata Homebrew formula) will start seeing new features and the new designs starting today. The timeframe picker has moved to the top panel, and just to its right are two counters with live CRITICAL and WARNING alarm statuses for your node. Click on either of these two open the alarms modal. We've also pushed a number of powerful new collectors, including directory cache monitoring via eBPF. By monitoring directory cache, developers and SREs alike can find opportunities to optimize memory usage and reduce disk-intensive operations. Our new Z-scores and changefinder collectors use machine learning to let you know, at a glance, when key metrics start to behave oddly. We'd love to get feedback on these sophisticated, subjective new brand of collectors! Improvements * Automatically trigger Helmchart PR on Agent release. (gh#netdata/netdata#11084) * Implement ACLK env endpoint. (gh#netdata/netdata#10833) * Implement new HTTPS client for ACLK. (gh#netdata/netdata#10805) * Update ACLK passwd endpoint to match specifications of the new architecture. (gh#netdata/netdata#10859) * Implement ACLK new backoff (TBEB) architecture. (gh#netdata/netdata#10941) * Add functionality to store node_id for a host. (gh#netdata/netdata#11059) * Remove version negotiation from ACLK-NG. (gh#netdata/netdata#10980) * Persist claim IDs in local database for parent and children. (gh#netdata/netdata#10993) * Provide more agent analytics to PostHog. (gh#netdata/netdata#11020) * Reduce logging when sending agent analytics. (gh#netdata/netdata#11091) * Remove error message on Netdata restart. (gh#netdata/netdata#8685) * Add a timeout when sending anonymous statistics using curl. (gh#netdata/netdata#11010) * Improve dash-example.html. (gh#netdata/netdata#10870) * Add host_cloud_enabled attribute to analytics. (gh#netdata/netdata#11100) Dashboard * Bundle the react dashboard code into the agent repo directly. (gh#netdata/netdata#11139) * Add dashboard info strings for systemdunits collector. (gh#netdata/netdata#10904) * Update dashboard version to v2.17.0. (gh#netdata/netdata#10856) + Top bar, side panel and overall navigation has been redesigned. + Top bar now includes a light bulb icon with news/features and the number of CRITICAL or WARNING alarms. + Documentation and settings buttons moved to the sidebar. + Improved rendering of sign in/sign up option button along with an operational status option (under user settings). + In the left panel, nodes show a status badge and are now searchable if there are more than 4. Health * Improvements + Add charts configuration option to templates. (gh#netdata/netdata#11054) + Add new attributes to health configuration files. (gh#netdata/netdata#10961) + Add inconsistent state to the mysql_galera_cluster_state alarm. (gh#netdata/netdata#10945) + Add systemdunits collector alarms. (gh#netdata/netdata#10906) + Use average instead of sum in VerneMQ alarms. (gh#netdata/netdata#11037) + Check configuration for CUSTOM and MSTEAM. (gh#netdata/netdata#11113) + Reduce alarms notifications dump logging. (gh#netdata/netdata#11116) * Bug fixes + Add synchronization.conf to the Makefile. (gh#netdata/netdata#10907) + Fix Microsoft Teams naming. (gh#netdata/netdata#9905) Collectors * New + Add a chart for out of memory kills. (gh#netdata/netdata#10880) + Add a chart with Netdata uptime. (gh#netdata/netdata#10997) + Add a module for ZFS pool state. (gh#netdata/netdata#11071) + Add a plugin for the system clock synchronization state. (gh#netdata/netdata#10895) + Add new charts for extended disk metrics. (gh#netdata/netdata#10939) + Add support for renaming libvirtd LXC containers. (gh#netdata/netdata#11006) + Add a metric for Percpu memory. (gh#netdata/netdata#10964) + Add an eBPF directory cache collector. (gh#netdata/netdata#10855) + Add a Z-scores python collector. (gh#netdata/netdata#10673) + Add changefinder python collector. (gh#netdata/netdata#10672) * Improvements + Remove dots in cgroup IDs. (gh#netdata/netdata#11050) + Add support for attribute 249 (NAND Writes 1GiB) to the smartd_log module. (gh#netdata/netdata#10872) + Add RAID level to the mdstat collector chart families. (gh#netdata/netdata#11024) + Update fping version. (gh#netdata/netdata#10977) + Add plugin and module names to the python.d.plugin runtime charts. (gh#netdata/netdata#11007) + Move global stats to a separate thread. (gh#netdata/netdata#10991) + Add memory size adjustments for eBPF hash tables. (gh#netdata/netdata#10962) + Add improvements to anomalies collector. (gh#netdata/netdata#11003) + Add support for loading of kprobe names in the eBPF plugin. (gh#netdata/netdata#11034) + Don't repeat the cgroup discovery cleanup info message. (gh#netdata/netdata#11101) + Change ACLK statistics charts units from kB/s to KiB/s. (gh#netdata/netdata#11103) * Bug fixes + Fix the detection of cgroups v2 by checking the version of the default cgroup mountpoint. (gh#netdata/netdata#11102) + Fix eBPF cachestat chart type. (gh#netdata/netdata#11074) + Fix gaps in eBPF cachestat charts. (gh#netdata/netdata#10972) + Fix detection of opensipsctl executable. (gh#netdata/netdata#10978) + Fix network interfaces detection when using virsh. (gh#netdata/netdata#11096) + Fix eBPF plugin crash during shutdown. (gh#netdata/netdata#10957) Exporting * Improvements + Allow the remote write configuration to have multiple destinations (gh#netdata/netdata#11005) * Bug fixes + Fix backend chart filtering backward compatibility. (gh#netdata/netdata#11002) Bug fixes * Reduce the number of ACLK chart updates during chart obsoletion. (gh#netdata/netdata#11133) * Fix SSL random failures when using multithreaded web server with OpenSSL < 1.1.0. (gh#netdata/netdata#11089) * Fix storing an NULL claim ID on a parent node. (gh#netdata/netdata#11036) * Prevent MQTT connection attempt on OTP failure. (gh#netdata/netdata#10839) * Rename struct fields from class to classification. (gh#netdata/netdata#11019) * Fix spelling mistakes in various components: + aclk (gh#netdata/netdata#10910) + build (gh#netdata/netdata#10909) + collectors (gh#netdata/netdata#10912) + daemon (gh#netdata/netdata#10913) + database (gh#netdata/netdata#10914) + exporting (gh#netdata/netdata#10915) + libnetdata (gh#netdata/netdata#10917) + health (gh#netdata/netdata#10916) + streaming (gh#netdata/netdata#10919) + tests (gh#netdata/netdata#10920) + backend (gh#netdata/netdata#10911) + bidirectional (gh#netdata/netdata#10918) + HTTP API (gh#netdata/netdata#10921) + web (gh#netdata/netdata#10922)- Update to 1.30.0 (go.d.plugin 0.28.1) The v1.30.0 release of Netdata completely replaces Google Analytics/GTM for product telemetry (disabled by default in openSUSE). We're also releasing the first changes in an upcoming overhaul to both our dashboard UI/UX and the suite of preconfigured alarms that comes with every installation. v1.30.0 contains 3 new collectors, 3 enhancements to notifications method, 38 improvements (13 in the dashboard), 16 documentation updates, and 17 bug fixes. At a glance The ACLK-NG is a much faster method of securely connecting a node to Netdata Cloud. In addition, there are no external dependencies to our custom libmosquitto and libwebsockets libraries, which means there's no more need to build these during installation. We replaced Google Analytics/GTM, which we used for collecting product telemetry, with a self-hosted instance of the open-source PostHog project. When sending statistics to PostHog, any fields that might contain identifiable information, such as an IP address or URL, are hardcoded. If you previously opted-out of anonymous statistics, this migration does not change your existing settings. Improvements * Add check for children connecting to a parent agent with an unsupported memory mode. * Add lock check to avoid shutdown when compiled with internal and locking checks. * Update chart's metadata in database when it already exists during creation. * ACLK separate HTTPS client. * Add new ACLK implementation (ACLK-NG). * Add CPU statistics per ALCK query thread. * Add _aclk_impl label to the /api/v1/info endpoint. * Add a new chart parameter to the /api/v1/alarm_log endpoint. * Add data query support for archived charts. * Add HTTP cookie (SameSite, Secure). * Add statistics per Cloud query type. * Add support for changing the number of pages per database engine extent. * Add the ability to store chart labels in the database. * Enable metadata persistence in all memory modes. * Increase curl connect-timeout and decrease number of claim attempts. * Increase the ACLK exponential backoff randomness. * Log ACLK Cloud commands to access.log. * Remove an unused function warning in legacy version of the ACLK. * Remove unreachable #else directives in plugins. * Rename struct avl to avl_element and the typedef to avl_t. * Replace Google Analytics with PostHog for backend telemetry events. * Skip C++ incompatible header in main libnetdata header. * Try to keep all pages from extents read from disk in the cache. * Use a parameter name that is not a reserved keyword in C++. * Use of out-of-line struct definitions. Dashboard * Add max value to the nvidia_smi.fan_speed gauge. * Add state map to duplex and operstate charts. * Add supervisord to dashboard_info.js. * Fix broken external links. * Make network state map syntax consistent in dashboard_info.js. * Fix alarms log export. * Persist relative timeframe. * Allow multirow names in the replicated nodes list. * Fix the date & time picker overlap. * Update Font Awesome. * Truncate long names. * Update links: change docs.netdata.cloud to learn.netdata.cloud. Health * Bug fixes + Fix delaying CLEAR notifications when using the repeat feature. + Fix wrong count of entries in the alarm.log. * Alarms + Add wmi_ prefix to the wmi collector network alarms. + Add collector prefix to the external collectors alarms. + Apply adapter_raid alarms for every logical/physical device. + Apply megacli alarms for every adapter/physical disk. + Exclude cgroups network interfaces from packets dropped alarms. + Fix various alarms critical and warning thresholds hysteresis. + Improve alarms info fields. + Make VerneMQ alarms less sensitive. + Make alarms less sensitive. + Remove exporting_metrics_lost template. + Remove ram_in_swap alarm. + Use separate packets_dropped_ratio alarms for wireless network interfaces. * Notifications + Add ability to change port number when using IRC notification method. + Add dump_methods parameter to alarm-notify.sh.in. + Log an error if there is a failure during an email alarm notification. Collectors * New + Add monitoring of synchronization system calls to the eBPF collector. + Add monitoring of Linux page cache to the eBPF collector. * Improvements + Add k6.conf to the StatsD collector. + Clean up the eBPF collector. + Use working set for memory utilization in the cgroups collector. + Add new configuration parameters to the example Python collector. + Add carrier and MTU charts for network interfaces. + Improve email, cron, and UPS groups in the apps.plugin configuration. + Add Wireguard to the vpn group in the apps.plugin configuration. + Add alarm values collection to the Python alarms collector. + Add attribute 233 (Media Wearout Indicator (SSD)) collection to the python smartd_log collector. + Move network interface speed, duplex, and operstate variables to charts. + Update go.d.plugin version to v0.28.1. + Add a noauthcodecheck workaround flag to the freeipmi collector. * Bug fixes + Fix eBPF collector compatibility with kernels v5.11+. + Fix disks identification in the diskstats collector. + Fix the count of cpuset.cpus in the cgroups collector. + Fix disk utilization and backlog charts in the diskstats collector. Exporting * Bug fixes + Fix adding duplicate _total suffixes for the Prometheus collector. Bug fixes * Fix a typo in main.h. * Fix a typo in backend_prometheus.c. * Fix a typo in dashboard_info.js. * Fix segfault due to misalignment between global and StatsD memory modes. * Fix zombie alarms for charts that are obsolete/removed. * Fix a Coverity warning in the new MQTT library. * Fix a parameter binding issue when storing chart names in the database. * Fix crash when executing data query with context and non-existing chart_label_key. * Fix claiming behind Squid proxy. * Fix Coverity issue (CID 367566). * Fix memory leak when archived data is requested. * Fix clash with C++ standard definitions by changing abs to ABS.- Update to 1.29.3 Release v1.29.3 is a patch release to improve the stability of the Netdata Agent. We discovered a bug that when proc.plugin attempts to collect the operstate parameter for a virtual network interface. If the chart is obsoleted, the Netdata Agent crashes. This release also contains additional bug fixes and improvements. Bug fixes * Fix proc.plugin to invalidate RRDSETVAR pointers on obsoletion.- Update to 1.29.2 Release v1.29.2 is a patch release to improve the stability of the Netdata Agent. We discovered that an improvement introduced in v1.29.0 could inadvertently set all os_* host labels to unknown, which could affect users who leverage these host labels to organize their nodes, deploy health entities, or export metrics to external time-series databases. This bug has been fixed. This release also contains additional bug fixes and improvements. Improvements * Make the Opsgenie API URL configurable. * Add k8s_cluster_id host label. * Enable apps.plugin aggregation debug messages. * Add configuration parameter to disable stock alarms. * Add ACLK proxy setting as host label. * Add freeswitch to apps_groups.conf. * Simplify thread creation and remove unnecessary variables in the eBPF plugin. Bug fixes * Fix the context filtering on the data query endpoint. * Fix container/host detection in the system-info.sh script. * Add a small delay to the ipv4_tcp_resets alarms. * Fix collecting operstate for virtual network interfaces. * Fix sendmail unrecognized option F error. * Fix so that raw binary data should never be printed. * Change KSM memory chart type to stacked. * Allow the REMOVED alarm status via ACLK if the previous status was WARN/CRIT. * Reduce excessive logging in the ACLK. - Changes in 1.29.1 Release v1.29.1 is a hotfix release to address a crash in the Netdata Agent. A locking bug in one of the internal collectors in Netdata could cause it to crash during shutdown in a way that would result in the Netdata Agent taking an excessively long time to exit. Bug fixes * Fix crash during shutdown of cgroups internal plugin.- Update to 1.29.0 (go.d.plugin 0.27.0) The v1.29.0 release of the Netdata Agent is a maintenance release that brings incremental but necessary improvements that make your monitoring experience more robust. We've pushed improvements and bug fixes to the installation and update scripts, enriched our library of collectors, and focused on fixing bugs reported by the community. At a glance Netdata now collects and meaningfully organizes metrics from both the Couchbase JSON document database and the nginx-module-vts module for exposing metrics about NGINX virtual hosts. We've also migrated more collectors from Python to Go in our continued efforts to make data collection faster and more robust. The newest effort includes our Redis, Pika, and Energi Core Wallet collectors. On the dashboard, we improved the responsiveness of panning forward and backward through historical metrics data by preventing unnecessary updates and reducing the number of calls. The charts should also now immediately update when you stop panning. Improvements * Reduce the number of alarm updates on ACLK. * Remove unused entries from structures. * Improve the retry/backoff during claiming. * Support multiple chart label keys in data queries. * Truncate excessive information from titles for apps and cgroups collectors. * Use mguid instead of hostname in the ACLK collector list. * Cleanup and minor fixes to eBPF collector. * Add _is_k8s_node label to the host labels. * Move ACLK into a legacy subfolder. * Exclude autofs by default in the diskspace plugin. * Mark internal functions as static in health code. * Remove unused struct in health code. * Add support for per series styling for dygraphs. Dashboard * Fix minor vulnerability alert by updating socket-io dependency. * Fix dygraph panning responsiveness, chart heights and performance improvements. * Make legend position configurable. Collectors * Add Go version of the redis collector. * Add Go version of the pika collector. * Add Go version of the energis collector. * Add a new nginxvts collector. * Add a new couchbase collector. * Add Traefik v2 to the prometheus collector default configuration. * Add an expected_prefix configuration option to the prometheus collector. * Add patterns support to the filecheck collector. Bug fixes * Fix container detection from systemd-detect-virt. * Fix handling of TLS config so that cURL works in all cases. * Fix disconnect message sent via ACLK on agent shutdown * Fix prometheus remote write header * Fix values in Prometheus export for metrics, collected by the Prometheus collector * Fix handling spaces in labels values in the Prometheus collector * Fix mysql.slave_status alarm for go mysql collector * Make mdstat_mismatch_cnt alarm less strict * Dispatch cgroup discovery into another thread * Fix data source option for Prometheus web API in exporting configuration * Fix anomalies collector custom model bug * Fix broken dbengine stress tests. * Fix segmentation fault in the agent * Fix memory allocation when computing standard deviation * Fix temperature parsing in the hddtemp collector * Fix postgres password bug and change default config * Add handling "yes" and "no" and flexible space match in the python.d/fail2ban plugin * Fix spelling mistakes in the Python plugin and documentation.- Update to v1.28 Release v1.28.0 is a hotfix release to address a deadlock in the Netdata Agent. If the Agent-Cloud link (ACLK) connection drops and the Agent fails to queue an on_connect message, it also fails to properly release a lock in the web server thread.- Enable additional dependencies (gprc, json, libcurl, libelf, libwebsockets, protobuf, snappy, xenstat, yajl) - Update to v1.27.0 (go.d.plugin 0.26.2) The v1.27.0 release of the Netdata Agent brings dramatic improvements to long-term metrics storage via the database engine, and new dashboard features like a time & date picker for visualizing precise timeframes. Two new collectors bring incredible new value to existing features, including a bit of machine learning magic. This release contains 8 new collectors, 1 new notification method (2 others enhanced), 54 improvements, 41 documentation updates, and 58 bug fixes. Improvements * Add labels for Kubernetes pods and containers. * Add plugin and module health entities. * Migrate the metadata log to SQLite. * Add an extent cache to the database engine. * Added new data query option allow_past. Netdata Cloud * Add the ability to query child nodes by their GUID. * Add child availability messages to the ACLK. * Add a metric showing how long a query spent in the queue. * Completely hide the SSO iframe. Collectors * Add alarms obsoletion and disable alarms collector by default. * Add calls for tcp_sendmsg, tcp_retransmit_skb, tcp_cleanup_rcv, udp_sendmsg, udp_recvmsg functions charts to the eBPF collector. * Add two more insignificant warnings to suppress in anomalies collector. * Add the number of allocated/stored objects within each storage to the varnish collector. * Add a wireless statistics collector. * Add support for MSE (Massive Storage Engine) to the varnish collector. * Remove remove crit from unmatched alarms in the web_log collector. * Add GPU key metrics (nvidia_smi collector) to dashboard_info.js. * Add allocated space metrics to the oracledb collector. * Restructure the eBPF collector to improve usability. * Add an anomaly detection collector. * Add a Netdata alarms collector. * Add a configuration option to exclude users with zero memory allocated to the nvidia_smi collector. * Add per queue charts to the rabbitmq collector. * Add support for HBA drives to the hpssa collector. * Update the cgroups collector default filtering by adding pod level cgroups. * Add a Go version of the CouchDB collector (couchdb). * Add collecting HTTP method per URL pattern (url_pattern option) to the web_log collector. * Add custom time fields feature to the web_log collector. * Add a Go version of the PowerDNS Authoritative Nameserver collector (powerdns). * Add a Go version of the PowerDNS Recursor collector (powerdns_recursor). * Add a Go version of the PowerDNS DNSdist collector (dnsdist). * Add a Dnsmasq DNS Forwarder collector (dnsmasq). * Add collecting directories size to the filecheck collector. * Add old systemd versions support to the systemdunits collector. * Add unmatched lines logging to the web_log collector. Notifications * Add API V2 support to the PagerDuty health integration. * Add threads support to the Google Hangouts health integration. * Add a Opsgenie health integration. Exporting * Add HTTP and HTTPS support to the simple exporting connector. Packaging/installation * Update React dashboard v2.11. * Update go.d.plugin version to v0.26.2. * Update eBPF collector to 0.4.9. * Add ability to use system libwebsockets instead of bundled version. * Update the version of libJudy that we bundle to 1.0.5-netdata2. Bug fixes * Fix crash in the eBPF plugin by initializing variables. * Fix sending chart definition on every data collection in alarms collector. * Fix a lock check. * Fix issue with chart metadata sent multiple times over ACLK. * Fix a buffer overflow when extracting information from a streaming connection. * Fix hostname configuration in the exporting engine. * Fix units and data source exporting options. * Fix exporting config. * Fix health by disabling used_file_descriptors alarm. * Fix GPU data filtering in the nvidia_smi collector. * Fix username resolution in the nvidia_smi collector. * Fix compilation with HTTPS disabled. * Fix hostname when syslog is used in syslog health integration. * Fix streaming buffer size. * Fix database endless loop when cleaning obsolete charts. * Disable chart obsoletion code for archived chart creation. * Fix Prometheus remote write exporter so that it doesn't stop when data is not available for dimension formatting. * Fix memory calculation by moving shared from cached to used dimension. * Fix parsing in the libreswan collector. * Fix an infinite loop in the statsd plugin * Disregard host tags configuration pointer. * Fix platform dependent printf format. * Fix cgroups collector resolving container names in k8s. * Fix python.d plugin runtime chart creation. * Fix race condition in rrdset_first_entry_t() and rrdset_last_entry_t(). * Fix the data endpoint so that the context param is correctly applied to children. * Fix Coverity errors (CID 364045,364046). * Fix the elasticsearch_last_collected alarm. * Fix spelling error in xenstat.plugin. * Fix chart filtering. * Fix libnetdata headers to be compatible with C++. * Fix registry responses to remove caching. * Fix eBPF memory management. * Fix overlapping memory issue. * Fix response and upstream response time histogram charts in the web_log collector. * Fix logs timestamps always in UTC issue in the go.d.plugin * Fix collecting slave status for MariaDB v10.2.0- in the mysql collector * Fix cumulative_stats configuration option in the unbound collector * Fix parsing configuration file (respect 'include-toplevel' directive) in unbound collector * Fix handling charts with type.id >= 200 (netdata limit) in go.d.plugin * Fix parsing version query response in the mysql collector * Fix Netsplits chart dimensions algorithm in the the vernemq collector. * Fix a typo in dashboard_info.js for VerneMQ.- Allow go plugin to build for Tumbleweed- Fix RPM file list - Update to v1.26.0 (go.d.plugin 0.23.0): Improvements * Add the ability to send Agent alarm notifications to StackPulse * Add a way to get build configuration info from the Agent * Add chart for churn rates to python.d/rabbitmq * Add failed dim to the connection_fails alarm in the Portcheck alarm * Improve the data query when using the context parameter * Add a context parameter to the data endpoint (Netdata Cloud) * Change default ACLK query thread count * Remove leading whitespace before JSON in ACLK * Allow using libwebsockets without SOCKS5 * Add information about Cloud disabled status to -W buildinfo (Collectors) * Update go.d.plugin version to v0.23.0 + Add new filecheck collector + Add new systemd unit state collector + Add new ISC DHCP collector (Dashboard) * Add missing period in Netdata dashboard Bug Fixes * Fix systemd comment syntax * Fix file descriptor leak in Infiniband collector (proc.plugin) * Fix the data endpoint to prioritize chart over context if both are present * Fix cleanup of obsolete charts * Fix build for the AWS Kinesis exporting connector * Fix gauges for go.d.plugin/web_log collector * Fix locking order to address CID_362348 * Fix chart's last accessed time during context queries * Fix resource leak in case of malformed request to Netdata Cloud- Move edit-config to libexeddir - Fix conf.d path in edit-config- Fix building with go support on openSUSE 15.2- Build with python3 - Protect /etc/netdata as it contains sensitive data (passwords, secrets)- update to 1.25.0: Improvements * Add code to release memory used by the global GUID map (#9729, @stelfrag) * Add check for spurious wakeups Netdata Cloud * Add v2 HTTP message with compression to ACLK (#9895, @underhood) * Add version negotiation to ACLK (#9819, @underhood) * Add claimed_id for child nodes streamed to their parents (#9804, @underhood) * Update netdata-installer.sh to enable Netdata Cloud support in macOS (#9360, @mrbrutti) Collectors * Update go.d.plugin version to v0.22.0 (#9898, @ilyam8) * Add support for IP ranges to Python-based isc_dhcpd collector (#9755, @vsc55) * Add Network viewer charts to ebpf.plugin (#9591, @thiagoftsm) * Add collecting active processes limit on Linux systems (#9843, @Ancairon) * Improve eBPF plugin by removing unnecessary debug messages (#9754, @thiagoftsm) * Add CAP_SYS_CHROOT for netdata service to read LXD network interfaces (#9726, @vlvkobal) * Add collecting maxmemory to python.d/redis (#9767, @ilyam8) * Add option for multiple storage backends in python.d/varnish (#9668, @florianmagnin) * Dashboard * Update dashboard v1.4.2 (#9837, @jacekkolasa) * Lots of documentation improvements and bug fixes- update to 1.24.0: * The v1.24.0 release of the Netdata Agent brings enhancements to the breadth of metrics we collect with a new generic Prometheus/OpenMetrics collector and enhanced storage and querying with a new multi-host database mode. * Add generic Prometheus/OpenMetrics collector (#9644, @ilyam8) * Add locking between different collectors for the same application, implemented in different technologies (#9584, @vlvkobal), (#9564, @ilyam8) * Implement multihost database (#9556, @stelfrag) * Add alarms for FreeBSD interface errors (#8340, @lassebm) * Many bugfixes, see https://github.com/netdata/netdata/releases/tag/v1.24.0- Update to v1.23.2: * Fixed a buffer overrun vulnerability in Netdata's JSON parsing code. This vulnerability could be used to crash Agents remotely, and in some circumstances, could be used in an arbitrary code execution (ACE) exploit. Improvements: * Add support for multiple ACLK query processing threads * Add Infiniband monitoring to collector proc.plugin * Change the HTTP method to make the IPFS collector compatible with 0.5.0+ * Add support for returning headers using python.d's UrlService Bug fixes: * Fix vulnerability in JSON parsing * Fixed stored number accuracy * Fix transition from archived to active charts not generating alarms * Fix PyMySQL library to respect my.cnf parameter * Remove health from archived metrics * Update exporting engine to read the prefix option from instance config sections * Fix display error in Swagger API documentation * Wrap exporting engine header definitions in compilation conditions * Improve cgroups collector to autodetect unified cgroups * Fix CMake build failing if ACLK is disabled * Fix now_ms in charts.d collector to prevent tc-qos-helper crashes * Fix python.d crashes by adding a lock to stdout write function * Fix an issue with random crashes when updating a chart's metadata on the fly * Fix ACLK protocol version always parsed as 0 * Fix the check condition for chart name change * Fix the exporting engine unit tests * Fix a Coverity defect for resource leaks- update to v1.23.1: - Lots of fixes and improvements, please see CHANGELOG.md - update go.d plugin to v0.19.2- Update to v1.22.1: Bug fixes: - Fixed the latency issue on the ACLK and suppress the diagnostics. - Restored old semantics of "netdata -W set" command. - Removed check for old alarm status. - Changes for v1.22.0: Breaking Changes: * The previous iteration of Netdata Cloud, accessible through various Sign in and Nodes view (beta) buttons on the Agent dashboard, is deprecated in favor of the new Cloud experience. * Our old documentation site (docs.netdata.cloud) was replaced with Netdata Learn. All existing backlinks redirect to the new site. * Our localization project is no longer actively maintained. We're grateful for the hard work of its contributors. Improvements: * Netdata Cloud: - Enabled support for Netdata Cloud. - Added TTL headers to ACLK responses. - Improved the thread exit fixes in #8750. - Improved ACLK reconnection sequence. - Improved ACLK memory management and shutdown sequence. - Added session-id to ACLK using connect timestamp. * Collectors: - Improved the index size for the eBPF collector. - Added health alarm templates for the whoisquery collector. - Added a whoisquery collector. - Removed an automatic restart of apps.plugin. * Exporting: - Enabled internal statistics for the exporting engine in the Agent dashboard. - Implemented a Prometheus exporter web API endpoint. * Notifications: - Added a certificate revocation alarm for the x509check collector. - Added the ability to send Agent alarm notifications to Dynatrace. * Other: - Updated main copyright and links for the year 2020 in daemon help output. - Moved bind to to [web] section and update netdata.service.v235.in to sync it with recent changes. - Put old dashboard behind a prefix instead of using a script to switch. - Enabled the truthy rule in yamllint. - Added Borg backup, Squeezebox servers, Hiawatha web server, and Microsoft SQL to apps.plugin so that it can appropriately group them by type of service. * Bug fixes: - Fixed mdstat failed devices alarm. - Fixed rare race condition in old Cloud iframe. - Removed no-clear-notification options from portcheck health templates. - Fixed old URLs to silence Netlify's mixed content warnings. - Fixed master streaming fatal exits. - Fixed email authentiation to Cloud/Nodes View. - Fixed non-escaped characters in private registry URLs. - Fixed crash when shutting down an Agent with the ACLK disabled. - Fixed status checks for UPS devices using the apcupsd collector. - Fixed alarm notification script by adding a check to the Dynatrace notification method. - Fixed threads_creation_rate chart context in the python.d MySQL collector. - Fixed sudo check in charts.d libreswan collector to prevent daily security notices.- Update to v1.21.1: Release v1.21.1 is a hotfix release to improve the performance of the new React dashboard, which was merged and enabled by default in v1.21.0. The React dashboard shipped in v1.21.0 did not properly freeze charts that were outside of the browser's viewport. If a user who loaded many charts by scrolling through the dashboard, charts outside of their browser's viewport continued updating. This excess of chart updates caused all charts to update more slowly than every second. v1.21.1 includes improvements to the way the Netdata dashboard freezes, maintains state, and restores charts as users scroll.- Update to v1.21.0 (go.d.plugin v0.18.0): Improvements: * Extended TLS support for 1.3. * Switched to the React dashboard code as the default dashboard. * Collectors: - Added a new Pulsar collector. - Added a new VerneMQ collector. - Added high precision timer support for plugins such as idlejitter. - Added an alarm to the dns_query collector that detects DNS query failure. - Added the ability to get the pod name from cgroup with kubectl in bare-metal deployments. - Added the ability to connect to non-admin user IDs for a Ceph storage cluster. - Added connections (backend) usage to Postgres monitoring. * Exporting: - Added a MongoDB connector to the exporting engine. - Added a Prometheus Remote Write connector to the exporting engine. - Added an AWS Kinesis connector to the exporting engine. Bug fixes: * Removed notifications from the dashboard and fixed the /default.html route. * Fixed help-tooltips styling, private registry node deletion, and the right-hand sidebar "jumping" on document clicks. * Fixed errors reported by Coverity. * Fixed broken pipe ignoring in apps.plugin. * Fixed the bytespersec chart context in the Python Apache collector. * Fixed charts.d.plugin to exit properly during Netdata service restart * Fixed minimist dependency vulnerability. * Fixed how SimpleService truncates Python module names. * Added proper prefix to Python module names during loading. * Fixed the flushing error threshold with the database engine. * Fixed memory leak for host labels streaming from slaves to master. * Fixed streaming scaling. * Fixed missing characters in kernel version field by encoding slave fields. * Fixed Ceph collector to get osd_perf_infos in versions 14.2 and higher. * Removed extraneous commas from chart information in dashboard. * Removed tmem collection from xenstat_plugin to allow Netdata on Xen 4.13 to compile successfully. * Restricted messages to Google Analytics. * Fixed Python 3 dict access in OpenLDAP collector module.- Update to v1.20.0 (go.d.plugin v0.15.0) Breaking Changes: * Removed deprecated bash collectors apache, cpu_apps, cpufreq, exim, hddtemp, load_average, mem_apps, mysql, nginx, phpfpm, postfix, squid, tomcat. If you were still using one of these collectors with custom configurations, you can find the new collector that replaces it in the supported collectors list. Improvements: * Host labels: + Added support for host labels + Improved the monitored system information detection. Added CPU freq & cores, RAM and disk space. + Started distinguishing the monitored system's (host) OS/Kernel etc. from those of the docker container's + Started creating host labels from collected system info + Started passing labels and container environment variables via the streaming protocol + Started sending host labels via exporting connectors + Added label support to alarm definitions and started recording them in alarm logs + Added support for host labels to the API responses + Added configurable host labels to netdata.conf + Added kubernetes labels * New collectors: + eBPF kernel collector + CockroachDB + squidlog: squid access log parser * Collector improvements: + apps.plugin: Created dns group, improved database group, improved ceph & samba groups + varnish: Added SMF metrics (cache on disk) + phpfpm: Fixed per process chart titles and readme + python.d: Formatted the code in all modules + node.d/snmp: - Added snmpv3 support, formatted the code in snmp.node.js + cgroups: Improved LXC monitoring by filtering out irrelevant LXC cgroups + litespeed: Added support for different .rtreport format + proc.plugin: Added pressure stall information + sensors: Improved collection logic + proc: Started monitoring network interface speed, duplex, operstate + smartd_log: Fixed the setting in the reallocated sectors count, by setting ATTR5 chart algorithm to absolute + nvidia-smi: Allow executing nvidia-smi in normal instead of loop mode + wmi: collect logon metrics, collect logical_disk disk latency metrics + weblog: handle MKCOL, PROPFIND, MOVE, SEARCH http request methods + scaleio: storage pools and sdcs metrics * Exporting engine: + Implemented the main flow for the Exporting Engine * Streaming: + Add versioning to the streaming protocol * Installation/Packages: + Improved the systemd service files, by removing unecessary ExecStartPre lines and moving global options to netdata.conf * Privacy: + Added support for opting out of telemetry via the DO_NOT_TRACK environment variable (telemetry is disabled by default on openSUSE) * Other: + Preparations for the next netdata cloud release. Added custom libmosquitto, netdata-cli and other prerequisites. + Applied linter fixes in shell scripts + Started supporting -fno-common in CFLAGS + Completely removed the unbound python collector (dead code) + Added possibility to change badges' text font color + Small updates to sample multi-host dashboard, dash.html + Added missing quoting in shell scripts + Bump handlebars from 4.2.0 to 4.5.3 + Reduce log level for uv_thread_set_name_np from error to info + Set standard name to non-libnetdata threads (libuv, pthread) * Bug fixes: + Fixed problems reported by Coverity for eBPF collector plugin + Fixed invalid literal for float\(\): NN.NNt error in the elasticsearch python plugin, by adding terabyte unit parsing + Fixed timeout failing in docker containers which broke some python.d collectors + Fixed problem with the httpcheck python collector not being able to check URLs with the POST method, by adding body to the URLService. Also record the new options in httpcheck.conf + Fixed dbengine repeated global flushing errors and collectors being blocked, by dropping dirty dbengine pages if the disk cannot keep up + Fixed issue with alarm notifications occasionally ignoring the configured severity filter when the ROLE was set to root + Fixed Netlink Connection Tracker charts in the nfacct plugin + Fixed metric values sent via remote write to Prometheus backends, when using average/sum + Fixed unclosed brackets in softnet alarm + Fixed SEGFAULT when localhost initialization failed + Reduced the number of broken pipe error log entries, after a SIGKILL + Fixed Coverity errors by restoring support for protobuf 3.0 + Fixed inability to disable Prometheus remote API + Fixed SEGFAULT from the cpuidle plugin + Fixed samba collector not working, due to inability to run sudo + Fixed invalid css/js resource errors when URL for slave node has no final / on streaming master + Fixed keys_redis chart in the redis collector, by populating keys at runtime + Fixed UrlService bytes decoding and logger unicode encoding in the python.d plugin + Fixed a warning in the prometheus remote write backend + Fixed not detecting more than one adapter in the hpssa collector + Fixed race conditions in dbengine + Fixed race condition with the dbenging page cache descriptors + Fixed dbengine dirty page flushing warning + Fixed missing parenthesis on alarm softnet.conf + Fixed "Master thread EXPORTING takes too long to exit. Giving up" error, by cleaning up the main exporting engine thread on exit + Fixed rabbitmq error "update() unhandled exception: invalid literal for int() with base 10" + Fixed some LGTM alerts + Fixed valgrind errors + Fixed monit collector LGTM warnings + Fixed the following go.d.plugin collector issues: . mysql: panic in Cleanup (#326) . unbound: gather metrics via unix socket (#319) . logstash: pipelines chart (#317) . unbound: configuration file parsing. . Support include mechanism. (#298) . logstash: pipelines metrics parsing (#293) . phpfpm: processes metrics parsing (#297)- Also package go.d.plugin (v0.14.1) - Update to v1.19.0 Improvements: * New collectors: + AM2320 sensor collector plugin + Added parsing of /proc/pagetypeinfo to provide metrics on fragmentation of free memory pages + The unbound collector module was completely rewritten, in Go * Collector improvements: + We rewrote our web log parser in Go, drastically improving its flexibility and performance + The Kubernetes kubelet collector now reads the service account token and uses it for authorization. We also added a new default job to collect metrics from https://localhost:10250/metrics + Added a new default job to the Kubernetes coredns collector to collect metrics from http://kube-dns.kube-system.svc.cluster.local:9153/metrics + apps.plugin: Synced FRRouting daemons configuration with the frr 7.2 release + apps.plugin: Added process group for git-related processes + apps.plugin: Added balena to the container-engines application group + web_log: Treat 401 Unauthorized requests as successful + xenstat.plugin: Prepare for xen 4.13 by checking for check xenstat_vbd_error presence + mysql: Added galera cluster_status alarm * Metrics database: + Netdata generates alarms if the disk cannot keep up with data collection * Health: + Fine tune various default alarm configurations + Update SYN cookie alarm to be less aggressive + Added support for IRC alarm notifications Bug fixes: * Prevented freezes due to isolated CPUs * Fixed missing streaming when slave has SSL activated * Fixed error 421 in IRC notifications, by removing a line break from the message * proc/pagetypeinfo collection could under particular circumstances cause high CPU load. As a workaround, we disabled pagetypeinfo by default * Fixed incorrect memory allocation in proc plugin’s pagetypeinfo collector * Eliminated cached responses from the postgres collector * rabbitmq: Fixed "disk_free": "disk_free_monitoring_disabled" error * Fixed Apache module not working with letsencrypt certificate by allowing the python UrlService to skip tls_verify for http scheme * Fixed invalid spikes appearing in certain charts, by improving the incremental counter reset/wraparound detection algorithm * Fixed issue with unknown variables in alarm configuration expressions always being evaluated to zero * Fixed issue of automatically picking up Pi-hole stats from a Pi-hole instance installed on another device by disabling the default job that collects metrics from http://pi.hole- Update to v1.18.1 Improvements: * Disable slabinfo plugin by default to reduce the total number of metrics collected * Add dbengine RAM usage statistics * Support Google Hangouts chat notifications * Add CMocka unit tests * Add prerequisites to enable automatic updates for installations via the static binary (kickstart-static64.sh) Bug fixes: * Fix unbound collector timings: Convert recursion timings to milliseconds. * Fix unbound collector unhandled exceptions * Fix megacli collector binary search and sudo check * Fix Clang warnings * Fix python.d error logging: change chart suppress msg level from ERROR to INFO * Fix freeipmi update frequency check: was warning that 5 was too frequent and it was setting it to 5. * Fix alarm configurations not getting loaded, via better handling of chart names with special characters * Don't write HTTP response 204 messages to the logs * Fix build when CMocka isn't installed * Prevent zombie processes when a child is re-parented to netdata when its running in a container, by adding child process reaper - Update to v1.18.0 Improvements: * Database engine: + Make dbengine the default memory mode + Increase dbengine default cache size + Reduce overhead during write IO + Detect deadlock in dbengine page cache + Remove hard cap from page cache size to eliminate deadlocks. * New collectors: + SLAB cache mechanism + Gearman worker statistics + vCenter Server Appliance + Zookeeper servers + Hadoop Distributed File System (HDFS) nodes * Collector improvements: + rabbitmq: Add vhosts message metrics from /api/vhosts + elasticsearch: collect metrics from _cat/indices + mysql: collect galera cluster metrics + Allow configuration of the python.d launch command from netdata.conf + x509check: smtp cert check support + dnsmasq_dhcp: respect conf-dir,conf-file,dhcp-host options + plugin: respect previously running jobs after plugin restart + httpcheck: add current state duration chart + springboot2: fix context * Health: + Enable alarm templates for chart dimensions + Center the chart on the proper chart and time whenever an alarm link is clicked * Other: + API: Include family into the allmetrics JSON response + API: Add fixed width option to badges + Allow hostnames in Access Control Lists Bug fixes: * Fix issue error in alarm notification script, when executed without any arguments * Fix Coverity warnings * Fix dbengine consistency when a writer modifies a page concurrently with a reader querying its metrics * Fix memory leak on netdata exit * Fix for missing boundary data points in certain cases * Fix unhandled exception log warnings in the python.d collector orchestrator start\_job * Fix CORS errors when accessing the health management API, by permitingt x-auth-token in Access-Control-Allow-Headers * Fix misleading error log entries RRDSET: chart name 'XXX' on host 'YYY' already exists, by changing the log level for chart updates * Properly resolve all Kubernetes container names * Fix LGTM warnings * Fix agent UI redirect loop during cloud sign-in * Fix python.d.plugin bug in parsing configuration files with no explicitly defined jobs * Fix potential buffer overflow in the web server * Fix netdata group deletion on linux for uninstall script * Various cppcheck fixes * Fix handling of illegal metric timestamps in database engine * Fix a resource leak * Fix rabbitmq collector error when no vhosts are available.- Update to v1.17.0 Improvements: * Database engine: + Variable granularity support for data collection + Added tips on the UI to encourage users to try the new DB Engine, when they reach the end of their metrics history * Health: + Added support for plain text only email notifications + Started showing “hidden” alarm variables in the responses of the chart and data API calls + Added a new API call for alarm status counters, as a first step towards badges that will show the total number of alarms * Security: + Added configurable default locations for trusted CA certificates + Added safer way to get container names + Added SSL connection support to the python mongodb collector * New collectors: + VSphere collector * Archiving: + Added a new MongoDB backend * Other: + Added apps grouping debug messages + GCC warning and linting improvements + Added global configuration option to show charts with zero metrics + Improved the way we parse HTTP requests, so we can avoid issues from edge cases * Bug fixes: + Fixed sensor chips filtering in python sensors collector + Fixed user and group names in apps.plugin when running in a container, by mounting and reading /etc/passwd + Fixed possible buffer overflow in the JSON parser used for health notification silencers + Fixed handling of corrupted DB files in dbengine, that could cause netdata to not start properly (CRC and I/O error handling) + Fixed an issue with Netdata snapshots that could sometimes cause a problem during import + Fixed bug that would cause netdata to attempt to kill already terminated threads again, on shutdown + Fixed out of memory (12) errors by reimplementing the myopen() function family + Fixed wrong redirection of users signing in after clicking Nodes + Fixed python.d smartd collector increasing CPU usage + Fixed mongodb python collector stock configuration mistake, by changing password to pass + Fixed handling of UTF8 characters in badges and added International Support to the URL parser + Fixed nodes menu sizing (responsive) + Fixed issues with http redirection to https and streaming encryption + Fixed broken links to arcstat.py and arc_summary.py in dashboard_info.js + Fixed bug with the nfacct plugin that resulted in missing dimensions from the charts + Stopped anonymous stats from trying to write a log under /tmp + Properly delete obsolete dimensions for inactive disks in smartd_log + Fixed handling of disconnected sockets in unbound python.d collector + Fixed crash in malloc + Fixed issue with mysql collector that resulted in showing only a single slave_status chart, regardless of the number of replication channels + Fixed a segmentation fault in backends + Fixed spigotmc plugin bugs + Fixed dbengine 100% CPU usage due to corrupted transaction payload handling- Update to v1.16.0 Improvements: * Health: + Easily disable alarms, by persisting the silencers configuration + Repeating alarm notifications + Simplified the health cmdapi tester - no setup/cleanup needed + Αdd last_collected alarm to the x509check collector + New alarm for abnormally high number of active processes. * Security: + SSL support in the web server and streaming/replication + Support encrypted connections to OpenTSDB backends * New collectors: + Go.d collector modules for WMI, Dnsmasq DHCP leases and Pihole + Riak KV instances collector + CPU performance statistics using Performance Monitoring Units via the perf_event_open() system call. (perf plugin) * Collector improvements: + Handle different sensor IDs for the same element in the freeipmi plugin + Increase the cpu_limit chart precision in cgroup plugin + Added userstats and deadlocks charts to the python mysql collector + Add perforce server process monitoring to the apps plugin * Backends: + Prometheus remote write backend * DB engine improvements: + Reduced memory requirements by 40-50% + Reduced the number of pages needed to be stored and indexed when using memory mode = dbengine, by adding empty page detection * Rebranding: + Updated the netdata logo and changed links to point to the new website * Other: + Pass the the cloud base url parameter to the notifications mechanism, so that modifications to the configuration are respected when creating the link to the alarm + Improved logging, to be able to trace the CRITICAL: main[main] SIGPIPE received. error Bug fixes: * Fixed ram_available alarm * Stop monitoring /dev and /run in the disk space and inode usage charts * Fixed the monitoring of the “time” group of processes * Fixed compilation error PERF_COUNT_HW_REF_CPU_CYCLES' undeclared here in old Linux kernels (perf plugin) * Fixed invalid XML page error (tomcat plugin) * Remove obsolete monit metrics * Fixed Failed to parse error in adaptec_raid * Fixed cluster_health_nodes and cluster_stats_nodes charts in the elasticsearch collector * A modified slave chart's "name" was not properly transferred to the master * Netdata could run out of file descriptors when using the new DB engine * Fixed UI behavior when pressing the End key * Fixed UI link to check the configuration file, to open in a new tab * Prevented Error: 'module' object has no attribute 'Retry' messages from python collectors, by enforcing minimum version check for the UrlService library * Fixed typo that causes nfacct.plugin log messages to incorrectly show freeipmi * The daemon could get stuck during collection or during shutdown, when using the new dbengine. Reduced new dbengine IO utilization by forcing page alignment per dimension of chart. * Properly handle timeouts/no response in dns_query_time python collector * When a collector restarted after having stopped for a long time, the new dbengine would consume a lot of CPU resources. * Fixed error Assertion old_state & PG_CACHE_DESCR_ALLOCATED' failed` of the new dbengine. Eliminated a page cache descriptor race condition * tv.html failed to load the three left charts when accessed via https. Turn tv.html links to https * Change print level from error to info for messages about clearing old files from the database * Fixed warning regarding the x509check_last_collected_secs alarms. Changed the template update frequency to 60s, to match the chart’s update frequency * Email notification header lines were not terminated with \r\n as per the RFC * Some log entries would not be caught by the python web_log plugin. Fixed the regular expressions * Corrected the date used in pushbullet notifications * Fixed FATAL error when using the new dbengine with no direct I/O support, by falling back to buffered I/O * Fixed compatibility issues with varnish v4 (varnish collector) * The total number of disks in mdstat.XX_disks chart was displayed incorrectly. Fixed the "inuse" and "down" disks stacking. * The config option --disable-telemetry was being checked after restarting netdata, which means that we would still send anonymous statistics the first time netdata was started. (NOTE: Telemetry is disabled by default on openSUSE.) * Fixed apcupsd collector errors, by passing correct info to the run function. * apcupsd and libreswan were not enabled by default * Fixed incorrect module name: energi to energid * The nodes view did not work properly when a reverse proxy was configured to access netdata via paths containing subpaths (e.g. myserver/netdata) * Fix error message PLUGINSD : cannot open plugins directory * Corrected invalid links to web_log.conf that appear on the agent UI * Fixed ScaleIO collector endpoint paths * Fixed web client timeout handling in the go.d plugin httpcheck collector- Update to v1.15.0 Bug Fixes: * Prowl notifications were not being sent, unless another notification method was also active * Fix exception handling in the python.d plugin * The node applications group did not include all node processes. * The nvidia_smi collector displayed incorrect power usage * The python.d plugin would sometimes hang, because it lacked a connect timeout * The mongodb collector raised errors due to various KeyErrors * The smartd_log collector would show incorrect temperature values Improvements: * Support for aggregate node view * Database engine * New collector modules: + Go.d collectors for OpenVPN, the Tengine web server and ScaleIO (VxFlex OS) instances + Monitor disk access latency like ioping does * Energi Core daemon monitoring, suits other Bitcoin forks * Collector improvements: + Add docker swarm manager metrics to the go.d docker_engine collector + Implement unified cgroup cpu limit + python.d.plugin: Allow monitoring of HTTP(S) endpoints which require POST data and make the UrlService more flexible * Support the AWS Kinesis backend for long-term storage * Add a new "text-only" chart renderer * API Improvements: + Smarter caching of API calls. Do not cache alarms and info api calls and extend no-cache headers. + Extend the api/v1/info call response with system and collector information + k6 script for API load testing * Kubernetes helmchart improvements: + Added the init container, where sysctl params could be managed, to bypass the Cannot allocate memory issue + Better startup/shutdown of slaves and reduced memory usage with liveness/readiness probes and default memory mode none + Added the option of overriding the default settings for kubelet, kubeproxy and coredns collectors via values.yaml + Make the use of persistent volumes optional, add apiVersion to fix linting errors and correct the location of the env field- Update to v1.14.0 The release introduces major additions to Kubernetes monitoring, with tens of new charts for Kubelet, kube-proxy and coredns metrics, as well as significant improvements to the netdata helm chart. Two new collectors were added, to monitor Docker hub and Docker engine metrics. Finally, v1.14 adds support for version 2 cgroups, OpenLDAP over TLS, NVIDIA SMI free and per process memory and configurable syslog facilities. Bug Fixes: * Fixed problem autodetecting failed jobs in python.d plugin. It now properly restarts jobs that are being rechecked, as soon as they are able to run. * CouchdDB monitoring would stop sometimes with an exception. Fixed the unhandled exception causing the issue. * The netdata api deliberately returned http error 400 when netdata ran in memory mode none. Modified the behavior to return responses, regardless of the memory mode * The python.d plugin sometimes does not receive SIGTERM when netdata exits, resulting in zombie processes. Added a heartbeat so that the process can exit on SIGPIPE. * The new SMS Server Tools notifications did not handle errors well, resulting in cryptic error messages. Improved error handling. * Fix segmentation fault in streaming, when two dimensions had similar names. * Kubernetes Helm Chart: Fixed incorrect use of namespaces in ServiceAccount and ClusterRoleBinding RBAC fixes. * Elastic search: The option to enable HTTPS was not included in the config file, giving the erroneous impression that HTTPS was not supported. The option was added. * RocketChat notifications were not being sent properly. Added default recipients for roles in the health alarm notification configuration. Improvements: * go.d.plugin v0.4.0 : Docker Hub and k8s coredns collectors, springboot2 URI filters support. * go.d.plugin v0.3.1 : Add default job to run k8s_kubelet.conf, k8s_kubeproxy, activemq modules * go.d.plugin v0.3.0 : Docker engine, kubelet and kub-proxy collectors. x509check module reading certs from file support * Added unified cgroup support that includes v2 cgroups * Disk stats: Added preferred disk id pattern, so that users can see the id they prefer, when multiple ids appear for the same device * NVIDIA SMI: Added memory free and per process memory usage charts to the collector * OpenLDAP: Added TLS support, to allow monitoring of LDAPS. * PHP-FPM: Add health check to raise alarms when the phpfm server is unreachable * PostgreSQL: Our configuration options to connect to a DB did not support all possible option. Added option to connect to a PostreSQL instance by defining a connection string (URI). * python.d.plugin: There was no way to delete obsolete dimensions in charts created by the python.d plugin. The plugin can now delete dimension at runtime. * netdata supports sending its logs to Syslog, but the facility was hard-coded. We now support configurable Syslog facilities in netdata.conf. * Kubernetes Helm Chart improvements: + Added serviceName in statefulset spec to align with the k8s documentation + Added preStart command to persist slave machine GUIDs, so that pod deletion/addition during upgrades doesn't lose the slave history. + Disabled non-essential master netdata collector plugins to avoid duplicate data + Added preStop command to wait for netdata to exit gracefully before removing the container + Extended configuration file support to provide more control from the helm command line + Added option to disable Role-based access control + Added liveness and readiness probes.- Update to v1.13.0 netdata has taken the first step into the world of Kubernetes, with a beta version of a Helm chart for deployment to a k8s cluster and proper naming of the cgroup containers. We have big plans for Kubernetes, so stay tuned! A major refactoring of the python.d plugin has resulted in a dramatic decrease of the required memory, making netdata even more resource efficient. We also added charts for IPC shared memory segments and total memory used. Improvements: * Kubernetes: Helm chart and proper cgroup naming * python.d.plugin: Reduce memory usage with separate process for initial module checking and loaders cleanup * IPC shared memory charts * mysql module add ssl connection support * FreeIPMI: Have the debug option apply the internal freeipmi debug flags * Prometheus backend: Support legacy metric names for source=avg * Registry: Allow deleting the host we are looking at * SpigotMC: Use regexes for parsing. Bug Fixes: * Postgres: fix connection issues * Proxmox container: Fix cgroup naming and use total_* memory counters for cgroups * proc.plugin and plugins.d: Fix memory leaks * SpigotMC: Fix UnicodeDecodeError and py2 compatibility fix * Fix non-obsolete dimension deletion * UI: Fix incorrect icon for the streaming master * Docker container names: Retry renaming when a name is not found * apps.plugin: Don't send zeroes for empty process groups * go.d.plugin: Correct sha256sum check * Unbound module: Documentation corrected with troubleshooting section. * Streaming: Prevent UI issues upon GUID duplication between master and slave netdata instances * Linux power supply module: Fix missing zero dimensions * Minor fixes around plugin_directories initialization - Update to v1.12.2 Bug Fixes: * Zombie processes exist after restart netdata - add heartbeat to python.d plugin * RocketChat notifications not working * SIGSEGV crash during shutdown of tc plugin * CMake warning for nfacct plugin Improvements: * Oracledb python module * Show streamed servers even for users that are not signed in- Drop GPG signature (no longer used) - Drop spec compatibility with old distro versions - Drop netdata-automake-no-dist-xz.patch - Refresh netdata-smartd-log-path.patch - Update to v1.12.1 Fixes: * Fix SIGSEGV at startup: Don't free vars of charts that do not exist #5455 * Prevent invalid Linux power supply alarms during startup #5447 * Correct duplicate flag enum in health.h #5441 * Remove extra 'v' for netdata version from Server response header #5440 and spec URL #5427 * apcupsd - Treat ONBATT status the same as ONLINE #5435 * Fix #5430 - LogService._get_raw_data under python3 fails on undecodable data #5431 * Correct version check in UI #5429 * Fix ERROR 405: Cannot download charts index from server - cpuidle handle newlines in names #5425 * Fix clock_gettime() failures with the CLOCK_BOOTTIME argument [#5415] * Use netnsid for detecting cgroup networks; #5413 * Python module sensors fix #5406 * Fix ceph.chart.py for Python3 #5396 (GaetanF) * Fix warning condition for mem.available #5353 * cups.plugin: Support older versions #5350 Improvements: * Add driver-type option to the freeipmi plugin #5384 * Add support of tera-byte size for Linux bcache. #5373 * Split nfacct plugin into separate process #5361 * Add cgroup cpu and memory limits and alarms #5172 * Add message queue statistics #5115 - Update to v1.12.0 Key improvements: * Introducing netdata.cloud, the free netdata service for all netdata users * High performance plugins with go.d.plugin (data collection orchestrator written in Go) * 7 new data collectors and 11 rewrites of existing data collectors for improved performance * A new management API for all netdata servers * Bind different functions of the netdata APIs to different ports Management API: Netdata now has a management API. We plan to provide a full set of configuration commands using this API. In this release, the management API supports disabling or silencing alarms during maintenance periods. For more information about the management API, check https://docs.netdata.cloud/web/api/health/#health-management-api Anonymous statistics: Anonymous usage information can be collected and sent to Google Analytics. This functionality is disabled by default in openSUSE. Remove /etc/netdata/.opt-out-from-anonymous-statistics to enable. The statistics calculated from this information will be used for: 1. Quality assurance, to help us understand if netdata behaves as expected and help us identify repeating issues for certain distributions or environment. 2. Usage statistics, to help us focus on the parts of netdata that are used the most, or help us identify the extend our development decisions influence the community. Information is sent to Netdata via two different channels: * Google Tag Manager is used when an agent's dashboard is accessed. * The script anonymous-statistics.sh is executed by the Netdata daemon, when Netdata starts, stops cleanly, or fails. Both methods are controlled via the same opt-out mechanism. For more information, check https://docs.netdata.cloud/docs/anonymous-statistics/ Data collection: This release introduces a new Go plugin orchestrator. This plugin has its own github repo (https://github.com/netdata/go-orchestrator). It is open-source, using the same license and we welcome contributions. The orchestrator can also be used to build custom data collection plugins written in Go. We have used the orchestrator to write many new Go plugins in our go.d plugin github repo. For more information, check https://github.com/netdata/go-orchestrator#go-orchestrator-wip New data collectors: * Activemq (Go) * Consul (Go) * Lighttpd2 (Go) * Solr (Go) * Springboot2 (Go) * mdstat - nonredundant arrays (C) * CUPS printing system (C) High performance versions of older data collectors: * apache (Go) * dns_query (Go) * Freeradius (Go) * Httpcheck (Go) * Lighttpd (Go) * Portcheck (Go) * Nginx (Go) * cpufreq (C) * cpuidle (C) * mdstat (C) * power supply (C) Other improved data collectors: * Fix the python plugin clock (collectors falling behind). * adaptec_raid: add to python.d.conf. * apcupsd: Detect if UPS is online. * apps: Fix process statistics collection for FreeBSD. * apps: Properly lookup docker container name when running in ECS * fail2ban: Add 'Restore Ban' action. * go_expavar: Don't check for duplicate expvars. * hddtemp: Don't use disk model as dim name. * megacli: add to python.d.conf. * nvidia_smi: handle N/A values. * postgres: Fix integer out of range error on Postgres 11, fix locks count. * proc: Don't show zero charts for ZFS filesystem. * proc; Fix cached memory calculation. * sensors: Don't ignore 0 RPM fans on start. * smartd_log: check() unhandled exception: list index out of range. * SNMP: Gracefully ignore the offset if the value is not a number Health Monitoring: * Add Prowl notifications for iOS users. * Show count of active alarms per state in email notifications. * Show evaluated expression and expression variable values in email notifications. * Improve support for slack recipients (channels/users). * Custom notifications: Fix bug with alarm role recipients. Dashboards: * Server filtering in my-netdata menu when signed in to netdata.cloud * All units are now IEC-compliant abbreviations (KiB, MiB etc.). * GUI: Make entire row clickable in the registry menu showing the list of servers. Backends: * Do not report stale metrics to prometheus. Other: * Treat DT_UNKNOWN files as regular files. * API: Stricter rules for URL separators. - Update to v1.11.1 Improved internal database: Overflown incremental values (counters) do not show a zero point at the charts. Netdata detects the width (8bit, 16bit, 32bit, 64bit) of each counter and properly calculates the delta when the counter overflows. The internal database format has been extended to support values above 64bit. New data collection plugins: * openldap, to collect performance statistics from OpenLDAP servers. * tor, to collect traffic statistics from Tor. * nvidia_smi to monitor NVIDIA GPUs. Improved data collection plugins: * BUG FIX: network interface names with colon (:) in them were incorrectly parsed and resulted in faulty data collection values. * BUG FIX: smartd_log has been refactored, has better python v2 compatibility, and now supports SCSI smart attributes * cpufreq has been re-written in C - since this module if common, we decided to convert to an internal plugin to lower the pressure on the python ones. There are a few more that will be transitioned to C in the next release. * BUG FIX: sensors got some compatibility fixes and improved handling for lm-sensors errors. Health monitoring: * BUG FIX: max network interface speed data collection was faulty, which resulted in false-positive alarms on systems with multiple interfaces using different speeds (the speed of the first network interface was used for all network interfaces). Now the interface speed is shown as a badge. * alerta.io notifications got a few improvements * BUG FIX: conntrack_max alarm has been restored (was not working due to an invalid variable name referenced) Registry (my-netdata menu): * It has been refactored a bit to reveal the URLs known for each node and now it supports deleting individual URLs. - Update to 1.11.0 * Stock config files are now in /usr/lib/netdata; use the /etc/netdata/edit-config script to copy and edit them. * The query engine of netdata has been re-written to support query plugins. We have already added the following algorithms that are available for alarm, charts and badges: + stddev, for calculating the standard deviation on any time-frame. + ses or ema or ewma, for calculating the exponential weighted moving average, or single/simple exponential smoothing on any time-frame. + des, for calculating the double exponential smoothing on any time-frame. + cv or rsd, for calculating the coefficient of variation for any time-frame. Fixed security issues: * CVE-2018-18836 Fixed JSON Header Injection (an attacker could send \n encoded in the request to inject a JSON fragment into the response). boo#1139094 * CVE-2018-18837 Fixed HTTP Header Injection (an attacker could send \n encoded in the request to inject an HTTP header into the response). boo#1139095 * CVE-2018-18838 Fixed LOG Injection (an attacker could send \n encoded in the request to inject a log line at access.log). boo#1139098 * CVE-2018-18839 Not fixed Full Path Disclosure, since these are intended (netdata reports the absolute filename of web files, alarm config files and alarm handlers). * Fixed Privilege Escalation by manipulating apps.plugin or cgroup-network error handling. * Fixed LOG injection (by sending URLs with \n in them). New data collection modules: * rethinkdbs for monitoring RethinkDB performance * proxysql for monitoring ProxySQL performance * litespeed for monitoring LiteSpeed web server performance. * uwsgi for monitoring uWSGI performance * unbound for monitoring the performance of Unbound DNS servers. * powerdns for monitoring the performance of PowerDNS servers. * dockerd for monitoring the health of dockerd * puppet for monitoring Puppet Server and Puppet DB. * logind for monitoring the number of active users. * adaptec_raid and megacli for monitoring the relevant raid controller * spigotmc for monitoring minecraft server statistics * boinc for monitoring Berkeley Open Infrastructure Network Computing clients. * w1sensor for monitoring multiple 1-Wire temperature sensors. * monit for collecting process, host, filesystem, etc checks from monit. * linux_power_supplies for monitoring Linux Power Supplies attributes Data collection orchestrators changes: * node.d.plugin does not use the js command any more. * python.d.plugin now uses monotonic clocks. There was a discrepancy in clocks used in netdata that resulted in a shift in time of python module after some time (it was missing 1 sec per day). * added MySQLService for quickly adding plugins using mysql queries. * URLService now supports self-signed certificates and supports custom client certificates. * all python.d.plugin modules that require sudo to collect metrics, are now disabled by default, to avoid security alarms on installations that do not need them. Improved data collection modules: * apps.plugin now detects changes in process file descriptors, also fixed a couple of memory leaks. Its default configuration has been enriched significantly, especially for IoT. * freeipmi.plugin now supports option ignore-status to ignore the status reported by given sensors. * statsd.plugin (for collecting custom APM metrics) + The charting thread has been optimized for lowering its CPU consumption when several millions of metrics are collected. + sets now report zeros instead of gaps when no data are collected + histograms and timers have been optimized for lowering their CPU consumption to support several thousands of such metrics are collected. + histograms had wrong sampling rate calculations. + gauges now ignore sampling rate when no sign is included in the value. + the minimum sampling rate supported is now 0.001. + netdata statsd is now drop-in replacement for datadog statsd (although statsd tags are currently ignored by netdata). * proc.plugin (Linux, system monitoring) + Unused interrupts and softirqs are not used in charts (this saves quite some processing power and memory on systems with dozens of CPU cores). + fixed /proc/net/snmp parsing of IcmpMsg lines that failed on a few systems. + Veritas Volume Manager disks are now recognized and named accordingly. + Now netdata collects TcpExtTCPReqQFullDrop and re-organizes metrics in charts to properly monitor the TCP SYN queue and the TCP Accept queue of the kernel. + Many charts that were previously reported as IPv4, were actually reflecting metrics for both IPv4 and IPv6. They have been renamed to ip.*. + netdata now monitors SCTP. + Fixed BTRFS over BCACHE sector size detection. + BCACHE data collection is now faster. + /proc/interrupts and /proc/softirqs parsing fixes. * diskspace.plugin (Linux, disk space usage monitoring) + It does not stat() excluded mount points any more (it was interfering with kerberos authenticated mount points). + several filesystems are now by default excluded from disk-space monitoring, to avoid breaking suspend on workstations. * python.d.plugin PYTHON modules (applications monitoring) + web_log module now supports virtual hosts, reports http/https metrics, support squid logs + nginx_plus module now handles non-continuous peer IDs + ipfs module is optimized, the use of its Pin API is now disabled by default and can enabled with a netdata module option (using the IPFS Pin API increases the load on the IPFS server). + fail2ban module now supports IPv6 too. + ceph module now checks permissions and properly reports issues + elasticsearch module got better error handling + nginx_plus module now uses upstream ip:port instead of transient id to identify dimensions. + redis, now it supports Pika, collects evited keys, fixes authentication issues reported and improves exception handling. + beanstalk, bug fix for yaml config loading. + mysql, the % of active connections is now monitored, query types are also charted. + varnish, now it supports versions above 5.0.0 + couchdb + phpfpm, now supports IPv6 too. + apache, now supports IPv6 too. + icecast + mongodb, added support for connect URIs + postgress + elasticsearch, now it supports versions above 6.3.0, fixed JSON parse errors + mdstat , now collects mismatch_cnt + openvpn_log * node.d.plugin NODE.JS modules + snmp was incorrectly parsing a new OID names as float. * charts.d.plugin BASH modules + nut now supports naming UPSes. Health monitoring: * Added variable $system.cpu.processors. * Added alarms for detecting abnormally high load average. * TCP SYN and TCP accept queue alarms, replacing the old softnet dropped alarm that was too generic and reported many false positives. * system alarms are now enabled on FreeBSD. * netdata now reads NIC speed and sets alarms on each interface to detect congestion. * Network alarms are now relaxed to avoid false positives. * New bcache alarms. * New mdstat alarms. * New apcupsd alarms. * New mysql alarms. * New notification methods: + rocket.chat + Microsoft Teams + syslog + fleep.io + Amazon SNS Backends: * Host tags are now sent to Graphite * Host variables are now sent to Prometheus Streaming: * Each netdata slave and proxy now filter the charts that are streamed. This allows exposing netdata masters to third parties by limiting the number of charts available at the master. * Fixed a bug in streaming slaves that randomly prevented them to resume streaming after network errors. * Fixed a bug that on slaves that sent duplicated chart names under certain conditions. * Fixed a bug that caused slaves to consume 100% CPU (due to a misplaced lock) when multiple threads were adding dimensions on the same chart. * The receiving nodes of streaming (netdata masters and proxies) can now rate-limit the rate of inbound streaming requests received. * Re-worked time synchronization between netdata slaves and masters. API: * Badges that report time, now show "undefined" instead of "never". Dashboard: * Added UTC timezone to the list of available time-zones. * The dashboard was sending some non-HTTP compliant characters at the URLs that made netdata dashboards break when used under certain proxies.- Remove _service - Add GPG signature - Use %license macro - Update to v1.10.0 * new plugins: - BTRFS - monitor the allocations of BTRFS filesystems (netdata can now properly detect when btrfs is going out of space) - BCACHE - monitor the caching block layer that allows building hybrid disks using normal HDDs and SSDs - Ceph - monitor ceph distributed storage - nginx plus - monitor the nginx+ web servers - libreswan - monitor IPSEC tunnels - Traefik - monitor traefik reverse proxies - icecast - monitor icecast streaming servers - ntpd - monitor NTP servers - httpcheck - monitor any remote web server - portcheck - monitor any remote TCP port - spring-boot - monitor java spring boot applications - dnsdist - monitor dnsdist name servers - hugepages - monitor the allocation of Linux hugepages * enhanced/improved plugins: - statsd + statsd dimensions now support the options the external plugin dimensions support (currently the only usable option is hidden to add the dimension, but make it hidden on the dashboard - a hidden dimension can participate in various calculations, including alarms). + statsd now reports the CPU usage of its threads at the netdata section. + statsd metrics are logged to access.log the first time they are encountered. + statsd metrics now accept the special value zinit to allow them get initialized without altering their values (this is useful if you have rare metrics that you need to initialize when netdata starts). + statsd over TCP is now a lot faster - netdata can process up to 3.5mil statsd metrics / second using just one core. Added options to control the timeouts of TCP statsd connections. + fixed the title and context of statsd private charts + statsd private charts can now be hidden from the dashboard - web_log + Added web server response timings histogram - containers monitoring + netdata now monitors systemd-nspawn containers. + netdata now renames charts of kubernetes containers. + virsh is now called with -r to avoid prompting for password + cgroup-network is now a lot more strict, preventing unauthorized privilege escalation + cgroup-network now searches for container processes in sub-cgroups too - this improves the mapping of network interfaces to containers + cgroup-network now works even when there are no veth interfaces in the system - system memory + treat slab memory as cached + added a new chart for monitoring the memory available for use, before hitting swap + netdata now monitors Linux hugepages and (transparent) hugepages - diskspace + support huge amounts of mountpoints - netdata was crashing with stack overflow due to recursion - now it is a loop, so any number of mount points is supported - network interfaces + moved tcp passive and active opens to a separate chart, to allow the TCP issues dimensions scale better by default + updated the information presented on TCP charts to match the latest v4.15 kernel source - postgres + new charts: checkpointer bgwriter autovacuum replication delta WAL archive WAL temporary files + The postgres plugin now also works when postgres is in recovery mode. - rabbitmq + added Erlang run queue chart. This is useful in conjunction with the existing Erlang processes chart to get a better overall idea of what's going on in the Erlang VM. + added rabbitmq information on the dashboard to complement the charts. - apps.plugin netdata prior to this version was detecting the user and group of processes by examining the ownership of /proc/PID/stat. Unfortunately it seems that the owneship of files in /proc do not change when the process switches user. So, netdata could not detect the user and group of processes that started as root and then switched to another user. Now netdata reads /proc/PID/status: + process ownship information is now accurate + eliminated the need to read /proc/PID/statm (all the information of /proc/PID/statm is available in /proc/PID/status) + allowed netdata to read VmSwap, so a new chart has been added to monitor the swap memory usage per process, user and group. + The new plugin is 20% more expensive in terms of CPU. We tried hard to optimize it, but this is as good as it can get. - haproxy + hrsp_1xx, hrsp_2xx, hrsp_3xx, hrsp_4xx, hrsp_5xx, hrsp_other, hrsp_total for backands and frontends + qtime, ctime, rtime, ttime metrics for backend servers + backend servers In UP state - uptime + netdata now uses /proc/uptime when CLOCK_BOOTTIME does not report the same uptime. In containers CLOCK_BOOTTIME reports the uptime of the host, while /proc/uptime reports the uptime of the container, so now netdata correctly reports the uptime of the container. - ksm + removed to_scan dimension + the savings % reported by netdata was less than the actual - fixed it. - mdstat + various fixes to better monitor rebuild time and rate - elasticsearch + Added several charts for translog / indices segments statistics and JVM buffer pool utilization, which are often helpful when evaluating an elasticsearch node health - apcupsd + netdata now supports monitoring multiple APC UPSes. - isc-dhcpd + netdata now also supports monitoring IPv6 leases - fronius + added a new dimension solar_consumption + added alarms - stiebeleltron + added alarms - python.d + python.d.plugin can now start even if /etc/netdata/python.d.conf is missing + python.d.plugin now has an internal run counter + the unicode decoding of the plugin has been fixed + the plugin now does not validate self-signed certificates + the plugin can not revive obsolete charts - charts.d + charts.d.plugin BASH modules can now have custom number of retries in case of data collection failures * new alarm notifications plugins: - alerta - IRC * web server: - netdata now has a new internal web server that supports a fixed number of threads - we call it static web server. This web server allows netdata to work around memory fragmentation (since the treads are fixed, the underlying memory allocators reuse the same memory arenas) and cpu utilization (we can control the number of threads that will be used by netdata). This is the default now. - now the static threads web server reports the CPU usage of each of its threads. - the HTTP response headers now include the netdata version * dashboard: - the print button now respects the URL path netdata is hosted. - dygraphs updated to the latest version - this fixes an issue that prevented netdata charts from being interactive under certain conditions - added dygraph theme logscale - fontawesome updated to version 5 - d3 updated to the latest version (this broke c3 charts that require an older version) - added d3pie charts - custom dashboards can now have alarms for specific roles (all, none, one or more). - allow stacked charts to zoom vertically when dimensions are selected - netdata now has a global XSS protection - netdata now uses intersectionObserver when available - this improves the scrolling performance of the dashboard. - prevent date, time and units from wrapping at the charts legends - various units scaling improvements - added data-common-colors="NAME" chart option for custom dashboards - added wiki page for creating custom dashboards on Atlassian's Confluence - prevented a double click on the charts' toolbox to select the text of the buttons. - fixed the alignment of dashboard icons - added a simple js, called refresh-badges.js, to update badges on a custom web page * badges: - netdata badges can now be scaled * API: - added gtime parameter, for group time. This is used to request from netdata to return values in a different rate (i.e. gtime=60 on a X/sec dimension, will return X/min). - fixed a rounding bug in JSON generation - the dimensions= parameter now supports simple patterns and added option values match-ids and match-names to control which matches are executed for dimensions. * alarms: - "system.swap" alarms now send notifications with a 30 seconds delay, to work-around a kernel bug that incorrectly reports all swap as instantly used under containers - added alarm to predict the time a mount point will run out of inodes - added alerta.io notifications - added available memory alarm - removed unsupported html tags from hipchat notifications. - pagerduty notifications have been modified to avoid incident duplication - alarm definitions can now use both chart IDs and chart names (prior to this version only chart IDs were allowed). - curl options (eg for disabling SSL certificates verification) for alarm-notify.sh can now be defined in health_alarm_notify.conf. - netdata can now send notifications to IRC channels * backends: - on netdata masters, allow filtering the hosts that will be sent to backends with send hosts matching = * pattern. - improved connection error handling and added retries to allow netdata connect to certain backends that failed with EALREADY or EINPROGRESS. - json backends now receive host tags (the tags have to be formatted in a json friendly way) - re-worked the alarm that triggers when backend data are lost, to avoid flip-flops. - prometheus backends: + added URL option timestamps=yes|no to /api/v1/allmetrics to support prometheus Pushgateway + added netdata_info variable with the version of netdata + renamed netdata_host_tags to netdata_host_tags_info (the old exists but is deprecated and will be removed eventually) + when prometheus uses average metrics, netdata remembers the last access time the prometheus collected metrics, on a per host basis. * metrics streaming between netdata: - netdata masters and proxies now expose the version of the netdata collecting the metrics, not their own. So, now a netdata master shows on the dashboard and sends to backends the version of the netdata collecting the metrics - added stream.conf option multiple "connections = accept | deny" to allow or deny multiple connection for the same netdata host. The default remains "accept", but it is likely to be changed to no on future versions. * other: - added global option gap when lost iterations to control the number of iterations that should be lost to show a gap on the charts. - various fixes/improvements related to netdata logs - the main change is that now netdata logs the thread name that logged the message, providing helpful insights about the thread that complained. - re-worked the exit procedure of netdata to allow it cleanup properly - sometimes netdata was deadlocked during exit, waiting forever - now netdata always exits promptly - fixed compilation on ancient gcc versions - netdata was always setting itself to the idle process scheduling priority, even when it was configured to do otherwise. Fixed it.- Update to v1.9.0 * new features: - IP address ACLs - auto-scaling units (KB → MB → GB → TB etc.) - dashboard snapshots for any timeframe/resolution - detection of TCP overflows and dropped connections - detection of redis background save failures - export dashboards to PDF - flock.com and kavenegar.com alarm notifications - highlighting timeframes on all charts by holding Ctrl or Alt - monitoring of couchdb, powerdns, beanstalkd and dnsdist - monitoring of libvirt VMs - new alarms: 1. too many tcp orphan sockets 2. tcp memory that detects that the tcp stack is under memory pressure or close to giving memory errors 3. too many tcp connections (for kernels that do not support dynamic allocation of connections) - timezone support - unit conversion (temperatures, time, etc.) * fixes/improvements: - better/faster dashboard scrolling - python.d.plugin rewritten + supports option autodetection_retry: SECONDS + the new URL service disables certificates checks by default, to allow self-signed certificates to work without configuration. - streaming: + netdata proxies with more than 100 slaves had a timing issue that caused them to crash randomly on slave reconnects. Parts of the code have been rewritten to get rid of the timing issue. + netdata slaves and proxies now have a protection that ensures they will never use 100% CPU, even if the master is misbehaving. + expired orphaned hosts are now removed from the my-netdata menu of the dashboard. + streaming functions can now be monitored via access.log + streaming now transfers alarm variables too - web_log plugin + custom regex now supports parsing hostnames and IPs + now parses lines with error 408 (request timeout - these are a special case, since the request has not received by the web server, so the log line is incomplete) + now properly parses resp_length with value - disks under Linux are renamed using /dev/disk/by-label. An option has been added at netdata.conf to also allow renaming based on /dev/disk/by-id. - chrony is now disabled by default, because there have been reports that chronyc enters an infinite loop in CentOS and RHEL. - tomcat improvements to support flavors of the tomcat server - chart system.io (the total system Disk I/O) is now calculated by aggregating the reads and writes of all physical disks. The previous system.io chart (that is based on pgpgin and pgpgout from /proc/vmstat) is now named system.pgpgio. The key difference is that the new system.io now sees ZFS I/O, and it also correctly and accurately sums the real disk bandwidth of RAID arrays. - chart system.net (the total system network bandwidth) is now calculated by aggregating the bandwidth of all physical network interfaces and is common for both IPv4 and IPv6. - tc (QoS) charts now sort the dimensions on the legends, the same way tc reports them. - mysql (and mariadb) got new charts for galera replication - postgres versions <= 10 the WAL directory was named pg_xlog' and from 10 upwards has been renamed to pg_wal - freeipmi.plugin got a command line option (can be given in netdata.conf) to ignore certain sensor IDs that are faulty. - minor openvpn_log, smartd, smartd_log, varnish, mdstat, dns_query_time, isc_dhcpd, freeradius and node.d.plugin fixes/improvements - netdata now supports multiple plugin directories. The setting is the same in netdata.conf, plugins directory = "DIRECTORY1" "DIRECTORY2" ..., up to 20 directories. - netdata now supports alarms variables. Each plugin can now define host global and chart local variables with static values that can be used in alarms' expressions. - dashboard: + hover selection of charts is now faster on all browsers + the dashboard is now fixed when a modal is open, preventing scrolling + the dashboard now uses fontawesome 5.0.1 for icons + chart names can now be searched with browser control-F + netdata now detects libvirt VM network interfaces and moves them to the VM section of the dashboard + now shows the context, resolution and plugin/module of each chart in tooltips + should now put a lot less CPU pressure on the browser when the page does not have focus - statsd: + metrics can now be added to statsd synthetic charts using patterns + dimensions added to statsd synthetic charts can automatically be renamed using a dictionary + timers and histograms now report zeros when nothing is collected - badges: + fixed a bug in netdata badges that was incorrectly matching zero values with the null color condition + added API option display_absolute to allow badges use the signed value for color evaluation, but present the absolute value - alarms/notifications: + warning emails sent by netdata are now a little bit more orange (they were a bit greenish) + fixed a bug in email notifications that was triggering a corrupted MIME match by anti-spam solutions + pushbullet notifications now track the devices, so that per-device filtering at pushbullet is possible. Also improved the formatting a bit. + correct priority of warnings for pushover notifications + alarms can now use variables like this: ${variable with spaces or +, -, *, / in it} - other: + access.log has been refactored to support monitoring all netdata operations + inodes monitoring is now by default disabled for mount points based on filesystems that do not have a maximum inode threshold (such as cephfs) + rabbitmq has been added to apps_groups.conf so that apps.plugin now monitors (cpu, memory, disk I/O, sockets, etc) rabbitmq instances + several email and log management apps have been added to email and logs targets of apps_groups.conf + ceph target added to apps_groups.conf to allow netdata to monitor Ceph + refactored several internal data collection plugins to eliminate a few hundreds of index lookups per second + netdata.conf settings that are loaded from disk, but were the same with the default ones, were generated commented when the server was asked to return its config. Now all loaded settings are generated uncommented. + netdata simple patterns can now extract the the wildcarded part of the string they match (used in statsd synthetic charts) + netdata simple patterns can allow escaping spaces by prefixing them with a backslash - Update netdata-smartd-log-path.patch - Remove netdata-main-return.patch (fixed upstream) - Fix rpmlint env-script-interpreter warnings- Add return statement to main function (-Wreturn-type) * netdata-main-return.patch- Update to v1.8.0 * fixed bugs: - streaming slaves consuming 100% CPU - missing alarm notifications on netdata masters - API generating corrupted JSON - crashing when starting on systems without writable disks - python.d.plugin URLService did not support HTTP keep-alive - streamed charts with duplicate names * netdata enhancements: - netdata can now listen on UNIX domain sockets - systemd netdata.service now allows setting negative netdata OOM score and restarts netdata if it crashes * new plugins: - CPU thermal throttling charts - chrony plugin - Stiebel Eltron plugin to collect metrics from heat pumps and hot water installations from Stiebel Eltron ISG * improved plugins: - web_log bugfixes, enhancements and optimizations (including squid logs) - web_log now enables parsing HTTP/2 logs in custom_log_format - redis bugfixes - haproxy bugfixes - elasticsearch bugfixes and optimizations - rabbitmq bugfixes and optimizations - mdstat bugfixes - tomcat improvements - mysql improvements - dovecot improvements - postgres improvements - cpufreq fixed a bug that prevented accurate reporting of CPU frequencies. - cpuidle performance improvements (faster under load) - fail2ban bugfixes - SNMP plugin new uses latest net-snmp and the corrupted 64-bit counters encountered under certain node.js versions is fixed * dashboard improvements: - easypiecharts and gauges can now render arbitrary ranges and animate clockwise or counterclockwise - container network interfaces are now moved to the container section - containers and VMs now have summary gauges on the dashboard - traditionally netdata was using 1024 bits = 1 kilobit. It is fixed: 1000 bits = 1 kilobit. - netdata charts should now work on wordpress pages * alarms and notifications: - alarm-notify.sh now supports debug mode, showing the exact commands it runs to send notifications, when export NETDATA_ALARM_NOTIFY_DEBUG=1 - alarm-notify.sh now supports setting the sender email address of the emails it sends - emails sent by alarm-notify.sh now include headers to reduce the possibility of them being scored as spam - network related alarms got new thresholds and improved badges - netdata now detects if the system has been suspended and pauses all alarms for 60 seconds on resume, to prevent false alarms - netdata alarms now support filtering based on hostname and OS - slack notifications now show the host that sent the alarm * statsd: - the number of fractional points supported by statsd is now configurable (1 to 7) - fixed: 95th percentile calculation on statsd histograms and timers was incorrectly averaging the values - fixed: statsd metrics with non-ASCII text were processed by the statsd server, but were breaking JSON data generated by netdata- Add download_files _service - update source tarball to match upstream copy- Update to v1.7.0 * netdata is now a fully featured statsd server * improved metrics streaming and replication * backend enhancements, including: - host tags and metrics filtering on the netdata side - rewritten prometheus support to utilize more prometheus features and provide more flexibility and integration options * now monitors ZFS, ElasticSearch, RabbitMQ, Go applications (via expvar), samba, squid logs (with web_log plugin). * improved dashboard loading times * custom hook support for alarms - Update netdata-smartd-log-path.patch- mention patches added in last commit * add netdata-automake-no-dist-xz.patch * add netdata-logrotate-su.patch * add netdata-smartd-log-path.patch- Adjust default smartd log path to openSUSE default- Update dependencies * Enable more features * Add soft dependencies - Build on all enabled SUSE flavors - Improve package description - Use upstream .service/init.d/logrotate files (virtually identical) - Fix permissions - Clean up %install section (more readable) - spec-cleaner- Do not suppress errors from user/group creation. - Trim sensationalist wording from description. Replace -exec rm by just -delete.- Add netdata-rpmlintrc for spec file. - Fix url and source link.- Update to version 1.6.0 - Add systemd unit, init script and logrotate config from netdata git repo- Update to version 1.5.0 (see included ChangeLog) - Added netdata-rpmlintrc - Spec cleanup- Upgraded to 1.2.0- Initial package, version: 1.0.1/bin/shi02-armsrv3 17157515231.44.1-bp156.1.51.44.1-bp156.1.5perf.plugin/usr/lib/netdata/plugins.d/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Backports:SLE-15-SP6/standard/6b4c5b75e7c87a7aff767a224dd4c29c-netdatacpioxz5aarch64-suse-linuxELF 64-bit LSB shared object, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, BuildID[sha1]=af7453bb777250e06559db114e4d44aa279255d9, for GNU/Linux 3.7.0, strippedR RRR R RRRRRRRRRRRRR RR RRʆvtYywcap_perfmon=epnetdatautf-80d6e7e2ea170441f150886fb02eaf05ce84a83f625966f80fb6ec1882db2fccd?7zXZ !t/0?] crvc$jك oCXyyjĈ *w+2fy &rZqcg2h0 {?>bi(IV4Ȓn]χe\tIlUbr6ޭ)rEGU, &pUWw!رR:B{@OklMCm"e.?x005ƚ)BZ8U v^L'vl5DCϨū?'@GSF~`Lʴֵ_~[=?䩼LqԾXfR4fOgf< 1zoԉ$/ t.ӲcX?wD5{̳k]̍$r:|X+uY,靎lNsw'ʽÿڼ8u E#*@i$ ңC Pm̸gPzg0ZzXS2}պwM'+d9m#\dJI&R6?#9xh,T@@'rWꗔ˒gOnW~VHzٷqŌu/tI]_:duQ= 7evT$w/lz7U¿֛ME(pY@_0uNfgXp줵.uzY1IPn:()`0Y.P' ̨7TiP3jÞޝ>7%D{zYW3~ Kw'K8':hr": xxT%Eaxіk}̱QVN{чaqeXPcg^@4?Hk1w1Ica8O[Qxv³rVR.*'&ES&!Q4ѥ49l;DĹxX\c`)r&jy5#e^  [tm!x1NKF~@XV1K[YeBmu/-(v$" Cǽ,p~+!"pXdxLˣ'k]AJ Fڱ?2%e=(qY٬bZ`~:>7&Herլ8;{Hp430U^"sG㝥JG;dTzULJ*]KkT3dTHf́bi\|+5X1 khQޯEyK[[003s{cN96a&|?*Gj˜|H:rx~Y2!'lg<Ԭ\/"Pʶѱg{H.=ED~ˆ2YXEC6z);FÈq!w"R* ڟD@}6&,'\(tx9}j0lI>)E+0d\DZB,!kPeB.-}'Yt:-> ck*~{pxZH*h_G:yb8 =}8g8g9#?t:]?(&* bj%Pыk,! ʉ~7sahj;9^ xwt̽N5~q{\MpDUvQX`r*QT8Uƾ~ZeQ.dWoYjPWL{lnHH)/p=A컵 ݳsås>e=4uBCBs#ꃦ+J񚫗~9bq F7dEǍ҈K(X)+sh=v, yI›}}guz[Q*Z\<,AaQtW 345m!qA|:Zwq|`sWĠ0pn@}uGAwWD>ӳxߴrn|dKuDRdq*d7M0|(q:Te͍%/z.}(aUaT=ra}Z=5EKגfXnB# 3jWРh{.Q]h`M".Os8iF si5sq%>t }Q/k&PހK4AbbGhTAR!5_Oe;L8S,ADPxYh|?#-=듰y[L7PJrg,^a _ k UmO:u4;c:YYZD(~KO5Zڴ"pc`'(C]V4.MO +~Pr|Mm*h'r V2MA|4PsSQ˂KZ=Gnvl\1D A)tFb_a}?x;&XR:)]Ԙ(lӵ@uz#V\b& USAkә ,8(kO w^wfd6ڡ4]uu`Ոvw yĝQQǸǫqxX4?1?_~"<,<գamo&ori=w,5p6X?QNQv ?SֽZBOe9! :t) N8d{SSP(U蓽R~"? Jр(^Kp$F7W|G7`"e=AJ^S4`$n#[dR/[cw|Q,h?E0c?6. #Yzp}jn~d]MN &-O:~+0Xqh*[<%ӥi!Yb !u yr }b숫V'@Y@SxCcej7{]!1"J/uϦ/SwVIr;6䅋mz|(Ƴ_ T$2ʍȔxn{I;0wˍwR#{f)Aͱ%OVl< f 7T/^pzi|U8_nq!x.ǯ)jiSX|J,dZ@Z.eK Ҕ4sU#sixg~p Zl1oNYlB]ж iPA~6w"VjhenCh8U b2bv[D88n4;6+T$9\ :м[UjzgWp8{m\P)וz0sCWOKkɆ?:SeTo\`耉Ǟۡq`x1~SP:MkŏZB/5ma%=ehOH&ZP#k?!\dU5dg7ɩ[2fȗU‹@Xb5 vmTs);t3H#t\]'j(O#H^=Mxwyh,KLR #~3L?&XXg<||]&-^f@ C.@BDx^f]̏Aza9WI Ä6 l@`BT@)y5Nv!;^^Rp:tp *h~t1Ɂx iQLdR_w. >XSh7W*6,3Ebl;ic͈$1` 1wCpgYh[8i}6J Hjh&^_YVg·xܼ;۸hcBs-ysg2d{Aß0eT<հr%D @ wuu[s ieP)Ħ9SuЌ_;iE1Z^L84 con6oONwXj xNη*oul+. dV!ݱ-j3Q %ʲ'y/ĝ{N j\jf4=`UCDviT$Y.1K)nC&73$x&wx8ŝs$|gҸ=1JT-=YTU}jȡĮ8,gE,PimA+N)CDfT vm*UAJC0(Qdܷ'KW{$Q~wTup;,o{>kaU'xDG52P2:ڱRݳ[#?Tyԇ=7`fYIZ6rCܫߋ2ʶkJ\,˅RYʪ{auH6m_H ZR;M&1qYS]"4];!t4JE.0EFjY sgkԈ\qj7(^ĞՂ0yӦPYD_{>y!~`y^N]50r:̚duxTi`¤ۺCtNctB.mA٪$KiNin2:e|wvK봌Li)YuѻzNHJӯucG#T<~s/[8J;&!9hQ!O}F@Ԉ2V 0;[r ~1pNHx hOMdY gVWJ=Uח|j5v4hL>^(O+/ѨRb_O( jv 0/I?yy9.9H5xH K[qhZ^'"ĊѾ׸Luj0xܹ8>;rk+9l[F+κI)HC㖱}0L2Ei [kmT3V1yn[[< R=1&*L˿t?9fQ3+"+S 2W i?HYYqDq lѿo;]`;zC({PU=Cj a>Ap(XEc@ݧP#NԏGvn1z`f c-=I%G b΀t'<}%*؆RZ8Aͼ$0 G T.59vɘƺA>)iM&pVVZ5nM? ^IM%TjUs&wt JpF ζi(w$Ca߆x%5OVރJχ-fjaHf8*duQ;S#fr 0=mromJL__bEL/1Ox>T8!bץӐcz92mV$D2 Z;PN ( LmB#7P7UDiI޲S=~ Bh;slC9x_nrDŽbZvkb5 2+)MR)xO#UF7r߻ou!(>ժ[[N/WI]Aï܂;uj7.gV*ma)/vֱle8*_M%I~?{YdPPP9wJV91ARB\?z;y;a֓ќoBfm>Cd QFw:YHē}Pԡ֎Ê(e451Ah}(K>76MW (XU|:>m{ T3fmBHP%>4tOyT`%ݞna厍X=3C5#t+2ǷI Puj!0ㇲm ]Vى<gҕ|ʹ/w0a%J1}`Yz!O+uX/mtCGI6&l~q#iw2.mG|% PXqg8fCT9Z52!F+QL{I.N͞'rAtspلo޷͘q=Y_,4_,W} .8@h>C+(7r,Yr4e.$-"hsgƩ^C)YanNB_b `:q>s3#gD_&jgvZ^Жt^͔vv}ޏ0uc.LZJ72U]: h꺴w?α2stV1fME,F@A৏tP/ߏmK{:ElܛRN2]pqR%GNֶ+8C9y22*Ur/K%x&eNwB5ݫm30Hn}T6MML?[Xa5i ,itV%?R@qq~e: ތe٣o,1_ +b\҆ zmMMm 䁫91zqe{ծPp]5BjMAF 'i%S19l u" gԔa {&2/[}Wvm WPȘ&o s4W< {n*J 2OT_{<"ЩX,zG=u4d0,ҁK5(Bj? ȈSa#R~RWrLvlC^X(Cq"q^j5rF=$6 y  atG_PZ@uex[S/㢡"ЪV ٲ\qe@*QSPn=EoCCwtIPﲊ;e i}ؓ#3LKńgu&C!+tqԤ3؜3^9 {f '~GFeE؋B< a[Jy _k=_Qu+n#skv{p$ 787|_ڠfn: nPI82 k8JN$PSޅX> ÖfKYJ/ܽ5U-Xq9;TXr/.׺S\Bh;/@qO{y;P/#0W;Abg@\i1~ۖek%d%Vzx: EhsakJbLsJfiO6[aԵշ cw `Kv9$m_ -ǜ'%;L[` ;l@v!p-V(]mY=Hu$ >~B՗+D@z@_byuv "]i|{3ktـ#Lu\ p iM2+ !L(*h! pfwSl %2z 8?xWlArc@ 6Ja$b^8o駽eۊհ=Jd83>׽H* ".C@HU]{2Qnf3~m7іIdnѝЙ<0$ׯk7EMzPu&6%'B}Zc@>:> rv~C|>`<ҙ O `<&Xue!BR.BU@ `pnetpђN{Z:?M"4ƭ='V_`RE- C=A.9"ʵ8s1\@;a@l xd[nd~}(L>$[, ȇ CY]a殒 Kl<},dt HZϫ⑍k[^uR:;xhL#FLMm;!Kn`dʊo\8jY $? Z݂MĐQ_w0k w]֐(c/;o!e?yXQ&tpEoN#8ZB?t FĐhY2tUAjX־fg f7'yij댣V*ćKbPl0y^ oSOChv*6׼ŜÕ;fR rh~8 J["OD= `zK <ZΝYA (_7Վ UT|JSY$yTW }l+3'} ["1o ҀFOH3CM'Vn锏e}:w7V_\I zeڷPt.ݤDBZvv"B`e"ۈiR9|gqP<39,feAGC 󣇁ErPq@3osV&</qK=6`pBj :jYi‹2༒՗eN?+BGhq+?ٍvPPv^)yc'Ө31]gq\}8I:Y N\F)Cz押/m`xցC<ȍvAK!U1>?kjzx6{lgԁ=-bGKyԨ7&ږ|9]xޮ_=߿o=It(p$@X - I'U)) zk7NWk5> #yXxdR ꓺ~<3y UъOp+M~yq`&E%d%1%q˃ga͓q*X-A C9{ƒ8J^.f8DѪ+TvJayصFR w XóřǝndMgL!K4e̱б4<2.oQ2nSbNI}z(XUDq: s*"I]H~lM{LӝYob:5ku>h?]ۤ`ieᕳU"-5=VIxy,9W4O7tRJ z绌y@^Q+>)7iL^"\碯U? ܺ!H%mI&g!I <%sR)S?,/@ T<&n`68; (?mx(oVgvӚ'9~& ݭH&?Gq$fs4E 0o[ ҫ] 3`^6SQm}^w-Pr'dqP+P{!gN٣8*+V ^OGʗBYw@{"pf|ud_ g63W ֢|5YV"臿n7aAf[: l^]ܯ>4REe9{œviD>\Ĕ°uE P|u֡b2-N%yd_%;/XԝneYInw9JaO\/XMȪ8!'f5r(MvdDo"s{D"JrNu8r@Jl?F} [Kny47b?Nd-Xћx"v>+t.]JJ:{.e*\'BnUN0ȧPF^5 y:|MpyN}>7:0ABmU{>e=_Ι!{4q|JwHü11Hh8K*~c6t7˅h=jn| xĹ32?M;f?POht]+ކpc䊠@%g YTf9gw S$usvxzT|0.T-,de~o l6837@a=̭U?\?LyʕSک˜U*>'DI@um5ë Jrm\򼐣70bD+ ow;c{șpG< QU&=wA?ׯEcӇȼ$ѫװU( #` br^@߶Ҽ Zm71Iܕp~ɍYھsmLSl5]+@š+X?Y%.:-u KEM]  msM˜@c'c5v%E \2 hx9R i [lu͂~otPfgC܄AƊq|_V_!J)t@hd6CrCB-}yoȎH\6Q )̿_P_(BLF7uG =?Q^_OYhh%)VpM KWi'w ][Z=mM<"GL/nrQ;h5*҅tBLxQM%aab1ifM)c.#LtW;g&)t HXgE~U2 ]2 kڵ[_Ƙs64>t8D[Ka)gK 6yogoKcmYK?ت(|YquhZD~"(G U%#&m65F"ɘI1GS ƌA8%D߬Jӡn-2C->^x&Myf~~7B~n3D[|43mF (<}& Y()Rj>.P_\Kp!;>Q$Ǜ;Ԫ<9¡Kjgr.z:jUkh.GŬQ~=ɫVa2zkD]KJ|^_lӦ_V9-.?g$|kP%YbljvGG:P|TTM`[Q˝i~7-"!yԱ<hm? HŵMXFUs}Uu>;)rksϊX{;n }H${1+SP @4#l<=>Ce6,'j6Rz#Rڷ+Pq‹׃lCA|N-)z,`,$ֵao hOL[ hɫdڒXxKڤK>§2 wGHa)K*:EpmZ<|Vg u $ޥǵ'ՙGn;icy$ԳG~2SH?qKCФMpIc&4sG hUukR^)]^4@+;!X柉F3Evꈃkkxz>ģ o4O;E3D:sP?MEK0Յ:3a#v9f_|kH%"&ݎaHG~-(fFTL4BA#4IR0aA7=faJZ[2 s/=m Mм[rCVKACP[8]Apn{BZF^js_rdfў…76,R#Zĸϟh>78=lyu)_^;C3>J#OXTf&[$jtu9SNN\#!gh>L]Dgw bi4`m3_3#6X{.1^  ;s/9x)7je7̈# +QwYUjv؇Y_ c{~PN&S*KPyE0qJU2"Zvu5BA+3sh~d%/m- 4Ǫkո\"G]QZёL,I"qq^59$TWmRKKX5W %DC{8xํ@5ᢂϕ-ȱ!P:١ډO]h />lV##xIAU5i$ r=^cUT$6RU'$zt I/Oin{UC'x n >%U_ yԄfaFKU2xw-EtMoolHU^Q!VeǷR"xcQD4kUn/'t3m< Fa3U] >lwh5:7>'K6G{PM_ٝq˳ :SSǨ:fǾY."~=I<F>6"zRͽpWEg/'%,`_YYE;:lD6K8SK-"a{?@TK͇a fWe:)ZVgQᗗr% MJUvwňM܎zz^L q(fB?ƛKG¯\ٖAjז6tSqm3Z7.2}Lޡ (x"Uf`ָN@uG,ͦeA"Kmǻpy=w飧V:<˿Wh9$ځHW`, fox~[G'&y`[|(cLa~ [v9+J3[ TyءM=Â:%ޜPo<`iCm$eoGyjd ">I%'r~jh,:m&kV`'^A('ųS_,6^vYͿa_A2r~̧,x1No= g<^d;Cu.TLݯ귋.%#`/UVcvgc6 91[&8^&OЋD{ Qۍ݈?zPVajqpZi-4 Ex9Kv-w"sӅu$ 4k'>m-hph>{qdcD·RWeɟ ^l F!D۵l:,>pD)`Ɨ1]@ZB[x:r\U3=jFJ2ϬgKLI]׋u}O;~[i.H GKUZJ;hfnS"*z=<:[wHa>~NJqx3֣/1?d?i[M0 *+63R&(t[I,||@ᚾRQ>ˀJ3]IkӨ>D4].F?_8㍁⡽(C1q*5QiIPf԰UrS(,U:{0*Nhe/oh0o3JlLҗnuPY2\G޹RmA˿5E(BaU+ /Qf=T*e)G{imO9Rpևw^u˸ i!스( %!(_ɾ$z:B6>nX "*rg.Ma܊[-yDe7}(zpN\P2{LbAUk¦S'qmlGTEpo U @D#To'k>{aQGv]LeB@Q:+OD7O';=Tcku\Z`^x xd [xtz4\L o' T$4:McUk h'fnwKBE(v Véq48[X8fa*^A91fv ?U sAd?}sc21uD~hC>ez&j+7tYH \< DHyP}t9/kO#]Z NVā38>suQ@|MWقJHEfɼY&s|CgwWYpF>xlp?PIySթcpйJfzl@TAլx ˿C5J~MQv;bA`?J D41q-B`wjyNV%0e ) e$ۂ( z wk=]4K$D&zth&Xggpba~z V鮾9TZqz ILUl$!VeL1#؈/(Ƞ@g=QH${Z{"<)p(jfH*([|4C.ynu Nio5J= gO:@w|wf׀fFJv<зwUzkWvj!= 7G,XtiC׀kX~ >nOUOING1ruHzWld6Nˤv4|Nr]zGX}L~5?pęF#vД:Q;Ax8ȢwF270Mpں1}ȱs[)ʰ](*Z>pͦ:%YTmlAToҮJqi-$_ϦGUk,x!*,  zI~KBᴚ**DҨ v;ceՁSgsL1 sS?" E+'o8}XT!C}8 ,aW\>M]xx"AVNП6#Jt8u>iFdU$6@Bc(M_aU byyF)d46cG4;>V)O |s%!\qr-Hhb:KH8q'.|8bGz&ã!7šo+=D3-E(\8<*c760E8? d<ԗcnVZ \Υ6Xb+RQ.qxTVpg6l{FqǹXkJvGJpNl˅l؉#򪦫uwØonbPթ uuH/1I%W>~ ?c>PV_#< if0(ΔUY`hcG pDvZU[\EQW~/h߅`.ۆ{۹nge+0λc[!^z"ha!Ar=Ck: 0s=C3 ޸ިU& t A# bpm{kMSMɱ჎VK6ae=fLF:8Hҏ9 oxa-jcH!GNˌ|"q޿@X)cքMfĿRud`&Y+eNQ!uV k-(4)˥X,V^F.*'5}㜈1d \E(2T*^/j8W@%R+ MϽW09pvփW7Е>Z3pK݂'bD8yi[G끐}a%0[H }ǒ9[Vl8,qOXTה8 E шo Pk.<OԮwW:tmS<VE' 1L3[diR!Y?p#,MTh!QIknFT*#1 %~_SM8{KTjS3p𕞾(l9,1L:fDLؾ.&;?ЭO@ uJ8$\H&xt-MEMOO XzxRAC&rİ3;qH: +urG1t c;`1} Y#ڮ>P#f%h'vO\<1OxN:8JzXyTmb2\n񴋠O-3`.)%9n7 8&J,i[) ^Bbca? IEO DԁOP3Ybt<-wocL,p#LTYl_G{={}ۗ՚_#8 (cDGDSRHIc[Z!/ {3&8􁆯n"V7oFu-uDlQP2(ݯf o l>ß@qf\^EF_b%V֍5=oaM8Mq)2Řϥ?&15htZpYcx*^NO>j-4x|EL" Y7TF43.`U3%:8MvD,?"LBΡg1d r9LU-]IygǑJl)tX;sdЧoda11Cy%:!sc̢W2K2!w2(Z$E<߮/N2?DHjE?`@C9;?]2 ,&oʤ#כu d߶[EDF'!˹Wk@/\nj\ \1 ޫR&Lh%pβhH,N5αJ- UNezL-jG`6Lշk>WS++dgM ]҈ƌQc8jqopn ra{at)߈8^/BQ *u3bGat9):5U@ $~\ Do`  +*Zm"ID!Tֲz.$IdIV?!. Zˬ(Q8^/V#u TOrd/Q-Kl {*?*P`+hh觖^EMN&1d%&mu .ϥ‚;2ѩb4) ձM}qr&~*tǬZyIW< y7' n*2.YJ)mlU͠9$OPTO]%3 ffR?L $y% 2;} }]\@w-R3޹+i6V=Wbtep+~2pGSz98PhL=e:F#AaQ5[|%dS.&͏gFH>Ѓ'P68UPhs"(/f?he5=47΀~N&',mkn07t7kOv!NRb~ahV5I 4K* x&_h7n+XBƷ5ޕ<'a n$NEK|FzcB$F.gΉx%Vhk yKBWq?M=ߪ 36nƿ59ܕ{mcċՄ&6|WB2gVGqFD"b| _vDx *8,-&lwih" e/hDV+V&үv]X:]Y޿GRر 0D1[иNz]R̭vU{I_䥓#JAd7Yv0?OpCqƽaY%~L G]û]4'>e9&ڵr սYTMe>)DQc/dꮱcX7ΊLblҔbML,թ2)B>YNW?cԽYQT3OAZlk A {mmx,o mMA$C H"HVfE…9ztNڟ.{q~4hJimZQkr9&T?heՒ=2tJs8Q./j !eO%"BiL*SKSZϏH1/nJD OpY(.J%A9`#9&k_޿2|[_7lZ](tGS,?qfZ_/U]0=]t9xOA뾣 QW$ $ ʇXd %_؆|u>4!-I!Yl拨al8ĸLbcل`gxIU; tkBsYW=8*ɬ?u6eO7\`Uq>)D4)A)=a%Φ!@gG\dQ}hfBtq_ a06J4 SqKE . nzo cbNm9(YP ~9yaX)xΕXUĎ Q!K`!}cI\mtYlcδ sR ?~}}/.m,>k]9;)ήO^79';'b81+s?2T-` ?_[y]TUgKAeL"pA˄68ň&`xY=di-qg;׺PpKF]P $R,wvƕ ^?dqEܨi7Fizd rPOtܶXesAd%kFX7 L2hI ^ :mVOV:sAENjysD|@ᣊ}#A|?BlpC ^KvN !+$,4I0R(Ah z^^%NG]avK [и[8No=V9S0ZD1cv-D3#ɘ8CotĨmG[~Z1֔y{·=@fwQH̠6@׆izYih5 9\'sLK'ʹFSK6~[RDWaJZ,\Pv+\ߡ' 9-0K|99A Wm $@!hBWNȐ]Ϛ/w]m/!Ɲzj"]7.g߼(d$mu[$_SD?N'Pob?j:qYT#S}*0[X-.]Q]]s-[" ݫ8l}M|#qhe%%?a?̑~U_Wlܾ]3-ȍeїw8/R7c j+Jnxg-/F|wʊrtgw55Y4=;,N ni _|d/96إY幘"{l³(sr&Ͷ|)7,0'~ʝp+eK(?zEX[ "&.9oy X_r~Y̊bKHNt?◌&ULBd$ZߺFts}B;(8\SS:B~(o$31QU0$IfeMiu" 1&l<\ 0#nYcNj6񍸰#&߶, |6f4!H*odNFrH9fbM`徰|_گ@BzSzv̺9|טBqMƳ]0+ L JΗhGiz󿘥%ЖnX "RDl!_ pչἙ˄|GYSWz}{M g7(Nu"c*||̾"ݍ^%LM"2vۺڮ:QVcsFAωt"Hд?fXHU f fC#fFx>Q!kNd@n{JDVFbQMjj%m:{=:UfSktШ<^=!O^=4VSxI{owb@i6eЪrLv@]ڍs_FO_a+9k0B"v"+Gهee*~HցD?0Ik7h1I^a|')VoQ^Cssb\= I-`;{}{%c7Ȝ֝uC+(cI><|)ń-s sez%1H ?:"=~Q֘)Y78 ߊN8`>*Hꆢ>WOyԛ_͗#nFKk/bgg]\Q].nڗ$i?@ ¡^7+8К J:(&T>‚؝* V=.jCݛ[ܺZ^&h<ԓ:mesPhx`M1^8 ,b_JHŎģ\gȇ(9M b@M++ۻD@KN(B5㚩Qo0YK%$I)w'΃¥b^m€TeLjXSkm_P $0h Jo:׹QDE$=WK|)Hg(6#B8 ;#aHƢ 3 5IfڴLFu\Kjb05iYx0-ַDJawV~mbh1XaVat.r. vQFw@ͫ!ݏm"1˺r3per730~/rOx 8h}eJ4WU2eӴCZ!>!4]#b܉?mNUjVᨷkgp#nJC[oE`1zj {Z{|VwQη\8FvuY,/Q~Fk{粀`oWjlBbjsc}vFHF앺t~~( Di}! BȚsgD[y\{=`<UW) )UYq ܽ;D4*L XcWE.'oJįP6rZ-#fi2zKOD.q|opPkyO;cΘ'Jeă/F'pK^tVTe% [lfltB+Aid,.rɪ)FFoyWٯTE?=P,>]rfymbj8¸ϖsvf$A)-Zڧ^O{a =}-F2bdCE }'Wl"e7xl7vbѴi9=9ɖHwu@νfVՃZ2XUzZ/ 4#$)qZ{"Uix4Q ĻC5.C]r|]Pǟ-ֻA$u, oRt $lR}.Y3AäGXy]tn78ܢq]DEJ413'@ӟ(UC`qJQy[g ͅ 4L,L:i#U@5kەQY؍>@1+;o*A5^ l#Mqn7BXɿzLz{kV"AtFyG*ľOh>S~vhVh֚)<c|I2ǺLH84:$0=o`s~p`wi\ NJa$[ǡ1EQ9HfaG*wEe'*SS12 ?ӷDW Tܧa4.8nK\[f0x>(qZ8.|En# kHR͌ڸJz,z@>(RǤ5&mGO 8Lm x@>)kp̲])$qAo;YDy t=YP¡_ԹUb*P9Vѕxo_Emrc;p"DgR~鹰)"끟`Lzxwf}볥~`ގ'4J{`~~(-2OEhPP+4ҭVe}fW:ĩHۑԗ+ ~7x*Ox{ mbu,hb`AfRNMrG3{EUZ: /u_8rJ5*oo1(qvI E n\+)$e88AD/D vIQj.d&Hحr/Mzykve7^R'tb@o֣Iv+W[QW&g2 )59!gDwD&N~du;{TٴFv,}d@m~4Uw?b@P6`paxY U ƅ͗ (Ps3[#VHe$Ul_)297Y!VGsOsz>U5GTzw3aa:w~Ɏ]ovŜ$yBWN?3IU!52Bݩ2 {3dxYBޏh܎/8.ʌ8}w1W>&@MMs@:Uβ֗pO|#zd3;px~YRk?}xXvT C2!$abzl w'Naw#VvUfĐR>x>vK?gIN_dj u$qBI+il1z8Un>Jj,&>4Gc !\ov8I3%`0B9J&\ $HbIbż'wxvׄaeM/Eզ8&e5UbE `;]EitYa&Lon޺vʑU,sY<;[L򐂘^U$!1v95_xx }z?_&̇boe2?|xw7yZ ) >` |^2 F٘ENcRLÝ#rB 3 . DHYHCxTsg)lgDZVxa| ->=YM-s Cw]W% T5^ۅŹEBEՅן~gM3h.H.0PTn# Q(+R]/p7Jl|QfYP69h%<0O)82q)Rzy *֟M4Zj" eB،-4#sk\Rhz(~` `˳sx-V 2D!Hٸxۭ)q=LVi=' +5iPT5o.ru/YYf{-UsҌDO]8LKH֟ X<ݾ~VS=8܌Y*I ȏ.YdQ6j7K'' vuPT9'SWݓM'>Ϫ!7P>IŋAnOMl}8[,K;YVNZz p8A] MYY(stwIcmIP7|=aV#A1bH/j'W3^ūV65KNUfM#4}E:?b:ttPK$.v'zx*EPycmTYy' vӀ̏(5BZfbCC0;.lkv.P~̡ _enĕygx+Ik?Si-mh: 4vH]L﬋ nMft K&oEbJx05;QLzzY|O6H [C$-ucht MWP" %&638S}Ps:@͌>1|bD?U#rw &%NojՏ٨F \KL_qN#e;}3c(b^=! w̭*\"=+ /M8 a!]pŜ:B zH4Vwj-\Z76e8IR܍8\ʦ{K1̀+Na-D6:-C-)vߊ* j屆SieXujTd3/x)–L$N Èݞy^^xp9n01GyZ/s|zрI qVsն5ɍV1.ca5%R!~&Yp`EL 0x֧p;{  C[I5Q5l(%6}`>U;0LFOWrlOq֚oS4dN)(w2%Dtְ)>4 }sАZ.7N:E~Y流j% 6h<̲qnv/k9 h-lTW rx2P8 1Q–sUR,wS􇗻C8J%4~"3GG}Az_o()^--M0%`$K@|;-߫ * ݧՎ`$oMP{xdx|X(DkfOkF}mҬ_%pG<.㳒imX+0v /|/ gjweu\1>$KB7R0n'.sS w 0HeำkXm W^%`bL $˥pܹ*VgIePA^!)rb*7vNmؽ{Th_f<Jr~Ǩ0V&80i#_ۀ#텣.VU[GcTE[=m4׋,49S͓צX=ٞGƾ7a\\~c.pmjR6CVhimX33.KY9B׬s[,0}WHW6C&DD&9Ui[Z~ 7'֯C&j<覈, 's\8 0 RLӷPbHTe}]7@'U:mm`(:;=6A.x $`8X:o nq( Y2,Kf-hguLwRm2Hh:]k{BZj~E6euJ{+4/p 2 Vȡ%I#rw)ZXPhx*8n kfy-"iXGS;m:!c}W~a 8y(,nY/ˣWɶo&B 4\c9. /o}u0:Pΰ ס7~s<]$sGt bHcR ʴWqMQНt-Qx$[3+MLѱJcY ?C4QйUXe .[՟=uN-x{؅WPiARշs0 pHS d%H׸*%#vB\3qwB"~=r/ N+# >z;nWB! VA847B% bB ͜ݖe7xEb ]s%.qcB a"3qi?'/O_ܔOVQ:jL=oT leѤJўtÿht: tIr&5p]]uc@67s8ee+C,}q)WG7cpR؝O3yk'~:\/?=lP 6gPo]ۺ۰ָRWw詭hA2ZQr өo  yeVxkӽ0q^}^. >,AT  " ~șվtq+"'GW@+e1ƂHkv`:;5̜+6(_G PΧ }򦰁7_O]SzΜQ`.tgN!c%1&-Cvrmg٬E/"dI[.G&&ӶӦ ) [6{7MfѶVW_tV&Y( Fr%~d! OmOӳr]>+}(OʭUpd%-wfEr3e*PLVd$zORZ1V\ɗBgA þb^pC$mD-Ǘc<8[@a*דtxp[eEɓ6p!xax+|R`%ਘ#8 *ˠ Wh7hoڍ%st=._&CDŽGc.FgelD"%/!| $joyT mǮe-{"Z ,РU]:--Wvil6$HSI.p9:'[CotbRym#-\?w1VnO=^|(8~ha]֑d_뷒;HaFtPa܏,clUjXDO/Lon$ 1"lߞR(PT.?3b.6 d{{ϦE#K$&dq< 7\/zHaZƘ[~ag$*a%gIyhe:4-w`e -"a! bDgr6fayrRK}K $  9Q6+<-S$-̾M=,U#URo2_= S! kMݞ.y Z;h 4CUJi3MO"K| °{?<ڄDYxSD0ZHmQ-d;v5)>ٸ&}}O?eހ5fMp7`&_;ǗߺW1r̮IuMf@qѪ P'{Xq'{WGY/vkuo06Ȧ/ 2ޓl.[@ H3E"'o[/5Zl+hRy]z7SEf2;m Pښ]q~8l۟ 9*r;< [ajᡩ(3T{e"ݡ^L1u('lbxW*m5 6Bg\^XKe(s>t*{HP_v,,»yjWְ ͆2}cM[ zAm!3 F?YJKvr%"j?)!s>wzaνZ$:S,})nacResUC.'lbGEѻvhϊ59 _{X ^ l>YT3Üޚ&sl2^!$ffB5101}ZW6) ҫsP"v'K-[RUo?dNഉsrd֫cI }6 %WBQlxԥq(F }ՎRi0MF̴AC usg.F*2󜩷-T>Wd6 m+̪hM4HFL [r"VXxX,mt~cq4ƻK&@M.W 1\6(֓ 44G_G rZ `oyV1I=2 Zl!|>HlzzqϸvX)ޠY/2_jSjpf~(EId@𪳰&֊ӑ]*lwe[bFt) 46"X-'0Xsڂ'ުjc2ƻ!~ѝPr1U{bQ~tSrnǑ zRSporΚOBgoqj;C'\5G2H]ǪL۹S7Mdx< ]d$O=BBj_G!I*W̯BR#YEx-73a-dbA>`Q ˣpQDY#&N 9¹bYe6۸?7!ϛ{ggqٍ=M)VJes58< Ѫ6Lo\&NN/C]6NrKeӜ! G2:o*NYiݦɼuiD1ƮY'blp.l<Z'be`S87cB8͈Kfw?vJ>S:oH· ~i}ڽo *Wl#r$qlz} ̹&afv!b5K)jA?XD?2z7%KdȿCU h+o&*-S%?T_b]l,q gT;ǘ$T]dU]Il"]7D8z?+ÝHMr?ŒbS-xk1"6C1;IWHl$_4s*%058F](f 9j[F>Mh:;kΣݾ"ꔒ M5MuvZ#ׇ?YvwX+,+HLJyfQfq{+wJxwm xJ&o&=.gdJXNLק:=0@l6i^X{kR!Ó/ǹ-@$vBjʡKsMN}T`8m3C|)<3]yxt LP*69) PmYhvh;jUW,?RIs{v؁\ nn5|I̊װ=9*QߖƮxB7XLW,ءlvtkn%qXó czt >෇BT.uljp3ʑ,[ Ku:% Jas7CϡM88-v [6_?{!1v!&_΁@'s1NS3 dcH6hӍ'XʼH )wD]TCכЖ- lO3-&۪-"z$VĴ~I*+b-9꓅X *b^y9#:~ ]`?7!dBgcȈ>'QD:8b0$!i/)eox)<_3(\Q 6t?XU4aR"QۇpϾpniӌF~"Ew..ũ7 ALNj YŚI F!'K.TWNRy*MB FF߇˷X'{AG \NʸE1NU窞YZ1o~0֌,֗161 @P$a {($RL+Խ^fiYc`xb vG"w7PojAޗH퀋.{]J3Z+ o3/1wror2&GH=q.w:dް&Kl[IxFpecx UZ_+@h i4fu )ێBwjKz32ߙ`q][A}sҰ ie( =N#2bx(.DRc_29~9 0R~yqpP7w/0] 3I"6a`Vzw]*L{nl6]a*&j?7 Uy6]o_ uG_g˺2Y=zjv(§?:誱Jsy@h2L3`6g<6^qWo);!{uc2w1ժ1JՎ٠4҈ꙮ @2Sr覢ק<* *wLo񛢾1 3mgO_ІP0mMaaWH>p{2'NRIuSm#8a뽩e 1jzx˜lw`U/ja'/d2K(AdU-?tKU`?ɨ~ 2{׊y" @/OttsA:m"#-\ 'vfj~T{wVM$(9 ~^۸5^D[Fo}*-@ ZX!sn\ zXmH yV@feAK ʪ =aK?t<\n{8 X 8^J"iਨB2)f^)q8{>R%[Ļ?"Kh^h_$$6f[ z%Μf[~2oE2>$_ӥQD[yfZ r8*+y$$@#kgzoxcG ? šL0* )#?`<~&%ԲReum8R^zn~e`(ռ-wYM 8":3UZzu|nI6%}βHhqcᱭAa#_^DcATqeRߪ]xAG4~kKWͨ̿tW*iOpt2,ohnI;\Q.F1^0e2ssHᴏZL bhP4]686]jDb0i +d5 ]G"{a5&K#ֺ4>N :}7^ܺE-qpHU4Md&6]9.͌Q*GTFaw9gzEHZBXA^_]MQ3 44.AIxYbt7 mzd{Jk3vR hxKG WxwF;P쳃iA@lE&zrhWs\|}YhZ 0 C|SJ3ylrKYG0a`S҅MJa16c+W)0aVL7γ]V#uZ+tSgVܐJsb z锃%@;fdG&Tp4u7ʄfD@氣k Ð+\yQ >{:iHj =+ .ULnM98w9dù(7}m_Rv+VHǷ< h7%D UV^d2 WmۭMpU(tcM4'oYͰK:XS%V K[jܕ9x4Re؜Ts)r05yWmFL{*8eԤ|wVmM54o7"FJ(0ŧ[7wQZ_tOQܠa٘Mb)ƀsubkHES;!/@2e햧 HI}OT—'2Rt޺"ܿ.`uh|cM"9u]oCCffÖzCW{h3ESx7Yk)R4Y2V)=xx3+ި.ѵs0xR d -[?1kͅ:4m/ER,[ .uumU, p߻nmlɄeuV+:GXdp%0蝽zI8LB jG ʷEMg(k-xcX#xA4!nU!(7?FW=CarL:$ON>EF/H%h4"=~Vo)ozdTal)^cqApMI 8- kǹuJ{-%tʎ~{=[5v˲r gTȱXa&+w Z,| "lX0. ÜfCin)cG &Ng%]L `aUE!@z<\o4-8dDKڝ=SRnWZ[vUφ nv(;kvoeteZD\[TbVX2GtAիo]x7=%|@ժr&&n@72:>C췑?x] Ť*:]4VNe-\S acn55usRe&:UщPʡS0.4w4{q(5} ء6k8Oկlq\*floa[e(M&%p>;Ԥ|%0G4zr^V$%您U$6J\owvہnSy#@!fO$mv+/nFVrQ+H\ƹ,+TG^S@3WG)%c`d 4)ֻ5FK73ԗЀbc+31HC/^RF};fA>Y,sv6V_Aؤ3ai@[}eôrǀIa|WcD֮ !쨫O! ֙tFh-5iz1>k|i>&'C JfXg%@G%~w t.+`tF]T;w?zۃ"?Ni& 9UD[XV^FnHQ&J&PTbWllAGc-rL YtE6tHƑER8~Tc =! ևux܁RynUT$=9Ɓ>C*X.a砣}%pvrU{,-lpt&zn5VurmN9%Dy0k^wGe`:BC;Q;ü*̜B iV<5UWb"1haXтVL{M\-ÒL gD ÃAtmRNWzs2H(,X|N^(#I Jꩵ1%c3]B.tOo~@B 6_MRmq= v;$eErH*E( }2[J>iJdyثDQ"9 /Df8U{a/tc ET@y G){~aF-_) hxͨH-A!8Z!\,ށߜi"gS'!-bN]YݥE%)d$ɓ 9 %H=[/92(p8Xo72MQ̤Y#~z1;\"pP[͕6o?FA|4/% 4?yo]N $Mj#y~:e2 AA~x=/fe2;YWsiM"Xx@e I>\(K(ucm;it0.[e"% jjooJʠm bwOV֠mq| $sh_)>|XAf$uA;-Vƹ!'뒏ŏ7-XimT>?~x?^2B@-wӻy%f8щ\p觪U|CpÄkib-\VoVXJґQEjBl{/P$au7 6IG!H+3Dj-@V]kz_8`,b}\|O/&Qޘ܂w2Z?4<)sBk|zӫU('iߦ.HID {B${_;%P 6. [s'rwJnDͯ,\0KW>B2< ')Ҧi: O)㺕ȇ1UH2ֺDM}1m٨¶XеEe\&%4ՌsPL m(@dV1ɣl1Sq1dVodFUNؖgʗ3]TT ;arKx5m/CA^b[5]NglSL[L/=pIRõ_F|p :1I&RKI5x 0&) zi^ߠ h[0f/1Y,D|NHkH $\mͫ}"bYh(*ə*k1~3/9d'd[4*CԻEx*--k<Xoxwk #phvu Z/OieJ68 z/U]礞t 4qP{F8Ud#Z4ſ G Ja^b!#>iNAڰ+HQ lzC C_; uzgweH  Iu?{dVs`6ڛSLy"rYy4I[2I.Ǡ b[ oW兿@B'6Ee(|'eX;#b%!]{՗$@eeĊȅ(o%d['XNey.܏#?:diތ,2X£ [8cW;X"]"۰Na['l$WW Iq=3nV!8b-^R\)?HʖtIai D*X&`Lji={Te0 p`4kLShhw V?<^YgP 3;m>ϡJ"Ow\N.ߊ`DKV{g1YE+KK*9pƒ^aK.pϋ2啨$^N%Qi2hJB4i3g[k6 -kv&P1 `OF6tD)"B{K,pI;_>vQXPt^G'DcQXlja{Nnt/R&&"ˁ툳_S 2<0]'? z`y iPvn=11{s߂ %WqWF_L.Ž{MRg$-^b{!ҟ~~DeM82f™HՉJ=Z1 KLmuqզnc~<)YsE*ao%]uF[+Ky7<84]zC&{4>?}4=+_ M#>Oog0I+Ż>#g ht=kiRi}%* ^٨hu'Rh?3 J;.cHR׫[5·~b V"2J_^"AVZ#-N oYRZ b!>茷ϩ|IQKZey%'$;EF!V%gֳumO ΃OnFNqh0f^ey2cEc $%L[QAѫ DK 47 Ц1Չ]JDvKŴE@!"e]%X\e^R$;$ (Q*o)VvdҺPYezݷ>Ԇ{KP22'Xw0oc7 ['oj-b9yhn/îT %f[-*Rs,LoDd(=F|pޚH}ڭ޻XmRR5;(ǯ>5(HsǑ,zS ѱpH};+@G~v7Q1]:yGš/wR莘.(PX z< = lio4;m[T7!xmv;Ry\ڄߐbj(4/CﮯW[P1%&Z*.G*ŎlrSO_}iժqr¿^Ca> *q_Ūa2Gu#ޞN?@G6 <#*Ǐ1s Kz<-w{]!%~3]6\peyV7Mٻhk!9XIԒ nᐨĖ-g퓯A9`0_WM9J8A]7>22{R(覊iӟRk9Ԓe=RL;Dx )(zE-r1<|PM.VcPޱpVR[ GholxuJsr~`tG<&kZUD@WqxuMbˍ2-`/KHz *4Zְw~lx*ǟ<,N o33EeZG*Ѽb/4@)aJ uD|U"_?`܂"DOdU^hvG")fm -ִY UrGE h5䕇1lM(!sD]J ީ<ƨ7j&96A,cYuI?7%J(uZs#m[nX{Z{?2u4. ,[yP{EYb7Ϡvq9#մGF"7\9g)$4R '@ ֡ ,#ߑgL‚$-dL.9nHG3hf+Cq$WZ 7?)suǹgfݎ2:-XXEC?&ʛYM,ܿHN<%=PM?!M ȥЍOh+/ͱ?\B_N'oiUg O|{ "yDR¾uOVl>5~-5Ni@-K`ʻ?{ۖ XD1CN{Rs bh :..(hg>-ۿm3v 5vXR!3vGɿJf'&uمԫu#Bj&?h1Źznmk+Mz L}e"1ByӋKa35x%7Q8F* C@ +MC䤲 4|8$g,AJKBC܊Jx׾8i *lT%'Fnqn}cRcsL;\*Ka}DȣvܗG/1xcvR0Wɚ*QSڇю! h ֔aE8d;4b-ZkP`~4&ӥy+ح_Q5ߨ9B|fa%SwZo:G̘/iGJ'TAl]%G{ pVbp:a؃S}TXao&_3㤦_)NR.-gA[E e$j;&LJY#f=л(qǦz :bbz-e. 9E\}mϘ̎ru+f 3/+LC\ck//`M drkpΆ˪wJ؇ǑYE@Rn8>U X PMߊLMbcL_ek_<ШeI %_{Nǰ%4nPNY%=‰Gk3^|_}AJGiU̘qYZWk2\1gIxcfx߫{wI7 cgz4*3O$1xJ} / dCt -'f[K3@{wr4 J8>c 3QN4DĢaޡ:^+%g{ȧ$M@|MY\Kߏ@9HwqߡR[a ֑x_ϑ̦dh _cN:`+'VSh )| Tey:yQgQu8x&u9deiG] ƛa -~+XvH{[i$[ALagͨ_[@P| ,;d=Ԇ-00ʄ(_\zD*tm)^kΞ"EWӆI YAE/Ea*+l^ruzz}9c%)8]"YZK1Cx{3K)O#|2mŐ7LUKR_,Іd*نǕdn <'LW쥹4fVtcnPY D99]C63e1<|Å.)]7ZsOȕEoEQt Եorm^7pV8oO9q@7RɜI~gg"h#>GLElM J )(,S<~µix6:56BO@`8H)`oSm('v⥯Qvna<Wh%ـE˅C(!?g~@#s=zwX`_1F+*8bˍvp aL)k/cȩGcy4{Ө|$l?GMv֛ؔ`59R!%f[hJy" Q00.15 lbXo0jמ dp%/P澐[d3(>X̠1#Q.W񇍣.r<' M21lh/kc>)xup% zN]ZzԑJ#BMQ".'i tzV\=ᬷ̿OAњRn,|Ż1Hג}>eHI]Q'fvk_BpE'gGRkcHMe>ql!XwKZ$ɅGY*Oa&4"x{w YGv׃uvXK0YDO9n^u)6`4Lbk(vbSQ_k襍=*X"OL1V^ az!Z- GKWMՊ}j6kKY5 \@`>^-Kğ'ǻ7rgsd,O7?y\_ ;+U[9j+)n32yw.y;m;eo<%^oF!1M/Et3n_Q%tC9ST>e%Ɋ pyݕ.Jx=t78ds/227/rMȝ7tw)$/PlC1j9x;8ܕ̔9N7Y;ZdX[+ ѽXxZxZWطZ`rһ'^ZUa9~w0v7qPB)}vwLOYT,i嗉jk,nc7E$Y3Vȴ7Ibc,rO"FE1̯6^ڑ:虊jd. 6JNXBN g8+*f2;CTY©_t[x1|q?s  w];ܗq*5G$V#@IXL$ꡇ59>=K()W9 *`}n701MwFM ZeV*?&FNeO%aT0=~'KD8iFGG =?C׸ƅCj)c]yܻo1$)5?WR')qD}goToǴf,zcz)cx!˫1zupТ<=F\`KBoѣ:e7xnFpگ~?1\FYRM8ď8˵s,%kv:7Zv=ޚv"]\I'0&&x'XP{&!-9y!ܚ~o^r7{䀴%$jlyjمڿQplVJ瞵G]0"ݰ >F4gԞNYㅴV>ـWG OyXa2I+AU^HŞ%5ڰf$ŧ[1O&SU+{nMLfrb T蠝ʓк۳W|G1Lw-zt `:t*g yi`Eپ䵛pFIc,x4ЬY5et~%bI!K$! TNbe.p5}w)!ANWArS{"E8L\w *(Uxy_$=:ϵEDSH  ƑJ`;$-LcB*=U_ŒZoy,_哙/K(wEt!3L+cK@_8Fw#;SQibLLV# K+KÑꮬw@[63 3=g j3A8w{g 2 JռYk5v] k{ؙN1_"^qs +@qL#LT&kv}зj4=Kmϯ6m˟G@vߣ@?MNt'$߫ VVD6dul DnKG IxCBǤ+A?><*\R˓ǀwYvU34z>󷭐L\}@N+woSHr8^~dhzWTzEݬz0T y'y*k Ѽf<)ɷCWT'`y q/A0aa魩& a! ul6)?_C :j=lSteݢ4/4Y:aܿK.~Thd_&` jU"e]CLU™P{uR ~7ĕVV&oaS9oR A]ƴHh7Z3>4/ +{m)iT6sG˦=7uJ>s8Ue}E?mhG*G-Rt?kI*oΪt jEBhjmDdum%ijp%b6=Lt C6qW F;+ӟZ[dönPuf" ZMRvj1fج+xL:߉4nm[~xn$L oAjAٚR'ho,4$uyjd·oiE^']^"Bq7\ {w2 Eba[.]:OpugAӼ!Hh~tao MML Ӕʍ:CSu!:NJXQiĤj2 _O0跞bG;֐ M(K<ymVܐSEm[i<ˊ5V&gc fi҈oxQipqs$yVDAgu+8IG:&Zu1eS~<dwgKuc Q[6(ZGU&7hR{~]LuocG%b;kn>qpķB_0m}v3,/!_EXL;C Pl.aм gM-5*NqKҠՏTg2?WHgF/ƉZO:(t|<[wx婱*̨jxmuqX,J0;L.T[>?jGXߡ^Z 0U1e1Nwo!iwX7v?\ź.إQ*S&(i&6AS+!2ƃ)@C;&^m8}*a8mB1w2SS!B\Glw𐞜^}ka>\D竜Lwd9̗Žgyx_`(&}{_zRC%>^PCt֤>J1|7KYT7Eۺz^)%?"u@2R `|V.9.1QfB %\j!V0`0:3!+ &o'A)FbZ8dhq r6DŽM:I+}%M6=p ԕbvt5 C5Qx8K:Y(u 29glw|7񒐲#t["vwy$OslE5ak[?LxժĉX;3L-Fф(@;{KtI@KpGm#{o1 }!'lmfbZ+L/X,:8_@Ls5}]pyUf4P,tg{چ0 {ɒG6(ɷ"Wbd+D%[:RBvLhcu-T Y]VG;XɿW|)"`'rjͲ?p K8Xlt9VKC7ɶlqKߘF=ZW~y1;~~rt5`ѐ|AmWTaݗuF59ӱH ~Uj|IB8CL-mW|NU7†Gf(S6 eq~x8Xv5[7 /=13j .|@ԗznfߢCՍ.򫠲 <br",z4 t !2A)E {F5!|@2` ,ٰ8;K&SYӈ9؂=&Vm@I]L 4w$8 Ѕw=f܂yR ;Œ|ʑ,C8HjG8!Y3.ClnxurjEu~kgp2߫bX4TZ^v9k g$LÂ~*TTSMk@Ll7=$CCr {T/]#ԞQ[Bs+&я0͞9դus% rL6e5R դgwJà-IGJO9% h?5q2 ƴBlKv@0ZXKD6E2+%@O,̡ԛ譭\c#青dæ ;crT(ǻ`ie?;Qg,̚w#lF7]Y`q|_z蛐&=5Ϳ^$;3CRSTMgtk}8'[-,boyk2_МXGqc]b$vxm+\jq[ygl^:wn2up+_ M/`WW[~fsE)~7 5&^Vc ! r^,gzP,0;E9LT]AbN]UV^ZG֏nnv56 :Z֟e>:B '+y3Owu-}3(nĪDe% <T1xXlx0)x@fv*S*E PF?2r~dxEőhX|1-{٩h0hª%e"ؘ+#Mtt7ZHe GEiI cQk/,dW C]Y+&r+Ѡ%:3 qW r"UgY$=i!}}c1~5RP^yOdI*m$ \kEv̾ᫎ.o6Qw,f_W;"[FW $Du98NvK6 Oi>f7_0r\Ӱ}ii2tH$N:McnA)cEk$GAtQ(+?:c:kve o"mYN37d OӷLe20<ҿK,Njʀ\x1E rD8<jfr4 z() .˖\"io3(fA tKUL1Sb4WHȠp Av ׾e3@b<'0צ{Cňi\v>" b s؀P5@抪ZcJǂgQZXL>w3:]5ͽO!m*"QהNJ;ͭB%b~tR;|ť IxK;2b9ϔaR"a_b .213j[> z;UJ*K+Q?6+\_ 0,r.A,A 4?Q2/_̐hB {B(#_rݰ&&k}wEm;*Ao݈a * .^]Dp%R5;8A&w+Af*Iwwo:Q{L ZC THz=?K>þ_ύQc?#`?Z) d%Ъq tJ2rnX$nRV&fCh IO.a+1ɵܓWF |}+9LPM 'Cu;.b b(Ym ?=(Eە̽폝(K>ȭE'K֊xY>;jXE4i9l==oc{, BY!%k-|i0<2nA2 2L7l9k;^t,A%15hx(h6U`1(,O,o) %*O{BM֔B j7Klr0"^an<%EL&-՜CG<>,qjd2VE =\Dh>dx3}eJ4Yt[۬JZr~x#%2b5R<0@زDF,:>MwԿ#m'@g†nY? K#Qf6+V1WŽx4#.8=sw^ ȣ| oe<o #ĘfW& F*Ӥ 69Doäso|P/tIٍ4OtrɇJjMja-$)^Ma*G=Wӛ{9c6_fps\s*2."(rYuexSpx*zE=5{QiB{Y3U=c&ؐW0Z}Χ%SmJU |全|axܛj1G1y&X~m!!9v5_ևHtw2\/ۥMє Y&/jeb蠄v3fTDb m8s|n/Yz[vJlI}}kV\!e>]؁C$cд\,c8vhS+nh4o7}3s`<q$Ve_ q nGb%YooUVIXj|+)vޭ9tQZ:YrAZ3D1^^<Pha1I '#EG5낻4~"onv2s(Cr $$$hP˚"4aLq KwL21h6cS-FC#5JSy/$ vS}`ԝ?R#`(`@4hW6~dƐQaQxYV3Fm Ȇ7JaC[߇¸;y~&Ǎ`7yR*u4˜U 6 lB$VXgBًmpjٞ"=)1phd%!N/w3 摪u"lZ%9yxzD.ȡQ6:b}pi&WU͢ 9>=OvedNSLV1u⁰MO^O"j6e%N;J>lKr aW=l;얊߰QIv-G2miko#^,nevDaC/Xȑ(`g:[D+Yj_ʇ ?1sy*ҥniNNP57b<:'H`VHw:8w .,sn!U?-1;zL3GQbjQx768/PYjT=j$oFx$ m?H#pdnJwa8}{j%kmXS&#H%Gws\%5wIʴ\hFq `oHLj4 :}0,-84 k!##%O,%`X̧F^R$E_Lq qmcldVFKC5"4T'Lo5:uT02}@S \A 4,F7ҍS 9YͩY. iGvt̲IJx68fnm OB,8d+іUm+7KZ G`"bp}}'LYsL,y ,"k;ԊpHg#~ڽI.Ap2Io+x0JQ+)xPRC]sٻ[ 8!Õ<0r M3fXu0;Z2&^)^Wk}) XM?,10u&m3l:0) P"̿a **%pg/,4WxB3{|^(5%ed5fхM7|I ӚjWSGR @X%2V 1Ŕu\_WO-CoɡeӎBx$2SYKˀfS# Tv$J͖C3zSS9 ,^38 غ A7SU~t 6Eu嘉h jOi7'k]UwԞՓF]H2qV]Kf`|*M ly)8j[@zajq26%+ CҽܦjL cW[]rm]plC/\:Jlz٨s})'1uLexR/}0L8Nmh"?Z{-4a`ëώ6PX\Õ\!֠Qe(o`ϗP)pT ]TxjÛ;/gE0Acr ?Ƅ, 5dELhz9~(Q^Y0LSrhOY'V&U{h'6My:X,COng߭ʪBNomT”Lݵ=M.em_= -`c_3KR4W%2)8=(OD؆?sVe$L_V3fsuy;Ttߒz'~0ɒ.fD1i#CSS@SL+}H}P12S t¹`1i;G`3c:#/B kiXHRwjU`Y)1{(oQ"gZ'!*֕L*ӕ(%Ƚ!y 9A&&˙7ٓ 1JtP!^wIRTU>k{b #3=\pJO!A>Et!$҈^ˑLCZm*N*ɛY$@؇<Vf)nJ҅7׫y[v@>yX;Ocp'TL A-vJ+~p;zlwr%gZS.(RuKp4S݆?b\9KX/H=z>*!3h՗_-PG6So =lO?VZ ==.B~F mt\[aڅnTXu!|$PF*+~0T`w(P]<MdT-*dsBh"/$S(nۯTgn@M-*6Zڬ^lOMU)2 _eE:ߘmNBVJ}`_Q_t}k,3дv䕿S^94C?Ze Z8쇎𶁋@9#Zzs˖e9pߚCcBTrއ(O36MbdU'ߤKLU0!eݙmHhK<IQM ;7b;e,M@<~ڔN f}'Jk).Nւz4k@'rl[ ߇$*5OQ&OѬݵ-bȕVžFb(4XzDPgL_Eka~pQ|锒BUA >sQSF=^nt'IYX[Ŏ=@ǠcpwI O#3t )LhCL~gzn.F7gNo ~E !SBw@BAIyMS¯M* i0\WE9n0vd{#N/小_`^pw#(.33mƬ}_m~^L2 ߁)R{1Qʪ :<©2% ; ~SokY+'fʅ?~=)]&''*u+&/DR[~u'_޼ƒVBW"S;U>J[Ho?O_KiH=o0KO>P$:@/~h{=S38$?@,'F¸=͇\qSZ)KE쉁|YbP8xikTtq-7ЗY-&-r"R),qI*Y< 97 z* B/'/ _uo'hbIlsO =7pjS’G4`+(U& \aξ=PlLJҍJ=t @kc2[ ºg.ID8HIWB"w}Pys=X.Be'v*a+Ċ̰"G& 103L0ә\sZhc%Dd-) ܣc*ɈNx=`;̷Lr[!ߔ6_@vC 5w(z x|5]ӯX){w9:6`^P-٦CkhAޗ~tLgy$1I-xtzjZPI14Jc9FeULF ԣ %AV \Lp$pL0Bz7RluS C5k;;MfĎ[bN-%sد&hAw60nl &p -UaWxmXxB1+QI7fq@?cKWjL|(s=k {Iy:]k3jp?}监f_sJ9!SS4NSav$J՝n&0xfjx92@ N4 &Y yjLeoͥtF!9aKv8b9b|]i<=ʉՒ`;fjXSb T~)#p%~36\tU Q-wFdծ'}pX6vZQ4~gg_^ЀgM.t$ +Lrhr/,u>B9i5X&[n'ꖈhf{?+ %|5o#e.B&}$mJ!{.#w6傕Au-h*oْ sectJȝK討LDt>Uue P 8%OƲe, UH %)Ac)&w2AO>vlm 2cv)ȋUì\N ڽGpBRm}nʁ_NR4p(xqlB<69 5Ir qi hVcl_LgE.A:eTN$Rufs\If¿TBY9bgS蘮{Fv"N۪cxHU rqPrdf ENppQ!/X *.yNUrs Vo]8#0<5/F^dDT~JUx䡰%\f+bBU 9K08yau .\C [Twq(GoQky12> _ o(1Kxn/ߊ<3{R/nD^)7UیSd a8OfY/Ota;s%\\GQw˯Y9X $1:1iͿނ/n痷,s$CE$y!Ԃ2Qs%KfN'1xB%ÓpJogZtSkyy1\0^'7F.qM͕ *4o?r0}G 8N ])oU aP@`pE3n؅jW,N7VdbVho1K<?T`e8᝕AnɾEҍ?znC[HU~ d8 PiS?V[ BMBL]O^!Nox*HͫS2y 1DnϽVLEE|&m/XҏbVyU*@~b(p0I>̜3ӱ9i ZPő4*+uԏzx ˡ_)x5Xͫ[!1=tto*'z"Av9UfOIK^g[V{dbtȻCȻK}MIgXM T,Q}b'crH!!X:-!9ʣoH9kr 5=NyV|  eSr11z~ o=?ʓy>2MVgvv5M I篙 '  U=6 VR[tj 8w.2qZ]')1+YJ%J}Q>jW!ٳ4o}( kaE`@뛥syua2+ҧ3]npb-Axlɛ.!Uyhr^q(bpk^ q|\-贇 N3$9#N SSEu}wJN`IYt1nt"4 ᘬ_t%dܮ%sa3%:N b=IfBB帗زO7=w1״#o{?_ŒšI 505y}`$ A $р&2y>4l|1#_k",[IW-x:3@[åI-Y/CR_&hYҕ B9n XhUGI?{^ou:e9~] ZVxƺSSochNħoEbm }83Aq6bgYI{f."uj F)X6:QVI@f|+_hOy]5@k=5 ~k }BDInK8pd2WaEقA?W*Z19aP|z=du9;L@:"@~Dk(vI$qrzR Mxjh,ָ}SbPGdȳ0bn|JCQP2YnR4+ >OEu(T ~?Fu~B) 'Υ JJT$e:z<(9֙"e௼b OlUjz-޻@Sqr8>5`ݟq{%'v{1Mi̖ )@<؂@O$Ny=&y^=o&ƫߜh:Vqh22rTmmDg;'֝q#FRoˋ"jOL17I`dvVb#ik2$$T{@W? PNb㿉V&-8P^t!M,V8-" Q6KKV@yՐ-MB:h{϶iˍZo2Vw;9@i6Ғ6N[.D{4)Tw3Hcn6$YM'l2NKj =ixi(E%V- w*fC LvR a~>)A0ԉ,@W3ͰF/%;d̃4f iJH0U@D"5j#bs'5 h={NP&'*_>( ^,> C / iUy= /-Ҧ~6FpE ewetf"X-9n(2)wAq$a'cL١av^XT2(sB}qc/:h%^Ƀr=w&W?ϟJOh%a4ZTփbRwZv2JW+-DWJ=F&^h`u5CqayJ? :8WlGm|@&섿ۆD87m51Dk㞥w=sD$ h/#s/w;0ՕO@Ys?P:n--Ѳ}rMǦX9-κ/zJFJSV0YnC _œ7@sr6ށqӲT*@W[be匫bCZVtbGU7U9 /l+@BK֘/1?t@[w)r̭\FL[a/dcfm,be =1F,_ı %NtQӓ{% (B:͂{C1 P<}d67j]$N+. /йk9M[hm f~4"*2 Dn`p*H-b:z dfh]8"JœKw_^^Ԗ !Ū#$1ʭ`}#ˊjmlN㥹,g5T~'زY 3ܔC;A!DQ=pJDvaf$`C֟~ RH(KZ/rt5䕣m(8Æ3jV4-M&}R]lOv.h{v$<:{bto> 3m4ѣۊH/!~yRpޅZ>U gؠx\PE޷9ʂN}D \3O@$YTd^s Q{{HP͔xjI6(M7sۍ=,anj5_߷V!UhOʉFX79O*ւOqbtEl"ڗ*ZFX8̏;fՊȖ6+R?sxC@|lZte92+4]۞kĆ䟫k`Lʶ\jm!G*7P ֞_RT3DC+OozO  ո(u50 CʂA,?߿^fSJ>O?]A]vbaa,e;W_:MR2hu7jڷ4ns "'U9'OOِOUqҳ٣L Zr\*E/6+'a1I6ju)VDq1/`[Bͷ4)%ȝY:u;Gtf9~6,2abgVrLqM$1x Stܮ *P0aoU5! &i0ws%}6R;"-3\=OrzbP/mqߎdة Q;p?DKS %1,8 it)ZèfȘ`Wnˋ$k)zmo.0?my@,dų]dy^Y &^h0:+,O45>!6*PZlL,XU XWfƧZck.7}#E%WhUUb2^])}۾*eDo'qu![=p`>kwFL#"YZaw׳WJU{+%z=|L3ѵ \wB4G9 yVў&_ՏJ%*^QLPgX/Re."iδ4O Abf0ϻ/stF"(;TY^TYkPf ]w,LvD ى @蚙mbaGJv3HmDwf7Z$qNL Ux@y|eϋ& 74!\6khNyE|yZ\;)4@dAW9j%=o_]P6>fND$ k8 L1}mDܠO]:֗4:ObiəH{cn7{{3J?jj@X] Ⱦd%9Iy w;632@N36*qH7]3:V:S8֙ERZa-(kVz z4F_UfqƄ儇Ow7Z$WOW,kuG\<*7$s(r}E6xeI0>6WTf[L݀M$⠻BkoydV>l*򎆼H^\Ƹm0qEzl=t& LЗ 8~|d:;O?.8JpA-Xpn4.Jt8 gY5%hf9TDGC|JqFA<}0EISj/ץ'qGN<>E喊M1;33tGDiĉn]0aeIo:DP+u&FYqc>!Ch, 1n7G#|ڳݡ딸Ō,)IQvJVVR(ήL߶H ,&1؆(6MpGC3?8B IF/0|RNpwa^-ܼ_NٖLNjlr>_"EW!dj9t@LWDouН}KB: ^;hXlGzs ;CAZ3r@4@ 9򠿏9^т[~694UMH\R#ұ/'z!2&Yѱye5'` xz}!њq;>H44?Jl47Im+t!aMV{5H {7IH&V8h;w>6`nRbSFb.h%tU\ *I8YRG:Л*:cښUii .d6˴OS52s3K~=4ċ2mY1GҸmg%?v̀!TĄmHN_k#]CFjB!|=*cĥ(vP=^R˄ŏ32A2ʓhB^3]d|P3ٷ[(?YdK%U%r#H\ao)f~Fg69LL] rF%@_{E9rQݞH5-hzU4EM.c?Р.9?%;eRfp Czlx6lGe. F"dő*c6$ p󅭡3O&Bs!+ ,EB_VmfJ\ۨ. SlV9ǭ!QGMyZ\2wCf:.8].T-dזWSU3ND| yWwdEDT?rg٣8`M #90z!u ,L]x*= me. gX5 G좳+]8G/b Ը3حaMm5O|elC4Z$pÑ{l*a J>d} / rOݤYy9v7`8262m@0V JMׂ^Nf䙠t>OxzFzڞĆnX bA⦴J}jOr XtAzsɇXxi|Jdm;^S9ğS=brv}y5DEՁIg6рM>~<ݴ"IRcQV+<;dyS^HI;I8E-Lխ5k*FRLw&B c/馻{"Kh0R@{NJMju}r$ZҫEČ׬|r?cEB᜾:Dh.)nuF pN}9DO+Ǿke-^r،5mXG[JjB!~ٲ0QWKxc׮͝v,yGIQeOxnE'JlYLM"rfO|&hM 6Ak)tywF,KA$=W1$3+ /ޮ4"4zN .j7Q#f|IdaOW}yd &d^@R6Ou,%@А ;Bq(~YqguReO39GaQ}1Ϧfy4Ǡ3}wy{.rYI*қE26V4c# ^],il9ɽ`(,"&8.͆:tt1pfBLZ|G-JKuE{8w q4"j-m{4>fy@۬~k@*@E m]K3I~#nv3C`HOx[:`'49DBsW)2oV?8&`MӞL6Y_HCIaE~4_dz1ÊQPū %u4Qx\|κ׊21a;_Lcm%4Q#d`wܨ}[^y/ZTE?nB}B?mw%'VA0ezj<8J[hTuܻ2`DT1Lt{@ o,vSyP<5"pG݉J$"yO3Qi+x&UYd¦PKNdrd|@2;8:P^ f^E^"E)vz|H#GY`ZO.`Gh*AT)MIFͶFIsq}iwQ~\RLLdT@߫ь|PC$E1h(ˌPeL3 '5\6f_ ?7IH&d`+)mŃPښ帪oI2UgDAX*4&<[QePUJUeofތHq& G^§mp-9@R' f $48*XBCIRϞ@VycD~G)D'&XrPߏ4Ζ-EGn8>@R!RMvm+ԬfV I1qW\('ULЭ|@3E#٢!j\T;8t")P6& E?dKH_̱'wϪLӯ[76d"L֟0?dBNrP_mRֲl",w+b~ ۽;_:K{q:M/Q P?0vFںyUI`|Hc$i`R7XDF"l3noyȳ5x`Oc piXWL^X{5N {XڂNV+Э07e[SŞC.ZӀ[pZLpt,uɊr씅EK n/ 7њ2x }UPQG$D,IOL'ee$ԼE9_Wʗ(ػ` <`+YG!q~i'lŏFSpI9-%zf-Q ru3;8rmsKLBYB8XGX֐o|K|X}O_qSF-v5<{Z1ȕϜ"C8þK`MZX[_`IRD6ZFkZ[nL$1$MQ<֍z&TY5xrK36G$tͶJk ]Ss{+ $sR[X@Y%_{(GAs9V>ʾ9LxzHhC%t=x>uӜ"5(=No^TLſ ]}LS aN)*jԻ" ת&jp"kȟ:FD`[= 9F*!P_07aLN^?c-`{Q"G*~Vh&Z!Wۑ$q9:+>4Ɛ?wf(6ѭ+6UV@'7mciGGAVTc $ge_Ykw^ВqaMT? G3{^-2;k8M+3PCQQ5Т^A(dėǏ% ++^MڗJ 9\Md0+f5J_JdUv@_9j`3̪+{-e!aZ"ZXe gț#ޠE2DΘ\!9&HAY:, )DpM|f~eV#` !Y~1ŀv ֖P fcmԡly=`h ݱB <\H&G{\Nw8}ז' ]YwZ2ZCWnqY1< GyHgmO'~-c?D9{RӰ]#(s`WY,&xf4QZ#$S\VVj_OfIN`QyIKH+fSjb7#B)via'k5D:mcc9_v쨺'}D]Cs;ɏdF*ƣ>_1hv/+ꉘ}J4: K2n_fŝ2^U60G.X p#KEoYA⥯#S\_3yπ[v.$ՋrLb^,D2[\P{B O%_>}>9q\toKPU#Ub(kJF?u׽C46 9+EpӘ@=ipǤYcE3uw3u\U-~^%+$%d Ϻ/ .Lvਨx=-5%q0Ect3=Ly;oMřslcZg wXjP7n14 AJ}˅ aBT_]  zHuPAjsdgŢ)]REk֗w^N*$`zlw{\XrZD-/In1`k eq+>A\E&|VME !$Qbco/c?+`QK Z ܧ 6 ƹy-,V+hO꬯ @aI~3lb/+"NhWŽ+,gr2嫟hG{e2:Y䗈AVuP,&u4*W8:ryڸ]ȀUk$pFn67$aِg)m#\nP.nG_F=*⭡(@U$Dg4*a:Gܹ~S٥cCH2Rϩd#_Zc"4]k36 B"M1Q ˴>9(=Bl^Gkifݦ!\Is'bm~hdFFհlN1} pB| d ovu)e\U[Ge'0<ղQ"_XNE ĝv_(/ ZSU%?1O"_f,i-ƨ* H^6 _e_MRT&.!Cw|i Lؕ{q /~RM&`HP'L%hN<qHq ѤFa\E sw1_16؁f_옡omAwQ@^8-GY-i;;Ct3ePR+>Ӧ *%FoT~+7-ִ|< ә#*+y>.e8Ȼ=Mb7]hՊD6PcIq] ;+z&-Wɟp_m1L_zX} W`碖Ԡ̾@XoKOPA4N>knc8lN؇^gW"'6trw=' "C ɦ)暡eلHM\x:=L#s14_\?2xV ZYh)P9sDd18CNNN)i,N^qq}SP<@.8*縸>Gbb13F\gFg>kc0Мyqfֱv)Y*V>E2;؊ё:=QeyB~{2N6Gt6`WDC"b"_uW)cKɑqX5RCXk^B=j䃕 ^,ɈOi1p&޲nXs(8~[ؽS];YΌ͘6eF6Vr(G  *ݔE)lodwk6gGEh1<*]fiJ)/ @+ƞ PV$V"Zy1MƚݢNv,6?81Fl|uDN2$g3aJ$L{9 ͤl-X`*(t1(AZ!1owHoo]L㰳L˴#E9!'Ch1Q&rS#bqMmz#XsBI Z|7IT qZe \w)lLL}眀Cl39{T jKygҩ E$eGO钹AhZc۟H^G 8*)ϼ7A?$jz>#e VK Fh~8.Yk5 4Veo j() 3!kG4=5#^g30&M8q|L6ĔL(65IG6ƣtUZR;i»W(n6< |HR~ @)ID!"gTr!ڷ.`~.-3 7{h VBO {?-1'GCp+9YGɃ^V\;Ԧ.\ofgӲo 3IЭ -a4`yC ˘۞we>ދ %iq˹>S/a<,޳Lms<6 *S06 ܲKOVIe "{bhlԊ4/}Dž^tGn1%t'>e֔vX&F) oŠ4 ni/~1Bh|rʏf.rNX[ 8fVDվigPt-πQص9j2"mx R!uŻ tǘ&p%ĝ=Ap8!-% aIVs}~l$$=iX<@@zOL CIw+5R.s-q s"G?wDaQ J,K) r,N Z+`/I*eɕB$UUE sZm_BE$ 8Q^ ~.q#sr}G 2l$BZ`TP %0#݀rr iioEzЪjy|T@Ek뷉it}GpJ0@vY>`y CNYc-d$ VDH]F?./;4m -[T9j e"*ҒuϮ07ab+aID4upn8:: {ue,zPl&e B"SNáHb.ń& :ܐroV@ yάFd#84OK_rFȍcnڇ!j4.RĭoB uY.}QU%w1WC.ģk,TAA d,T3"8 !kՎ~ Clq_DߙD+>&B-L6Bհ3/%[7Zf1>%aCC *K-c6 NdĦ)qs8ŇD;{PBU?uQ=sYlK©q+]τ~Dw=rֵ'X aXrP_eDU#YXG3Ur"m);j5{99CGuyEx-ztS X9ڬ8=Z,v}?TtR{\"|Bn$I`/<5x@e~  ?@Am^/a$2-Z|/ZxRH뭢5Z. SR׃'f:c9ZNiuq9UAOۂ!m\n|$|hKqwC/sDŽ@?Mqw DcS hqQ$Ve/.D|p-jι+G pÂJ4tExy~ m=:X5eޑ!(1p$L7%h#.?xe6^Cm;,]xh\(/뫐l!“bu'l[k\*XXXުE&2 C&δ&Qaj 6(V9߹4XcmΓS® ѲU:u3N7IJ>(;șŽArp,ӎ3Hrg+ #Zt|?3GG jxKx+1hj39߭_:&Վ#"+kjK)1"T>3pjF9?KxT񦐔@2ɐ_q7A5CQ|x-KPFu{;6Z:<lUoEVB ڵbTx-M,L<: H}w!=ٚ4@T\")2p%fZ&s߰[XШd ;0-?}4pQ җ;G JMl("ngᡶ"-,(Jn _)h\מǛBCt6 l+tĬ*ݴSݚ j7&{&lcO7U4ǽoaQ ;Ү 2Tk\6DfQuB.[, 5wa+f,C*ǰcIxڷ7{df ;Jֽn*kV4/C5!wӲHcȖ1J`;W9md/H[Yă;s61"0u h/ EryW!**yy0}S_k,v[F;Rb9e :;6yHl<$:X)Wq+=g@A$:2 ;qfN2a94⊅uS"zř9L.TߠwkJ  2+\H%?JLP٠o7խvU.sHUDmt HPlwIbmm LGpkSx&|Pң=H%3f ;zGNASq}tr%t]Pՠ,|Xbㄢ+ Q 7rPxYmb(mV!}Ƅ[`9qfLg [\@ljd<8W"͗kBoNKԢ+Qh@B mq><8dnP6E0 x+w /@oH,ThQE L;w| =*n%&?Rz~ׄk?[waǤ5.KO4{M;#b\0Kg O$4,}FuWSM ~1n~ MK$Vi.ȡl̘!V`dҀw,' b:Jj[哎L ߵepa("M+=[ҧ,.^5Hyʹ?vBo3Z ȶߺMӳhkn̤yEJ1ooS)ym6Zzy  ߀qD:Wb~Nj+>zpŎ]uBd7qB\H|ǼFM(f}Yc2m4֛aGTj!hdGJ^ly(!҆ī % wlכp{B'a t<|9,0~x`3zPp>zϧ@YxRWzwU9I'αܨSijV owujl\ P&}G%P):-fHŸWn@Gue9=#(UEɞU OA y7|g8 "F{XEDneO&NO?~Ђ,c+,T!5C;RzuI=-)_(R rDk9cEpd3+ּCc}bx򘉶7HY/? ͣD~7t@E뽟,h ݓ;ǡ}q7*Ӟ7 1$ɐm yMB],Mp_t4r5n4w \糗gq5xw ~`(? M7޹@C~A5Y@gdyQEpkҕRec8ƪo' tO_Jl:Y`b -`$T(mKƌM5.ã*" E, ,3IuO߀c[\iGΤl1ڥ$5 H^?YEs*Ǵi 2 CƑz.j4AJ xXehUz gF+ 1g v .hC4% ̩'N5}\݌Cx|yDc<}K#ZUG"V}xoL?2E,L\sx ax 4?TCB'ʬ3NJ!вLM';"F\R>ȷ[sE#oQ0xTjw@4V ,TZ` SRkeCvâw:2* tc$$e(OZoLKI{ύ"A/Q'bn[龍@'G C6)ydw۱:l1RI Z"y~UwQΕLЦ$="3D-[s\{ qc)¾Tf8B&::t!7}Ɣl@L{kphLp1'Rke7kȾZ"¬|ׄGg?8 b%$S=@IM -PR vSjc$Vsq3Q$fr4>*LnriǼR"78hY1nm( 6ơ?p =މGR`e("<&Kh޴," lkp&fjA^μ7( sKS>!.1sa(ƁL3g/837cXeXeLS3dOf&4G|.έLgP"/ 4_7hzݨ"KX6ζbb; #1^(#IG%Go}`;E`&@vJݽ*Vѧ7GJB&Liek0!3;m9$hŢ6,qwx~5,J& 2-l uwelBsT6`|]D?z:l#^z5,y9.x jGr{j .гYEy')@>DͣY<#/ߜC@5 , ͬZX+yd~P}ݺj)S@Y*?oZٗ3f ×G{ί.~2.L-χ=!#ɟZfYa[QhwT<ްgmS\(Σӧ|O?QM7%3%֠(QJ~JMd抷 eZìv4 Rs-InQPdQCNW7DaM񤡕44=]{\! 󽯍)_=Gqmi nvˡ=K7JRj`̊9Di=Z>0GKg} jF jϠm/IeOu_""&\eV ZgyT!]< ZK|,Nw41+s&g2;y!3mV-߰TGq'5F\>֜v*Ǧf 9,ninȌ^-PSF4Wx Z/3NץBȉy۷ \(5},EzM3x&m^(igzPU\zhS@8S+Άs'eɀ4*Ut肦x\G/wcS'd-쇜B=4@Yb8WHm`|G9d`fן?/g,q'ш{Yo]QHL?ں5*-Z/f"ʧЕz;"{/zúh::'@&qW||*yfj]_EAҢm"'>a{)Rs˥O4rK-7חmP7WPܝA΃UAu$t ogp=^6: i,aI'f.a-0qĥ9(d() @Mȁm")3¸:w- .?s {RE8WcƿpncZ ^ȓ6Z%!rhW?TfUdarHzNz;,T |mxvy[00IeX΁?f :rX@h[;"Tj?3yﵴ'vyC\ zO|G9oM*(#pH[Ց>r,pL{Nf[$ɟ)Ni,}(8=*3irc_ o)<kطjt9*;IEE D82@deh2 pe=8 6$<"|z^.aYkv=~ *l=o *C<\vgrU' )6$%-/7A˭ve -@Cڤ6cۯ3PӝSѴj$/b  gx=v䐏gӝmZFܵ }P\-t :@`I7LL CÍTU| | ;h _Y<DI2oE\ynzB_=Ud?dٺk!Cgb)wgQBjEۃsB_ mRW=Wwy*,kWruAhkiW. ?'7k|;d3_|TbD"7<`aU&265B&=iuWQ`rEx'r`8rÂH+['l'Zߥ9 'j"ўWװh}m`5΂l;-ɢp{hʽElH~UteT(7LQ Mssřr$ΰWfmL^N  X xWa I77|+i ZNt]?s-a=.|Nx9-*XgĞ8N| {s,|vf:F]{9&<\u&џ8 -D[럜sJZwuk9FY=dI1Hx *`M Dߎf!B}Sǰ)}2|OFqF-@-@>}ըmm\i2hnu\5dRaĐ%nF eڂ?ttV4 Vm0taP=[Q*(^ Ɲ|[ 1w$KV3 >CF+OX2vDɢ; C#@!BuX㞶A|&bЙC[ಈ@- GM#ܺ0M I[ IrM [7=2dMΎ!,,p4 zRJ t?d4Kc4D]}qPƟyBQQ[!'#`  (^P>cFo 'w}ZU Xߥ%w1T oZg:>0?Am:Ύ_w%;`4;$Xq4 ;A$.yTl+1n!h7k:'SwMRl>z'jH/zKU{0K1]*%llT/Qa2ʤu1568G%aӗ"b3QO_Wۙf|a*VJG'iCY2}o>POwfnjndʼ2J¸(90/YߛId؈3K*P&CA;G Ag:{Hz|J*>ɬI"]ƴ/&tn>9+&uuVY5>G2,eT02O[6hWG}qI3jqI6> S1gE<Ԫ :\H FE_}FC+'J"ͮ0WWӓ\uu <]k! Ryh*b8ԝc.A_p<R[%06d{geDWiʳS1HAРiZu#w;c,h/8Fi[nv~:(ҷ4.e`s ovYYEMm zrKwK8b5るsvu =CҨA#S[{*g ۀ*CҳAqC`X!U*=?N y$OL*z {33~kdHrk]v^>0vL%$ܷ̀u͋ŘK㜕\^^:JX6yR UU e١_կܾB!Ru89v5EZ?דZ/i-U{ S*} w&Ù;T!Lg3ڮƑvbɆtbh9փ: HEakaz4S=\`3G Ӱ_݂D87Oo/5vUgh7(6?=* )xY_wW2;1U t (rlv^cy0dx: dy[@ܚ6Z8CVT&Щ듐F V7h#+joy3ߡ*EcH2GG}nNin>kz(|6`42d}iq; J*L92* oF!Vroa9-viZJ(y4Vt޽Ly.-aЄ_r_fcz=kmk(LHTb!#=bBm&{)-??A;Y,jpg~7P~'E^Q4dˑz4fY zz$0sp@R9%X$7eb%Y'ʁ)+` &TI~KQ,We$|ϝ֞e_v@_AUqQVe= "4}-a#=l~ =bHLIcq{uQV-wMx\_+7s;zP35޳D-ͧw{J{ dbg)vs**>$$nBQ1W$腴 2ѿGVqzQLic}m/uPBbl~xe'tc70HlYo cd >wJ3߳RAۺoeOqe{V&2ohDy aGg36n\oFDB\ܙt4y}qdruлIHuh}cU yK< $NħKL9].CHܹmw;߃RvLO&dԝt#@왃>S DKg#UPf`5;LoU~e geGF#G* [x?T l*}H"9(T1giZǿ96VRhPQ-fW$'?A2J8pmx(>`t*7;tRӶ 7'КkELgG:]L\G_MTω:Ռ #A.R&rENb9lNO+G8No)wBR:skQNosv8 (}t#!hϱU h},:Jw9,̨]@]<7^֠x%Ӌ#{J;VU5Jˌ6Y20 -N;{.X?"[KjPz5>牻p_ނnF69?*vQVڞZ6U V;MN%VM;[`7˶yvAHŒab 1zAݘE~t %A\zR.nq">-#!X9@܊߂Y[\mAI?% LMݺJ4x`>0_1㢿5ɱLj A, +zsO #ro}nxZhT/-^NRlvQ7_'XU_#}9~Mmq!fNOu27x8-HfAtQ|=ƴ];<hxJ{Y2C &'kY#EJ 7 nS,Q1z7<r~EՑ+|$ԝ$B,ESl Ge`Λߧ/nCr{xsm/ OgLsJLzdzԑYE+1hhi1%tz~2`z]2ֆFJ9l([)8s6Sh(~)>RR|wMcxy&´ \S3a$ I4pEb_uǥWV7N_[bCiĮ蔸|nFI -X&1 e|Tm~] S>o U%m[M$%vf"+PoExM,IHMhw{&rX' 'JJڍRh-ַ56Gaߎ[. q{I;Eb=~հ~6y1C:E{?p/ލɚű * VԔNrIۚ B"J_(< + ]N$%! O3aul<ݔ(͢Jۉu厵~zD!nbǗ?Y˴ge Y @JΙ*ޮ@XĩQV̖Ԕ@>ڍƧǧ.szl/K]H"jRq=(87&Ndލ h8`1E `m_ȮdeYu:6.xEə/lXrcXƈw}IHYX0=Xw$A\beD{nL] ZD 12 4e%8tjp*N]'ENc9rؘP1O9TX L5(w!ltqECi;# q`WW43!_-z_3lPᙪR:S5ߺ{ͥu-!+Pk?ͤ(|b9>.w: plh(]0s;x׆pWF6=a&7LЩ/NBMy¥XdPռUhV#͛3`lkemi.j Fk1٦J@2 CwW@r^S3׺Kz#dZy.Q{adDwJͳ%=4h%x*Uw)m-$T;[N0  9"W2Ia 7eU17J p=]9}g4 AjN|Esad-XO{QyJ$|HIgRɲ9wX`]}jBƭ@O\=Z-85xum ijZ^z5+1c\q)^ƙQ(^Z_&4PуRNx&2:.FƶN>$yLd v6$b7xxTO+'.\Iǯ4qmIp,I!JA0Pw陵7 4tqnA\xSa `kKz>ċ)?؟\qV po=& #I"*fWOfj9_ʸKK|(b̨"kbO~9ױy@N~2*v5 h%X!z~"o-XfQ[#b*KYQIDQ!+ S1(tBZFI@Dì^X=*>TG:޻, )9ҍأ]vx(D`޲'ElLhc-oQ[=jfwxj`33Ӯ -SJ B- rI0S`%&B$%dF:GVcy$zq^8W̤|f=].-!_2xÙ̿2(fK%ZmbOe]xJE2b+A*l!5z饥;j^I[\,G8{ BHsf : ,M ;#҃!Ɉ&4iXhvK4rl쮬rGRv ,Ӕ7PPU^m@0yߗwu#A"7RgA,U~ Ƭh۰2-cY9Qy#x:㄰S\ |l|Ȟ}rI@csa@(0]ͱ̗Xs V89X\ dDZK-LPeƿV"bw ~8QG9{NJo@Y4pueEzݖ<RIO~eiV??\YۇT ޜ ZgẈ(s5"t$YӾ!Q77tZFii?џrZȎ_4]f.S(Э 2LN#97S,k\ZK` Ao,HHu c7Y"-"U?4'.>tb`Z"8S 3߸`kU 1IbϩF6vb~FW=ikG7]Xg'lo>/hTt=^ff?+kLPK:~?eV0`-4B2tY8*ҬW蜸*W(b5}wޮic.LEFŘ@&I( \ZN ,VrBB>mT:s!k@Kidx'% ]v^:`ڕG>;vqȷV _7e3kG'Ҫ]\\ᅵY$ˑ?ϣ ŗ]2?X}<|NI= R ud_g6,7~)'i"0B{-H#uK,xom&KI9j aAFK¡A-ٚQ~:|_ۉYo$߭K1L. xIc\f]cZknZe惾ëA)ZaU Sc`¾m,>2j{塉aNGh\.l+W`'_+&SkuMfaofdm3n%D&W.J0~1 et3IA0%j `DSU@l)_p{_˃=AX "Ew)e*x*7"TXZ֩@d*=_Eq8eKmטʔݕdr_e{HJIXmOm[e1ߟVBDn.tu }=XպؼH3?0 兵qwwؖ_F6/?"z+-OՍe; QV2șXReKREU=xJu"꺘Qe,pğkkɚDq!%VqҊLۨ3}ftzI*70ku+V!fUBi#j!#G> ٤ ǜ)kkvYbA7y/\+$Z1NjY:7c2 TuM=Xk|]A~UktW)TDɝ9LZ=& \w[ qSgzmwkq +w1F,╭Fx+r: 4z6zAs&5;V-hͬ_StJ4J`ETR~V&)|T~gY|ʫP>\ѧY&Xx=\A,,N; )\e3}a#5aޓ7fp+65\%MA-K5IygB~735'l'L2@[AY.o霌L; ( n֡V8dT\S/m֛ܫ˺nMM?2juDgLƉ#\UƟUC iϯ\m i+]sVҠN`-qŀH`0t8zv\EhAdG;YnPSlS<]Wן{LXS\p3Gy?$^v1܃is¢=k-t(9G0dB(ޮcCs9t02jü0s9b3nm(3O7eG j#ut}ިﴧ_cF{\lĽ waP%3,6 f љڿ"OKVSpXsZ 3b{N>_#[=vvJ&^( 5=U~p+Ԉ?/t%qb ̵=Jc/*&@lj_1hc5U&-ETRDM+gz6][QɪU'u%P-{I%}ӝp?<2]Dj/CU:o(?1GXu[ sa­DtDh Hm(w*$]H/-YPK^HغxHBs5:.F8zĭ D9`)O62m) ;99nͅIT DCHuZFL{YlW  +t 9cʷeU`I綾kknU&s,74@W.).Z6 k qRi0{+ZOHv ,F֎;Nr֢@[j3=Jjh>ڑp3~PpC$m$iyTdJ69Î hkh"gC1mM=²sZ_u (ik3 rSְ?V+Z؅ςI %iuN܈xaqwiFWG{q;3%}t\mkQwx89l~?ltkBܾ-QbCTi(vZJetQ!J['IuvLe;ae6r@5Th+iVJoF"(Bn .ޛ]uO7~ {)girEwGReEh_]/@F:wÖN&(m3[/mC;G$.!Y(RÎ/ߊh kZIh}r7djLoF~YPo QL6?W_ Mhv" u7üƻ&[MTqt:<ؖcVH^=3QKQ$ߣ$9Xi0 =DGȀKO5l/6T[NBR?V#V0H;S_stVgeJn1U|p浅ޮ_18_}cyއ #_ U;X]xO}q\& $59-^W#ǝkK|{lcRx<CRvTf%t0wj+<) W\hSϼ=x$תhf`!p{]B|˭Dv\V\a\ڨÙ$ϓmD<;YxwPe1o_X1d[؇4z#7 PW 6諛azq]l3-pOhi>۹7c)l5sEqLH֟ÝSly񠝨Es#KEK`1`J@Wkp)'$k%fDU2}ycAt')Dz,2 ^ u* ^)R^T7hpI,~~ rȄty&49MӤћώ Sڗ0TB. WD|T9@@#ʃjG7E,]@p "c|da+o>~A,.%v'E/Y蠝7G GZ^& 'fDD9KR;eRڀm1Nh,7suKLR ߙ C!qٺnze)mƭn#0ŭta/ /dBt9u-l`EEW6^2/t; f qҍc[JCІ"y)^Fp <$VY]Q#¹ w\!?'{.-3*Ď+Z aDgh:JwM-CL ;i6 x'v2le(:Zɕ>#pPvA^;Q"9%S=zs!N,S݉(*텉DueYe۶*QEO"͠R&fM|UCF S:-b8~ y݃MădR3sfߙ/Lo%-SUF ȁ07"W[}Neiz:E=ܥJ!!GsS6mcy"p7J^b 6 >ޝCXQ }27+̐(b,'>*ݭ gl,C۝D/R?P:w6ۀ U#V)ح7 W8hud՞N[)sL7єEE*l7r% j'%*ٿh)o`41.] &/w@K1U; zrhįDZSM'\Ekeo+Df8U~@aWQΘ n Go6>oprGFY !Zxȁ=?[Q7i0Z -GϮ"1#f$AK@r,rԋKil41@3Q< qs›ax^~W .-FF[*Ͳ 1'}<9b,Sݸ_q\x-w˙|d2YD=NxZeBC{dGfi YOk,[2G O1 S(k̑b9sQAge2pwQEtAؗdzWcPpK=d ЬZS$\U:՝4yIV -UZza%.npEWHt[BGZNDG Bd{p%lI`0슌#<.BjXa'R[F݃HRP,tN T39HḡRA{Gbs.,8,םeh;CM /!~9w][)iC84ǜD%\Ջl TK6o˪wsWvvK+6誯{H9 g`؍k 48bLZYtHH`(˖D -e'Xo>VL&8[B'n"'o#>rR͑-B$Y|-α쬭I[%m i$^DK#¢W? |A~$@|#՚>~~,j< _ۼj5t6l\7Bg\r9a}}&>V^ Y0XƘ+|jd0Do]Si%=ԑ.U mT:f<1Iր]J>:7ASxk@Y&>mPX>B6VHwGtkZYW1zR{KUk Df|娎{*ԋ>)ΖM#cG=Fmti#d8 6zIi]]r}kߵ(]rzm*,)-RmYh)BVt˫t0S[+v*T#8)J99m0o%ƀ?VOkk g Zyݹ絻k; }HTB@YVnϐ6M5~Cn&c*d)VM7ԢQ7?p#W#F0̜CQ9H4|'+ޘM)mInK9pytK#dnt3?~RtbZzgW\d1@q rv~ ')h[ .a%c #s=4>ѴԠpݶ!H-Y`PEBߜxEUYw] `/ +ʟdamLMpgT\=I XIw9/s*6T*G(!LCBu TZtZUt)2>m {J@ѕ *L5=&w+`C24Hfrysk^ j@ؠzEohĤuUB2"Qu_XOFs}TAQKF_UP$@Ȱ>;g!2Aru!k84 eT퓛|.e[u-[e {wBS ̠V",,Β_YGiVӤuW;_|uߣ]?G[jcjSz@Fhp48Nj-ׂG.Э!92`D,7L(_ճq%qNIJEnEgYFs QU=@!tM4r({K44?%O)*K=Hi㦧d=h ͫ q#x&uD,!J-37i֯w([Bl 9dmY..|`aX{ Kod3 R/tMip I(g\"J&1=YY+2Ag Lr.Jmj*KbSZϼǿyW/IJ>gE1nB~'#?_+ ,Aΰ)gewTAьs0VFhek#>8gTԕr63 [`Zhl0# W܄mfF8؏۸GٔXu> "w!TJvU؉O縻#%Pi84@=qz+ռMWa #s.L4d(Y0^ɧ4"mai?[A+Y/<; d M41jnCM.ELq"c\"{]ԧ[iQ 7*c緤=NH8߯YQn@pJ:ݑ3 8K f[59T]F Zl^ 咶fL/` }uGK}We]|XҪ5<So=Voi,,#L/L]DEn2v|pT7鬦&Mf?qMJuĿ(R,%RWj̹žɭPY&hAs^c ,PVxdfGu=6A%FpQrU2cUJR/xF[.-52Ebɢ1d|CdOC 'unCKp^t9({x/ 6zbNm([qHW9jc?sM#m}EV YtqWX , ~] ~|'h4lTt4ez8E>1ʷ"nn L.,&끀|d38sE4]LE'lj '95w[[ǝvI%+#΅ر'pTMK . D:MTאqRkIX'D P"I@ɪ1/'4swCUBCaUxaXvb FP%"iV9xu;]HdOJqTR ]\0ܔA-$n$]&2"#N[&} |y BT|%g~zz*yE ATL6Zk̀HS']x}+(1Ʋ&7htK'QWeU.HHZAEFЀu3v5 >DIRh~vϪYTymM*PǹYCǡ,wi}1,xs2d|0)bZ3 Q!8Z As5t=chQ y fu(C@ݦR̔֫_a4sGE@V !U-O{iQ.P@#9vnON5cSMW0t;9O>TNо?irn[>^pvo߿om]c?1Zc;BUuslJל,B[} h 2wF+)p$Ƙ*8̹LfwC_Z'8CA-C>X3iJZ,qvlfT3Y^ԫ,hbb7B\}Tqu;WڠH9g]O (A0`"A%kAb{^]jЕQ.ЮXjfGϥ1#J(^x?jŠdU uPu\mZQ]Tyugn1SSe1XNX3 ҏXBCh)%݅:e`UplשcY9b^rO㰿 u4цP}TpGR`EKDda0&>'АHq l{P4|0ڰ?tԊɻ)v9TيU]ץ&|d3? Bt9msmٰlN/ XA3Wnzy/',eM~tORއ >4L͍h}7.U7J Y85u+UǹT-x/KQ}# 0lwqgQ&7<+ux*)[k"VLv}!*,eO7y iLd 1|T>niHn0Y0|,I]$=tVY1 :J+RCن#Lhz@DbʢT_̅#H]cp! `C"!x%uuQ]X5J#s_Vf|[}`Ue3]Ϩ4&Ven%2srqw;5Srt\G\ yG'd# 9 wϘ i TɈQؙ2bQ~-RV*l-@Y/Q!Of3w@ݖQЎwG+{.3.>Xiv&D2Ľb ~߯ I#<M5*ҡia0Z`" =P/M/%y> e"'5$".Lv'wqN\:ќ/=fnd+iM+#Z C gh;`EܯR U@ M .t"qfDQ xCLWds'sn2!dOÞq4;$P!b lpDTYGO}(]E1跛XԐ1 ErUU^g%sTBW{?AvtBjq˃zӄ51R&Qaq"9NuspM$ EgDjx 3Uriw}xMM)VυV&_IA͌Yct|!H\Q40+&:OR;QSe =y"$LG9ojVi\þOZ+5QCQ%I6s7 l: _P!'m;\zX)!$ˮI5bZ6 7ĈKG'^%d|pzI΃zdx m)x7QE(wd [e-7IᲕoU?yH?nV KkncbtyMo1rPEħ)r9Oʼ{nP8:I]Y䋔^wS_V>ɖ̓ JrIJe2=HIxP)Ī4MBTbAFM@O&[E5-,~|nQ-7doPGJ PY iq^'=(ߤc.6:ppR/ϰ\?'NbM`y1fWlȋ쑚8Z#z9?EJ5-~3Tϡѧ։/&m&@E}֯lLB 3ٵyXՉvʛfRv]ΑEg Az V<%ڱ>pA1ۦq\UmU=ՓJl{[`pGs=Wov)"bQyߕw)B?( 96Ha8Fٹ>"(! 8.w(כOb/^Dr(EgxoEM(+,\G^rj.um\_骒%3|)Ju0D3ڲ&:snvQ2' _ eyE1/нÐɣ "oĻ ҥ|{ s`T If3?M Qb]qJQ*V]n/WAt8gu\bvBБB*d8qH[_鉊7/5^gǸ^Ӗ+R1) 9MiJ}NןnX`-%L%3E=w&uvTHeNtBqXACBO9!-(xʺD[0v)^RsFyl@B{iѥc6Ǘ*"lbz-T{f%$E6fwT7h=-Hy 2uŐF8 ZHwb_(Å(w;TbgB5M)#go_ HDXűra 8<ٛ|)zfOmi֯VH)v{靉Q6W3ȴ bf[GfV+SFjtDL &<)JYk]S[~<^-^}23=p,;N ؼo5*R`>WAeǥϊKs1_⮾kr}OElEYZ#NbPcK_^ԝʐ^$'F"#0ZX& PgxNeG#lI~f^xV~RnM\Rˊ06@؈5k]׿}kq̶!†F<ɲ8p7tZ;wO-} R(SYB1:3MˣolCg Zu_(괻MY|-`0ǂ]L>݄" G|ؙ jjnCXʢ4FqjBwE\C=B1I\愍Q >dYhٻ`?:*Ħ'r&EeYS?GȦ tpcԍ5s ō5ȎϐelGͭB/JH^.wuzٳ6'.-7cKEZfnp!?D-u΢ÂمIO}0CHݗU[B !zV|y WAQzFBJ=9ռ,(c#[GwY2162X7U 9X~l;7[L' Sbv2 & S$+:1>kUIeV晭qA&=oiک^ yn UJq'|ρw9el!@큦 p1v Q$VVmx& ~RpI`[k+X;vGMi)=Mg|aÄSAZG7%f b9jF(4Ų˒#]jwΒ*}IQqOxBb-Bׯْ@|w$BbZgUjj@)OD. )~%3 `.sf%V'&v m([`v AB]fR%j@sG1BI +Doc^dEixKDY(VR34 G5c)W SV]x?7'qԃ^l k^BId[p>ZvkV]Kq_?E'M9xB}!3g`%ih_&U'kEa4jMQv cN/`⃚dKظlA~WND 5 ])= DOU66/q`4E { IF :DJǔ Jԯy~Eƴ"^;f ֑ 5$uF/(:DsKBBKp` D[ ϙ8+%NC/;o-1y^5eMa+*H4X cӤ Ek(8M \n/$?eUbtUt],CB-O}}RIKS@  *|N.g(kk* Z#F}#ԭxw)Zh,lIe&x>]3iH>smp-,W\-AQ^,mׯ'u-:}>uj`%R4E s=<޶ܺgD]čM9u5H`?3S5iz6bvL*Ӧ&K*r=JVh4'&G,βf;`c& KyMǤ|?E2V&3bFJMES 1IB(=){x8˹Θ'!ϕsd!5^Ők $ykVpOxJz3X؋ܟnPGe[ZOG=gk։v@`q&2MfΏ_k^Wi.41-5t)?[$A?rFM22š0ʼ1i:.̘I7~ykL~td~b<=L8bVlI,z`,E1T8zR[pԢF[>9'y;IuaZ lŶjc,Q^7j℃&t34R$Dg#Pv'ŰOrtYCCpAK:4ބRlݱ1%B^qo ǨWuxN+?4@C2fV{glusτ1?7Pnp7nT,Eb-K5'mxo|gJͷOOXtƭ5hBWv u ؚ]l?GFoQlof 7Jx\?5FOi7t;{E\Y8fo'M=5.fnHJ5^=dW*{NЭZmKIꢩ79R~Xޑ2L+27!?k蕃7'~a+nt3>LR+gUlLZHI z+ +s r\݀y[ST孝T,j܋`#"wN \؞(A2RGjqw?Xk c"-Gr!bYh~=MFTc*OL(ܷiRl^hjp"o60]_zs|"—M|ĊOrB/q)-S'ޑ,0et[9%8mČԌIә9^:DU-KjQ ljz؉6| IST+w$X0Tسru;o\xzV1eFTp5+t2pBoɞjH#jr=9j>3tW%B-,€Иa㢙o!>y#CP8BLKqYe&'k*\K`dq:>j ږŒ!x~5`(FeEqa5`Ec~N+z}! <4p*)DʽTu}nFPvP*\z 6;`jǨh~f GNrH>DnOQQ'r(f ͂"ZHKJF͜ f4~s'7gm@_p50VklTOjއ9tv?=V֐K)i|\V}Y?I{x:yHU=~:|BRI84r[&Qxߪ?B$Є!eg/Z(*`w099֚UGp5p(&Ytn( jN;uaY>rJHE)NJy"=SиA&mQ!mSj3 _EٲMxPI22q\+*Eň7+_B3]MOB0aP;*P ~0h9M&&/Qr"Q, |J^U-PlN@%B{rci$>@ņ53=bgC [}6Iݓ-܆R$St}94fv ۵d7)I[xV2f蕳,"SCdf%mMy=NMb$Sce1V(PFU3W=w_YxUPkYbMI PvK1ka"y Z@ 滊-q\˓P㔮aޥbjU.ǁjo݋(0Vξ؏j6?Lt_dӆ? ܀= gA&#=zy`xo0I mR/w:EgI1ֈ׎e"|mfw"Yk!'OχfOT&7n/ʽ#o&WGlzfzuNZ H̲\ؒN5t+tr;5=/l_-e0W#F!26Q 7&arpұdxcB^gWlȜIօ1,@ @>9ﳜE䊰t&Rp7X䝎9A5p= 5M2">0)m`xaeKgG_zw"}$-N+}t? C,,~'ѭ;8jj…NWx" |&ƺɾ7:܃9:X)wyڳRvjW|Rb{J{:90b"h .Œu.x̓w"XK  6竻<.&UT0Nd%@#1Nwl=] $}%xq %59{>[= L@R#© 4VGJ"0,z!hE)M*$\/aH 8IiIs *a&G,`61pLkq!N#^cQ2[}O=5C%}Y-mʩ 'XsP`s&7Hm9]׿^ؠ?3@=Iٶx*N{\aDx(rtuvŰ۶7KR̈tx99;"r,[rZ~֍=/KOe9; 5W Ltl7J#KA N i{|\_JהN- gjPX[}O][9ʸ+U&3w- U=Q 1lrM2B}DZ>6Lr쏮}MksI;FʜBoxt[1$n;PH>ʮ6NgZO΃R ДњVOtԞYY `, ̀KOmχ=q S;FT$1Hʀ[\U\ٹÏMbrIegc1d3BUy`RP1DJIRkڭD? H2?cEȐ ThÆO2R^2AHްqT5;Pt>Nɻ b(x ^;&Y",x7)1Zfj*nnzT)cyAɭҬs4"Fp,_a{dXÎE~q+#BV/>hrبdyc8BqjL{>@Å[5ܣGiboEz:3?]y=RS',QE$'{ѝ{t%:5``C^Ǵ̘yk6&,5uWM2w~zLSSXC\ĿQMa2fBݾx[&&e:LkR^GJk%^gօ?Z'"6R}cF|G *bRZJkIz.8?CJAb< lnԚ`5#VWsSz 6CbcPO9dўct { ΐS-_ 6 @JQ?]yg!E񯦏 ?&;?A ю3D\pSL_{F$͖*Z' 2U ?=6DS Hn cAv8^o"i`MSpI/p^5'4ANjw_C^SɑnxEs\&ykCy3esZ/s*w0DIv+'6`۫NO O]w6kr?pnYIjjy|@;U!Q`IsWך|V^'Dy25[lQJj+ lx0<מZq+ nLr%:<;cw"xz"؅,"df_Ӹ#],Foe:?X~O*ME!{y- $Sx\jΦXX?u|Sb iZ`Vk:dݲfI&~Ub9f:jA O{"A|omFb utEx*ê 4[#GY 1CqyhuSImїs~@{-Ov w/ׄ a̬AD:moϓG";0L<1Uui.h<[&'9FsNbB.Z -``\7זBwW$zrPҺw/?C֩ z -,}F=Cc[I )(=%=ɲTjZ^J4rJhYt֟#*hZ]X:M=KrvQaX 1Od{c<瓅%*ΨeLI*^iqrUa\cn7I_I4ÞQq:]Χ/=Q;h MH.)hsoVAؗ _AgwH-&ھ sDj6R8ZZb¹8K`&qd;S[`>c -2&x9y3vP\7]a7˾_di[5c&[[Sd_s/rFDַڬ Ni62_/p-u"pbYdt!U,Qrmg2oy^),:wY8md_1ݺ,H*Ώw+{$;B\#.X•([kyI'A)ii@ ׼_z7)V"N iya%}W>!F8%]- jt O9(5" .iG'(#ch^L X4.EfiOd"-w+:_DŽXEITw+a:\(h9Hz؜x|A.,vdC FދF`;+bc1#d@ @\!:,g.O\ʦ99P^ts^)C &oyYق9{g#5Qك5غP~z$+l/>-pa8/)O;ACCJ˿aDcgr6==iSB=!A'~ѻ]`Tɻ!{sBGטhAY8IA@K)ŝ{4EeYpC vʱ|F;6ƁП9 "c@wԢ60oN c̪z9$g:;VlRM]ӂgƅ #rJ6j圂h b1 FlK+5iJmgDCJWɱyh25:5pfa7֮Vl1&<p: :YqȐ;uwSokb9[3h8` ;#vӐ5:XGH"^J:Gמv,<&k+ř!Ew1VE% bo6VEgLѪqqJpg1%ǀ=v6F t.ͦ."$y)FO=Ta. +O9-*UO> ,"I<ͯ6 L> <^}`:C#S(tc ŠŶ\orz8C,mN̔Rv s2!/#BO8jiI#iP0kY0Ё01zAe02ɽ[ug1~!~jЧuґe`o-QՁSb!pG[36炼歉A g&ej&>:BćUiWje(\?(!ۋ /yJ?ݕX4q%SJ|%:C..JS4 Dq7|9nBؼ u.aDGQGm=D`xw+_o\_42 ybpbX!HuHSH 1iSR*olȉkU}DxbVUT%P}i秉YA r66k&lZڋj?D`КE@#i~_TEޯgH&3Al5+9ZNW&haF; 8YđE$YFiJ4 N F(>>PDk(J\O[UWaÈDu0h'.$^Kha;¯K%ym{- 77Ņ `ov܀|7J`%/֩OHQ|lBbúPrv;wbI+[],ِ랇<RUDV8}j_2.IYW=6ptEz V ά cڿsiZiEUO̵{y2{xt9A1<rt5r(E.W"e0u]j =hk 60[T蠹WD_(D}?쇢>C i" Fʼn(vߓIiV8`*É=,ܜXclhp+B V+K{⦠9/ȫ c1zGI` q$j"LznH:w ƥs5d=~lJ pbIc^J {pi-aU Rc=g%Dqσᤞ) ۉ8)X cT[[D0\q.lSgSgp"Xa ҩ${`k\j\/XO(QT}2ObQ!8+QP Y"NXkbcf33<}+I߯ "kN/x[1=OW  b$5*x^ =t=?Ať GY/ %H$w$27)P)CWaJu;򆇲3hgķqskJM@U}-%4X3AW\,sRlw&uZ8MEE~pG뻆o[#xCm0٣]{ŏ@C~xn\49^BpH2e*;E6|!g/ чHSIwc}ТdF{% EpK'YJ~ WZup|~٬v(\t%! ȫ*D9OjIeu\|YvÎpADF,HoG,_%06ѓ,r<ޝ=UPyswWqmNF]G/@[ui|V_NC+rs$ȯ.s YG6SUJ;MDROƺ>>z޸^;%8]a͸,J[<O.9@;m1q=v'}FjŸ 7 1GS2ZC0=7qU f 'uXt|=$/Ssx RA>{NQB!"'Pqr pofKā2+*Mqj<%M1YGP_Srܤ+cfY¸]\. }h2uTu@= (T爘JYYDsvǶފUZN.@u +OOcias~qVxzw6yJsj䩗*d";:[gr^ f]V =/]L15N6FXʩr[wp[]$YY b77)R}Qq@7Nx &C8+OZ%Z ~k;n=Y˫ T6#sOXSJCCIJnK-EmG# -+踻 3+%@~6ASE$Fr+]MJuH- {rdPP*K# - 9FK .Z-A=KBKWk&vəAFV@?DGA9Rk\'2 ,I(+j\<-zl3WK:A%*=\RUd6V& 5 4_wq+vFU8y`CZz_n7NC0`+{lE.!\6* ku4 L픥K_эMܔzII8>KFGCES&q.{52٘Rch6Hʗq |l@Teop,2RK?pOw*Aȫ}I\b]#(ױR?|. !o};pnܣ!R9~Ey Wt` 1V<룩8vLU6$oo%+Mr^R+%mqدm qQ\V]r;ON݊kSkɦ8܂e!/$FJ#㌤' ֲŽKF]i nR)B.t*'ҧd~4"\sl.9Rk|`0w""?Lo9mD- m%Lx@r/8Yq>J)K M'ˈqtv8NZ1'L.V6 $Y)@h><?4|mѐ0o= \hRN[[IMU4BЦ/8"8J7.d4#?xKVtCdy:+ [SވL]jCd%ڧdU' ~.2e^%O<<ni|=OT+.˧|ɏ0U_`v}n}F<JXOf,,oed9*L;O(ӆԏȳF!E~-!jc,$ Ygנ ΥbՓ'[O'[H^tb:e骍UU8>JݏVƞ@Jj91|LۘFJINpl23k+[2)SE^lJxoPǙ,+0Y˓RY^Gu83-7Wt_%JX3b^V'|ဴ͈i'ms dyaFиZT p%ؗHZ F/;fPTm-V"Pi'fvi 5,e|PoiOR eLj+@ieWU+VX5ϠCYTz'P̜b$=/}Zt:ӆM9 gqt5D/>"iCQuW1[~6t#Kb#[_M#~1@WT!%Vlc|qΘKZj %xf$<]b5RXO ~'nonu(/[R]2'8}C((UʉSE?BTN@j&/50~MGfT7tlEQ)nbeXXYx,e1ߡ 8`#/:OI,"#CվC?/nSbf(GMA<#0Ζ@S(Mka#ݻ]sU<>8!HzAPNS f%ׂT`l(9m )NT4;fv*naR|MA\*sZ2EMTz~l,?z `)lFoQqwu@YwQ9dHLRwD:MrFYPˊr\ЫkD Y k6 X*9ƒ+A%6""sQkWgw)fӱF"N'!CH}*w>j'5Ġ|lj>c'=SY !:3cnjtuUA!:޿T{;0 jQ]? [f1cN:VnI{:f !@:^SJ]sG+``M\$K ~4$? d`H} -W ݨ+4:XnJh˪hH4RA~ vŗoU ={)ZlƂ+ZUF) rA8@9P)85?Bgw 3L/vIpP'ޜѨk=u 4GhC}HJ(坯AnyW"*C}[$)גMڭ!arJL ~đHeUإ 2\(f"F33&WmۈmlódDjL&T˽wJUm5`yͣ}6 xoѐ`&P)c-Pr/}+t6'ܗĆHKrdqCl0W&ͷX9^K5gJ7 ATٞAۅ>`{}=NHdW4 ~_QG-yOtft۶ӹBlmR./k:f[2g9$ԚRSտ{G Lk8|kk.jI5_!`|SU*hM*)Kf袒"^kK3=)Ÿ U qk뷍k 5lU"RN^8՗hoF(-!$>9+O;pVjEQ^t{[zBU (Hw›G֨ht懫aN#e5d/ -f%Āļ[Q3V5(퉟b X;N𜎜-mѢ=Ƴ* vq y.fǔkm;הJśHf]aR띛b$@Y0<X~ͰU_𽟣悔feWM(l7?g\l$\Kfԉ ͮ*"X\q )AquA' X$e1K|HDM.Z0V۾8lҥ;W hoS[7!]mc[=Dl/}+k]}bB;ya ?§jw9 kװ 𓤺j=, 2~g$SfZ[c{ oۭf3yZd@:ȀO[h!,`O̲5o1|Agry11/ c pDٵ"gBK3⏍l{fݹU ,VI9e,1H~DT,g^a+|9KbxZⅽ1 gDw7P0vY0).TF~%@-c<\Uq?`~4H .ByUM J(C 2&~#mYH5ю9l(2jE€d,f$rku֛;tOF`w{3?WPtro:@sYb &Mm׼.@z6*.h/s8`,t2 hϞZi(IM1 mقfUp7V)iNG`)Yv,rq C_jaُiue/!`ȔsރE Z3Y|*>!OU@EV["<'}wK6hB6hězt6Q&-==ST*ՈCm|:&G*yC,:ܲC4~2FE޽+$D.?&l VDSXn8 56iO};B?A 9~Hbk oo'gLcn_lAJgd@Essd[[9*"d@1HĎ?n׍sRAwVN B:̓m~ T1kL/h&N!xk[{'YNO/ZG!"yR$#[uo| xb4.c> .%/X8Fц.8/1az-g}ORqԘlcqv63w 42IrKEjS^ u“P5H/-r1 e zFjհitѲ=*cRO+--Aj$gm XH^/éO ݽ4ed)!5k4,bܿMaҏaſ2V!VQq Bh6jf'rF`_v7~=n9r$DZ ᫅epD=꿿~lSpb7 Ko*{yy tnȿ J䝩!,]pLRx݅lPBƣ Mu  6HMO 0X %^dCP[MuEMx 5 }\k(zhL4,r|ɰϷ,T9KȃFS8$&yt*Y%x_ۑZ}3 (*XYv)mrM"F>Fg@8bBpMm5NmŊ&uȟd6486ox;:. GQ}])oKXI~RDEc} C*'&ġF4鿙➛Q'4貢l]WxkdEZB: % 1-n=|^iI6\9w04d'MWz~gYdOF_;M6f0$߁&NYWT&*buX='Hea<\Kʖ&+-)2M s)" 错݆ju#A Y=M50Pۓ.pa#I)>a|!Cʫ_.64ܦY>衷\K;#O p ?K7CH l# $=r6I @|"QbFQ7AZ DorR~=ԠX dyM8&w}V .#[|uꋂ/:u _> r"?2#={yj+ ?6+ c7%wۚ85[Im+xpnA]#Q`EfM;%;1 `j7H}ιn@lgyGB!hr>,Ua7DUqVc:נ`"1#7HT6LURdxNIȏ騥#IL ?cSL߲ -bGp&EXb:|(BXn7"[zS魄 4Q.:2κruijzB:%_xOGw>w")#lVd{# DeėrfiġkYg+sA킈1DE\ͩ Ԏkď^X`(SwQi.1QMxp H{bv EZjlƍA 8}>β,SBT0TqFd} صn>l4cj"njS~on򬞊ilԮd2-u> !BZh}X86jL sl}oϭqe|33DŽى쨋t:(Q6XƑ/f/*S\?+N69D݉>8^XġVn#Z\xkHH'8%NB'Fb5csZaEyV3F䂅CAb/U, zZO5X4d=BFB;ug1?$wQV tC?~wPr~l*=+4"# ԫ9CPAט),nۂNs9w3m1ʒ36,rt성љ-Eˎ-^Bt7[v,R4 3)jA v>) h53ਪlb%Fbi" *\ɸ^18ٗq=@"xٵ Pҥk:m.NńF)@qbXyM:uoVwjVf'W҈Ӿl曳> BTJ2DR$vxU'A[XT]^L]TS2o?Vh>`T\/LGUٓ?=E!#XP@ bh<ˮPJ!dS`ԍ-h4tS5irԎ N0cb %hѥgkd&הwDJ7G:za6I=u_3Hw|4ƚ% |[]2_")f.@yqċж8빂׆0BuF@zgS%@WՉ)krg)htH NH۷H#NߨIe;NŠ6~yAMޘk=ސ$p>]G" b.U/qca=94{9;2<ÙRk"2,l&Lҋ"R>MccEہe~8O }g,wX S|b/ƽMcr/cЎgSL}+pUځlJZbW2Q ǴXϨo.> %DoσE]ZZh;q̞yB͊9NMyЖ#k^C3F*˚F?^·Y䳟`85iM[]" !V?ˆ6ȵqsj1Oh+߇"?eX|U6WZUmqEP>oxvgTzwϰ1ζ)쌻iHƵBpHB'Q'v 2LzDYp6X-e&4cUD*M yCS4PJD ol[dSŜ"bߖsx*]B 1BhoƘb6T(0$ L?ߞ*8 9-gp_Z9!V/E?pjn+ڥ.Uu@P)':.K(#ԍ.2C0nBx}_z*p;Y;]!DMSAXN6L R}>/Ou'tJ=U2.Viu;VFD6~}:K!2?xGuX3ϧZ[6Mj4iT8Dl[ `s&AẍHDۯ'9WRC}YѶ&}`_JJh '?`n)46ꁶKvjڤɛ  &Rk=,>xS{ȮbM^q' cɋԈbaGH5ᚉ@"#lR$^ <݆QB{Odk)J22@4} 79/ވoq=ף rPJ_F}&aCQwLCh@z&& }ȝ"ͱS ˈi _\}jnkԗiFxX6VT?X 1bkv8;Ľj ~Jz[U U."~|KQU67R|FOUlwmA̓ؿbPGS X<<5k%e]vs%e}R1@wK=g7^a}CaO}`Fpk80GX7^)'BZJ|y"ouck-M{K GkqqUyJ||:c5KCv%[Dug%y&揕ʽ,|،sR2rnJ%N^Dsi}*[ETA.Szb HXؑXlEEC _L?B4V7ʷ;cf>m$!z ;?ZZZ( !t,rdSUyxɒO2& :uݻM/&'@e~jFbVfTLxVӹL7 NI"0@K0fTPbO$s_)tPd]?쭙Ti,1Y΍EV/Qj^sߍs=zxTkbi@BUp9(1 }¼. k^sMuwޛW oO9M b?i`ǎ 97 Y0'/@xѓC7<\28v}7 7q#ĥ;A~ -v"XW'LswC2t}zG /:y[8d`"=c@Zy! i)هE_w%ouPW 2:8<M)[=vbߗ^vVOUǴ'xNy"x]^quo *<ۦz2\&{Jak^nfF_C*7E%͞b& K St~a+oVu (y!¦XX6"Y'- "o(huL#r_DFSZnk NdL&b}VQ2ZB!#~ x ȁAŖne8FI7} sh %,%QAFH^[xȱ/2D+ܝn|h޷R{Ov,@S1+b7=0MА_{?h.Xr1桋衸sU#,5,ǀsi'y*%ڐU}0ʰ//g8[/*U/c'"*,zG>ZTD8p2bܠ߱iMPqu~-DcO6Gzfx6FaHЎ0Xja]%M`A &.(}o,q~UrdL!?^+k.Vw0OHC'"V&g i .L+A9SHO$(|&pn4ڈ ! [%14Iɳ^s[T?!~ B 4.=rM`HGT'՛7}RR=9$nS w|z4*NM%fu@t(3)WTox,[\=kX-M+ڰk[l7 `-nxAQð7v޻ 2z˚o*-qQ(hIz-"X:Bf@bxwl"ߍq+\C/R+\4s,Z'Kf*:U;̄H?9ȼſ9M{ KP@ޥ6l5N4us:PJS:QRn¥Ŭ-7ě@`8`GBOe 21~mŒ'+"S&1q C&k^uюuny)kQDiû玶x1fp,v_Tf:;8>q@"?++t@~28ȥó )@K x&FHi,!촩=/!1})Dĕbe7ä,Dz7$iq#4f5O8N+/gũza*`x;q@b'F YawתDO}/e+ rG$4ٞS$CZDh\&SgïQ*ݠE^`6z*9 DDd} ƨ_rK:)Ox#TAt*{e0ag~tR b7$犧?,6 a gcpc}RWuYGO΃EeM~ܰ|ctH O~J&+ʺCK2OQq 4^˹sY?A}TG7H)6iܑL3s LWaZx}/>e?fګg1 Exkt-yV D絤[P1̀ 9_X?sJg` z+*Nm5P(H)p%t'!]7.PΝU9F dya)5T3qh64)[]L}1K.,#/x ccJ)ߗ{{>9v6ZH3K#:)q-HԺ8ݹ&PVH}XI.ۃ|Mx~}iK^V7S_cT 8Q4/+^xfIؗ~r0TH [fō$ZaD6d^7V6xb46$Ne~z8sk0@şF&,1? !.h_BU{6!fh)zUގ-|X,>xX1E0u"AUmU3TZLGR'ݴвb'ץhd f[$DlT x^0/>{RNd7qvm@xdwPGT?=_)<&@*ȔɅ%"UW#&\Բ~z 85: UiXQgLE}mRr'3m1~})5Sr%1m^hbNu_60:5#Nt|h}ޯ;>@B('Œ"'dO TӲUKl] -!vU4W~yM8w.M %?!l0wbʽ.Cf<Ǖcg&Ծ鱢%ћ98yfڽ,^.5T8-m翘iՍi4EDRW`0Y+Қ͞LF bapx_ƴ|R2q:ƅ@l~ܩ!&9\c=c(#'3] žK݌]'śuEmtl+wf>r*aM)!wbWqwPۣ pB?vp1 C}$G,ћE&A KE*(+p-QݕֶgTZA#b%u:(4ȨP *ZO>հB`Lߵ7x~aR>ST/I𪈈u'>3u~dv`qy[vP%z5lJkeeĈ-݆gX+aHa#׏oH9F|& RX^u 5s"˃k_Kqb9 *478p4SG.kC[H)~NGO T@.$u.'YoICn7'%m8pֶ5^qN P vnku[CZ{#3[UvIl$7RiU qA%R?{uB( -&GIʘJˊbǚL u+yy\!?L6d,tMWH Z+Ii}}RAr#8r"(\a|^N4 Ar[|I=Zy #Ȓ6pQzL'I(c11~2OڍeUHp!0hA8뺦sJ ۼ9IJOGJA4i +C5{V\{V<.Q"5i,e7cЎ3öh|Rszڥ"Dxem0c$;n:[ +z>02_'HuJ7h۵322 DCNS̛Mc4OO:R8)7\k\!ūrIf$_wmXOcaQA;q#KSKӰ?+|Yfq s:0V# Rv ^*%|okmPb *QQs( q; (k檆p'$2ƒG>k^hяNHdVܑ @ݚ7K',zyA{*%>9kH5Dq/! G-1Qw.豏5@Uex 1nWi6ONƲJn=o"Xl@ov>4P;z?Z, "nrlB6 n|4eңj2u pe6 eg0&PKeOtYm&StL,V Q]ͼߦ̙u!Hc8߰'J|f-\J狯?PbF>! ܂j|[+f6KF bBEY9Q*.9}?3wuw]s9m@Dl0aNWn% 0[[ݲ5"c]JM/q .)pbTEX5J6qhntKە0 DoHv?3zr!QluοqdB A!b*)Q kX֛y胔^Ǜ ?=|#5_:X{3UNXŌ#.X|6dvB؊SfТ\+A -&Z "i'Lons* O5/p$Oh`͐:T3䮒Z)<26 .Ƹ$R8:><)/ƍ޳w(VbBٕp7O,רR %iz&f{Hg3/IVo N$\%I dHHF>M9w h#$(ZUt͏x2ϲA >`^&R펭1JJ_7Až/K^y'/kKʳ/6tᡊ aIOi_ScZVeg$!7mG1Cy*lѸXdJԨiZ}ڠr'Xf cV[W1isn, @5w^䌐q#G:O{trr"s3r$MN ::_ΪJcJn+RK>Gk\F]q́oJ~"ZA#y֜m҄%φh ]"-N iO?#5k)\m[LiQXPH*x 4'NOMQt;o^msvNe{.%T)^ Pv3 kW/<_f7bԊl$W4a$XI.h mwvj~OƊutEJL.Ø:?l2GNI$BϾ&$4ob {|{u= L[>͡M>GpsNCP>wSlHiW7rVJGr(m,< Po.gnREXXV63B4~4ht\>+CA,(ǖDćIe#E~8+ܜ>BgQ:뎦Ҏ2`@|CS <ޚXB-WrB_9g P=4Ītk8g^:,q%9k&IIJb'ahN,`ģ}@7@-RRÛWInh~ndȅ'⧟Mq 0+-mmA2vT>oq( 0_+V$P%$g@Kߓa-$9L 3EGdTJp;)K녓HG mY35:ÂH{Wz,\!-lC)55+|%1A ddd`|ݰfؠnƪQ,}e!>#kꮇó!fhaesюOX0(В70@7ތcg2`TU_{@);甇I)HQV҅bGλZd*(nLE֪Z0R7>1GEME&F6ɈA@^aM3民4`:ub I! te$ֆ g-!ܲʼn]EDMkdC{xOAvIVFj M k^Ȇdci%S¾@N dGD[A>iԐr#nI=\(?d>r4Œ":OI J{BbEjQS5(5+h,z unAr3"\Kt@Bb¼L|6O]P4L<aߛ+`)>Q#̶rf2/R FCYκ/ n+F(ʀGֱP lQFhT)b#]Q lW܄)]NQ֒/cxuJ- S ;OZG)+B9 ,fvP׏Ҵs):Y2xO1Nօ֍ApMH"x_C:m3eg J !v8ޑ _<<ӿ5UDt;hnQ)$~Br)Ϯ"8:nTz<$Oӗ+Uh9`!+d0!ytݱB2v &Ұ,^>HeƖ\ N>6B c5S)9&KApQa %߄e/ t#4_-yJFVM֝fô6&)T8*Ln?A='s~A;6ME8'M+_n}z齶Gɖ]x& Vp1NPO4FXֶ(Kz܂K`D0qy)eN ^8cpW_ğ\Pqq[qdpp@6Ϫm33Gҝ ,3"Wl8g3Hk_ Ф T 0L';I$)_Vw]^D7PVX3'GؿR`lRIX/'߻})(6N\WRtPA l]3aRI 4-cA]e"ns׋BTc.jjk7 a^rS0{" .`A:&Qpū:paP?{ ӗ=؀W3%^M_jZhE, K)mb8gA)3LZYЈ[8`5.@BbVlZ )u*xyZNQԤ7ߙ$!p zO=0yHCeij[@Pj;zA9l$/_.(l^ y9I ;B]DGr-gW)5dY] ! .]IdKCٸR AY(&SXAMq _;=2“udF[K:id!^#Ee.^J՘@̯),㎈Zg{/Pn!u6eA,(4l. @g%@HT~{(ϊ1F`q.4))m݊YZnYjtQWDbQO7+kfe- UO_L\!_oL6"6;*s@%rSűdr]s.t%14\^Tw_U;(UK d͛"O*AE3__B6&^Ry?3BFiֳmhLNsR}T4K8ZM<7 U5qur+{J.VIuHODrѬ] Q(0Yšԟ.pLY]3j8C.SQ0b u-";WF`^$pZbkɜLbmfM8pƖ7Ѓ/%'?m%bj(lsPOʖ?w753l6yGF#EKck ~nOvv2؆Ph$J̅ YQKȷe-B{!IZ)L9B`{@l x>fU?Ž*֕D,QK C SxB;-veCbNa^ъѓNT@ 11בбX&@;_E&:`mWbdQ}V흀ȬQ&6ca y D<=Ϟ{GŴ$>i *d3(P13Q.*(2jw}Oď[@l|3W(26MKAYUE薴ÚU jBR =/q <6 T|5,coGgv&~FAj̬-fׯvauDkT^!;ڦzGkIc㽷OdV҅CљU-7 85iۍP& {)px D阡|u':3bĺbr!XoVDn ZqDMS 1bEL?b:>7a9 $SYߨk>Eky(El= T!>zr.4 ) Y3rlBmg#mb' V-q/ʡ9Q!InM_䈺7 F?^?s9Ѐ5GM$>~}ƨt ;iܮ1-b!fiS"h}SZx,6 (GqVl]6֐sa%p(1N;Op.Q"f,eYp܇vI]8ԶbqY4$z !УArI7^TQ#Ԁ:zyN3zSdL@v]"@(ŏ]d4~6yFWےF}HB *+2lߣ3SF5*@^~8uq2Gnn IDk\ttiܠ_V—;xdns@'"Y3)&)m;?u}a j.3Yh(s|S#6ElusrĄ m+^V٣#؊@#L18b>9_F>q3;?pGXW",A™]N-J9@i/%A{elyt]sr߹+ D(OxͶ|WcBuʉ@L4V}vqj .m yK-5G@ ̰*P QAW u>HQ5#ubӠ5;Gzjc*|ku;PW& DnTǤ\SwF?ĻzTS9si~$7ͮs/SlVX&շњ#DZo%ը$! g^fkG(GEX8CKS¯<.wk2}r#Pr 㖯JO 0{ 9uL\68=q̳+gkM:hx,<+.Q)w┯5AOܹuUh rpso`J8'U;͔yvpMP ^K਀Tza\ =65_K)ͳJ1ʡNu~IV$C YxjsM{ /r'pP{BD8'bLbgy_Q'N9M FcF#C.ڷS킶yM4Uj̞ Z-}?GiTa ߔc p7o>9苖;koU^7ޒ` oo͙0Xd_|7URoX tl %{ F R̗y^Ϲ<*_;0iOqCWfk6S?rSoN|:שPJ Wg ~K vc=A"`=BR?qrGG>?/lcHN01y gC]$׬V}nP=DT[:~ ;Dbo*>nhDyCIڹ:TJh`DFa鮼Nc@ %_hL†q8u.5yلʢ(XM]BsQ=#Շ E'mM!/KޔdxꛙbUv+Rvtka>;`t۫`ۖ ˠOCxjWBjYuhw`\P r J]sѿX 8 BĢl ԬUHN3 ^{if,/J5 Ot:J~xrwK6UX]^"LaPT4U7wwKhNW.]Tѡ$4PW2t_8Se!y|G_nAS+1B(\X%%;XT?Zu#ܮ52gIVtQo^lS#< 2IAD5WMch[0}^pԨj%嗞1Б٦5sY1q,e7~jEšN]< "NmV~#.vD 1ǏhKPӫjSl(t6$T9)Fz '1F4 vyClH30vd"(!rfFn.X8௺O@EO$[4)I*DŽk`>]Y\_١݀d+*,UgR$r"6tn;-Mť4bBC![^w쯇{AeU> xz夦'odiR!h>{ӍAܻ([س)7A"8eb|?!ZJʌWseofCCsUc$iDEfdAP_RT-pW Nq˥>3 `m0,FӡR[CG;9(@]xY6|} _yVѐW*?@<'ѿi\ X)rgqY h;ſ,-Plr+zlyWɜE7xr|rro0J'"Ғ_fdҘA i}ءwZXr/Ȃ(7G8gd#ӏ<O;_I_d"VMW5=e\gyKv&oB҅*SqEpVnq+묞VXcBDGJC@5'0$CQ6m/suQjvR"# ̭J8H[c}2Ļ4pm*0R@GK8+(zbu0kegj5Y kli{$%xN_ཪc"Y&KGUl%?g@[z|sd~vEzgGJpo"NӼteo)$5YJzOH(4qXyxi';/>)ס$V0@PokTՆr+\q<<#62hj;]X?[LЬ']8'Ƞ~?&\_zW[Ǣi7XFâmria# RZ9ə.2hjes/ڸ펕ضD)dABpi alW$9{&w2!&̣k+'"T!\Tp7s˧#9q$7W _g/z DhMAK.D\fC>x1$ԨPc찰hfv}&fJI?*{[R^/iD킮.˒="3м؛!=AE_-J)XعyP-SO#'ƊhŘ> K4T~qi:cϕ/몈~b|][%cj>'9eC3ժ)q4|M> $:X3Ku %;/I0\J}|1nJg/ i@xI$aw[ˇԆLЦGg}GTcyT|/G; NDHḒue5ݹ*F7quADTlq4{s3EΙ qH1zύЗ; -af{VI塘8n QmiM X2܆+gV8ўŕ.%{pk U6'pr-N=1J(,((&@F.S<q1KYOi~^~ Xjr(,Ww[`xё^PEB$q8WR}VW}\$=uI"(I",[̺) )x&L73+ :<7t'G˩)e5˂`dv B7uy{*'"Bu7<w[*8yp¯?L$g2?fJ ͤ_:X{ c&G T$tŸpxCl#uqoaoGD#zPq3>*\ T+l- WTU ڒ$v! !HYSRE=q6%%>{h{qGb35z:Ӝ)YUPԄsxiW64WE2S#VFHd09^GɑX%E)N>aG+n t`DSבWkb[t`ﲸǡ=~%Z2XL"չ(i掬AqVkjÍl}%FiTU#fOce`{Ui/T]CJc>YI-Zs4t]Cг~Ht~d K WZ޳B3jBQ؎W YX v3bEnXE-ӾpT[@%k3H{ 2 t`4Y 2.=+:nmk[=RM/A LZB苘wC4$ؗ005e<ǂcvH,8?A ˱&atd+]#_p~1D|5޽j]:}TeO\*,=8D+Җ3s0R+`=5-p띆0E:k[͙]^$7P 2W4Mvb#uVal t{~9kB4º#gC5 y3/q(_ptG V4xhΑ(xozb;~O3dz>nd<%-75 1b_KI:e2:yc$YD It}$ $#c~\M w)ZmRlVna*DklJ$؆+pe(>a%&&ftOCݥޚ _ɿ]ٯ'?:hɌLjk":%QT(C]]- K.0 ٚYؽ*/g ]6B@]aD%~xŸ%;s~w4=ug\_@*1qP}#SO$>迈s,;ŹK7R;u")74A3~yנ"[څU{ztKHb_kTa^r4A3}k|Ϩ3.j _-?J &і|(3Zm}hnw;, ,DҠMCTq- !sr|>Ԑ!~  18IO Ql%>>[#IxY+O&|KƠ:}"DQrUȈTn$M*V-; l9jobUx1Xc-Ho<<2aGuh#6QP6ㄆNHbj[bTK  [*r!w'V#ԂUSOU؜0/Q1a.bFn[ח̅U Ց>˭Fl, DENC2!5jhrf8x]%ixa;8NF}~!/&/z8|}«'9[n#a0'X>' rL"S쌚nIҋmn IΕ:8R ~iz OQOZ7fJpRtVűXK.Ԉf߃Bo*l |rO^ UJL$"_f'O~ ~:qIյsFg&lm%p{3H0U e uh9Wċ-<7Jx`$G7hӭդ=XMpF]|6lmGhWaK rzk"w1wd/!)'Z1r}LNz!1AW~WH6h9^w<;ؗ]g܈&' o0_57ЅAslZ kVHK2%Vrz}թgK0tdJZK6PUPy%]ma^wϏƍxqPreEzJ(hZ8Txa(}钶l`Ƶu/lؕ* 0̃kƽK O&L|C),/q08! QB"(N(e% ;!ֆF }Cj}s Oz_tO+-Je;KG0#ZPOӗ+E$60i,XOoso%0(_:9 Ŕ@5~ƗGh@K'LsuUҒm!6$KŐSؚ!$6c/NveTrJ5m;/D}8*yG9RFeQoQ#E %7 Y9 ,쩦:@S\V*>8V50$2v]0R WOzSL9F8A&܋$YJkWt Ei7l`s5q֟v5%G኶]V#]ϞUXq $e4Ev3`E 08.KUp`;D涔e J`5Jz=[\3n`wZZx_`Õ9\+W^QvULܣoF F=z;gș# Ak$F=ɢ?b߭0 >H@;,JҦODrF#Lg?s^1p_{zQ+iR(ytإPrjIRkg`bNGi~pwW)g`K_Q .ϟI X{S7$+ģuWH=+ḷ6 $})h.6[U*cs4b7U0եؕz &>|C)D`Mqhv̻xqRVA` S={ LKguL ڎ֕.$Tڢѐ*!Ok͖zqvtjL 'oLgW Z也esW0FPbVCJ11T,;{șT3쐂L?֬ōUնM>_6;IeYHWr'Yԣe;Haf9῁w0 z8pIVHo N ~Hy֢91shs՛,Q}כH~?ޣѱܸOAA`Y$Y6zn`cE-zK!uv"#"2>3Dg=GM ~+5n,P벥eeB${w?Ԇa4s}@'!~-𠏹$,|8@j#d9w̹cX \; [! JkaDT(8]Ę6busEV]џqpT XG " ݞ/x3Rࢁ9 {0:o7 #j4̣Ba~g-NO\'pym3t3ePX:E"(ybpod䳲d0}_&mg m4ڰw׾)9@RAqٹoX{HxxRE]v> q+CY^S36a;'g:BV(PS0< ´kt54J7>ra˲aVw"E> U%8|WzT]_P٬fBЄ2,B+;L:/HY |gAf]3oU Ͼ'²_JIYP̓sa7!η`8dReլMvP5űt |W6Pg ^phzAhFHb_❎xd. m#ja##r1Y&eX:È"=mxͣ{.6SӄFK]xefI!;ڊU*7SqMN䭥M8 G ] 3dd[k7܏T#{"_ؐ!2WCghBuW*}Hxj/ ? L,pEemochAn@sʤ#VBҊOrGЅ,/2S68y!gJ G[soi6EG <#ˣVJ"VѸ XG*kHTQ耒h9x\.KZZTk&E ᵠ|s{[-!5>cvM6"z/vAz vA-`h{21LXfaBT:5AMjkPwM 舌BT;{4zh0casMгP),AWrAea6* m@ύ6rP,O RI ʄsl%$sMZOitF,k J+ {3q.]zO^$gj'D49d{J%(}7CT׬uמ] ۻ^&ޤjg<1A1[w#[Q|R(KP$pNyx*C伣ۀ]+mg\ ƑCBO0n")'߰*&P8z1擋}xs3o K(H 1<932aX_37 sY&ÕJebboDچs@`5ۿѶgS؆IN\\:q6[Sk:/?}Ϛ}t9#l :R99gxV|> !m|˦w  FŽDo~4}Y=(k2fYWgY㶦-!Q<̾t7Լ_ GK:PX qڸ)<>t#[|9]ߓIϧƜ+rG瑡jI`6qDV?|i׋ ^ jތu\i:t*䜛p2e`nk_/eN ¨~ʅE׀lk +4w1%waYCB .)ZA`Ŵ)} U %)sJ#jč7$/|{@4 e;2 jNJ "ʎDr1- F0'.Q?V $[fGhkd 9`;Ð++ܭƶI@i5M7A sЍtQۍU6>(\|;[Scĺ1e3!!k=Ϸiۜ`<23ٴ gvHZ2'ʇ6VƃCt- Qwٖ-xS}oL`Yl%/\Ʀ@)yx#JF !dK l>q)TEC?9@Y8zI o|g a0]ϫӪorkjJN"@{, 1%HUaRF w9):4;" e9Q`嗧_ZzBM}(G8߶?}뉾I4H!= }<)@eǧQ5֗~S5™:}( qqVd0*Skjsl[|fsC4 4?c9V7ZVqg r?gu]=X#I4I)DU)DQ/' 1\lvv˰r [vO~ 1p̍FSA6qafC_;q.Wx3C)ne$ʺ˿)͔2'eO%;Té~2vs)#_쭛kT"DmFYá2;3]9]Li?Y~S-RR04ErTAb@6ޥ4[}#X@s_P{t h!dD[DZ%9Fa{ՙ ޏ9,so7M7=޶\-il& ;PTše'hJ<$Ȫoشq R' Qㅏ2˓g7)7vnHIs)—6(}}aPxwJ1%0X<a5nqRFY (>njEteC8@VRf_'X|V\;yfХQmh Jt0, qcg7k9lvU!~1v%<'t_lpqhp,.Nk4Tk:\9o?ye"ݦ [xuvi5Gw=7 x p!'re֪~VgkX9 5C\V;vNIBTSS!' W;sPٵoHF91c'y:Z4Qpfa|Q&) &$y"7ᡯU*r7Z.MLX_^MɃ 3?iʈ\8ںR cWVEC GT/?&V*<|ިmQqxl{ .͞.LyHyF =/땆?Q+^KARdJ> `hGX) (,霅4X5qٱPVn̢9܈ՃUGݢ7 Dݲrav`Gi>?"~ҭN'lMjq0WpAg;Wٷry$~}D|yoKBI"AՕ!K #&3뼹ӂ(}F2Lh[OYTw|r@A( f` (pO;-q3a~gNaZA<̚!qd66ť͙Jl7QmʰDzwA7'u! l*[ƬvT&  9l]PxЇ('Ykä́j5kh?OyBt0ФczRxq3Д,4aIӭ F)K^HD(-a9ya+Gzn-3>X-!PsI-vx!*erHA-`WOl".k1_ܑҋcT>Գ|ol}ǡ\VfNJ”Dk8{$(rvEMU 4? R/t@KKL? w3L/cI>~.<*bv꘸ һg2VA!%n& 'T; ){ϰ?Ju_?¼{Y(/=PfOyƿ%Tnh&V \_/ "Jv=WBJ kܱf2E.pPf&N`4? U^hs]' n}*V0oѠQY䕆"\?u5Q*Co9ӛWT#JwNᡠ1З|[46U7T:Ɲh(N Ujo"@y_g8K dh;$j.LDz} c˥ 7CP}PLթ3|p1tp=qsH a@mG $s7{2? W5a giʴN-<( /_k hz_RH`H =4~"xYFf0\"6nѰT"qp/lMZIl+UM_9;o0o,[a}D`Efr^3'gyb25id"yݻ1KIar+C8 A2/ch1ѧUHAe4ѓE\G&B3}%QL/#mRu WW2lCc%-5-l0y%Lצ#? tRI|hnfhlBR ӺJiϗ*H4;gv,ɂ,DEΌTSpNrvէU#$N?h֩iNIOoÙs4Cs.΃r 'e~"iT~ Ft|[ =QoK7mk+gfQWLNM?}a{.k]xlIO5!O}h$$TM^6yxD $~# )BSo1mow̷  I eo'G+$.SMsEU<--3^GWis;Az "j"+>Nx duH0 s/<ׁWoƱ"o4"e{HHVb'wỌy߷Br2 9}-~-f(yBӸ%Wn|;ϕַwͩϪV+K,HbN/;#GǼ8F&@AIa?W (scnӕJgW3i:jb5IbNԆZWRXP1xž#!4)Kp.L62Z^7ӼXB+Bc<6iu(-f*}ZcT>ޮE]2x:󋕔wsXKG{ۉRօ a4Hu3'@(qeґ{13 schcK X0e|- O2ZW/a1fyss}84]"8O16s7 >N%8=pM1Hw!>8c0fIg΀SYD2fS8GIF,;'nBߖK@{LPR̢zwtJW"EgԸw any'z"mMo^z$ 9`Vܟc$3H6 V2/΢O2Dv"=ksrc!4ۉЁY Za{Y.Լ_Ń+ŮnCpu7n>D@WkD^o(_t܇RhEv;!}S/P%k-4I4.o4oum'q䃸/Z&fwz9hz413q`!@Do5})#;KZBٔsҰ.+iC\NLH?z̮ʸ{9ﶹcWӡcZc\q nu=s̳DPh)EYCZlgn*\@&[_lJ(qҨ2j[)׎ZlIŐz#' X`=06?cu;-R ߒPnߓL@vجķt!eJGAT=8HRfRe)u:)j.*i'AVߧ0 ס[lŏwTQ@*-G?'*$m|g&g9.1ɰq;mD,بP.Ww9 mV;j 8? haU6.O=q.)ˮ]=}_jҏg24b"r 븑@%`k*Hr9c3Ad)SO{"CSBV݂D%gxߨa=\/(LlϸT$-y˹ipÏ? M E)fb8ϳfW[$@>es6dxw|C)k&nŅOQ.vv[bߏ zy(Ӷm`ēG] p~I講(޿*Mص!0vw:;qzi{<1&2B9lYHGy'!fb]h3&+ki(+ʝK9⭷c"Y$gPbyEZFeM ٭$< q9h` -=$P _Jo?Fz@gC}ZOAΖ`zCak͈x8[B?aX&mg4"w05r 1G`,ӎe@7ЀDe*|>+<٧yPЏaN}o t]kbs[;rB":U(H'0^tE//qlnIrZ_͖ՓE.dkiZRRhPf.iϪAi6@AR `tV<)iVGfu+gRDv]oCj0: [|PCؕʝʋ2 H-^O8&g}GZ]0r4b4DLaF/` dKz(lY^y-?yOkbFͰOӲ/;Hk!zY13U+/S+*>BArB QkOKS퍰\1dmc0D5?q-H*g6MsK8gXȵd=Yΐt;E:QЬ0GJDaG_7>S/%cRFQwO%fhjncڒuG“Jĝ#CD1[!ݜ9t{wd/դj}$ǻRh{RPY[:_ߒeTb~#sBW*I,`iQn~f[-w^4zr˝6)ՒiB{U7)aQ ,rcPUV:s( 彠\㳪,>wvIpJٽ4w$䚁u?AJE.[h{y׵. xH\0эf+CfMK w$ijp&YЮOǨ=j;luW{tHCᖅ#;A>t{z޾"@*UoR]wyx0=1j~v#py6Hx@-aANRNœ8Uy, m(;b7@nO=\ު PXz{ρ.C_eIKqK؎/?y Dے8 uxiKR1rBb\!oLaKۖS΍z XM|.GBm@ MPx{bKW/IZy[/\sX"4c !{pB3H{O/u/5ے"af`HDߔ`cN̉tmEk,..u&bz$8Te>pUdw81~oؿ0eSJAպt1vmWx "+j/+5N 9܏Zxy%YvMr_*1ܥgGΏɍ҅T~ڥsΨK0 bx+>LW^/4`Tko6s;l}?nK;9>?34A71Ǯ g.J67YT n+~HT!Ks7GTgD䇅n)Tګ+ikj2& tX{,$幣LGrE=1}aܷ7 Zp`ǰ).ى'` =%|0G\ޓzMFJa;a@ܜ#Y ڲaE%D0ͲONX+!9C|G$c=Y"O9*XjWQN7d^:ok4)jh1A"isN ?.VP/%Cq(@y}/g/M'!3ն. %ƕ>n7]s|%_UmYtn MS*\MX 6ՆH> dw6:b|o@,k.@}9 d lY},O=rx0n;!iJf.>YOT"vq" +f5l Ma)VK./a*2WjӲB01ėy`;TڜuWILc%8 ԝf 3jQc2w 17eosr^}R=iv{, @s uȁrRUzyڏo0@7EsQ'4M@4Oz.\us2?oXMێh,a?0wVXs3QHrU 6=@9"Nb &^-1B홧`b@8!rZpbKm,#r' wKҝg¦:)'HCH?I. е̵_0-i;! 4AyA$Әlо#_w{r,4T*iohj֣…: +!Ol9"Wa8uڗ0v[x "<8f2t,yWPݙ)NP#"Z(ͰNʉ&? x"s==KMP{El~JLGZ[0ww!Y>zOq;l_s:J`-FN!5a z c#ƚ *b\"V-I=fi58Y=uD%< P?Qt.0+ }f+b Ymd<<8A&] e :!Dc"P°>՜_>&CD,wA.L!]HL+ۓK/3ɊHJM)dtu`7m+ܵ$g>RR{pGd\;dµ6 y `Zm$?jjz1fg0(2ZEVDW_a FJQ|冰9.v(EŦΨWyl?@ZYKBhbM+^AjhzO?)!#L*va /rь=RBrgF ,P"b ^ at?5,E&$9}U5֬9MNM`dC$-d&_H{g>Ssszi-?3+@~&?R8{CA\^|'#0ŠN[46 y>ίjqC X:u-B~T01xrpbab3Z K!%=D )7 Bsn~:繗L{W- uI1Zuɬf[ ^=FOX?#zicܯ(FMzÂh*: 2z/@Fk#crԭY;ҁx;k߷6Qe@$+'i&ېE沰mz/]Y%(ѝ&gk>!p 9M^es@w| n-$|o¼4bZjԉx|/UB?c J^Q]]qemHMea:1 ==-h=/ ezfj +}$GgO.9ỹl S:?⡅fakVhUI5Ӥ%?*%S`ă_xZƑ^icPß-j5#TgxY|D0]QepETWW/(q%8:5C}9@#:CtOr^cFjߝ~R+^-HXBb2G {RG ]]F׉gdU{15m+xd-UlҴH5AvMbG;qUvK qjt92q?fBZ+]MĩߝRSq hՙO"rF3Ыz L1w,y"rpbrP^гKFnLְ'>>A2|֋|m`Oms߹{&-/(ɥJ'<#o=Ff6ds ›5VS;w-Fە U.ʎ_a,PfKS`@PsY/uX'aL¹'y|s3մϱeAʓl΀gwS¼6ziGi;}kIVMi  ]S])D*Uv.[ׂSi75~J 0GiKCCBj^iHb;Y8Iu9& DRufdnZN~ȓHH=DL笇.P>&E0/R_@ږL@ п&j *ЉĹie(P!~,empGY|BÙڸi8Aie6px^ PyI=hXmwSmo)CF? Ir_a#8: `~H'֠KT8Slsz U7ӻUw/UOg(&#w639?Uӱn"P^lW.q)qluǽkD(- *MG.b $Njo8V\A:# OeCUrZ.+xYCp͈_((i)}8آ'5jُc]> _&D`!!G^Ϳɏyfd#:j(ğk 朻  ܩ'k$-%cyXO ar0<ޏ9>ƮM佴rh![N%2bU$Eu%yJd*M n%YwgjdW=}mvom[p +{k2B ^^ NC?)EYBM%@z}Ъ FVFrܞpDQƬe^bVۓZ({C䥷¥'2X7x!cCrd8iԋA]M[txTqXH*C[4Rܔ`bZ$qH@%ЃF7E$< !Ua8 y3OpH0Dy%]Aa:I 2T|xbDv#88N9|ҝۅ)>t[BdQ6Ø i9a-䅀E4 ڒf kϺmP 1XK8A|%7&VH 1=LE8D֡~S' |g_p<0'`'%3n|8#̞T~!n `B~Z ZÝ6B.8)X3#dڙ]znr^1Ų~ދoͪ~&,SBb+Poj7p.(|aRμVVj4lq"T>rYulYnsv$0yJrdQ;]&7M[t rK}(l$mIF$Z \c)d~g6V@7~&;2S?|ИTYU^lҢuWE5%}r,L=qi3ؚw - GHGnV-l1\&{90iz,g+{<>32"Ij6 @ U(sbq󾲢_|1]S@#r4vW瑊SYvCLy$[M , ZDsub70cE$O`[=`{:e֐ҼZ$j͂B*T\VbMm #sdPآe5y"=W#! xK(j B߯#lCv-aj,:++~7A-!6b(i_',r<ܪ\E qZ\8m;~&fp|mo 29}RNI!4L11JuųQvr(W Ot,rqvVx4((ƭ\!ٺ{{Ӫ /ɷg$8ԘeŕԦv&|3oiezP96*V?U&+ x0?yArˎx'w@Ր)EG%%C)36"J5{[RW {'Q5R8]6ޫs)zFٹ[)X^W4X ;FLJhiT_?g>-]FY33tpJ͑/X0eUσ\|ϗvFzu!W'{<ĩ6:K9 O̶:Ú%ABI%z*~Xb j- 2(> U:ł3)ܖO~F=4AGl;;ԙHVa*n1-kNډWq~E>,}HcM Wϯ NY{uu:ȷ+}}iǞA KOfafqL,Uܝ@3*v ;{)QQ=lH֤:>P 5v5 y&yЊM[(S1f'" p:6 D$}h?ZU:~P 'U nH%UkC!5q,;4ޜӽ;ú%^lBMREh2Y*֎G(@ܥSPӕ%̻W0N)/Zޠc7v3͔,f2!;ulJư*3"O-3 9(e+ 3#bggd'9φ?]n-,A,dgeqUl wD%GKke#l^ @{H)ۍ7S(2mΊCTiJ!5¶hrƧ-?={za`*ָ{B\; N [ޏ_5!/݉io?#DgEӱԋEs|ƤeGۊ:Ĝ~6u!l3+hhUS|lQYi絥s f慠x/)'VJSVYiY cۢ 03K0d n,BzbMB19BkavFA|y1=CR)lSF,y`)%z@jۣ^9bV|4)I/úxdŚ}Jv&KdsU͎"ѪbV?1I:^yK4ܣ.macE12BVÔLM{5#$9[NY;B8st/es"B!/Ko{(8"gs?i%2S=a&, Lknyt?S([3G%a*7|hZ-b#7/1u%4VH?HMH}ԛ7<[NfyI 5} թv/_[oJԞ'xw,5( nu2R4H+GqDPQUVW ?WI-Y2`X#EbQ%Cf\p0SX/r:Qcfe+Vj G}Sg;sק&j k'( *r{A .JO~jUOqEpNUq2¡NR=4T9E]6#Cr㗤 #`nrl:Ӂ2djt|E]ԠEJ >*?s? l%yw@) xV:T@2C[܉ı#j͐v`۱֞Ȗ*B-|<}Dh"8q-.aS'I hN";og~ ۰ޥRw-smY%EwǙ`Z &}^C `i>oiB*02K`I{ee]*1 j #ݾx,T9|M!v*AoT;A賓SjĆ!+:DE9Ś[`8, 2BյLL+/}._AD|`l8P$u-^ y?Wq`+GlyUt581?!`w~jf4GDu//٧օU<9E8Ѡ| kjR&O@I9]@Ɂ@ΝP5C[G-df6: bt&;WEi`;f&bN8kvl^ABJm#v(ᰡe=lcϹTNSLA1zUҴx/OZokF<7#{"(bQXzP3b1hp'D咼J|p ܠ98|(Ztb8/ƃ6 YZ>p bOŒiu0 zJNz\j9t?,GRfבټZb1o HA4Ti7bk QtMbl$mmO!gV5[sMv> ͳln¹Qz3 +?j.λdHk?iPTcD-ֆW9}\)זJ ɪ{] aV":I[4TQ T3sKD\&}%YCH{jmM§jKF*t ?&#e6CK r\ ! *.>hXKdSI<:SŞ~j >cqu;>OtÖf7׿^uHļ#Kez{K01FA؀)%|NΦa^{2|nS.Dl\VcBҪPa7:n'l?>,3.Y9jRKpνIQ+̃a; #E Oܪ%>8T6yʼzBX_N/wgΜ߯+LjGD|ȗ5tN =h^D/9Iߞ ?&N0*V|GcU)˄r嗉>N |0Br})}rh Т}̾ΘCx/NĿv c0NZ&%n QE$"uNaA,}c(["gYϴe~"5V:_A\}xtl* Z۽(i?ö! -;Y'OXV+u3-="W=B807ґ4*#U 4u?~/u)7P4F`( NӯFf4©ZQV̘=7iT4.E)MY([T! /6J.R(ٜLd$!xъ궞azTG|(CEw[1$ՊeEq}iB]dYE|Eħ(B@QN!jۆp9 'qj{ ɘZã&Jiy"n~J_]4XK ( _.r1=)!]ߍ $/aady䴬8Cq pcD1ϴcd,H$Nɳ`d | Vg.LA*W n#Kw-^wట08%U,שi5 ̔A,*!:8'L"I22GbTUriTFdf;߷n CAӍyc~ )^>pr92aW?YeֆFMnyQo^㕫fX`+D/6'Zu畄q56݋MwgQ/yp/$9nHNW:3d9Jd5:o6VJN|#)xAnW ؔ~xCAT\Ap~?Ax(p/cFF[0gɾfVL&qÔmbGKꃼ{3of3ktj |skb $YavzvJĤ@.ޕq^<%QϦ;\gm30ٓ{ J&| ~TJSyLbM--[&Qtx?cs} h nR5pA&lz# s"K~C4ZWڄȺ=tK'E ا&mn-y.ڢZ֊ṰNVgo]SC3Ǔ0CYAHƂJ>jͭi1`Z<4thvM:ğg)3_m,p 2K  dv D*n<#\b96Ѱ-cD 0Әq_ G4lVYVDQ֥[-47;c@`v'a!adD 2h|?c|W^[0 Ogxa\R5,,OcG$k}h aHWs3)B;68' s2D8tlƷR zzsRZ?`|<~ v` ?YXfŸO ج|)b0Eᐹ&QP%'̯5$OP\6o_j'2i]1 |v2 2%vqCz^Y+sC> . ]+ t4({&9O.4sPQb(YOeOC - +'TwJU5'u#4fXKE'~>:lۯ]1H-1,#P/\p,~.&䐿 or  vaYFχГMb+4P{:7B577LCwb?N]MNG9/^w) crj{ޜ쵞 Q+l[=[Q Ȏb׎Y/U[4 ua08+/TKq4UoK~Ȉ"OfkD //ƖP╿pȞRCSzyz_{$`)*UM]b ~]CU.N=,,AmDMeyGoW#q]!81i;hf\ѕWdvOrE<0[ kf=;{dPmvYԡ`nnB3B4S\wE=7 X鳼ҕJgS{aK[݊ӽa<՘y@Y|e5  -۶ d8Cџv\f~f1<Ä]zI) Вl~I<طU8䊽$ 'OڪTo\[)lfpvLOsem1d2o-84j& p+LUrr'9, ? ju(F{0Ci*QCy)1ug>h@cXuVR,Ӟj*!!>\fB52/ճ% F0=Ӛ Ny |%e79S< iOM7SD(!)>z3Y>ŎN" sBaHJd!K:77\܄9{Wۑ=&ƣREDR4yhPOW?0ȄĊo5R,M*U۳!LrU唘"? Ro&>PgF=A,wxms*%? RbX$[0AE'%S6@ է>Fi]W*y3ByD I~9Y'<$!/i k2.8nU;>7*@ ˪OV.Bw` gC/k0GpHc0P(rcUm5*td12+(Qt'ws~dNC%2+u˦_^>$?%Ղjl3—'\0*Fcʲ@tǓ"U-PcIRt!y?H^zBh=<FS[wQk>Ҫf2'.O7Iq;C?ʓ9⁢45JՌ6ĬTs2rH]"w@MхO%ic(lN1=@7ⲫ-ls9WJ!< PRKxVc:]im7=?eA :K!|u%'F9kƦX2 "lx?ޖ9Ռ`C&!9Yi?5+#<Dj>p'A i|a r')-@RvcšwkCW)9Ӣԣ ejx,ݢUx/Xr,ka%1Rhl*_b94Tic18X񰿮 Ӵ63U=B&_ @oJ- j n 8YwOϷ%d:CyWI?D"7QTERKPFנ1"ʨt#fV  M@֖VWv?NCbm^E. R N xC*Y g20a3P*({r2>7BLirKL(UBwR>UM[cw%ШK-Dv EYE/偫@,P}Vdt{m4? {$p|um4:%\z'hd< x8iNE\e#'DG`*p\X\<9KH1[E:I6g5Kn;4sE,v'e(68{ǜAJ %1c'oW K'zM54>ɹeǢOnj:<uE+c Ri5PLG*is,oJȟ8_{ w?UǂPt3e7OK5ɠAHbxYzZD߇WGrY4}__!v8=x(6騑?TxySqK7~!Q˻6?0Aa[J7qxqlO|c:AsE\52T7q(TD7O1av0=g/5_@7 849dRus I>r I/0~cS :AVl>#h{TT[Uzn%ƛ\Ub%qiFǥfF^[k^)9a*(;?{dbu턲DT#?3ġ7DDnFIpG0.MPz#<<= vQPeu/NԿ?G+Y*0֮b\svEѾ9o x %ha@-3/(fCfڥW7=愂X]@fX q kۑ +^$Sq#?!7jbBuSfkCd3g1 Ʀmĉ%ur>r#{&;Ff3"|4〪y@D:ƽ͟S xN&"nvJ~e0qK3Z]ev#|^RMgD/VԖ U`tY*`\= (=k4̾@/ă }@}G4o~_'-+ؠxdnhFcv,',XƣHX@45?ٛ_֧vflgF 1XZ=tXM?aK݆rE c3G.u.ѾJܴԬ<ĦfvG%9IwoR/xﮇ;[]?ޔL{=Nas oF?|fixU|Sk+טWy!7TSz^/פ]nMoiB&~!XP [zbp޺u?=2YmӠ8X|o $#{n2üe2F(6bIlDp5\~@# D['ַ}+%ưR|)YTB Q22:hy85sF uxy0Tfmg6I\ƌu~|U{!{)j ?? ~hfIu3~-VznNdJɊ +tnݞ?foͿ D-O߃ְFM7y پ)7TX"`ӡrԶŜBqBg)g8戶S!cu:Fψv!H#Rд>ݸթ[3fJ?ZpMu^GeY"'\nה:HߜxwR?R?we˯z1~є6<:ꄣSj=Mѥ7@ 2`v&^%hPYXF}D DBrYq&ՔݬXY'ox`ΓL^9Ȝ ́ b<\(+f5$NwX7ϙ{2mo1Fe_(5 hF\Ģiein zF4D]$|f\BĢD ao4..@2!;l/y* g߾aˬpv2zn!M;5 Cè Omb$kHGfi&oyz_9^)BUn:RILlJ :2@kO$vʼ{ gS6A  (񹪜 YZ