bcc-docs-0.26.0-150500.3.3.1 >  A ep9|g]'U.!^" 0'v q>/x`ܿhn̴ 5(-29qz#kӞ '&;`Q@v@zV~H5EY>]LGb@,`Ȧ u|[`#qG@N4=$a17 / Uwoj`~lv2XW-L49ʬK#=0o8hd];NKv{4˥$qǫ V!cPrV#`>p;?d   E 28@\ j x   $@cC(_8hJ9J: JFLG`H|IXY\]^Bb}c&defluvzCbcc-docs0.26.0150500.3.3.1BPF Compiler Collection documentationDocumentation on how to write programs with the BPF Compiler Collection.eh03-ch2dSUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Documentation/Otherhttps://github.com/iovisor/bcclinuxnoarch XIKZuA큤ecFcFcFcFcFcF994a0c39dce4a66bce5f887b46bb793ddc0b36d35a3a7ece1ab914f05efba0963ba7a6d66c564955d73f3b8ace24e0f2f0dd975b5ae0e14e92be2e523a7226362f5a94e0a0ba84152e3fe9e830e68419a9be825f59b6760a0d164771a23754fc40724ccf84de8917776e91be7174c5c3931deffe966b29910601664f88dde33bcda07a50d0c42884772278dd376a2d06983d30eac4a0995ef5a8badf1c1d3ab287a65581944bf3776536e6ce83bcd3049fbe08115b6854f1827070604feca8aarootrootrootrootrootrootrootrootrootrootrootrootrootrootbcc-0.26.0-150500.3.3.1.src.rpmbcc-docs    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3ecc@b@bbb @aV@aD@aD@`@`@`a@_@__m_-B@^@^@^@^1^^F^%@^@]q]@]]c@\]@\@\M\\@n@\=@[[;@[(@Za@Z2@ZZ`@Z_@Z|;ZaZ8@Z3@Z)-@Z%8Z!D@Z Z@ZC@YY5GX•@X @X @XF@X@W WҤ@W/@W Wo@V@V޾VVŲ@V@V_V@VqR@V\:@VI@V*!@shung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comdimstar@opensuse.orgaaronpuchert@alice-dsl.netshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comshung-hsi.yu@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.commimi.vx@gmail.comidonmez@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comjengelh@inai.deasarai@suse.comasarai@suse.comglin@suse.comglin@suse.commsrb@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comdimstar@opensuse.orgglin@suse.comglin@suse.comglin@suse.comglin@suse.commanfred.h@gmx.netglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comidonmez@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.comglin@suse.com- Fix BPF verifier rejection of nfsslower.py (bsc#1217884) + add tools-nfsslower.py-Fix-uninitialized-struct-pad-erro.patch- Force specific versioning of LLVM in preparation of Leap 15.5/SLES 15-SP5 + Remove now duplicate dependency llvm-clang-devel, having clang-devel is enough- Update to version 0.26.0: + Support for kernel up to 6.1 + bcc tool updates for biosnoop, opensnoop, biopattern, killsnoop, runqslower, offcputime, wakeuptime, etc. + libbpf-tools updates for klockstat, sigsnoop, hardirqs, softirqs, opensnoop, statsnoop, offcputime, tcplife, cpufreq, cpudist, etc. + new libbpf-tools: tcptop, tcpstates, biotop, capable + doc update, bug fixes and other tools improvement- Update to version 0.25.0: + Support for kernel up to 5.19 + bcc tool updates for oomkill.py, biolatpcts.py, sslsniff.py, tcpaccept.py, etc. + libbpf tool updates for klockstat, opensnoop, tcpconnect, etc. + new bcc tools: tcpcong + new libbpf tools: tcpsynbl, mdflush, oomkill, sigsnoop + usdt: support xmm registers as args for x64 + bpftool as a submodule now + remove uses of libbpf deprecated APIs + use new llvm pass manager + support cgroup filtering libbpf tools + fix shared lib module offset <-> global addr conversion + riscv support + LoongArch support + doc update, bug fixes and other tools improvement- Update to version 0.24.0: + Support for kernel up to 5.16 + bcc tools: update for trace.py, sslsniff.py, tcptop.py, hardirqs.py, etc. + new libbpf tools: bashreadline + allow specify wakeup_events for perf buffer + support BPF_MAP_TYPE_{INODE, TASK}_STORAGE maps + remove all deprecated libbpf function usage + remove P4/B language support + major test infra change, using github actions now + doc update, bug fixes and other tools improvement - Changes from version 0.23.0: + Support for kernel up to 5.15 + bcc tools: update for kvmexit.py, tcpv4connect.py, cachetop.py, cachestat.py, etc. + libbpf tools: update for update for mountsnoop, ksnoop, gethostlatency, etc. + fix renaming of task_struct->state + get pid namespace properly for a number of tools + initial work for more libbpf utilization (less section names) + doc update, bug fixes and other tools improvement - Drop Do-not-export-USDT-function-when-ENABLE_USDT-is-OFF.patch: fixed upstream.- Move kernel{,-devel} requirements to libbcc0 for deduplication. - Require additionally kernel-$variant-devel for libbcc0. - Declare python3-bcc, bcc-examples and bcc-docs as noarch.- Use shared libbpf library instead of building it along with bcc + Delete libbpf-0.5.tar.gz - Fix build on i586 due to use of shared libbpf library + Do-not-export-USDT-function-when-ENABLE_USDT-is-OFF.patch- Update to 0.22.0 + Support for kernel up to 5.14 + add ipv4/ipv6 filter support for tcp trace tools + add python interface to attach raw perf events + fix tcpstates for incorrect display of dport + new options for bcc tools runqslower, argdist + new libbpf-tools: filetop, exitsnoop, tcprtt + doc update, bug fixes and other tools improvement- Update to 0.21.0 + Support for kernel up to 5.13 + support for debug information from libdebuginfod + finished support for map elements items_*_batch() APIs + add atomic_increment() API + support attach_func() and detach_func() in python + fix displaying PID instead of TID for many tools + new tools: kvmexit.py + new libbpf-tools: gethostlatency, statsnoop, fsdist and solisten + fix tools ttysnoop/readahead for newer kernels + doc update and bug fixes - Update libbpf to 0.5 + libbpf_set_strict_mode() allowing to opt-in into backwards incompatible libbpf-1.0 changes. See "Libbpf: the road to 1.0" and "Libbpf 1.0 migration guide" for more details. + streamlined error reporting for low-level APIs, high-level error-returning APIs, and pointer-returning APIs (as a libbpf-1.0 opt-in); + "Light" BPF skeleton support; + BPF_PROG_TYPE_SYSCALL support; + BPF perf link support for kprobe, uprobe, tracepoint, and perf_event BPF programs; + BPF cookie support for kprobe, uprobe, tracepoint, and perf_event BPF programs through bpf_program__attach_[ku]probe_opts() APIs; + allow to specify ref_ctr_off for USDT semaphores through bpf_program__attach_uprobe_opts() API; + btf_custom_path support in bpf_object_open_opts, allowing to specify custom BTF for CO-RE relocations; + sk_reuseport/migrate program type support; + btf_dump__dump_type_data() API, allowing to dump binary data according to BTF type description; + btf__load_into_kernel() and btf__load_from_kernel_by_id(), and split BTF variants of them; + btf__load_vmlinux_btf() and btf__load_module_btf() APIs; + bpf_map__initial_value() API to get initial value of mmap-ed BPF maps; + bpf_map_lookup_and_delete_elem_flags() API. + support for weak typed __ksym externs; + BPF timer helpers: bpf_timer_init(), bpf_timer_set_callback(), bpf_timer_start(), bpf_timer_cancel(); + bpf_get_attach_cookie() helper to get BPF cookie from BPF program side; + bpf_get_func_ip() helper; + bpf_sys_bpf() helper; + bpf_task_pt_regs() helper; + bpf_btf_find_by_name_kind() helper; + usability improvements for bpf_tracing.h when target architecture is missing. + improve BPF support detection on old Red Hat kernels with backported BPF patches; + improvements for LTO builds with GCC 10+; + pass NLM_F_EXCL when creating TC qdisc; + better support of BPF map reuse on old kernels; + fix the bug resulting in sometimes closing FD 0, which wasn't created and owned by libbpf itself.- Update source URL for bcc and libbpf- Update to 0.20.0 + Support for kernel up to 5.12 + Some basic support for MIPS + added bpf_map_lookup_batch and bpf_map_delete_batch support + tools/funclatency.py support nested or recursive functions + tools/biolatency.py can optionally print out average/total value + fix possible marco HAVE_BUILTIN_BSWAP redefine warning for kernel >= 5.10. + new tools: virtiostat + new libbpf-tools: ext4dist + doc update and bug fixes - Update libbpf to 0.4 + BPF static linker APIs; + subprogram address relocation support (e.e., for use with bpf_for_each_map_elem()); + support for extern kernel functions (a.k.a. BPF unstable helpers); + TC-BPF APIs; + ksym externs support for kernel modules; + BTF_KIND_FLOAT support; + various AF_XDP (xsk.{c, h}) improvements and fixes; + btf__add_type() API to copy/append BTF types generically; + bpf_object__set_kernel_version() setter; + bpf_map__inner_map() getter; + __hidden attribute for global sub-program forces static BPF verifier verification; + static BPF maps and entry-point BPF programs are explicitly rejected. + libbpf will ignore non-function pointer members in struct_ops; + Makefile fixes for install target; + use SOCK_CLOEXEC for netlink sockets; + btf_dump fixes for pointer to array of struct; + fixes for some of xxx_opts structs to work better with debug compilation modes; + ringbuf APIs fixes and improvements for extreme cases of never ending consumption of records; + BPF_CORE_READ_BITFIELD() macro fixes.- Update to 0.19.0 + Support for kernel up to 5.11 + allow BCC as a cmake subproject + add LPORT support in tcpconnlat and tcpconnect + added bpf_map_lookup_and_delete_batch support + new tools: virtiostat + new libbpf-tools: cpufreq, funclatency, cachestat + add install target to libbpf-tools + a few lua fixes + doc update and bug fixes - Set ENABLE_NO_PIE to "OFF" to enable PIE for bcc-lua (bsc#1183399)- Update to 0.18.0 + Support for kernel up to 5.10 + add bpf kfunc/kretfunc C++ example + add PT_REGS_PARMx_SYSCALL helper macro + biolatency: allow json output + biolatpcts: support measuring overall latencies between two events + fix build when ENABLE_CLANG_JIT is disabled + doc update and bug fixes - Update libbpf to 0.3 + kernel modules BTF support on all levels + ring_buffer__epoll_fd() API + xsk_socket__update_xskmap() and xsk_setup_xdp_prog() APIs + New BPF helpers: - bpf_task_storage_get() and bpf_task_storage_delete(); - get_current_task_btf(); - bpf_bprm_opts_set(); - bpf_ktime_get_coarse_ns(); - bpf_ima_inode_hash(); - bpf_sock_from_file(). + ring_buffer__poll() returns number of consumed records correctly + handle corner-case case with unused sub-programs + xsk_socket__delete() bug fixes- Update to 0.17.0 + Support for kernel up to 5.9 + usdt: add uprobe refcnt support + add bpf iterator C++ support + new bcc tools: tcprtt, netqtop, swapin, tcpsynbl, threadsnoop + tcpconnect: add DNS correlation to connect tracking + new libbpf-tools: llcstat, numamove, runqlen, runqlat, softirgs, hardirqs + doc update, bug fixes and some additional arguments for tools - Update libbpf to 0.2 + full support for BPF-to-BPF function calls, no more need for __always_inline; + support for multiple BPF programs with the same section name; + support for accessing in-kernel per-CPU variables; + support for type and enum value CO-RE relocations; + libbpf will auto-adjust CO-RE direct memory loads to adjust to 32-bit host architecture; + BPF_PROG_BIND_MAP support, .rodata will be bound automatically if kernel supports it; + new APIs for programmatic generation of BTF; + support for big-endian and little-endian endianness in BTF; + sleepable fentry/fexit/fmod_ret/lsm BPF program. - Enable lua support only for Tumbleweed to close the gap between SLE and openSUSE Leap- Update to 0.16.0 + Support for kernel up to 5.8 + trace.py: support kprobe/uprobe func offset + support raw perf config for perf_event_open in python + add BPFQueueStackTable support + added Ringbuf support support + libbpf-tools: readahead, biosnoop, bitesize, tcpconnlat, biopattern, biostacks + bug fixes and some additional arguments for tools - Update libbpf to 0.1.1 + __ksym extern variables support for getting kernel symbol addresses; + BPF XDP link support; + bpf_program__set_autoload() to disable loading and verifying specific BPF programs; + support for attaching map elements BPF iterator programs; + new getters/setters for more control over BPF map definitions; + all destructor-like APIs (e.g., perf_buffer__free() and bpf_object__close()) now accept pointers returned on error (in addition to NULL and valid pointers) and ignore them, no need to guard destructors with extra checks now; + bpf_link__detach() for force-detaching link, while it's still alive; + btf__parse_raw() and btf__parse() APIs for more convenient and flexible BTF parsing. + fix an issue with loading XDP programs on older kernels. + CO-RE relocations in .text section (in sub-programs) are now performed properly; + vmlinux BTF is not loaded unnecessarily twice; + perf_buffer__new() can be used on old kernels down to at least 4.9 version; + libbpf's internal hashmap fixes for 32-bit architectures; + few BTF sanitization bugs and memory leaks fixed; + btf_dump handling of GCC built-in types for Arm NEON fixed; + BTF-defined map-in-map initialization fixed for 32-bit architectures; + various BTF fixes for 32-bit architectures.- Modify URLs to get the tarballs with names not just versions - Drop _constraints + We don't link the static clang libraries anymore and this reduces the requirements of hardware. - Drop the unused _service file- Update to 0.15.0 + Support for kernel up to 5.7 + new tools: funcinterval.py, dirtop.py + support lsm bpf programs + support multiple pid/tids for offwaketime + usdt: add helpers to set semaphore values + turn off x86 jump table optimization during jit compilation + add support to use bpf_probe_read[str}{_user,kernel} in all bpf + programs, fail back to old bpf_probe_read[_str] for old kernels + tools: add filtering by mount namespace + libbpf-tools: cpudist, syscount, execsnoop, vfsstat + lots of bug fixes and a few additional arguments for tools - Update libbpf to 0.0.9 + BTF-defined map-in-map support; + bpf_link support expanded to support new kernel BPF link objects; + BPF_ENABLE_STATS API; + new BPF ringbuf map support, added ring_buffer API for consuming; + bpf_link-backed netns attachment (flow_dissector). + bpf_object__load() better error code propagation; + few memory leaks and corruptions fixed; + register naming in PT_REGS s390 macros; + .bss pre-setting through skeleton is now supported as well. - Drop upstreamed patch + bcc-bsc1172493-Make-reading-blacklist-optional.patch- Add bcc-bsc1172493-Make-reading-blacklist-optional.patch to make reading kprobe blacklist optional so that the bcc scripts can work with the locked down kernel (bsc#1172493)- Amend the sed rule for python3 shebang- Update to 0.14.0 + Support for kernel up to 5.6 + new tools: biolatpcts.py + libbpf-tools: tools based on CORE and libbpf library directly + add --cgroupmap to various tools, filtering based cgroup + support kfunc (faster kprobe) for vfsstat, klockstat and opensnoop + lots of bug fixes and a few additional arguments for tools - Update libbpf to 0.0.8 + Add support for BPF-LSM + CO-RE relocation edge cases + expected_attach_type handling fixes at load time + fixes in hanling kernels without BTF support + internal map sanitization improvements - Drop support-clang9.patch + Upstream fixed it in another way.- Update to 0.13.0 + Support for kernel up to 5.5 + bindsnoop tool to track tcp/udp bind information + added compile-once run-everywhere based libbpf-tools, currently only runqslower is implemented. + new map support: sockhash, sockmap, sk_storage, cgroup_storage + enable to run github actions on the diff + cgroupmap based cgroup filtering for opensnoop, execsnoop and bindsnoop. + lots of bug fixes. - Update libbpf to 0.0.7 + Major new features: - BPF skeleton support; - Kconfig extern variables support; - STRUCT_OPS support; - support for BPF program extensions; - cgroup MULTI-mode support (bpf_prog_attach_xattr() API). - bpf_send_signal_thread() BPF helper; + Usability improvements: - BPF CO-RE improvements (flexible array, LDX/ST/STX instructions, improved conditional relocations); - generic bpf_program__attach() API; - SK_REUSEPORT program type support; - bpf_link_disconnect(); - bpf_find_kernel_btf() API exposed; - large instruction limit probing added; - improved error message for RLIMIT_MEMLOCK. + Fixes: - fix perf_buffer handling of offline/missing CPUs; - various other fixes and usability improvements. - Drop upstreamed fix: bcc-fix-test_map_in_map.patch- drop python2 bindings - don't require python3-devel package- Fix build when pkg_vcmp is not defined- Update to 0.12.0 + Support for kernel up to 5.4 + klockstat tool to track kernel mutex lock statistics + cmake option CMAKE_USE_LIBBPF_PACKAGE to build a bcc shared library + linking with distro libbpf_static.a + new map.lookup_or_try_init() API to remove hidden return in map.lookup_or_init() + BPF_ARRAY_OF_MAPS and BPF_HASH_OF_MAPS support + support symbol offset for uprobe in both C++ and python API, kprobe already has the support + bug fixes for trace.py, tcpretrans.py, runqslower.py, etc. - Update libbpf to 0.0.6 + New features - new extensible bpf_object__open_{file,mem} APIs and DECLARE_LIBBPF_OPTS() macro to go with them - bpf_helpers.h, bpf_endian.h, and bpf_tracing.h are now distributed with libbpf - BPF CO-RE: added field size, field existence, and bitfield relocation support - BPF CO-RE: BPF_CORE_READ(), bpf_core_field_exists(), bpf_core_field_size() and other BPF CO-RE related helpers available through bpf_core_read.h header - bpf_object__open() API now auto-detects program type from its section name - BPF_PROG_TRACING programs support (incuding BTF-typed raw tracepoints, fentry/fexit programs) - mmap() support for BPF global variables - declarative map pinning support added - probe_read_{user,kernel}[_str]() BPF helpers added - bpf_get_link_xdp_info() function to get more XDP information added - a bunch of other AF_XDP changes + Usability improvements - no need for int version SEC('version') = 1; anymore - raw_tp/tp and uprobe/uretprobe section prefixes added - new bpf_program__get_{type,expected_attach_type} getters - preserve error code on program load failure + Fixes - btf_dump padding handling - bpf_object__name() returning name, not path - ELF section handling off-by-one bug fix - mem leak/double free fix in BPF program relocation code - Replace lua51-luajit-devel with luajit-devel to reflect the recent change in Factory (bsc#1159191) - Add bcc-fix-test_map_in_map.patch to fix the build error in the test case- Enable USDT for s390x since 0.10.0 already supports it- Add support-clang9.patch and apply it for llvm >= 9 - Fix sed call for python- Update to 0.11.0 + Support for kernel up to 5.3 + Corresponding libbpf submodule release is v0.0.5 + Fix USDT issue with multi-threaded applications + Fixed the early return behavior of lookup_or_init + Support for nic hardware offload + Fixed and Enabled Travis CI + A lot of tools change with added new options, etc. - Update libbpf to 0.0.5 + bpf_btf_get_next_id() API to iterate over system's BTF objects + libbpf_set_print() now returns previously set print callback + libbpf versioning, build, and packaging improvements + convenience helpers for working with BTF types + experimental BPF CO-RE relocation support + various AF_XDP fixes and enhancements + BTF-defined maps + tracing attachment APIs and bpf_link abstraction + perf buffer API + BTF-to-C conversion API + btf__parse_elf API for loading .BTF from ELF files + libbpf_num_possible_cpus() added + passing through prog_flags through bpf_object__open + new attach types detection added - Use version for REVISION instead of libversion- Update to 0.10.0 + Support for kernel up to 5.1 + corresponding libbpf submodule release is v0.0.3 + support for reading kernel headers from /proc + libbpf.{a,so} renamed to libcc_bpf.{a,so} + new common options for some tools + new tool: drsnoop + s390 USDT support - Update libbpf to 0.0.3 + Also add the source url of libbpf - Drop upstreamed patches + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch - Drop bcc-libbpf0 since upstream dropped the so file - Enable SMP build flags since we don't need static clang anymore- Add upstream patches to improve python3 compatibility + 0001-fix-string-re-being-used-on-bytes-for-Python-3.patch + 0001-Convert-bytes-to-string-for-re-in-get_tracepoints.patch + 0001-tools-don-t-mix-print-end-with-printb.patch- Update to 0.9.0 - Add libbpf-5beb8a2ebffd.tar.gz since libbpf became a submodule of bcc - Drop bcc-bsc1080085-import-readline-from-lib.patch + Upstream provide an additional argutment for the shared readline- Correct the library version- Remove unnecessary use of xargs. - Remove idempotent %if..%endif guards. - Update descriptions for grammar.- Update to 0.8.0. - Remove upstreamed patches, and un-needed ones. - bcc-check_int128.patch - bcc-python3.patch (replaced with sed pipeline) - bcc-install-additional-headers.patch (bpftrace has fixes now)- Switch to %license over %doc for licenses. - Add upstream patch for bpftrace builds. boo#1117223 + bsc-install-additional-headers.patch- Update to 0.7.0 - Refresh bcc-python3.patch - Drop upstreamed patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Remove bcc-bsc1065593-llvm4-hack.patch and set ENABLE_LLVM_SHARED - Remove COPYRIGHT.txt which was dropped by upstream- Update to 0.6.0 - Add upstream patches + bcc-bpf_probe_read-fixes.patch + bcc-fix-ext4slower.patch + bcc-fix-tcpaccept.patch + bcc-prevent-bpf_probe_read-MemberExpre-rewrite.patch - Drop upstreamed patches + bcc-fix-build-for-llvm-5.0.1.patch + bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch + bcc-bsc1080085-backport-bytes-strings.patch + bcc-bsc1080085-detect-slab-for-slabratetop.patch + bcc-bsc1080085-fix-cachetop-py3-str.patch + bcc-bsc1080085-fix-syscount-str.patch - Refresh bcc-python3.patch- Add bcc-fix-a-compilation-error-with-latest-llvm-clang-trunk.patch to fix build with LLVM6.- Add bcc-bsc1080085-fix-syscount-str.patch to convert ausyscall output to string (bsc#1080085)- Only enable bcc-lua for openSUSE (bsc#1085810) - Amend the spec file to enable bps only for Tumbleweed (bsc#1085403)- Add bcc-bsc1080085-import-readline-from-lib.patch to read the symbol "readline" from libreadline. (bsc#1080085) - Add bcc-bsc1080085-detect-slab-for-slabratetop.patch to detect the current memory allocator and include the correct header. (bsc#1080085) - Make bcc-tools require audit since syscount.py needs ausyscall to get the syscall list. (bsc#1080085)- Add bcc-bsc1080085-backport-bytes-strings.patch and bcc-bsc1080085-fix-cachetop-py3-str.patch to fix the python3 compatibility issue (bsc#1080085)- Update bcc-python3.patch to make python3 default for all the python scripts (bsc#1079961)- Add bcc-fix-build-for-llvm-5.0.1.patch to fix the compilation error against llvm-5.0.1- Replace clang4-devel-static BuildRequires with clang-devel-static: use the unversioned one, folling the llvm meta package version (like all the other llvm/clang packages in the build chain).- Request at least 10GB disk since the clang4-devel-static needs more than 3GB and sometimes caused build fail (FATE#322227)- Request at least 4G RAM for the s390x build (FATE#322227, bsc#1070362)- Tweak the installation path of bps directly instead of installing it manually. For those architectures without luajit, %{_bindir} wasn't created and it failed the previous install command. (FATE#322227, bsc#1070362)- Update to 0.5.0 (bsc#1070563) + Explain possible reason of an error in scripts that rely on /proc/kallsyms + bpf: fix a couple of issues related to arm64 + bpf: Add support for prog_name and map_name + Add a few introspection helpers + Introduce BPF Program Snapshot helper (bps) + Trace external pointers through maps + Merge BType, Map, and Probe Consumers + Fix exception handling in python3 + Add usdt support for ARM64 + bpf: make test py_test_tools_smoke pass on arm64 + Add soname to libbpf.so + Fix Module display for unreadable Modules + Use bpf_prog_load_flag in APIs + Add flag to enable verifier log_level 2 + bpf: use MCJIT explicitly for ExecutionEngine + change frontend rewriter to better handle anonymous struct/union + Move BCC debug options to an installed header file + use user-provided log_level in bpf_prog_load + Add utility for cc tests to read command outputs + Fix 'test_libbcc' from failing due to symbol name mismatch + Update perf event type and config checks + libbpf: Support unbound raw socket creation + force linking the whole api-static library into shared library + man/bps: Add a man page for introspection/bps.c + Do not keep Loader instances around + python: make _decode_table_types aware of __int128 + python: Avoid unnecessary pointer object creations - Only exclude ppc and s390 build (FATE#322227, bsc#1070362) - Add _constraints to reserve 2GB memory for linking with clang4-devel-static - Rename armv7.patch as bcc-check_int128.patch to check if the compiler support int128 or not - Drop upstreamed patches: + bcc-bsc1065593-switch-to-mcjit.patch + bcc-add-soname-to-libbpf.patch- Add patch (bcc-python3.patch) to explicitly use "/usr/bin/python3"- Use the python3 package by default - Provide and obsolete python-bcc (it's python2-bcc now)- Update to 0.4.0 + Fix helper to access stack pointer for powerpc + bpf: rename helper function bpf_get_stackid + bpf: print out the src debug info to a temporary file + attempt to compile with system bpf.h if default compile failed + sync src/cc/compat/linux headers with latest net-next + Fix segfault with enumerations + Allow BCC to parse vDSO symbols + libbpf: print error to error stream + Avoid potential SEGFAULT when resolving Kernel symbols + Fix 'tools/statsnoop' from failing to attach kprobes + Update USDT argument constraint for powerpc and powerpc64 + examples:dns_matching: make it work as DNS sniffer + add debug option to dump asm insns embedded with source + examples:dns_matching: helper function for adding cache entry + Traces external pointers in parenthesized expressions + examples:dns_matching: fixed loop break condition + Fix bcc_resolve_global_addr on shared libraries + BCC macro for the creation of LPM trie maps (#1359) + bpf_probe_read*: src argument should be const void *. + hardirqs, softirqs: Fix distribution mode units handling + Add a generic utility to check any binary availability + Fix 'test_debuginfo' from failing if a symbol has multiple aliases + nfsdist tool (#1347) + annotate program tag + add helpers to access program tag + examples: fixed http_filter example + nfsslower: trace slow NFS operations + Update after lookup in map.increment for HASH types + fix a bug introduced by previous lua-bcc build fix commit + Better check for compiler standard support + fix lua-bcc build issue with cmake try_compile + Fix segfault on incomplete types + Trace external pointers from helpers + Allow the flags to be specified in remove_xdp() + bcc-lua: --no-pie, not -no-pie + solisten, tcpconnlat, tcpretrans: Remove unnecessary bpf_probe_reads - Add the new subpackage libbpf0 - Add bcc-bsc1065593-llvm4-hack.patch to work around the llvm libraries searching issue (bsc#1065593) (Also add clang4-devel-static to BuildRequires) - Add bcc-bsc1065593-switch-to-mcjit.patch to switch from OrcJIT to MCJIT. OrcJIT actually doesn't work for bcc, and the bug was covered until we start to use the unified LLVM shared library. (bsc#1065593) - Add bcc-add-soname-to-libbpf.patch to install the shared library properly - Update the group of packages - Disable USDT for ARM and AArch64 since it's not ready.- Update to 0.3.0+git1502955391.9de830a + avoid large map memory allocation in userspace + python - set attach_xdp's default flag value to 0 + have uniform uprobe event names for python and C++ + Remove extra S_MAXSTAT array allocation in some tools + Omit include of ptrace.h for empty usdt contexts + Add clang check for -nopie option + Correct commit id for BPF_FUNC_get_socket_cookie + tools/tcptracer: add timestamp option + Since LUA_GLOBALSINDEX is obsolete from Lua 5.2, use lua_getglobal function instead. + better state default value handling + add --state to offcputime + tcptop: Filter out negative values in receive probe + tcptop: Cleanup argument parsing + Use unsigned conversion specifier for nlmsg_pid + Fix wrong netlink port id check + 1. Use more safe snprintf instead of sprintf; 2. Modify procfilename buffer length in bcc_procutils_language function. + permit multiple pids attaching to the same probe + generate proper usdt code to prevent llvm meddling with ctx->#fields + MySQL tracing without USDT (#1239) + Fix a clang memory leak + Update bpf.h and virtual_bpf.h to 4.13-rc1 + Fix trace.py for library filenames containing colons (#1252) + cc: Add open_perf_event to the C/C++ API (#1232) + memleak: expand allocator coverage (#1214) + libbpf: fix build warning on setns (#1246) + usdt: Use ProcMountNS + proc: Enhance bcc_mapping_is_file_backed + Fix bcc.lua build issue in Ubuntu 17.04 + Added helpers for BPF_PERCPU_ARRAY (#1230) + Add an option to strip leading zeros from histograms (#1226) + gethostlatency was rounding to full ms + Change clang frontend optimization level from 0 to 2 + fix cc: error: unrecognized command line option -no-pie + fix incorrect code generation in usdt- Update to 0.3.0+git1496334311.6fa3681 + Improve PerfEventArray clean up + make libbpf standalone-ready + Add support for generic XDP mode + Add option to control bcc_elf_foreach_sym behavior + Add bpf_get_first_key helper + Enable recursive scanf support for char[] as string + Fix computation of LUAJIT_INCLUDE_DIR + cc: Work around verifier error when reading USDT probe arguments + Disable non-static function calls + Added the option(USINGISYSTEM) of Cmake for controling whether using -isystem. (#1064) + softirqs: Migrate to kernel tracepoints instead of kprobes (#1091) + lua/bpf: implemented packet direct access + lua/bpf: support for NET_OFF for dissector + KVM hypercall analysis example (#1082) + cc: add support for prog table + cc: add support for array table + Add TableStorage class for wrapping bpf map tracking + funcslower: Trace slow kernel or user function calls + map.insert bcc helper to expose the BPF_NOEXIST flag (#1085) + bcc container improvements (#1051) + cc: define load_func and unload_func public + Python 3 compatibility fixes around string handling (#986) + Verify format specifiers in bpf_trace_printk in rewriter + Add build option for installing C++ examples + bpflist: Display processes with running BPF programs and maps + python: Allow module=None when resolving kernel symbols + mdflush: Add missing #include - Enable AArch64 build (FATE#322227) - Remove remove-isystem.patch since it can be controlled by the cmake option now. - Add gcc-c++ to the BuildRequires and switch to gcc/g++- Update to 0.3.0 + Added s390x support. Needs 4.10 Kernel + Restrict rewrite of unary operators to dereference operator + cmake: Explicitly mark static libraries as such + Fix bpf_dins_pkt rewrite in BinaryOperator + cc: Symbol resolution with multiple executable regions per module + cc: Fix assertion for debug builds + cc: Don't parse the same module multiple times for USDT probes + add XDP return values to python interface + python: handle null module in BPF.sym + filetop: support specifying sort column via cmdline argument + cc: Retry symbol resolution using perfmap + cc: Handle nested functions correctly when resolving symbols- Add remove-isystem.patch to unconditionally removing -isystem, looks like the gcc check is broken. - Add armv7.patch to disable __uint128_t usage which does not exist on ARMv7. - Always use clang as C compiler, note that the build system will always use clang++ ad CXX compiler if it finds it.- Update to 0.2.0+git1488325605.4d0d430 + Fix long running test_debuginfo and python3 fix + Make perf ring buffer size configurable + docs: Update eBPF features list + Improve matching of file-backed memory mappings + Fix symbol resolution by name (SymbolCache.resolve_name) + cc: Resolve symbols from external debuginfo + cc: Correctly treat PIE files as shared objects for symbols + Migrate to new symbols resolution API + Simplify BCC symbol resolution API + trace, argdist: Treat small USDT arguments correctly + Support base + index * scale addressing for USDT arguments + cc: Fix SEGV when there is no build-id section + syscount: Summarize syscall counts and latencies + u* tools: PHP support + bcc: add support for lpm trie map type + cc: Support for __data_loc tracepoint fields + Fix python2/3 incompatible percpu helpers + fix iteration over CPUs + Fixes for LLVM 4.0 and python3 + Update [virtual_]bpf.h to 4.10 + add bpf_obj_pin/bpf_obj_get to pin/get bpf objects + uobjnew: Attach uprobe only to the requested process + uflow: Trace method execution flow + ustat: Activity stats from high-level languages + ugc: Monitor GC events in high-level languages + ucalls: Summarize method calls with USDT + Example of using USDT + Add USDT support to C++ API + Improve linear histogram limit, and improve error message + add runqlen tool + docs: Update eBPF features list + Improve C++ API perf buffer polling + add support for bpf map flags + Fix bug of missing to install simple_tc.py + Add support for aarch64 + Avoid unexpected log message on BPF program load error + Add lru_hash/lru_percpu_hash to python/lua + bcc: add lru_hash and lru_percpu_hash map types - Remove the clang workaround since llvm 3.9.1 supports gcc c++11 abi tag. (bsc#935533) - Enable PowerPC64 and PowerPC64le build- Move manpages back to /usr/share/bcc/man since trace.8 is conflicted with the one from postfix.- Update to 0.2.0+git1480569532.5647de0 + profile: -p should match user PID + tcplife: reorder logic to catch missed timestamps + hello_perf_output: match the data type of pid + Remove debug flag override in bcc_exception.h + Use StatusTuple constructor in mkstatus_ + Implement StatusTuple class instead of using std::tuple + biotop.py: fix compiler error on newer kernels + Determine kernel dirs at runtime (fix #743) + Rename exception.h to bcc_exception.h + tcplife.py: Catch passive closed by server, #788 + Install exception.h and common.h + Fixup test errors in clang, c api + trace: Avoid passing -1 as the pid to USDT + Fix Tracepoint example (#809) + cc, python: Clean up BPF module and tables + Fix warnings covered by -Wdelete-non-virtual-dtor + Fix argument type for increment() in documentation (#794) + trace: add pid/tid filtering, fix symbolizing, misc nits (#798) + Expose destruction of SymbolCache in libbcc + perf_reader: install perf_reader.h + Use headers from BCC in installed files (#793) + funccount: Bail early if there are no matching functions (#792) + python: Grab all keys before zeroing + funccount: Switch to BPF array instead of hash + Update profile.py to use new perf support (#776) + Example for using BPF perf event + funccount: Do not prepopulate location cache + python: Filter duplicate in get_kprobe_functions + Python API for BPF perf event + Add bpf_attach_perf_event in libbpf + Add BPF_PROG_TYPE_PERF_EVENT to bpf_prog_type enum + add tcplife (#773) + add reset-trace (#766) + funccount: Verify probe max limit (#771) + python: Fix kprobe quota test breakage, add uprobes + funccount: Generalize for uprobes, tracepoints, and USDT + bcc: Make regex helpers publicly accessible + stackcount: Style fixes for linter (pep8) + fix profile.py page_offset_base breakage (#768) + trace, argdist: -I switch for trace and miscellaneous fixes (#761) + cc: Support glob+offset format in USDT arguments (#753) + Support filtering by process ID in the filesystem slower tools (#756) + trace: STRCMP helper function + mysqld_slower: Fix breakage after USDT API change + trace: Add %K and %U format specifiers (#742) + Update opensnoop to filter by PID and TID (#739) + funclatency: user functions support (#733) + tplist: Print USDT locations and arguments (#734) + src/lua: LuaJIT BPF compiler, examples, tests (#652) + stackcount: Support uprobes, tracepoints, and USDT (#730) + trace: Initialize USDT arguments to 0 before reading (#725) + argdist, trace: Native tracepoint support (#724) + argdist: Cumulative mode (-c) (#719) + trace: Print USDT arg helpers in verbose mode (#723) + argdist, trace: Support naked executable names in probes (#720) + docs: Update eBPF features list by kernel version (#717) + fixup the issue in which distributed_bridge example (#716) + Fix bpf_common.cc include style (#715) + Fix argdist, trace, tplist to use the libbcc USDT support (#698) + [tcpconnect] filter traced connection based on destination ports + Fix bpf log buffer for large bpf program: (#680) + opensnoop: Introduce process name filtering - Exclude the cpp examples from installation - Remove the isystem path since we are using clang++ - Install the manpages correctly - Improve the spec file to search the luajit pathes and fix some dependency issue in Leap 42.2 - Remove "-DBCC_KERNEL_HAS_SOURCE_DIR=1" since bcc can detect the kernel dir dynamically now.- Add llvm-gold to the BuildRequires since the package was split from llvm since 3.8.1- Update to 0.2.0 + examples: fix indentation in tracing/tcpv4connect + fileslower/filetop: use de->d_name.name, add filtering- Update to snapshot v0.1.8+git1472097662.4ebb7cf + fix biosnoop after kernel change + offcputime improvements: use less RAM, add PID/TID support + Add perf_submit_skb + Adjustments to the documentation + fix build with 4.0 llvm trunk + frontends/clang: Safety check for invalid opLoc in ProbeVisitor + Tool to sniff data contents before encrypted with OpenSSL or GnuTLS + Add bpf_get_current_task() helper definition + USDT Python API and example + Lua Tools for BCC + BPF: better format for `ksymaddr` + table: Implement a StackWalker for StackTrace tables + added percpu support in bcc + Fix error handling when attaching {u,k}{,ret}probes + Fix python3 incompatibilities + Update headers with 4.5+ features + Add v6 headers to proto.h + Use pre-calculated function addresses in funccount + Add name to address ksym helper + Add a table.zero() function to bcc.TableBase + Enforce limit of 1000 open [uk]probes - Drop upstreamed bcc-kernel-header-search.patch - Add bcc-docs to collect the documentation - Add bcc-lua to process the lua scripts - Add the license files to libbcc0- Use the upstream tarball and add the URL - Amend the description of the pacakge - Use the right group for libbcc0- Remove "strip" from "make install" to enable debuginfo- Switch to clang to avoid the c++11 tag issue (bsc#935533) - Update bcc-kernel-header-search.patch to include headers in /lib/modules/$(uname -r)/build/- Replace bcc-suse-kernel-headers.patch with the upstream fix, bcc-kernel-header-search.patch, and add "-DBCC_KERNEL_HAS_SOURCE_DIR=1" to cmake. - Fix the formation in the spec file- Update to version 0.1.8 + http_filter renamed, README fixed + Migrated filelife to bpf_perf_event + migrated to use bpf_perf_events + Migrated killsnoop to bpf_perf_event + Print traceback only if verbose mode was requested + trace: trace function execution with custom format strings and filters - Add back python3-bcc - Make python-bcc require libbcc0- Update to version 0.1.7+git1455766673.13e74d3 + use __builtin_memcpy() instead of unrolled loop + http filter example + Add bpf_module.h to CMakeLists.txt + different man formats + Fix segfault in ~BPFModule on syntax error + Add bitesize tool + Support array and pointer types in scanf generated function + Add biotop tool + Added memory leak tracer + Fix python map.items() racing with bpf delete + Don't show allocations newer than a configurable age + Add bpf_get_prandom_u32 to helpers + Added --stack-depth switch to control the number of stack frames captured for each allocation + Fixed long arg name from stack_depth to stack-depth + Added option to display only top N stacks by size + use bpf_perf_event_output() instead + save one bpf_probe_read() + 3 tools: oomkill, dcstat, dcsnoop + Implemented histogram functionality, including strings; added examples + Added ret probes + Renamed to argdist.py, updated command-line switches, added kernel probe pid filtering, added verbose mode that prints the BPF program + ext4 and xfs tools + tcp to bpf_perf_output + 3 tools: tcpretrans, zfsslower, zfsdist + inline C in /tools + 2 tools: btrfsdist, btrfsslower + Split bcc/__init__.py into multiple files + Split bcc.table.BPFTable into multiple type-specific classes + Support native integer indexing in table.Array type + Fix breakage in open_perf_buffer + Embed runtime header files in libbcc.so - Add bcc-suse-kernel-headers.patch to fix the kernel header path - Drop bcc-workaround-gcc5-abi.patch since it never works... - Drop the dependency of bcc-devel from python-bcc- Update to version v0.1.7+git20160131.143df80 + Updates to use cmake GLOB and libbcc.so.0 in python init + Add decode() to ascii string in offcputime.py + Add libbpf.c support for uprobes + Add python support for attaching bpf programs to uprobes + Fixes for address calculation + Fixup objdump calling syntax and add docstrings + Add uprobe strlen histogram example + Update test_dump_func to be python3 compatible- Update to version v0.1.7+git20160119.f50ca1f + fix pep8 lint errors in the rest of the tools + Close fd and unshare when public map is destructed + stack walker typo and improvement + optimize code, remove unnecessary filter check + add -u, and change from 2 to 1 traced funcitons- Update to version v0.1.7+git20160110.a0aa7f2 + Remove runtime dependency on gcc stdarg headers and make + Add ability to set custom cflags when loading programs + Add ability to export maps, enables cross-program sharing + Rename BPF_EXPORT to BPF_TABLE_PUBLIC + fix pep8 lint errors in biolatency and biosnoop - Remove make from Requires of python-bcc- Update to version v0.1.7+git20151210.23b87e5: + Fixup dependencies of bcc-tools package + Automatically bump memlock ulimit + fixed bugs in control-flow generation + Fix breakage from LLVM 3.8 API change + make sure LDFLAGS are propagated as well + Improve json type support for misc struct/union types + Drop broken p4/docs symlink and create README.md+URL - Drop upstreamed bcc-honor-external-cflags.patch- Udpate to bcc-0.1.7+git48.g1c7debd - Add python-future as the Recommends for bcc-examples so that the scripts can be compatible with python 2 and python 3. - Remove python3-bcc- Update to bcc-0.1.7+git34.gfa9684d - Add bcc-workaround-gcc5-abi.patch to work around the old c++11 abi in clang - Add bcc-honor-external-cflags.patch to adopt the external cflags - Drop bcc-fix-packaging.patch which is already in the tarball - Amend the requirements of python-bcc + make and kernel-devel are necessary - Add python3-bcc since the python binding is compatiable with both 2 and 3- initial import: v0.1.7 - Add bcc-fix-packaging.patch to fix versioning issue of the shared libraryh03-ch2d 17041835140.26.0-150500.3.3.1bcc-docsFAQ.txtREADME.mdkernel-versions.mdreference_guide.mdtutorial.mdtutorial_bcc_python_developer.md/usr/share/doc/packages//usr/share/doc/packages/bcc-docs/-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.suse.de/SUSE:Maintenance:31988/SUSE_SLE-15-SP5_Update/294b9b1854e5df90cdc82a5dc966a0b8-bcc.SUSE_SLE-15-SP5_Updatecpioxz5x86_64-suse-linuxdirectoryASCII textUTF-8 Unicode textUTF-8 Unicode text, with very long linesASCII text, with very long linesPython script, ASCII text executable, with very long linesQEFR$)utf-8b6083bf4589980dff83e1a9275ff9e2851c90213f174648d91b34019fc5e1cdc?P7zXZ !t/U] crt:bLL C"Y!OCbgW|m3(ѯ^NN_wOiZW(ӡ.*ZmIV1vf‚bƟ}EJW5}4%ŷ]wuStQ 'aދ,ß%hF;vQ2EkWvO7J -=MHad{)#zCH%-$o£Qύ~hU-up ]jSg{k<ԇ ۷=nH?UܪOM۱'\PzTHޕkЅf_5ʣ^e\^!9I俐70o3p]vUɰo<Ԏ!&-FAL ,V򙳓6xjn,iآ8"`}o]i/V}q@98-.90T(1'ۦBV{ |ͦ⻠%_NVi,zbiV AMhn{Z'νiFiwzI$ N҆_r;dr>Ӽ* V'|XoDqĀg%Nz_=K JT`9*W~_C_,p!m?mQ!AԞ(uLݕn4JD}Rh|מhx\ioC@3Q<̑˨m%-3Օl$ 1k}O7ʁlKC{]s $2Z&hZ8Mm+$)Bߊ獥u(=lx6rL }Li:L7­0G~Q)i ]\=UTqx߷0amUw]a:v~퀚̾)PצۊH+u햼M0fD Zci[7j爐RJY$ad;-o=r?;yy"t<d&u`f@ڜvظo4aݜpOd@ ڝna=^=&dxkh fuJyZMel* F [ɱCn4`t 0p?!` 0V|3[[(n0YzmuDd>5!~1+dO,sQԌjY¸ez8czDAWFfՊ? P%sH1Qe.&n*KݶEqy GzeWRX/kx \rP8 i!Ncg@SH`-7Ty:J%]OJIDx#*&|L_WOBo<Ɍ 枸v׼;Ғm PUֆNYDPgwW^A54fv>78=+kҿTu5߱kK0]i{:*z&GÛYIJhs/g[ 'ՉޏcHھҷ&ۘjfJwOxF+/t{^_l3sUuxګ\{Lzh%ܖ%rn)k~I='j E_HitnJŊnPHKe>bQR(|vo+zX:kmߊ&0ݫ pꝑIp}ձruTa'^vhtnOǷqOſv %":~p>"7WH &?Ɇ_<H欢?̰J:JFѩzN%l *;}ixr~>5]bnĨt?_igs'L-6&!X`.r|D 8۩^=u̜܃*m<ł2[>pQցbIŘJ/$عiJ.:PaE3{&TV4ƛ%m3Tr ss"Z/bQSp9ټ$%].\v۹90ǔp'P7HpW79aI}=#cjy*^!"j]JL ᆳb`Ee5h1F JT.^BN6x{s`BFL]_&.D!1pO:(Mcp\ )]5qT Ejn3l~$"H:~[,$m'v6?~yo  _OWq24-\Բ|Pq7>]ݶ̻)Y ddUD4oMM!JQEL\#_ y ne:hӞq>@Ⱥ%LXߑS"$,]wsg"d*Eҕm\BiS3!L6뮅ɛd?a \< YZ[ِ_s:ZJvS8Pꪝ."KӼغ3KH6NY-̩qDxՁ5=3v'W ^.Hҙ,zr[WZR]vjR2ZBQ﨔8%\SU3Fjx}SjJ:;6,/+ ? 5pA#pga.qjI:>hMj Tip{QgW%n ,klt'ۉ<]$2O2?gݮ֑i$iᾃP4pLN']⟤ M vTc|W9&&Ʃ6^TaxǨx`б:NFh{Q3ǖm U{}oCf-1ZC=qRh!Jre}dB,^bJR2okEӥąәœ[@#F L{&$Ἓ1qx!W!f` @\*:JjDʷEk6o/,Gtf\lR͒t}{4TbVэ*:NK˻ⓉQlVҙblL1ʱ2kGF ^͟t?鯩S2IՑ?rw"eOY+߫$*25.i3-¾dR<rfB ɑ?X^$hO!zrڍ UHvq/O^jj\NNFE=2Ab⢐Ҋhocw|OJ p:j"+'I} M ؎ Xȴv@ Q! !nSDK%e~#$}{Dh;;Q+~ st:~ʳ|Q!ell)s 8@w`]9@!雙5_bG񝥪aaVC7ĭ;>~' =x[zC@g9~vYK£ZYr <O~#aWQBH&ĈYss|mh=# 6]+.`YQ]"B%boֳ!& 2} =@%3Ҥ-tGHTvMB6=03&fLfjg4Ra%+# ʝܳo>V\uF"9;_|I5i;vUKOP7gI9as'qp$f.ysBI9(i:uŵXjo u @k^ϲF9`|^noL5HѮZ<[X+5y61n<ǤbDӁ 89 Dk|]( n.< 8'0ϔL$ʸV2itUfTt3hdP[IJx!ɞ+ uI@EU-ǮZFサ[K-E\.p ]&.SH1 ^Д}`W49.hstk'Dlځj{ekΌɄ tW hWø?hQC'n`z앩%[(^L1W }g!} . Lfb3;$+HkFVSV)mCRBmpSֳɠApa:=-04@Rt3 T0%VglioC@eDḬʳ) lſ]XmlĹ@?lqӆqGa$0U]I&@gˌ<{(>|#FIz9Pf͚Y6|׎Tz2bc "&-Mëkp0WL*Xk ,N#FD@8R'zX}|c@;_yqhuېb0}LiV;ٗQ%wܺoGυ_D|$IjK/{LRg,b})BB_ۣ$ > s]<`'նBjqaETO3bofW m@AV+ K?t'MzmxBvTܱ*ML ]V->Ae{ %%ue٭S Z\묃OItA\!E~\*dIl+yA+"Oں8"r:Ġ?9Nh_pC22(HY0ZjպaB^`?H(^ؾ  Nf84Ҍ_$8w,+F|S_獑=l?ac[UL\Pѥ}5W%mj,ʗ<,MLk~#[ؾezvcp1}ꅌ,wzvr=*>f w5f3H-wEfܗY7{P&7 u)k{ 6ee[et噱?dF=3-pU+J8Ժ:-i-'͠_lAtB,cWhB?"0֏/V7"[XOLI"ON8 {LCHzwQ y|󇕂@ILsvQ+_pl['zn.5M@)_υ a=Qj)-Ȧ/ެy8!\@n 5NFȧkkG&~M}zwn=D#Z߱vٮ0'V#Uꣽ2{,늝3B֫#ta1S8 s M! Sʛo?Dz -ǻq:cd,F%Z@><?+tz}D\Ӏ*qm@{9ׁI 8RO%$yPtJn@9Rk@sCR +!zP'5|A c=}Rt@F&݀fsv-j 6H3l kzdJN_}rWu1$|DsS՝i) n@tMGa |8' CŶ]`bJHp jicObcMQ88pCTz ~8t`y} X~i ӳǔسROi `r'cp>[¦O&%K6nۑ:jWN7B4U uM8L4*YTCQh/tD0\zH]i+Wvޫ}4F>ȕcG 2@k\$zg71fH]HJͣkd2K(4:髮Rߗ?䪵v@^`^(7nWpO06`*݌A6%[:%)ݴqw* W! nQD9+?]~X1K(HSW9\5Q;B%]igrFVHF&>]Gap"\GXM2< YF, |/A[.f~٩qCRuc: J*B#XI$v+Gv"tbY-WW„o}e$f*M\gP&cf\&KPJn 3m+o_G*sBy"r~E^T{':UF24*lt2P 3TCV >J\Ws+ Zxafo`C')Ɵ5 tC;NK&ܸQŃ~`LB(X4 \OeABE¯& E.cV1nR;UTs^H uz܇bGفx3YkJ|G.WY~lcOP t/Fd@n*w2>M+^&>dC~عrVe9=+7cbdt Z+-l٠Wa}e]O,h_dj ~Z4L1>wG.}֖5@^B Zhy;`iNLFVƟ[qhjw/(trzo\zj+]4YYлi=P=ȬV"G: H=똰`$ꐒ` [xǵ0 !:}"Z~+v\vڝgJF c MB>k^J4RL^7!qEzq|`V? Vm;:H;V# (rHIM#K?U[I r=`/;yU([y׽/\Fghi-/҂"Pҩ^b#~9cFZ.ϖȧ.>њC/'O `=m&j*Es' ۋ9b`-ᝐ5.B^к > XqIIk):Yˠx4SF~1sS S8 $$ʯO* sy & 136c:}჆HDlWIdftp\qCZGuf8{Tj?<5QSsO\9ېZy.K(cKX` XW|=v-mÆGTMxlZej/gU;7=\nA d& |"Ȥ)RS? 2-($bv"~4S: cL]bz %UPwx#^$pPdP@G͚$?0n+#z|L cЭR]H݁D0I˔ p²WԪt}L{(pXxiSʲAWK nSI;Rut+8xщZ~SQ^P-(Pi0^jPG%Fye $.]X T/oH$ڰ mƅ5Ks˚$[5k w*zʍKyN-+ qЄއaؑkrHghAmRlIӳ$o+uڛ;0@ͦ߫H$lJXPcYh+Fy}tz(a^l 3q6CzBkht3j, 6mZVu^K Х'mOIب4?=Lj,{$e8kJ`cKDZC&N2#0HzkV|]?;} -{zM4l_3?\NeiVs94wt?~ 6a ; 꼂I.# VvsU@s6 VE@SXp zJDMbW++ҕ$T`(ZG/ςi}S_!S,?؊'l093 sBm:#s Td°CHp޴Wuj1>-O2p@b9m &wH+j2STxzԈx|hwN鉂0|l?[ gj#Rfdy-n'90.p $= ` W(UEztt9 Za$p4<c|_{(deStw,9NK澲Ě^Q91<_P LQ$U V[H߶K 'N%l^iN0cѸׄC=v|rb՟8 T?Ո>01!o!N/N*xe-v/RsX,ɽtyu埶 !͐$ؑea֔4XMMO6 WZ7ͤoUek<6.k)뛶 8um\l 1_Fl]BBjq;1.׷ ֝wNG-J6z} F( <µM~"^|ahoD⹅0bh ~u[іB 1+…N :n@HH_mhZK.+#rT7䒫 C4QQre򩲷"7Y ]DtyCL7lQ˾2ۊ_ҍ1ꢵ"jlyt;W*k"u-Y\Z:lh#B`wWkis0.-Y#6~bzwz]IN95AVln#O#n*l'DBŀ{$zom)6YKC@)faE8g88gO6\^u:f2ƥ l ґ=SjPqnu`PYm b\<ղb j? >p, OpPwq3iޘZ}|X7К$(`\NGOFuF!6@v҃OvK ZIM {{tR6&Tk 褉lkC3˩ %KnUENMefϠw^ ݤh} X >:.UyX:f{Jrz!S FQo 7IU+Պ9Tm(Hk%}/8@欈bp1:*Ln7Nս>0/ !JWzl%66Fnɰ9INK%h}^Ly j ;u])Kdcvax-FW7N 6a[=j& B*h! )*L3X\e6O-w4ؓO *uʈ5<#֪e&¡~療חt?z6hJ]]Ԕ K O")+,̸;*4ːbEsD.Ž;Ė-&O|[ZW_33O]gz]*%"Tw{ [bu%m0:vB#Y74gn!.$}ZBsO `\*>Ua֫~ݜnI}\xMf\Nm8~7 =DCu}DX&n2$ %>O ң>D^湩*쑿6%1I'NQ(7o4MܷX ^ .ȧ])撂=&T6$-xz8ffGf[H03wCa )ԻМ qe)a]K@m61;襗Sgl|%~=>7=LNćE=%)!\0&s&[Ege#g_Nfrood0g4 3=巐: "oĦŒ/-dFV`xյ) orjMCauD'Z;̸q=\jNUhқV88wҭ!Hcuj' ӚAswO섑 %㾃>>Ez 8+~I\8t(MoZYYni%]qI8 Sa\d!xI5Mv/ nuP]w0 YW1*[%eλMye8~hyRD#\LoX,r,p@qv/[%hK>83vjB9^W`rjWq#=T ;%pU{poƷ~14 NFm=w̙'턎)r|׹QeQ}qo2s3搦WvQa%;*wIiZfp$tɟʅm,qO2c&hzoXCwׅ`"x4"ݺ[ZMT!ϞsⴉRŋwb^*Q{A?Wsrhd0D 뤆A~v ; ik +_@p1\g8,X^r* b90ѐS. muDޢR]ww=jXHCR[[̈ =~yZ*-sd!5|֩$fKzA./7Id°8>O(|5%4uE'0RIS/2KV߮ ̿J~H( 3LhId W&Ud8|Uf0*0)GKC3Ke8"j>(uK !O+2H n-4lQS$=.wMe}/߉gJ3s U.t>Pb/nY,85%6 D^UE#% /\qK2Eq7d5[2?L~ܢo\3Oq!N(BQ@Cu?>RxsGCr[6EJXc@`@|tLz z0]euQyȕ֗ع(ƹ!􊌞xxݍf~ _;SU}VxtjM[!BGaA Mb ĽjhnW`0G>pJ=f+\0_yKJ?5x_IUOiZ-òz:rp XMAEqi@'1ʍn!LoY?%‹=CAJWu*Lc`B].70N2"ᨸFf=GV\5U.YŹ(&kgs0]߃D^N : ֿ>Pޞ)v,<чQƹt0XIGքmAS@㫠qy7ɕP)s`(8S8ӐmO[҄ekD(LJG,շcţW obHC{̤ۄ@̄WTn#EnrM2FoASQ!Xwҥҥf_DnыǟOmUFWvĤ{$bp}4H@T t^SmB_'WD0?PP}S@:Zaסr|$3#&-8+E} ut/nw9DE[ۃc5HOjFˈ"^Mk[]6ތhY'_+' ]ɕcr܀X#)~;DYD)5sf*- /e˶jU1 D{GfH'N|_f8NS6-:#'!^*1&ޗ ϝVgR]+pP=l&fF}Q rt7#@ edēvnyi.({bWn5&gz 롧.b?>#TW"Dޯ9=m׶K"V,{ۼ. A4\oQc8%3N%%2n!׊p#*ȁg|*s|F5nWy!q)cLl+;r9 x/(!£:²΍U®K{!H7 7x;v(hi14g%]^%.~ 4KdmrD vv 4={4'sB[2SI̖Ij0گY )} CU)j+7s>B~EFQOGlJu|\"ì)J64כ vƇ ꨲ1= /!a&u ]&gJ.^6Bŧ/*=5uaڠyC[fNΜ_3[Tq<\ :N ^JG9tA۬-CN!3i4a"7h\|(wj$X$DEy,{ȿ`|2{R O C?')ɯqz,g`\ aiHds6llcZ)*jxXLnPg%5UӚ4g.pĂ w#$x@S̢2fmE/mg1R\ KtoE+8d5d}W ks$ʂcjQt0G|@+RRzN\4fo%Qhf7Wy)Ҿmsx mu|sc~HΰBK-h.$$i9MSO`pҙ-ߔ+ZT€'x/<g5  GX2]'ʹXwWl vˎUMl_5ˆrدsLZxhHB 0a3gԙ;[S\WMRֳ_ưRZu\ |';D|zrT&c-3yiہط5@\Of;RH;*+f5q&7x6e> |Ky`lC ҘT_{54(,Ls$jὀv秆sɲ5A%U>Fmms= %<\tG9|Enw{C9'FHAsYdgu齥y5𰯱p2NjFG|%ڵɘ-l֖J#V+bb~ւA^!Tc>U%Зaּ!ZGWe-S5,K V娃gIx@Mئ-/!G>jƠFˏгm6m&ERAl2^1%S/ڌP^!@T.R_fv=Y͔ag+.%h;' 9Fc½%i?-Xw=-(jngu[vց6lm (s7/6 xZ _k8^ 1[]: 9U"R3#)Q>Y!IMywˆ,fGr/fv,`6#0_iʯ ml6lj=z;\(VToӫmAqF@u_deߧf.oj@T" 6>e6^ϘpkcaPXWxfKWOyy8jVI"FuAEd% þi4L.Cz T&ޯ -\uCN-6gtݼDM%e)U(TtW'%g% {ꪢ+Nh 3%a Hq dnd^%ofu /!#7՜EtKյڇ|͍J,WCSBZJꖞ³D%IN?S;?)&ן&/omd猐ُÞ5 T?UUQWkXUxv,saAcF&;Qn)XV%*Kڧ%f8ޚI4uOݱOHo7u*vY.C:|X}j*4* 1ʢah@iG lHR@ 1-tĚ.6aRCYMFܞ'&5ꇩZ'۞}L6IEj>^)Rٍb&@?rSh"Ev:lyRzALh_j 1xκ6EEm.C"g 1~/$R~[Ӝjx[uaspzӱP0-綿ef}um/eҙ;p#s'_|9J90OL[KX:%f3ZKO+2\׽x-j4դ$x9*v'^퓂]& K#[q7.:ᶴ:V?ʔ[R7+tC767'mr5ne%~3]McVZ %~ 4b݊ٙ7(| ϢһqJ)̾# WgU hW܌3aJ6$݀1"]?Pj~݄]I9:_i4Q~!t9+a{'37PYxahEsk8Kx)1!K:LPA%eVa4+w {Œ,붰ikLoob 1TJk'N&#J_&sl:`BؼhLr_ks^-r./Zu| @z~:$9]2Ng0V|tܱ"/,Sos(2+f# `lB=T;J(mHp3D3`dX_m ذ A ^C<!T u#O&pF2Y{->HY*{Gֳ\Ӂt b acgWX5x'}Y!H 0PPrW.Zq ,&갗79T{zӮySyDgD8~c3j&~v;l&ٓ-k /'r(Z.C $:`qbv bȧXB4YIުn # 'qf2 t{s#_ u.K,U¼6iCNH3DzTMb_1 W(˜:L8𸺋¶mD^R6)KR7JC}7.j-&2=q#%dVD)4V%߯믮oYxq 1`CGƶ9K NJ~M( ܉敜^&X!%M۩˞R{ko3 ϑ(ؠF#&Y|[+'Fߠ=q0㵏 /k(~P[ }\ ʰNӹ[ 5bJeOB!X,*C=iBՌ|"vN=lꁱ&]o'spCrUZq.ԬZW~N WVNoqSJ,rB䢲}/f&NNxNo)91+t0r81[qs9Zi}f}\5w.b#(c2Rfj0Ihh5VGzb4 #iy8Y(6BtxX[qKpz@/nЭKV0[yĬmMR~" M5ݸ"A>)H$fn\?r(uak,}$BD==q} 8H+$(ŗ9O6aա߾Чc]s/S0)\BtDB38 SV-jJ 7VRxrłnWjQ\HHWTUn/G M7qsHsu`"@,U*: ?{,;w,\~*N }1L}3;WF/1x^ږyQo}ġGn]}u:i lKM$s!h'w$ҏ9 ʼnt*Z_,Ѕ&2yׯ KUI5YFmqS}c2Bc硔jl( 0TGp=ꆦ}Efv}Lʶgwa C %7|Ī@xNp ڷG0'³UmOb 6VzȌ _DaIOx& "p@6SZ,"jw,&"m]r>mDk8]Jǽ\55 D.E**IʮolWZO 0 O b0sIvE"\a9>Ŵ79|u˫J1&!l#[F-P_klJ ?=O{E?y$2XNAu5םNp+^vYRjbv!ډV[d`6DrF{mx TS'wp}3'#IT:ڰf涜kY;0hPSzkB=(^Toy%ұ cAƞb sDިQ%k DB;Lw.}n%2|b͉n1 fiZV/L(D4LtGJFCeNeԦ@:+ӚlTRdjyvE.SeUsޕb` 7F1S@/5vYFetȵ t8}8MóZylEsIo*K3g0MŚDK:Y{ZR;!1-RF| owa"`#s^sZ[`ĉ 8r 6#w1c#.͂|tue57G6 W\E NnOR D}&{wU@,upwxCV$)U`oGoHYLזJgN'}x4%xGЀ o'|tZ+%9TU,Pĥy3"O\bZ6N*V8"x7Grp{a0?utR ꙧgj!R?uSZX/Qv#ZT ~Jc@4 Wk&%NDgSdD٢+Y̗aX}U1uRS8( C~AA$ OrOt?eV/s/Ѧ3ꦙD&SSXlK36h:tA=8[CPjP}ɼ-j!k3[ /cټ֩2ҫ9#OJ%@ A@^E28TnŻ`MZ֮^a64]XSa(@)GA-xo)cJ#Y3D,WΡSsG̀x@Z oG3^|;X䓳vLḃ`yĔ힁+W '9Ԩ3F_E qMo-I?{Tiw?f.h UHު9ͺV98 s-W&E* K[*_UUأ{+O9[َp+u-Y(EAe巽8vGL2@vƁ)iYF6u"9Wh](T-y]`~ay\7!9ۏq^ajy_7RxIWgdS1mȣX=X&h. >Piֱ:Q/T|3˶55#ꐺ_4;+qײJsa m(op#~ 4U;PTIL7@.ۥ#Cf=S;;CBPzQH$j%9X?2~g팽Y} {BaO7))̫k۪ꁻ~<@gT)3mƳ[]uzkguTzdOk Q 5oH> EL[3Ì#>r8,ILb ~iLKsb)#{uıp (;j@$a$i@OGd$'nճX>F^O&A3H<^SBn^4=5 6{- B[B,{hY2yK"xV >"ETeZz ivO 0Kd KNW[̔ SeςplsYji;m%q]%4LRq57D}5%xsr=C$ U [̓E+CgH*ziΚW`Ԑbl:6b]8Ȥo,,ِ&([У5~=\dE5@}5w࢙!i>FV,rIӛz$li!PG)IuKMV"a%hlbQц4MV M̓EQcw}y`'rUm&&、J2;`N_AӠ({;_[ I&>h~ jg)t6#F Boek7׎~6@- a3(%x#ViNx8O JSLkžч! ^}5v%D,0MuE[ Ua 1Hboӄ2QJ5nUTD`~> 1'Ӫ;M'R i\8t e*DJL ` AA?̚R~zWÞ $o`ZQXވovl^h~'I}*imu!u9.0͍VF4j~"J;{ԨMQ(dڻ 9:j b*KxSZ? Qz|ɮGg }KXʡJC#J<h>HBb=EA·:k(jcv&X?F!6l̤5bbs縭#YmG^5"uMV2…]#N*| #VQZh+QJrSi߰wQ0RJwVJ(%J)gw1OX8@h"|$r!UE]<S]D(!,$wJMOF `L{wAA6B ̳nQ\:Rb6QA1O=(̒ }V|.Z ]^_HBCy/o%ϲuJy;7պ$>QF>罁mQ|&nt(tECb),ţQ 78s(\u :M4!W+sXo:Mc~K s/>D+|ʞL#d{M=uMt9x JD#MkRa%Wh65j5Y|KpgR;czj8me„Rnlѭb0CW<'W,gjf拌|y;E YE'$QdJkJ.H?ppC7e=lߌdX *}̾ZE6ʓ8fZݤ[cKw*d-WIjx{dTUk/Tݒfsgo <0h :h,fW^xTNÉiUAیz;R-=vplГjInCǫz%Y-[V?[{K} zpYpZ'?s6yM \ykl. g>rʇm mzLtp}Z)McW&U'Ms=W8+{ԣ]̻ey{e@VK)!V/ՃYjZW ͙'k;VJUgw3p? %x}YOaɴ-!lgԿxjzh8 H1~!҉`Xe2<^ņUK kjR) BLL`g~CaCtQ+V/|G2ޅ; i)-.T-=jW&F{#Qn6~ :!FF3-ԍ+9 ;ܐa*~}<ٓ*F<{ý-C5 ~!}Z[@V0qKu^QgIS,( ҊA ~ EF]],K MɏH: m|o;s@z'bF9ͼbTZ#ojÓ0!maE) Sj\v]oiջ E23`ƾe^y?%W넇wG&+2=Tϟ}+Mү:)*"[*LLǟ)ɯL4Jô?MR )=ИUܚ%]X'8Oo&gIfZO)cP|!3bBE(eCz+ِVo/co IG2tHS{@t]=$;T\$'%lmLRD&?_2.2Go; e8sܺ)&"@bDXű)wmW0C-W\F>JtYWʇ`un9)nsfMqw8☌&Ew^+m@z=̷,BwI!)Z4OH0 b(>M.Y@h~il-r|sse.76qube~u.h*ғ8QryP4)&z+Fh "ѻݞ!d]hiUFbtsi c>25uƆqv%f b"v4 ]/BJUE:|Gߪ.ݜx'֥:H"a! -2OAă~]~T{|-mV7T.xd?j7滭=6A-VbrPDy楗_P[s^ svf-etO|הZ*NRl>JL s [:;@F0/B1L5~+NJ}~;wP4HM.YAgHV)Ȋt/Ϊ5QW.. GSP.VZrru Ju5 sD+ϥcW QےbF%XE ?Ly^~x~, b l枬 ah-IU1[Q"U|:]–0G\ ĩ8}/01 :'qp}dezmCK7ȶeMbʙPS}(3nte^U#MrxI ՄTPQ^bGĽ{RԠ 43GOa}9ٸjC-QE+筧S/9irSΑJ5L i|( U;mm{ 6{zZ KJ˱h$hqPZI *b"<:/tc ťD( ;sb I}xwԟlC[\G pRAP\է󰌹2)5i#-Kg}%¡n*XNǶY8d^6^\kes=%bnxqy큐r ԙcĎ66uE}Bq$SkT>JȷXa~KΟ?} qP?vw==TǢGL{F}uN Cb&.QoJoZYV| >bd4e8@koRڟ'ηNSEnʊp|~ Cja ۀZTm3\WB(|%"r?!8m3? >u)ExuRV ((nMIw4P28'!8Z.FMKȄEC#M~>&zHDYAQ{j ; Z^j"@9R!;b(3r(xs븗NKzbxUCK#ChI?j=Жv 1KԔLRSCSiU$-JE Tǥti꽫fPcg^u_Q"Zdzk31x hBEՎ[z lR 0-8!2߼}ј~|NDWV5@EA! ohoLor<Ɲu- {gA,Y~ }zh=Bp ( KrB+h,OV<ԏPXfLKGBT1)vZF-sl ,("m ̊X9۱&Oގy8J QKҤ"ۯͭ=+$=IrLM_ J~dfs%w<@\I=2S嚸MʇΜReeUbZ^Uh:*d:k^0xSn^(g6C`X'pczi6O<_$+SIiG䜇3C`;XvISCtATZRG5В I_ awLOxY5_2ȝʚd]5-ZM[8^麉r~m~a_%5 wtx~ PߵQ=u= bBg&CL@/ AYc aT%5fA9޼ bx%(8p^j UA^/] @W'vs B?tg~LьDsW9%V^T=e{VsF#Xd HY&<=SpDSت#h}s8}CAPCUR ^2f^(e_f_ځ-O*VdZT'l [:E|C}xx}^l_k}'!ϵ~Ы[W׫"Z!$G/,ȌbǞ~o7֫ɧ8_o ^P$](;c}$;gb'y:HFșde+Oi#WF2a"RR A^T(xDž#*8|#GGԟJa-,4T~@3^rCO%-ve1 *; 02(UKy} %'N'aը~‰ hekhnzz,iq8aɟaBwQʘm+jMzmG eK@fbZy]TY:hhu>:&}JΊJx?8>̍8>L,dk6BDGI9%;~bj~]O୤P )7#k=9__@팝9!qiPWz42ӺB^g9m  2rR.3 łD >$(k\4jrPӲZ̍{rnhkל_7D#yT> %~֥3<y +u a}Ǒgk=ZqK[լ\uVaVZߢ*P0+J Z"Y DZ|.}Q%?c Tv] Ʃ(LGR4|Ԏ\auАK@hlm;ǿ|Xk]wkt5%솿:h3F5n< +9as&,<0Hhmp( Pq{\A}h};sgz&J4 ?ב9mSZ ҳ'‹Q]92RB3ۓ'$)cobwa$smUP%)8[ܔ5}[~ԇtdQxμjף&TzVH~W'\/J9ײX8#*.RE_@#M@ >lPLhuP@_ダfY<:uL- _N.t=*|Jt 9 F:ȕJl*Bz5WOQqHc3tkԒ[R}b6KDMgo[lN-Yu3)] Ab[B$VSIIq+<6GHxP~NZ|vߙ==_{3 fJ*_? TjVѽK76.şARDGXѵbrNLI99%-c9ݏݖiy*{JF 9D!ԁ66@Š|6ڳ W,C!lr <_7t]s'#t˘EGKfvT)[SՍEޯW(Z<)[؋Y)!Y6iqr]"8G;zxkwYʇ+`ܔ2 ! @&g;)#tࡏh Fis`X2^!V0%/1S[,}oGq<HU[0֮V9G8j|K|h8Ւbpj͂9t;^Ex buܪ,P4jxޣ,&8PkvtkX>y`'n@*%m7JĽ^1s?r;Y8<g$@_{׀i|j3xKGb$t鱗&e;j]{)K*$tWF.P]Cjś\EOzy+ 2<Ԓ̏"!): .|04  Y]&i*^=(JRmMQkaY{ 5bCV@A״q,"|vRvn dmѓ[b x0a3NiX.[ я^r&_cC1$ĠQ4JcrDt@BEϞ+5AQ&&:7f, %xlj" o+ G2L𭃄JjX/Wꤛ^ady@ۇ'(յ᧳οj?X*Hq!XY}kٸN8_JQ 3`'Wl@ *dǕci@u=q!!ҬK-|QPݖ]aśvS=wALWܫ.Mre|:]0 T&^٤)d< %C_#Zd}I3HBmPO"$pJw{vGPݧw D}\U}$Э_i[U9bNaZ3ɾPo _|Ģ -p(@GTφ;MTd`kB)7?lDN2Q`9GKڿ9A#t#n|x9Qt"ySR ǣcHpM=/NPTqxU^&q[5)GAfbCfV8\mU\4'/ eswοeUՓMAd.[uGCڥIpP&Dkn)h@[T;q#E ^5$lm+R@FќM=SOhiXV-bSWeճ:[#@IL]_.;q5TTs)@~Ih7h6Gܨy2UteyFe)& Sك뻴+_@ x`ܑ!cebtdY8D`<`N,6`j5@1 Ӗޢ,Kh+\O,49J7 )k愐G:&:i2;]ߘHcx&>Id&GCb*)Nਏ`m"T47Xs"' c`.r ,~=N vb/+%.KEDM!pAK0=h"Qbнij"Gؚ~#N1~k¤IH9pV juNKhl s2ˊ[L(ZSl(Cşۓ6TWrSU;|:")7^?jcXGW'cCTZm5VmEz6F9Fl);kD>Y^,i#mZ)=g:fP,73UD`LC.qh &8Ep Ӗ!viGQ+?'eЕ סNrzJmW^8 CH hxskhSj* X1NK[W]\ܹ*!r$rsC*DЙbcK3?q, fv=ɣPdr_$.3@8%G]."Rktl>pZq:mv3`Ug~gk?%F_Éh?7{vOc2=q>Xt[A(ǧ0S] bGUr=4v龰cJ>Evq6"߆R>X۠`{{}8M/dGa9.K`Pg.U/W0̓H-AW+GdfVbqC.Y߾66W9 Yf[88=Qc<6:}k@;D ah>Ot*A6hUȺ0T教0MɳT;?rGw^v̌G>Hr&~ LjF=` v-`aҳTo{BXE$na8!憱Ɵ %W% !0 ^`-,\g:,#]IA穕}jlquϒՋ6"5|J/[6;j6j0.2y\fHSgR:!'̹|^(iocS]h:DdfYdqĄ~QU;.G ȇ[n˂uLs_e9g^@K̒*~͡d:f#u(v%WlČHͷpAw,>Kx`\։g0IiPcQ(&Fk0<@06ضf?:*B2s&6@z]4 B^쀼]fL\iJ; iy$3uTۯ_,wl>{G5ϑ#ofdI穯r?מ_* rH׷$=jH|GƁ7XGӎ!NڃVz'#O-cL5R)]ņP7Wgɏsp1Nh54X.S,XY* _ґ61'sudH5[?I1]?Wc'?-HO#0G z*>-:|۟^]~STaTIP΋10%)ҙ*8LG}ėpRjH/(Ny`dH }?`#&۠Ԁ_trivvda]pyKVWԲfB>;M W4pLQ`Vx`ӣH < dZ~)p)Udi}e6v_ƣk)B ^ߩl(2JqrSrشx eW%gdU0븯a-QŲ3aUl(_?|14bA#Y|obII@Y] q`">Fah@e.Urܦ)5~I#\5$UpM# Y£]0#Њk-a_PKE=~, %FI4vQorv iAʣUP.=%Z5AHV6-VS?ҴQ_O\8``OyK;Vzd07%4ë[!ظucN Qn*dm83 |_g(&{)1 S+L7IM1K*yl>R" D;5ԡ<@!QHq>#$QKp9,Rlׄr 慕蚍`gE'; ѭmkPS}ްfe6sS3(QFfN؆J*wGme툓9}|)?eYLTNv,VKdWX0x&d:(]q& #1fhL_wlzȧ(ޯ"\/9lkg\oT(Gy^Rթk|Nn)tzgCI*ӗ0SxQ5_*DR}!$]^YL>YM v)Yk#l7Ovp"kBVfMH%DK2Z~sa)Ruv.6Kz/i8BSo7 X 96+La XD+quιLz#ɛ;)#͓J3_+v^'!CP]I|`O{iNMㅶSKLmz{XYm:Q()ݾ\_'pq!$EH#LBU]{ˉb'$sM_T5VO"UOyo|h]ꮘdX2;1\QEz BV_ tV+ k185M-G2v^jgLDϤg"tE83P W^BQsJ) tx)V9#8Eh/xv` ݊z%L~&*awnq] U>hq5ʌVg>G5Cs^^ώ՞KX\bce-7z!lr_=}0et͌?(!g ΠalNt~;GHQP  _=$lq`ÉɄk^8:AX)$ݪv0m%a+Ԇv:PV8.S)#hyQPs4|2X?u\/|HsT$@wDsiX5=vcE$ϔXхPQSaԽetp_u"s'b4vΦ݅mVe@ik蝹5s"=iօ wb?R_ <)i\$VK/E$-ؐwKcȼTˀ.<_-d45HBV7 fcb糛1 pc{wQ##r? }G/"j%lp]fNfxaSbS^վ{g!gB@l1Rb|V:Yμ٥/§0M3HjդS#|ܘZi̶DE3=Zi_T_ܠiO£{%#6LgܮNt{mA#jCWG_%6TciUq5ɳc<QVHYYe7-M8,sʹ. J,"F(/Fu-d+rQ,Lᆙ4U!õO<zSzהUu@"|T8.k _-kbxp9Cgu._g9}'Td>aL(<&o5s)&PFD.r쥊ʹ|;)NPm{{&ocB4ID:e{>OfBнf; ?}^z#q5E81oL]>%TŦ4[M$H$ׯx+ [Ks2@ix P]n0U&jhnA%:k͇jEsWبU+=-L/6aA4'  0<0RXa9х@:t'H>`׊\Gwe@_iL'V>QCg;xqODOPB0sR&ujw)!ߋr NL+m2CT|]\jg2$N(S\4?5Nh<sBj$3J  ͌B:3 ]6md6LEW:GȊU1-P/]A.+ ,;>--o{wXP ,}"2ʞ9WIX17|YZǁa*`ͱ-3Pii̯iRhNga|'EzgpBnB&2jN^aBmOj%/xUeP*TJ#賃| [mey 4#1GsqA㟴xs^xkE ђ|9$7#A csHuut=%bKsn_s9陁N1 A=^ܣAWykxaFٜ\_﨩t ǫfsq;## hӊ&mzgCgX1q( )66}pa=*"aRM@ߑ90 TM0nӇZŹ!7`row$>r[`_/U hTwP"Gt}FdX&|T䧣?5-@NCU0+/8[hTaYKؤP+cSm0'z`^~ !^ty02;$˹]@\ybƒ;"iU7#5~iʭ#w)2#_ l-mc3(uGF?(hߧ ƿe+?)G<- nyxy+D9M&.k?]jމ֮tn sm2) (? [Tw)cpܠ~߭R^eGMNS%+Az͞Y#\]J=8/U _{_$UD--.Meޏ:[ȦUJp'qulK_e? 7 ;<4j7,aUQ?S\]NN1pп Z%/w_F`ak6=ܟv3Ev2 >1K)[~U3nȳC=H[\9=q{,-{ t \QTIPU5G";u;Gf`:V'ꐌϸ嫆aW^mLtR$XI_KfwJnxE1`m"C_/mm]k.F %^ :ҒݙLZvJ~^Wm]% mm\5J%֑am0W9-*mOmx Wf >)sFgEhWp@ViIpO{ j=eoBȉWJ4gpC|}2UY _Jf{8r2r},{=r CѵGafp=.^½%Zdky,OjBJ}D+4 ݩ&Y׀*U,PlxtOKzl^gp/cND_MƎ߄Q0- iָo h &\ T}1tWM|àI᥺鰥8Cݪ`_[_/^8(|dp\4|vJ:1W,ДMn.[1qrq&E|'"AUpFL7X^QI4A9P|:ћmҒ&vPTp }9.@RX#:|YE8 T8 _%yfxu&s&VV/VNWi8—v<0xbk RY0(^I9ޛؙݭHd &&~WVq{9w;5pB neƬ 1kWB +8`ESag%^͈.D6yH|'G'zp YK̫*a 8"$,4Ȁ©Rog%=9+'QK\\,l9ǖ\ ,yivw&ܲ(PђF؂TDHċ1dF5V_H؈SXX†L[ȫd88:J5 g>^-6/i-JH'{XT? v6`bC]0 hgC%I+*fL1W)Fv4$]L^>ҥ[KH?mֻhCJVcPwmR$&/390C_D&#\Z"7iF3R L e-H#C)fi;o_J:'.W5VIS0M+aS\K߈eky&Nui u;e_H,E]0&~k4UHݿEr+:Ss9aFcht(}.oz˺uVUn u,:2k1G, VYK5WX$c7 jg%ZS{0~-L.U0#.(f+8wԔP|[meQٝѴIqD@6r f) )Cٚ}H oOo;IH'n 7`t|3 X:ol`::C8]tz[:ۊ]\5!bwgǖ}7eY/i yBgPK/lTW~ m)mޫ=6*%3/ Y?q2 n57={f_ut,5-w4[?qCQE"ٿ1z{AcGݩX^L_&.%,*S/ M@K\L[,xA|ڮw d 잔yoGެZ-AI'ڭV]C{/eR6 ]=o"J%XooKMJ$VX+K^?hbdyNqB(-y`>a`N\rZnr>CVi_ݱiFBhI6s~NUڻI &Ҩؓ**Դl  iY~" HGEq4pz7.%soQ^mHКuGle1Zdk$jU, wߠZ = =Y;@m !l}>k uQUH_)cN j0nC;q8j3Sw<@T޷;ã`] =*^7dz6dz*,OpnfLavu"8ssbk AĨ k(ʼnyDq-ǒQYen u7c3RA);r ~*kWe$rW&3qf*ogWڵ0,#uٹf=,>]l`ӺY cRg*vcS~)nt˛*Z8NQ-˽%]+łQ.(r@m25jy vI 0W_̩vx;xUk\?'辁 СrtX;b$I!eiN~NH'M?xǬa >d0}#Srx=!5>ys8}xg;|8WQD l*У+bbw4t[]~˥E_H6q #YU8yжY\5aMt߈p`Q;LTqBX-!W~NUF2Dx)PZ7. 1f>b('+?9Q T(NkN/X4}{d(feaW`Gߧ(U֊Y|= xXd8=J$ w^8/ G+YD䃁 5{.eYL2df]`^IYRZ YZ