bcc-docs-0.22.0-150400.1.9 >  A bwp9|["sI֠}-]Yj9%cPf23XNĩ,TE\uo^*%)$V,Fs^t?Υxf0iY&A$0LHO|IgԴÖ"00#m3}j7kƏ8U,_k(txL6$C^{#`TSz)CwG,M ʖ:fNRt8*%$k ^K׌cBe5bd8e181e3e927926a27ecffee3e8a67cb2ba6848310d9ca6da7ffb4bddf0d006bb0c2eae1ca9e6294ae3922017570a1876b290zbwp9|)[ M|~ HZXۯ7Vsu7-e guO$V q4 Вrzk|:i^w}c[PjJxpv>=`e>ve+(SoO{CodE|;){ ڵ5΁LYAjгKTOR}=em#p;t?dd   C .4<X f t    <_K(g8pD9D: ~DFGHI$X,Y4\X]t^bcde f#l%u8vTz`Cbcc-docs0.22.0150400.1.9BPF Compiler Collection documentationDocumentation on how to write programs with the BPF Compiler Collection.bwibs-arm-3SUSE Linux Enterprise 15SUSE LLC Apache-2.0https://www.suse.com/Documentation/Otherhttps://github.com/iovisor/bcclinuxaarch64 V#KZtA큤bwaBaBaBaBaBaB994a0c39dce4a66bce5f887b46bb793ddc0b36d35a3a7ece1ab914f05efba096b60fa3b29859103eabd036f36b33e94432ab19b1f6723ff68212ec3c08584e4a114dd6bcb4da22127c8b28057fd33c650176a7e3201ae317cd730d5fdc734360915bad61c14145c091c468660ec16f192d06fac7566ec7a5eac8c20e66e8d577e1989f3f00b204d2170966410e96be816e0ca370f689cc9c4352ecf827ed44bc0eca65a15c3a670bea27ac806e027dc1b75ace9ef520e874c92ba746c132dc3drootrootrootrootrootrootrootrootrootrootrootrootrootrootbcc-0.22.0-150400.1.9.src.rpmbcc-docsbcc-docs(aarch-64)    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3aV@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.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- 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 libraryibs-arm-3 16519661410.22.0-150400.1.90.22.0-150400.1.9bcc-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:SLE-15-SP4:GA/standard/3875f9acd8b4e0c306a8fc4aecc634a1-bcccpioxz5aarch64-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 lines1z=UW)q9ڔutf-893106f5c23b63d58d0230362100e99a791fc586f3df4bd3a11aed5c2d5bbc7a6?P7zXZ !t/㬇z] crt:bLL #]ϑl(#ҹBƣ`zhUbt`˄)]~)!2j˭SRI3r-n ;Oc_B]#"G%]~udJhNB,A r~hjrX+,]WuR%9U| C;O5^fBbX+1p䤋ᆛBꂞe3saܭqHXY,Y _)T*Ög,bZ Jye:.%LrȲM#^%Ln1\.{8JGr&0w@yZd%J9kwǬVi 'ߒyyKhPʰG?Lj Fq(?#s=b]gdgÕmX{ />XB"J(s:-KzkԌO@X5]e2-'tU};vMNWC$"=^SלvzW}O=8Vd>p^z]O#!<$&낎'r ר$aYZ`hSWz0i4 ]..)I4㹼ܚ͎7vN\gvÜ!]CgݙPXMF(8uuo>רZl8Xiyx'* 0TPW))fKn.]*5ѩţv$c  ԲBk .lJB`fhG 4鑉SakJA?vH2괃KybxfFGG({?5[rwunw+h5܃^S3D;u,!Y蝘v.dS08A8jpvL4vkfb Є%bxweC$宨=_E7jp dґd-NX ].sOeвhCw>B6~ {>y3'CLD5ik†}k8=V-;y'&rh|ɗD|*lE߻ Z92wD6HQ}*oSlj6S+_I#Z9 }9#vs5N-ӭ%c`ƾ.o|*зc^v8xS7^VBu1D-r9U'/eaK=sIC[pQX$ǰ^#BQt>5#q0 <|Fn >s{y4A qO\}}EKk2TJv'>mvz+ϛ5akOg 5[՚26,l ^ Zɴm#}viOddfQlIEѷsK}x}<.ZG"Gh`\)c9< TAI"S AK֧}"u#thE%*cnd^]M5 sqng}7"ox똪DwzGL6UdEfz 6}xώ fP0p8u2çwNPf T:jƢr&}ǨL0rFwB=7qtUװ߻\D4ʅIvPwql%FS Sщ4[O<ֺIq'Io!_Py{pIαt N YGN3=^p+ tv YbFLbS; đ.` : ߰TԆtkvsb;®lLڷ޽c)MM+CllLh%W/j/m-L/Y|I;*/[ "8‘ [{d( ]E̾|R~fY"EDHj.af$[@ҭr\Ֆ6̑| N  u o+dS-t yxJ;;NئqDQ\%=Y2pC^qmb}QQ7>t%TMҴ .ͷ;hȲ3Iglal!K2RZbrm W Rca[QڴP #&#Gjc=t>2[ #ĽM'-`vu)([4`V]qN%Gz(=x95׭@bNX~d6뇹,Ym9E[BK$3AKDqةWӸ u{;@yxC,>ģt=/` Sq\Zy,!60Xno!唻8BxSaܬАA5w}#?xjw{!x@PG( 4;F(p a* ){E_ⲯCV| wzzcVvj0 X,B*@+/3l"D1ȡJa͖Q~!e1Z/_r2˛vyO8ݩXD// k/60Ɉ[˧xVf#p-챨eġn4Ԍnx>9KFZ/ fcثbBd|^{&oE •Zq1 L;}Bv8^ޘ+ >}й @OycZ"H x?ؙ:/lפnkdKx1wA!g3, kC?GgP巟h{nE02N<`S~QGt1q'G%hQY YTP>@J'Ԅ-ȵ2+:)0$L`8{(YxB*ڔk;6P004z&2X|k+8O[6 *Y|2Zaʩ:ݬ)1+*%ER^C/ )+2FUp2(dDkDz"JצpѝѼCEaqG-?G̔ؕVg0\J +oŀVʮO!p! <>BEP;\l'͎Z"',׸k=Z^喊uY`CEs`ٟ&5NT젱$)9sv2 wo؅1g}Q9B]ZM#t̚je cVTr.%\7bt1Ra:(ȡMV7r[++ߪEty%$4Jmfq3V{ (;G64'P>qHJIESJcX䴼$̡ȱ 6Kc9uԷ{TÊnpRhOc@vVtE0p&^ &eܺsAv*4Y`_UjSWV_>GfRv>'ʡ5'YT \? K\UפS+{Fqn HBm\=wj]$ACZ& ^ B5uIpU_\Vh"uC ^gH*T籴)EU? Պ%kFvW @|q=a 8壁sA[swqص$k{^d͑&,L?hUeTC5nLnWQAA\ RoTq4x$&A)|Z ;+՚x>J" )sQd$Bux Hj95àN&-Ó-dAj5CUqݟ6w:P4O ٙ-qQ.{| {9v6Ϗ 8zDNi%Q '(ӂ;#*,`$+~7zPA3Eh{e ,zu_Z+t'[Ir ^9>1`Noc?$@©\',U^ E?,x;j%ĝUB|zurPi}b( ㎩5[wq&k2FB b*unY44"ҵ/uUp\aFt[ߥ&Kk>t+{MDen%Mxkpԟk*'̑EVرH7͔R归L:Ëez?鐺{dyMIjɜx@kxp9 _HG0*~H_BΞ]wI>~g?BS`Jy .9Ms\Pgdýz$Fy-o>D3yX $$3/jpKd|Jŭrzp51gD,XY U%C lrbx]Rm ;\ ™1Řh嚚DpYeF8/FfDHybO\3rWvý)yU޴VAmϠ5gnQXJ94-j@.Xr(Wz x~_;V#hh$8b;)?C i=04~W5jl[T V5IjSmv(X&5=U=X+*gO#~Q;*lKJr(I8ME}|[\[ч^PT/"bҌ_bBӕ!R%%1B΁Y΢CE˕?l(WϕyzDj=nQ_f-/ql? qjꆴl¤ˈd9҉]WiMvf;m@/V 8Z+՞z3u40g6ŲSnlCb#zgPynUtЪ^c5WwS{D$=V'Za~h S ÏdorL>Uyc8*UwnO~Ͷ2ylLM)tfOaH$sƙRmV^nq)c"ت>0 o [ Ѿ]5$V+j1A٣yLa7u bH)q`R )] A~_5&E! {ΟSnY6Bvn b]p@?y{ S)o|b3#ַû@G{w2?T~ޟ궈nt@} D.kҩj**FVYOdob}f#ILA&'ZyZdUix OS$P-[~JMu@VHz[QF|ԽjRV[jvc@-BzyTLˡ4m+THdIGH2Mnͮ)$g% QJSODANSilɫ"7]~A4f7`J=}=8J {Ej3B\>j;/ן/ΝOV[s\Hp5|Gb#Œ.ș_ [?Խ?ϯoi{8aG*?k!@$G* jHZ#& Xip+d5bUa*~]ʪ6uF( eG tĐwnCkU2DZ^€]4@?);P$A寛Ps6?0~c΁fh#ATU8Szfo, -2P{0U] <Hj\XFxzבV,״A$D.$X; USlxAkP^`_"?#bd ,% G 'TM\ĻP |Zi`o8W5 5I#XrjI?al }$G eɕA[}Y!R  qL c<$AKTӹ'E}:nNK6{Oډ($>>\ /Uhbv)ƕ-CSȞuRۥwP/]kOi邵Y$`[$oF]xe|D`kxa GCpɏZ C^W0K$cq˰>qɌn0_aRf? Mea+tq7;gԾUGA4tL2shd}5,v'n! 5l֡g&i@2#W2tf2]Icbtudw=5J.h"s9^"3K; , .IVoakihsq Ծ?}IM*;'basxm2>w}N&``TH:@D'ݸ9w5LvAQ?[KpE;>xeT9K_s-kbe)J)ds*Z{\l$6-&ڣ>1rRpaӥelX@;~*r74g;pN "`K ԡhZ *ѱ]Xr3@UdT8VraRf=E6FD)S5XhZ`V PħD)/aIy C͊LK[ˊh fPCi=QxbThvc fВX`KAl|w۳<4 *BHh )^W\ͻ_굙V"k75EH>}'g}x3x]oMD_, R/A}U&8듈I{ (J*7]*P\Bȯz7`ZK/\?'ld'\uVݴ'#pR3JmPClNol}.ͶrϝGv 3I.GA[Mq01(uX<" lN ~@uiG=U=ԗ&&StlO0JM 8Jeg2Mi|7 <@R 3 3Mtz}`s}'a`~jA,nT0g^e,CIC,-qj#ro7{E[cGmMzER.6L-MUP5ΔYз+f $dALFZNN,c*5!LOҋlo%GT( p*:Ǜ@/~%`׃&!@)T2vzV"Q֛>dLKkc ~^-n4(-sO,Q8𔆸e 8Q-Dё錐e7=z74?-U}7@LP0Ј Q CnqfgMɕBxF5tfQx;}iJH1fG"YdU/ < fE%S|so^Z:5.Η ?LdX 40]>ʍEj|:T2`gr=,R նG6EPXzno1e@`?Kd[2}`ڠ-mbG r|j#BjF!C6Qp^")'qW+Vu6)dbFmI 6w0]Ȏ@m)Y,`A!s@mq> bٯ(ьcfõ5*!H jW[NeBGOd:SprWKV'[Rz:u88(GiL,"(f">tsTwF٠4^&J!-2veȄCe)^e5IH%*ᕆ "$6s/7atKnP`1üJSC`tnE*r10谻$ f)_m?j ) 5ld;^b&Tl\86܀ ][>qjzXrkdFԣ??ޡv-id&v泌P4佣I0iC嗤=^AUzMR V\ g&K:/:e{\#]̷5|Ijpz$2nEZO51]Vkz%v糛81c.K-%9݆ "f[j5fbxC!,:INg))eJcb#G @ڭ;.}k[0 ٣MLdH_ݠ*)Υ%}/|]Q,fCٔLWĿrH;3}Ҭ/ !=` o^ˢJZH`4An)y1[i>C18ZkV;N&3쟖׻s57z`;~\yYG6ch'ڀhNh9L2zjYkL# YUاh&VDo̍7 9&9muO&\)@c RKiTsj1h{IND ZSXn36XN8Z2.F)dLlz{L`+$YῐІmO^ }l#"==|ێ?ަ.?>#17{ Ķ04mKMr%cB 9WԀ3Hh+\]cv_\{Bh+ d}Xi|^{ՒOy2\,soTғ-$h҄>tN,o= cV )ld /+JK@gVGb; [Q(yÙc1Wuj$ 2-!b[nmXژ(T7 +-w'pz6:gbtQ:6=In nW^QW8,6փӌp-Rb{$٬`4Y!Ȕ@M2+(ڌc( *Ě"8[gB^]]gܱ*k7P]?z؝7Ť(v{81 veH7Na;o6՗k&#Ƒ}XDCAYb̈@;O{=Ҫ5Д*c`A gAF u:=OoMuI[}_'™ I[M?E H@of`6zqCb~"n]t'#xCjh'/6K/H D]h@ .o^rsJ]_A&P)t!Cjںt6H =aZ^"< km˜=1:5dMzyh1װ5/L*^=i%>~y1&,ޣ[bFC;af㔨1LU3fy! -kڿLQ%r*9!Jգ܋cDM=[덧}fn:[tcfIH#MuCJpmNtI_쵒[Ǧ[7$ {n5&$&$m 3uAb'Vx^rkg0E!K<'B_7l$`xa/0ef3^4R4bՁ z,hU wв/hUČH_-\wHڪ^ 8%&]m]-@RR{_0'uÏk^D~"܇b*DT6qukyZ2lHX`hWNGU ϥ(vjJ0HXCYq4Bk(\^^٪p}EXc YPC>X&a&ݕ!p]؉w׌Eb4p1>l|xIHjjP`8|GᏟw-"!MXрpciÔzogv{f3&&}atZX J—)1d_y;u:>!* _WVq/Ԫl BOp@]RO/ "tT%6"PDJr~ /Ofٳhl8"kZfDG_' ٫NG A||1THX7e͡.O9_c EtsiΎY_<W'$v %x.@⼃aA' f݈Ϗp& 8]#BtcF7+ٗj^Y,9ߓsyGL˝V] [ʡgW%J&>.{c|0; @o*M*Px*3sUCp43jYnd* C։o(}@ZO:Oy4Wa#sd'4zt Kb2oK+,[hHuZHsifM82$rhT$[kN yuovZϚ>Df2`iQC+_5G Y 㿆p} /`5} 6 BCeǻB˙Q~8>~#9L[puLA udiO RU!v-ڥ\ m~GoY`vṔ՝^RBA&".r vӋBF_QI{muO!5ݯO'kej8WztCcS4 yX7X,7WDZ.3y.\&UBhq['LpNKVưR wθX I Fzf3uWj38K)ɰ"kH͆C(PԀ^^J_=}/<ԗz#D"m\XM*JKC<oqʘOu#/n*:2qV"~Y*x"JU+:_5Қpx)Ł6JgniT58NR'#:Bq)yO!D%T"mޒA"5&ȄR%%7:p駀%DސE;~q5P.P>`^ԙ"7o[d|3%`$)zU#!Ŭ$3fCk{ !o1η"a6f&"@gx nx@%akl mIqhW4܌q cԉP2:b:$y7BW鼔J.G2oXnC$hdu:o"?*n%0u0<Ha'>:Q$-ZS-i( j^|oL;nWSlV.A'n@(*< 윧ߗ#g2"$? u RBw@gTPx6AÓrS֐Tw$I76`~b® ˔ ]o2ɺL7ٔRgJ?`FYFɊ v2댊:G/|IAn"[FabqVKoW\Z5eSIX]^K| R|Mlxn;Q_dд'\NԾ*G4 ?,B F&N{ g$$´ӎX@̓! }yx VgTiK~ԋqCggEGa4f~TG)ᅅ9`bPVޣRpK|&zӿ7}kitisH'qEò{׷2y&ex꪿G&{n@х.Y5P>\PB3ag5$G(ɛa;'$Y?W4/*g&Vޅl:ifڃLyZ }$wEZ309wU?8R am2m{#gjf 'Pfk<ԍ߄"k[9h|KEwuX ?ecɜR:Y3<PNQ tPx[rTԚl_2$Ȼ"q/JrAD6iȃ2 gtAB7 iҔyE8 RlVNas3ۏXb~*|J8e+='cău D-bg5 :ʋ< ne'n5\U]I10S?;89RxqclH/"`H-Sz6쓄ynzd}j#^{YC<ݗ4ߧ;^S#)W2G}:#CR Xix*ܨك>iroT O ѨiR=<33RPwAh E\ `ST$pVmNt;?$nm]SLO)U3_B_㿴N+W7HAl/F(A|+WF6/*_EGO^%fL,l Oő`}@GŎFg>ӛq>X8(';sXf7x?vWV8=MѸi'&D[Y{TK0Q H5G.d=ga!e !)%9*a+T{e|&b`A@[ *W<~҃>|H/0'DnuzK%3'i0uo6Ĵ3U3s`YdXɂo4II7Z9m+<Nx ۙW'*"NU38%v݃EDF<}ASG Yڹ- K$JWg*ss`/`]%We2]G,]5t?+z4tA~Vq]~Zx${TciV_ u\Ư/i&Tl#Dl֣]!ScdKEO\]8)`gVpeRa ?ÆBeǚAѥm`g^٬VJϟ7HO0,yg[(ŗq5~wܛ(7/duG*(ػ٭ lX/r)z`>T vR~;3Ϙń;q"*";}@?2!uM7^"8%ۤ}S9-o~dL}qj2Ngux;{R5Q.qR>yU5ܺpT1?OېdR4winu1 @<-[۹6l3RrY=E"1{ E<>̒B&_d0j8B &i&dv фBK]7jƍL Z) w؉rҲM٪Kj-|y>F,HȦx藧- =i-N_xO {Paw-Scy܇qGT@^`RV6@~B4#Vsgy<|Iݎ~ڂu(V#~*FiV-kr8L]|8k.a0c`R#-WYdf'^G~ z(!  7d71xkAAcx6~A45sC +ygP c]Rg^@/O&.8etU9f$I8WF[ WHI#4AW[G_"k*{NsI=@~vez3i0հRPŭo2c#ARj5jK'Ƨ~au]VI5+E:] LZ ?VbC)m zu6A.{?l@_3( omǴPD;f\'x7L;CkKfdE6$ z^RC{3"v!0Ս|}5WdK,p}RRnĄlk 7R#:ljy̭]vєDX-WT,j-2IFC< BFɠX]ft,w7{FL}]A] qos0[uc0\J ܻ&CZ}&yEW-(/Y[5ؖ$R)?O2R{‰ Գ]%QҍH6|޳d3"Jٗ풎OBת IӫEfAi{HZg*hOXs{Ji?NC"HCUǺ=?Ql'(I\$90[T!j@raOCty*Muӓ"$(!c|:+iY#ȑ?Ev>vp!]g*H*y&4phY jq Y1$|n+3>D)g>XS[e^{JeUQ D ˓@RZ3jdK|&+۽^R* jE$ i\OKwV5%k|<w> T&}jr9F'd]+t$ }Fͨ% Cqۿ#/ހ-#-VrJ.+*;\byQ^$РTKFdWGcU<@W :7Mh׿G׵X'be:S뒴XTGnv= *iO諫,zlU` s0ȕ+E>":Oȉ'Oov;E?)XBΫNYD g ԣ@cΦL2ͭpG꜒LՌx`$n٦;>2kriM:9GFufVfLft:oUShy䛨gCy•#R@2SD`NoW=,6B1b>^/ͤGYl΢dd#Kȸŷy,E0'Z2M?{wD%L_;hW7rR?Osj]Mtͻo3"r7nY4SX4gcʦAS4iN&tsjᴌ|oU nf71FMB Iϊ= BN)QFZO<fxZ繍Zɖ7J3ps!ǷZZ EY~:4!MɜCVqs=u,'O6ͳUDM=AFyN٣~և=h7Vߐfz=g a”NNBLA=7E@ZqݞslQF+f{V :b΅O$@f08Mّ#Bc!_ٌ9gNm1xZ]h3,8%;โo z-Vd#\@O -ˡ0~V.O7nJa\\-B;J^QMB7 JJޭSDFfu 0^6dd~NL3vörY 蝁21h+7wLBv*>& DOXA 6S3eaDJPZ༼dM}oY";[ڈ0E 6Fƒ i*NHD{%a5d ^m!7썗OaHQq\CVnHl0<)>2QDc͵ oѿ}#( 0DqL"~go@J .Iͩ(^<]5aw7'%cE HLluSz۳;R'GV'u\Y5Ud`F>G| TZ-hE~!r@)ߦ&Yӛfa#O$:ܾ+#XJi+z¢.=s?E`b|[ZoR HWY#5S| H~2Ǯ)ae_(8DKR}oz!g3DKwAV{_Ǎ-=Ņ"{z03@r  w#yŹo~ [p+=:VG/ses.f:41ڑbh,̅@l=StT!d\wNĀ=A=m-a ۉqirI$)QC{4G i4z McA(qƔW:%9bn*+>2`|b :u;τkHayoYzhrE qjvEE0y$%\cOTn&  pJ1BthNT i,_27YCc(y'TqkbvF(8G1L9u&( /؅Xt[0J'Y~uʰv]clq0m-$$$)}y)?BEetWEՔqS;9\l0/͊o&х?pK?x*~WSDr2n囡gz3P>-'J'Z}(VПܶkk-~L|?&NY7#f 5qr/MPIQLìO)-bnǞ"&/K_\m^8e\uQ'Wf\0~L3ތ>}(d`iW`հ͍nc=@J`=+hc fzH3s EAJTA0IC򋦴!Pv{'=D3 \Ⱥ EC&iA6KV"T; +^'d>el5<$؄oWD5Ҭ>%揗tûk#Q^r ډvFL>Qw'?~RX(lȪQƐت%Yyi׶ȩeֽB|@ ?D L~["U&??WT7HDHcͥ{ ިvl=>á DOH}>2y~ BpBѿ`/QAmqZ`%VELAH'ˠm S01iIJyGg*6|n1i#a:"YdvLf^ަ}{BLGs!GjⷌXy*i\˂=wLX|$cMR)_prϣ1W"ۚg$1@}8fbE;p/ JFɒ"be;f$>׊]6 ˏtJ2aJ[?]kws&ros2?:j&ŸG8A{ MTK.Bp~ܿ eMkS^ݐ.;@n؋WLGWgס}Ad }F#{uF㒀ш7DaM!bA*%GlEeXW1\/ ]o1bus e5}a;2Z:g̓V'2)RcA Do$2]aak\RV7/ G+P+V8-ynxe$Z N)Bhͳ6~dkoZHahaמ<24[ t)Σi:'ˁyηq W$zuBt򪵇ɠsf@v+[uj?wc4*Ijd&u7oe!(@~}hWS݅{x8ɰ6X(%7eiSZankL8#M \65.@fmFO_ٙ>T /BCCKz;#/7AlGDK-Z[K%Wd2834(4f52Drt+4k0oxIW-XTc YGG+⥬לglPIGC1`O]WTE ʴQXaiYj Hgeq%;{,B6U}$|$x^#Hs" sO( z^!;:ilnsΌ*b&7ٜ+}tqAfuCzu6'_˃YX[ąBM"1gG ˱q>^qZ,eYƻRAidw:= D3ݦtE(.Zel@z;@X.nτmV\ơ ڑ|LCr0 &k |G|S M5YC Z%W Qa_4⠅ ViJZElK;R'm&F!5Upɧgp~roF"YMǁ Kсo! 7gN̾/2F,:6%`?l:K%HXEi(ijZ(8tPҽa*MM2q5Rs w8*)%N'| qB xŮӘ}0!+%gZ>1!7Y mnX39y{Cj,>$u5vibG[}Xn=*TwcTU-jb[̗Q3hvdb k,6R9|)Īq I!u4_'+4^ESH8^NG- ts_8$lI;G!jIJF-޽R4 ML| pkTJMً9"s?|p @@ك>,EXvY9`PWkSnG0$A]uFQI#XG1ښY=PARězu@M pEl^:Oexr]+ޡWAn ,#r?Mݾr6{ܠ `éf\ 8&DFh VSQ3jUR5}F'jz mY)rr|ݷv?R_JuJFW̲en_#+I-+$@ފ__5ZEGNvXɩ}q0Fй$(4lj [> `&`uuQehU8}5GLo7Ur],(38zc><ӥKY3p#==i"WonvR7<= vvc<oєwZ7[oXsXCq{f^jzW:hʚ tfScyEUJqi`婢u^d:ix/Ou`6FSz ?QGןv8-b̡v>DQzs>iWj%2|'zx `,_,gp9Wt"aĊlǻ "]meWTKfvh@AdsXj h`Z5[9_β*ұCىXw5ȊZ!D@Inڬzzb0nSc!a[d2훿IRj  zLɥ7`XMu'5#^OPhl2N0i|iN^kDW"h#{wwiCoHѱJ/~+v@#:EeWރ3⒳T6Sma(m+BucCM#Uێ?Drp -Jn^z<y$k/Xu[0gN۽X$B0~EHXh:t+B3V36>"6Z5/mzJ yC|48 USJؾq:^ow.nY`~C*:ZghmvZ\a10:eNezÕbaMX)\D`.b >U!_1O92&`o?=:)^c+W?BT*#})S ǠiHVіuкg-gۮSyT iT'w?ȓC= *;ddJa˟zvRfn_RuzUf!ć_zmϋ9~[?)@9^%$4?vsɇD;}I. '&ginW8ܭWp  QjY d8m6yc `7BM1pع"]az9>DGLSOŇd+r~%lS_s'.{gJٶ@8nΫEʏn*c/@/Э9l2}v:ލCyĪGkק.^;S8) U;XZt= b 8Ouu oˣxN+Q8 :jp]oZ! 4{n'/@*[XaV&%e A7EBmu]坮 SQĕFYA=/++B.o[]q~ Wp6u-iBBQ閶rKiM'W`9=YrǮ%-~/M?Z6%Q-W++"\%zmV'=%/( )¹O/Z_W#x4eoGw[=p_]K{_$^Tҙݩ~]`Efw 1 HMFi^ef=;Þs ET&y0L) JM˹.V)c`r=>֒eg &ú[ȭ^nJ(vVk8b+c*qV`+#Ďa@bO=0ˆ&@z.fDAQն!-\LSͪ, %$)0clpuVu&.RoL"G oV^*,e\>Em$zd]`_Xl_i+% wN2ХS& $wu+O^mT[ JyPϓqP .fqu%>4y4`DJlJVV% EiԂnYt3rh}uFc+H" "[<@QV4: Ǧh<=OC  +@Fw91S".O j(ӂKAN4f#*NĎ'u~S#4T@y j/$3Nj Ti#`{s;W NjVV8d$X .P(5([) *oP!X;U#`xZKNFpGܐ<Re)pq-;/KΖ xŤv &~zO|Qӂ3E#3.-j _Uf?SZj5 v!ZJqj7:\rlD1yAKaDODQYWD{QhTm: ڵۦϨZF3r 4C2\ )}cwaIT{c3|QtuKYms[݇zNj,:PxYh1H/tU럂d#GdjR0^.6"VXATtPްFT'Y >x;35{,CN ʦ5$Fc@YLNC,ybI+ =ShGYkY͞fboE=#go&qH3NoZ#xJb%րYu#;՗Prg6_Mgu 8Iiф|"#v>-d/#K P NJD3PX1CsƏ=CS(=0J߷<ŇzBtʻ;~Ɖ ޑٌT{jϻ`TKa;Ȉ_2/w%/.aB]ɵWЪ$L@F^W܃ t:ʆG#OrcZk|lb27xY=\|}E3iMܕ*a侈7"/9Ma|  say,k"5ElVB DPK$ƲönI^>u͕Sv}@M6P2+CY4 $ Ih-)rNk]ɸCo|FBΙaizBmoU?)^>i:oηK{$0$6B&#pf8suB19WRzLjZ!ޣjj4Y@DP^HFy fwzyl%fa5)˩T PZhFsڛ,B2g"i6^H+ȁ%Sa X ftNׅPĥ 5u_f84+ |@t ӐbkiVGM ^@t]8Y5 1YvWcANǼ͵֟f r)@$Z*HLzFQMI|ߺuj{-QRj!VqG/0$S1kzٷ?$S3M*sGmy@}R{21Uϥ*tZ2/ItU3o.}x~kg; /e >| u+%d6z~5IR'HJHhҜОln#ʷͣ}|{Nx"gEf0w(Zc.A@xb7Y_@Zè]6iٳ@TWZs>."#*4Kꍂm"%h:^H:|h&R(bP.7h0eKu7'=T5͈Ĺّk#z*7c?R-D`s| 4R תpSýX<[iWW[䏧U6-E)TjU7%2L@<q'Iy{iՋxe6wgix*wKփ4GFV~q". Gx?~%aۀg6MtK©4= ᎇ|b%x \*'tr'TXy)8d4:L3FXdp`No)^vdK $^bʹcE1 D~m>wty?@ҫĬ=J5Z/H0JƼh ?Q@15&t/Ryp3#ݗ-@z6Wd;]P\@\!!)`FW)t"cQ=n7lonw^F@js5V2.jn6پބ+#;v?P yd;&wyB;+I5jGcb/~@#5RiTaEfʯ O]Ɛ8| 8΍" /nwxr oYۛ?x(Wx/<0~ꡐPBWCu 4KVwUÑٿGo8 P[.3ؘ͢-C}ο_72LHjc}} K铘󘷙,o:;!TIֵuSk􌎤އ<_{ibK>ҴΏ0~>Hڐ$ol ?<]wC(@äRau&gyd#ЍP #گ})Qtt16:vvV0*)w[JkE6Xx;3WgDHN(2}6ws.%r7wФ.> Yyۋheּf9-а{2! KY|Ull, 9fV^n"qsӝK\J+}YS¸<@DO/r]-Y!Vb X@}^U@}:a< r+6.u_-PleтkFQtoFlWg \i_iF>{źI{ѩ&R b`"i_G[10xN{CNK;^qcYRĵCqם]#n<=n=q+y:S݇QM*]]T1)_LN׶1uPP 8ehMao[ͥ oZ 4ﴊ+uYݠKR`vfh5 YcRNpc ]1ށQd7Byf%oZ. J"Z @eM0efP%1Eً/(d.U8n 7tx{oR-w̤&Wξg)!WSK ΃^GNEg߿њ}~${ Is5DoW:ÒEBĥGC~*4qx /\YTY$/ЊYli5G/.\JIp Ee EʛS,9@sF;Vv wd<@IԼ?DD ؒ>@_zU쭷 b]s2Zd|l'f`;Ǭ G|rqD!rCL%{XU5➷w>Aֹ23h#U0bdp\ruLXL"UP.U$I|+IH8X +H%Rƕܨޝ6bvVi>&bPw=rHeQ׍"C Ka\E}ž7u{Sx_+ bk4F@Mmpt|ɣ,g21q)h= ylP:TMYa1<֯V = wLXH1m,PTzab>61뛤\p/5/WlCr򚦠3N R';JS4adkp $+sfӤgKf0^i^$oE>]//S}g{c /]U}U-O / cSr4;L˶D_P8p\8Dn8QyasYӰ8`6ܟT4-8;E]SDVcphJ/5vs׌$^=K/+B(0-R7RUçf3C|#Yw:jkт SzMQΞN!%`JrգE4N=!qV"3Ǎ-;U5pqZſ9}hGgEo@ x^wI$;7'YB|eVt,;9$TУH|N͸ > ;o;qZ/ e<&AZ4ߵ1$W>?pehQ\Հ^ͷEgV n'4B幒VW4Q8,>88,9VS "||O;/]\[ Z9vUkP} ƷTSnLʄŮy^_Z iXc bDLⰧV7bt&lJus} (#doBiQL䳘m@Nݰ:41TU"dTBsaQ̄Mq?:.[Vt|nc]'Kd͗%&LD2m慇禕揢#Gv"|o#1׍W2|H,wK8%9 zt3KlP?P Mea&għUE 1U/r-`>epmlb"4?Umמ+ `CZ~o|v;ss V\c%R 6Ohig\Zc*$)cϽM1SEeO>rE-yG&x`)r7_䏰/\=C.6÷kb 59AlswX\j7">96.!hLi:eܴ[Y)Ss1Xt(M-aKkX"Q40RkEC 2nXy5$. &kS)OS3"և`T%F @d q:l7ǔ i`3s ݷ,kx Ne~pVR".5,ڒZ\l6G0\+bնD8{GĞt;%QF]ȧ\ 4 z \tBKPXHֽ$8jg5r[&?꺨@I$4-TfS<~@cs,;5_P_l> y0TLA[lR!UPyYE1C߷2V]tև[-0.nEֈ^qnrBƮi!{.i ?_Jlj2UIl17m[<{"H4*`U+Drz\=d &-V/h'ꠞ_Iw$ g X~ѰhT+"]JGl`oN4i)-I3vX <wppTcy.A7}sk1a Qp%n?V#PQb6PIjk؇bꕽO..c$q*p |BD B~P;842OTޛAc?GӸ:FL0lߣN >TR (@ViH,;WTES]?ǗC= ׆eA;)(7J7`+r`ZmT3q|Uøj_N)[CJLuv1.&ڪ<4Ҕ͘Er)cyl5xkY }$x^tHO'pG i .8M-eCnxuqΊ5Ȫ);Ljv,J(gI{`wb]w$'`7]9˾]szBo3 B Z3*ᎽSE1{u?J`%ˊ⊉0tݵ { B!-0x ʠw*\eC"ϲ:a wӕբ #Mw WIe+9<ewG"!x[W5OR<ňUs>V@H'nI ;'} *>٧ix.b0jG_n6LWQ y9-eH ϧHW oܛ50 ٥_wl"!oa*ZhYOƠm_vlr|:ҠI/TE!.Os>6tƳX~DC_Llb;m~Aݔ + Q4xIB*:(GI-ZJQ@Z#;L*ŴNrzW. qoxzۇ4Qht^*l~ ^SWҥ`=Gwv4Z {6/!Z7>tFP?[ v6jO&}BԪՒ>.9yj:U(M]w 7(I?3DVtD[TVLTW:C԰\'ePv„ps+n~{S|$mo@;=fI ôzAUklap[謋]j=m 7X@6vcF0Y<bpz ^EfUɍťiZ:mH k->(Ydw/SȔ372\G̞ o^CL#Lh^jrAL܋Z^p_ Ɣ E~=<$ H?Ῑ8ZS և!Gܸj^iD e2]2\ѲA :0&j+Mͥu/K|2?TgL\Q>1=F.H e`jj)RٛHq p9/J?b×Hd y`=m&7+Z9Z&3!8NwQ,m>3} $4 S' 6e{C"9ےV\\yiZj+hvˆ(]e-[K0( `;`Ptf؁р%*;[+:_r54bSz!]~ `#."{rasBOVV )+d[;}} l~xw1~V0jA`TW܃XHĆ&g"OWdj9huWT;ereK1"XMyj=.V@0aq]ʓѕI[8[U%]ͨԽ35u蛄pd ^ b%tNRHh[ΎTpdG!|Rqx((:%Bq W{IGNI*!8Il.COQ ̤c7> yFa-<d$E )7np=xIB1ԗ&.][W-{( "fHy״_p6}4_@S3coZhD6mN7b-6EQi#]mWEM~}֤R:{oʀ1[ɲ3:YhM2J߈yhkeB [|xg6 RŋW5Z%af&To{\k#X#Nӊu[9۱af,>S'Ƞ;., u,X?0$gJKALխ#\7Riވ"%#TWjWdE;9Q}w"}Hb/eϭH(cKڥ~BZ]h9,\nmq-ePW>p9܊!@L _n}IrZU{K]^得`FXb꣎/ZDO_4B.إw 0/Z5 鐠GJa~ψ;)ԋuDD԰hw,P#KGc3s%15}{4'lJezG)<-h<w6U6u' [ӮA9rfw"Cil u7>+tF+JdT$qG,ԥ/j@ T\ҎD]Y^wW5}}JYtˁ8 ʍB=΄>KHy=9 :},YLAl##YwEEy|T@4S}]0[GUYgE();觀iB0Ƅ,@*lUzͅ@|V9ϕX|X`RsżCcGTkCX$ף ((,qu}]R$:sVߔ8T{g pϊ\Sֿ2pݤ6PHSfC΋V,`D_t6@@f~]SxI;;3 F0(+J'QӴKͼ}2^:C۸ր(bӊ+}l}^ <2Pe[7rc%+1NC3H޾Kk0+9~٫ J}52pkl?uz5ꠢqYmj#R!Z#KnǽBvMn!o6I#NWf9&-!ʾ+SaU 2QjWK S` \.p{&j, w %f^52w}s$:f[؂^zf+ln ;y>ƓyEU{)Sa",!dn~lrw|ݽ1z In'CP4&"{UKBBVV蠲j$iP*VőܳZ?ISlҨfԨ㚷\Ũ٥)$ƒT`z"`(o xnZZ%.I6&(N{ޝ4\yթn#ƶK`a1jqeha VV |ky5+"=%-ړVtԝO9kӤ6U7nE$ˎ.R&KPE '/KFMtkgZ0 K(UQ<(&ZKN߽QcEG%<x8S]/*"]淕4;"aP͆Z_~#n4 U@w@.^kc_.n\iu[ezji'EfG@hc~vPY&Hnnnto r:w6JZo5},q17YY_= @K&w} c K~qKB(hIZ ڀVW B]0@K+么P9}n-yv7iTk0h( e5'Àq'?j4Umt u،-|U ZwEf&NE΁6 |Opd5Y8$R%%} ޘqҎX?[?;* XDUR{ GZ^q+S'9VzE NIqtfJvZe)zCr͸VU .6gw$;͏ @!V+8^ypKa[O]g v? u}VV0zlble%!Lj`b/3y1|Nl")G\ Q9L lsb]yK?/j<_ׯd+9༝'Ϧ>^NwȘ@_je=2x9vql?[) }C!(fQx_-.H O2c1z\ܦmBDr~ B4^@ T…zsvݓcRkNdKҒpFtDN'8%?Z)63PpĉdslE4;l(O*b6C"X0Dl78eJw^\V [ᐴ`4)WiHQ[KNy?l[{E>b-V:N1arP5XvOWtd 'vE?z? )\[~baݷȦNuU&ɿ!HX")FQ*?7q$Ǒba)U^\ctF8d!rEkPצc8SUM֭[ ̛]47C㦳JW&!^NW-Ŋ'?(6T2w'f,tF ,X]\~́EDž0A$z?LNLW.!xZ,XCn~̲3mjþ'A&,ʡJJݏU&Z$뾄6NjUXH'6qiДڥ^0h֩ةY | C n_U_nM>){(\o3skj- 4:*z^SŃ a@mԱ?BG*\X@B]lėfI#O@uT7ӲGhQZƭMw`|=j*vt&_zi̒סI}P)q؃ WG ʖx#f]oDlkz\ăTM['_jrpňrQ&v)];%6L 967&Bz4>i*>L!P81XkP2Er?;*z4txvsi 49=–P'?o~JBgbGbC9 "^ :(ix̘,r%i 蠬@=KTxRz#eDBK>1p"rD,C A%uڇ 䝰z.iof6D{5& .X7/h.4¸nդֿN(.ƭSdhϸ)Bf Wچ 1cOZ.C&:aaps)?z7/'Iþ6HiZ7}P%Pu9}څqnk+]kv_$a>y!Cy@㋞o篏};T.!Y{n,7谆jg@ ysf{̜tܿ4|yz%v8xx㴮rwVh( ApDTw:ѼתXn|\N硲vR U7?y=w/k?إP<+<Ab&#:٠&-Nr~bX]$8t|^{(9r0 !K0$Ί𧈌~D69sXo"> M J@\ hϿ aO%~4QO!`(Tdn!yWjix ?>ƻt%.HWO: 𬻠흕X9~` IwJb2ܙ/~/ ?קC;y368Z3|1A1Ѻ@V@Zbfb0yL?Ę\~%)7˘4K Qh}U Si--p;r @^:r l.m"S_CkN@)|ڌ'4!61] 5%Tj37ǐ ᳪ )ĭF*dILBu1_ 18z{XL\ğ|c"*Ŵɡ-yix3E|TV% Je{4L|-IR-XoU :cFa?9qΨ]&T<"@gSʹW%f;NZltv"Э7õ)xVg g%O_zȕBn(2)!B1">%@^ 0MP~K[ܕH ZNyhX[;Zk戫KGVgRN/>5pv=@_J/Tt0΄ ,#w[^<_pG]Тl_VfBNk*AWdX%/VG;us EJK< 4eS3D: +\~ſ>ѻ?gwm%!7yJ~xmS!i8f};rHj#flYMHiXjuvFTq MajZg{,%TəದM/3h xK ء9D ;Ճ=1< oy4q۰uB˅;9F>CvE8όXB 7Y̫ `6vƜqqؒ <r&:4ZWVa_1\ $tXA3J cZr8]5 WIUQ4-jz;ќqfkUHHY3cjLW(pl%0Z'2tQ̔RZd+Nxevdj$=prrp%oWޟ| bקP~C~3HJiLpy+)XD?#H<5k ŃA?Quuhlu+u뀕ā5"qގ;ܤf~4LEʷh^9܇Cdچkd8n +԰*=4RMVmG -I}]XB-҅ \W&֯UxT-kG#[^1+4mG@dF߆f #4JbXuCGx.lhz1q֬]<'VM`S^AP2eXѰ-^|j іd )Obq(>X)N*v-sJm S<0yv{\*;5twg$SZ??~aGnKDp. ;tXA2$ bBu\'>Ubho7|Qg.t֜aj^vCހFY&O|-i1`Qř(@iRX@?f-pGsI-[Ppv/@|&J㣢HGCn!pD˒odDr;>[؈i\\S$h3xCE!$stDR_ mPem2bX;5" {w'[@*N.VH6#H79#XG h+ Ev!R:&#zKj%y=_P2EVv򩙵Sbqzdm`GU9҂T&%øL1a0O37p|չxʷ/t`Ow: \\֍~Ow@Ҧk Ē(\{]6f],{E衛r~W+k\wOYX68byG*jc& g?;Q㭒 $ gHBt;Gm &ľ9ޜa5+@9`xIn_r7$Sa |)vDK@Lݳɠm,8GI`﮻Z4WΒb0=\iӽ7gxZ]7+Aco%[[GzBPOfh8 G[thGa_)Khe7{{3 c Ȱk[mU[Pf`AZjn̏~@ q`8/͆[Ds \1ڱa׋N]F C .eN LBT'z"o6az*2)Ё}^*Qه(B2, o ?RWsSy۔(x :%ŢXk DZ> ֺeg6znV-^9F"鮡1οdVTQѧFIꯏ~T /ʂbpPEc1S;k=(e8-J~^P@vݔ)EQxS*nZz)!3) jdDg~; X PMJy^n{^Ľ8s eX4 LN_V5lkrg/*7uNv JsTXf#-Je8r SVr1-*D('ZȉQvaIlKAuW!]Qu&]IjģQTuMJ@iW1߽D1*T X%-ML1VYo'0k=c/S GK$ `H]=oIܛPF dLnBb W( `QFB\} -t~,D0yXA\?g};:` nspcw`LaewA( ,(1,B1 =>KWJDrsD{JlZPO8\'U#+г܁ }vwOmo49 rI=T1jo}F9MNQ4"<5UǀFMBKzxYi;m?{TQ׍v6܈oޟW8=Z"V4OluE @؝]2ƿ tvv$Ĺܽ:{c`& a. ,y: u%u] 66mOA?|iGg4p :*\V,'cEQ?hḢ$ׯRa qS5,Jlˀl7U̫˅y!&4iC&5hwm!ߙ䫹&!h4={~L y/\))I]MNjAܹ)Q:s2.q|1C$b2O$"59]V.<_]U TPh%,s>b4a1-%n)h^" [x`*g<PL,4+%;Mթfqin}^X[a z"ܹvj?]<xCD\&vA%OR4\\K̙B5lƒ,(c`gG&K@-W5{=+4Noo .Ĕo)7:cN>8r6L6IڶI2Yh/6՘' 7  5yqB/lOZ_͉ࠇ@%Lwf(8}`c=Kƞ97 W)>G 6AO 7 :ǀɣ&ZbӁ/-يpym o BuP2et4[&L1^=aFʖQ