irqbalance-1.8.0.18.git+2435e8d-150400.1.9 >  A bvp9|Ɔ2T#jlyf3AK" a6P7o)X۽[3ZX#F2i8bׁF-' =IYߎ 1a30238c126e04d9420d4a3ed8a3f507867a634795ea9609c1b1332b24da5b999c99ccbf0335f3c507d90f83b82a8460875cdf5cbvp9|܏1秩Zn pO>?>d " - T %4]cj ) 2|             * \ 8(H8P9:=8>8?8@8F8G9 H98 I9` X9lY9t\9 ]9 ^:\b;$c;d<)e<.f<1l<3u(>8><>D>H>L>Z>\>`>h>l>p>v>Cirqbalance1.8.0.18.git+2435e8d150400.1.9Daemon to balance IRQs on SMP machinesirqbalance dynamically switches the CPUs for IRQs to prevent cpu0 from being used for all IRQs.bvsheep66KSUSE Linux Enterprise 15SUSE LLC GPL-2.0-or-laterhttps://www.suse.com/System/Daemonshttps://github.com/Irqbalance/irqbalancelinuxx86_64 if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in irqbalance.service ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi PNAME=irqbalance SUBPNAME= SYSC_TEMPLATE=/usr/share/fillup-templates/sysconfig.$PNAME$SUBPNAME # If template not in new /usr/share/fillup-templates, fallback to old TEMPLATE_DIR if [ ! -f $SYSC_TEMPLATE ] ; then TEMPLATE_DIR=/var/adm/fillup-templates SYSC_TEMPLATE=$TEMPLATE_DIR/sysconfig.$PNAME$SUBPNAME fi SD_NAME="" if [ -x /bin/fillup ] ; then if [ -f $SYSC_TEMPLATE ] ; then echo "Updating /etc/sysconfig/$SD_NAME$PNAME ..." mkdir -p /etc/sysconfig/$SD_NAME touch /etc/sysconfig/$SD_NAME$PNAME /bin/fillup -q /etc/sysconfig/$SD_NAME$PNAME $SYSC_TEMPLATE fi else echo "ERROR: fillup not found. This should not happen. Please compare" echo "/etc/sysconfig/$PNAME and $TEMPLATE_DIR/sysconfig.$PNAME and" echo "update by hand." fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in irqbalance.service ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable irqbalance.service || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop irqbalance.service ) || : fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in irqbalance.service ; do sysv_service="${service%.*}" rm "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart irqbalance.service ) || : fi fiLBFH A큤A큤bvbvbvbva$a$bvbva$bv13e20847723537cf0bbf48f190728eeac44f12f66a2d0804040e9dfae3d98f4f97b5973b36ec91e9f50425909aeb1780bcf815c8e8583395e6c1e0b2ccf421422d56220b7258ebd0f42cca0249cc5261c1e596bf460d3e5f0c62938e6a11aa93cf96bc63af9882228a0e747d6bb0149c68fd6e203f9e277a572f486ad425f1e65a36c48878d6f099cd045cc1e4af366a7035625fc35ade6e1cad012892011c2d32b1062f7da84967e7019d01ab805935caa7ab7321a7ced0e30ebe75e5df1670fe1467752ab4e864c076dde02413123bb3d6741e6b2e2cfd512e9bc7624ba00dservicerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootirqbalance-1.8.0.18.git+2435e8d-150400.1.9.src.rpmirqbalanceirqbalance(x86-64) @@@@@@@@@@@@    /bin/sh/bin/sh/bin/sh/bin/shcoreutilsdiffutilsfillupgreplibc.so.6()(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libcap-ng.so.0()(64bit)libglib-2.0.so.0()(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.2.5)(64bit)libnuma.so.1()(64bit)libnuma.so.1(libnuma_1.1)(64bit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3a8a8a.a`.`u`H_9^W@^^^@]'$]!][[ @Z@XXe@XwoXVIV@VLh@VKV@UT7trenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.detrenn@suse.dedmueller@suse.comjosef.moellers@suse.comtrenn@suse.defvogt@suse.comkukuk@suse.comtrenn@suse.dejengelh@inai.detrenn@suse.detrenn@suse.deegotthold@suse.comrbrown@suse.comfschnizlein@suse.comdimstar@opensuse.orgdmueller@suse.commsuchanek@suse.comschwab@suse.dempluskal@suse.commbrugger@suse.commbrugger@suse.comdmueller@suse.commpluskal@suse.comp.drouand@gmail.com- Update to version 1.8.0.18.git+2435e8d: * fix unsigned integer subtraction sign overflow * fix opendir fails in check_platform_device * irqbalance: Check validity of numa_node * configure.ac: use pkg-config to find numa * Disable the communication socket when UI is disabled * Fix comma typo in ui.c * drop NoNewPrivs from irqbalance service * remove no existing irq in banned_irqs * Fix compile issue with none AARCH64 builds- Fixes integrated mainline: * bsc#1119461 * bsc#1138190 * bsc#1154905 * bsc#1178477 bsc#1183405 (removed patches due to mainline integration): procinterrupts-check-xen-dyn-event-more-flexible.patch * bsc#1182254 bsc#1156315 (removed patches due to mainline integration): fix-ambiguous-parsing-of-node-entries-in-sys.patch * bsc#1183157 also-fetch-node-info-for-non-PCI-devices.patch- Update to version 1.8.0.18.git+2435e8d.obscpio: * fix unsigned integer subtraction sign overflow - Make git hash in version better visable .git+- Update to version 1.8.0.14.ga7f8148: * irqbalance: Check validity of numa_node * configure.ac: use pkg-config to find numa * Disable the communication socket when UI is disabled - Use %{?systemd_ordering} instead of %{?systemd_requires}- Update to version 1.8.0.8.gbd5aaf5 (jsc#SLE-17697): * Fix comma typo in ui.c * drop NoNewPrivs from irqbalance service * remove no existing irq in banned_irqs * Fix compile issue with none AARCH64 builds * Fix irqbalance cannot obtain the full name of irq - Enhance _service magic and add git hashtag to version- Add _service file pointing to github sources A _service - Update to version 1.8.0: * Add return value check of opendir in do_one_cpu * Hotplug may occur again during sleep, so wait until there is no hotplug- Update to version 1.7.0+git20210222.9db8d5c: * ui: fix cpu/irq menu off by one * fix uint64_t printf format (use PRIu64) * Also fetch node info for non-PCI devices * Add hot pull method for irqbalance * Add log for hotplug appropriately * add irq hotplug feature for irqbalance * Remove some unused constant macros in constants.h * Add a deprecation notice for IRQBALANCE_BANNED_CPUS * Add IRQBALANCE_BANNED_CPULIST to env file * log correctly for isolated and nohz_full cpus * Update README.md * Add some examples for IRQBALANCE_BANNED_CPUS * Adjust how we determine if a cpu is online * activate_mapping: activate only online CPUs * add env variable to ban cpus using cpulist syntax * put arg parsing detail into parse_command_line() * Updating configure script to version 1.7.0 * Add strlen checking for IRQBALANCE_BANNED_CPUS * remove redundant "/" in SOCKET_TMPFS * Fix typo in service unit file * arm64: Add irq aff change check For aarch64, the PPIs format in /proc/interrputs can be parsed and add to interrupt db, and next, the number of interrupts is counted and used to calculate the load. Finally these interrupts maybe scheduled between the NUMA domains. * Correct typos in irqbalance.c * free cpu_ban_string when the next request come * improve irq migrate rule to avoid high irq load * make the option 'V' closer to the option with no arg- update to 1.7.0: * Strlen checking for IRQBALANCE_BANNED_CPU env var * Typo cleanup in SOCKET_TMPFS * consolidation of numa node creation on non-numa systems * fix uninitialized use of package_mask in affinity setup * use num_online_cpus instead of core_count * fix a null ptr crash in do_one_cpu * make list searching common from glib * fix a calloc parameter bug * remove some unused variables * use g_list_free_full * remove redundant call to free_cl_opts * fix some resource leaks in main() * fix some use after free issues in check_for_irq_ban * fix resource leaks in irqballance-ui, and in add_one_node - remove Correct-capitalizing-in-service-file.patch: upstream- Corrected mis-spelling (wrong CamelCase) of "EnvironmentFile" in misc/irqbalance.service [bsc#1172665, Correct-capitalizing-in-service-file.patch]- Update to latest git HEAD version 0348a3b. There has been no version update for quite some time, but some restructuring and fixes we want to have included. D install-man-pages.patch- Package COPYING and README.md - Add some deps for the -ui subpackage- Use fillup_prereq macro - Move ui into sub-package to get minimal core much smaller- Add git hash tag and date in version as source is derived from master/HEAD branch. Thanks to namtrac. This is done via _service file. Also add an example how to get back to a stable release version - Update to latest git master version: git commit f7fdebbaa4dbc27fcdeb7- Use noun phrase in summaries.- Update to version 1.6.0 (b47eea84cbb93f533b0cba2f1aa): * fix balancing when numa information isn't available * Refine document about IRQBALANCE_BANNED_CPUS * Fix string truncation issues detected by GCC 8 * fix socket path creation * Update document for option --banmod and --deepestcache * Fix ambiguous parsing of *node* entries in /sys. * procinterrupts: check xen-dyn-event more flexible * misc: Add an example for policy script * policyscript: ignore non-executable files when specifying a directory remove because already mainline: D fix_buffer_overflow_compiler.patch- Allow compilation with SLE-12 and before by: * removing -std=C99 Latest compiler version does not complain anymore, SLE12 SPx and before did. * Fix a possible buffer overflow compiler warning A fix_buffer_overflow_compiler.patch- Removed aarch64-compile-fixes.patch because it is mainline now. - Update to version 1.4.0: * Fixed an erroneous calculation of min_load that restricted candidates to a subset of objects * Fixed powerpc hotplug detection * Cleaned up syslog target dependency * Added some self test infrastructure (via make check) - Update to version 1.3.0 * New features in this release: optimization of platform device irq detection Added sample udev rules to trigger irq rescans on device add/remove Made irqbalance ui an optional compile component Added support for Intel CoD Add -v | --version option to command line * Bug fixes in this release: Misc compiler warning fixes and spelling errors Compilation error fix on aarch64 Compilation error fix when using clang in c99 mode Unused variable cleanup Lots of memory leak cleanup in irqbalance-ui Prevent irqbalance from running in a container Fix irq affinity assignment in some cases to wrong numa node Fix oneshot mode exclude legacy irq 255 * Deprecations: without-glib2 is removed, we just need it enough that we can't dummy it up anymore- Replace references to /var/adm/fillup-templates with new %_fillupdir macro (boo#1069468)- Remove superfluous comment out man package packing- Switch to ncurses6: use ncurses6-config to find the correct CFLAGS and libraries (boo#1021328).- update to 1.2.0: * sort_irq logic rework to fix unintended ordering * removal of the affinity_hint infrastructure as its not needed * fixes for invalid cpumask parsing * many other minior fixes (see git log) * Aarch64 support * live interactive monitoring of irqbalance and live adjustment with irqbalance-ui - remove fix-aarch64-support.patch: upstreamed - add install-man-pages.patch - add aarch64-compile-fixes.patch- Set-fd-limit.patch: Increase limit on file descriptors (bsc#998399) (fate#321645)- fix-aarch64-support.patch: Fix AArch64 support- Update to 1.1.0 * Banning support fixes * Load calculation improvements * Documentation fixes * Fix command line preservation across re-scan * Memory leak fixes * Misc. bug fixes * ARM irq support * New --banmod option * New sleep interval option- Only exclude arch s390 and s390x- enable build for aarch64- enable build for %arm- Clenup spec file with spec-cleaner - Remove bug-893478_warn-once.patch - Update to 1.0.9 * PCI quirk support * System Logging compatibility * isolcpus inheritance * Misc. Bugfixes- Update to version 1.0.8 * No ChangeLog available - Fix home page and download source Url - Update bug-893478_warn-once.patch; (submitted and accepted to/by upstream)/bin/sh/bin/sh/bin/sh/bin/shsheep66 1651962817 1.8.0.18.git+2435e8d-150400.1.91.8.0.18.git+2435e8d-150400.1.9irqbalance.serviceirqbalancercirqbalanceirqbalanceAUTHORSREADME.mdsysconfig.irqbalanceirqbalanceCOPYINGirqbalance.1.gz/usr/lib/systemd/system//usr/sbin//usr/share/doc/packages//usr/share/doc/packages/irqbalance//usr/share/fillup-templates//usr/share/licenses//usr/share/licenses/irqbalance//usr/share/man/man1/-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/cc9dfe4015dbcbafd2cfc352d649d9e6-irqbalancecpioxz5x86_64-suse-linuxASCII textELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=368464f401222ce57345d7c87fec23ab8c1ee1d2, for GNU/Linux 3.2.0, strippeddirectoryHTML document, UTF-8 Unicode text (gzip compressed data, max compression, from Unix) RRR R R R R RRRRRyC$X[~+Tsystemdirqbalance-uisystemdutf-88058a20a631d7789f1c75170f39e40307bc9bf6f4085c36d83f3e64ce1fdbb37?7zXZ !t/Q] crv(vX0&׾k(l͕\-M{]>4a@ۿ d(ҕ|&@u25\i'H>Zf<}d=hC!X[UNBݳe~I: yOe۵+bS1KڸPD""2vh|d0a+?ÖG0kzEjhsY=AB~ i,8-`ȺC)NĊiqmDՓyw@B[C.)$`/bxrjsm64da'g켖9X#o|5̕A7Ӆ&bX *^"1(}k0Iه=,V\Vv @/]B宖ILE횈8ǿ>ѵ4/p6/1[8.VԚjDPӊ GOꔼ6L/?`kq Qkd,`='HR7lUbtZ+u?xL(=Ѵ$<Ly gK/n(ӒfgݷfăBs}W-gQŽkng7U}Ywz*䴳Tt |7Q{AIYU&{M([8nN@2} To-5!Yzl%:h ?&pzfY%:) KN'Cr[HY*B"EֵKbӂ,3b!S~>;5I3,u, Xe詭v61D/R_U#c,Ǘ8J`WOaKPؕt*.7JP_/]קt ,^H:%[h$G\EӂI4!Dm 폐 ׆XSۖ (匂M -8MWkUӳg"f{ur7S~KԊh #e!GS1I!/JTOI#qsb+gٹ'\s` FqZ>j]H6Yܫz!30q; T_N05P(1"X1[|9`XT-bqNH//{ץ *f6|]_z=jKI{H' ո;}Co ɪ^.vž%pX24EH3<` Yt}l̝տLt(%HgKqBި|#L1tȺ 9̤Iѹi`(yI4hb7CGLt<谗 7äB$o_f:&m^P.,3E, F, c%;Nhlz+Jq)v/ZIvc.KJP횑ӆe/Znۊ Pi䯲Mv5Q)Tͼ> R9/Dӝ%'l `YdfU'4k}YnM*CyFL荚TпEbCңSK/mMIc"P<݆œE/l] .ƖN?:\<ƆLJ`RF m @Ni&{{Ɓjg55 6]U !R4TuߺəcJ;Wǣ#1*&޴Mb Qeʶ/V@a~CCʶv(ueũ1%J|ƾ]=X c$ 뀔#9 ;ë}uRjiƣAٷhjYF-BOeRaa]5>V pLW4˼aC\yf3*`zJ\\T"TqV8%YZ LIֽ8mg45)W(j bY)"nNJg#*N|8!iĞc69KpV=z⿕))nc&χ6몚x2^& q;(y@*h` e!I+XnZaBnGxS/@?`iFlK*~^cC !s@ǟs~Z@!aġ5o$C4xfma'aAo{taY)!wj{D\P@Qخnjhn(t̡eÅH7MDEJb6D\=d-&n'2^ DJ/$#|f m>L-hP[Zpg$]}Ex@_dkˑ^[B8ttO" XhCV1t5"cpd3Q> 峓|]C9ٻϘubG<}')%6nM*e䓵-33 \Dǽ7J7-{u]5 wt) YpzUd `ٜb0@_h056Y;1#y kSW\i!]e!LJ@I}2w8LeNQ@0U[cJlB og ?ŠkE`b9oa:lMBD&|%ڋu5ř,T0G\?gU\<A*!,^otVMf;g@D h`̙]~+l <"k7oPWI,yy9Z=3Z5G,2Ode00"pCؤ p(#ybՐD08گ!z^qȐ ,2aQN%/;{b|^NBv U=q4Vb$M'|v̙ۡkPlwCT_[&EJ"Eu^]E=w&@^K: kj 'yphA9[QIvKh>`b֝zzu?ۧyޡc omB0FWR?'!){գKV'Qb: O/pVvݳ4 *Yxh9)B=YTO>fG[EYoI5/uxІzS1Q5`=rҶRgR| 02È*Vq =53+>C?Ӗig|yBB!>V2ym@OMZ ߡ8f%DlٯJkDnhTb}s`y׷)4Z&Mb؟7܅L_2_f0Įd&өX6RfE_S0LjhǃyIH,~فFiq1gbUES`VX0nTzBJ$%Tj0@~2\#?veB1^RQhFtE(3dDJ'K vrx2> [C"W$R[=&?ԧ+?I+8@|2$OSqFT_wq&G̛*gR0y&[tT`XA/&qyr35D791h(_}7 3T! 7"#76` BrKfz0q.L%st]\"ʆYD!"~03*wB}R#i D{O?bI5J_6!xFThrٻM~!Q_TX4=nzIO7tVo 圩h 0fDeS柛빟fMrr3A`s7@2M>E,Sk\\;M"݂DgQ}8Vr S[^cOw%m}2Foxzz pC871w0v]ԭt!J\Yb-Q N-vQ~ѧՕESz5Ÿkr|jk_HD"2=Migd\?H*zav5 w =W2+-ALS25aӏCzf0X-PWkt0,z6DrJgyE=z+X~>=(7|,ԍ4O"*EQBJIRJ $ wk)>d7qͰO wx8+a"t1YL[J4\L%Z'켁[zڣ;m \gt$s%K;PȂH ^AXT.نxPAeAFw$Tc~)PbS8Վ @XbYݩTd`L|奝%$KX^@ U=w=,Z>ǁ9߈1LN27 u0Z;VD.ntqZ~HG \QA bnf`~W}5LPC=|nظyq<9@fm(Iʄo6OqMgx&xPd?"FL7+klŐ uzF>iK@5d/1`F>E8TKPc>yBZ q[*vMSA@Jrπ#0_}VOǷ1wMzku%~5ڷ5 W ?m+ᘗF,-G]Mu;M.QOI%Ep ':[]F=4pm zg%F1MI4N+'^2~ ObY+橩) 3=l#@sBn210 xi6҄th\ssw@OwgvЎ"#1~v́33bX\/A R[4d;C2K ^jJϔRp7J^t@](1-3 sfoz9M9߳K[W YkPbJZ#:D2ke4 ÍP֮=ӝV5M2i Fk%s\2&۳{pC'Џ0aH\U xM9! O8uKəc;ˀ@"xcWT%\fM>,Gb`o)q nFD d3EPT+K%M#kHCbnt)1Gf@D"Sy|Q;zZO Kjxy}0zMCCwԊ5xIaŇg > U]xo],LKOot+11$l{ >-k"$$%y`?ZLF3utJk]q O:E-"}VV=}WyQ9 z nFӝx}FMK$'5^y9C4/j-bɲoB. ozBe5ͱD\Q ;ِ|T=C3w_%@_ЧvxFG܎{ דEͶub rj ʃld IMܤͼ &Pj ۔0lp ~k1|T=2̄0"D؂||$zϮ<ܼ=G5q5UHzXўutre)y>"ݲy|8}6@{54h3[mt\>GǵI9ZHӈ9=Oroa.󓕔^6~jJ%Ɂ)XP _Q;֐<4g2/4uU/Y=t:֧(?r3}Фߪ>7GSwf#-Ĺ =$Nmy6eq\j` C9:tj01jAnGflr֏A4 9~miю4g3A$"_j )T`i1jLh$L =a-/^|+jNY 9!!/!+eJc5j\,:(्AT?HG`΁iFJ|cvGӗ8n|mÛw)y鈙"]Bo#@18'- 5m1v1WʑT\GVZ&Cb2I0dy=>EY,TŽj,= cr)?)/tTwU̦Iru*G۟_}*SҲ|r6k4ӕ-ɃXS, thf,ˎ6 [Jx<f|ױ*}͊^x$E:9OˈD9E~1` :(=zs݄ x^^tF_ %5Nk71QT0T…`AߟJ+?_숎b0OLu|? ]`g(Pږ:}PǠi{#ltAßGai牂{Dn1=~Ev뿎Jfj@GoM@<G7'Oo4MLML;) 5gqE6+>3E:/cjUMիniKTѕ*ˎџXlwgȕCzn!nkX"Lͭ?+Z<3Q%?K$7~]Eow?S!|a>`'JYLܿ\c*sқJ=J>vįhOq.}|ˎu2,-*U ׫+] o D| x]=R6v+n7ڲEGk!`:~DPMd/;I30L׃m﷌AiTNd&,[_tmHnYkԸ/1 mچފm^RӏMF'+ŒGೃn]p5TNr=SoڽlnMM4 9)*;AR(p_VK[u.i`ހ蓺 :"8m6=S&CK~Ii𭞭{ #A->3{3HQx`ʽlTL8KaF. =+]Yr-[_3@aXdjPɤQ87LԣX濌\L&Px;{A+*)خma5 8Ttze1s*pQ*딛FTr^S]Y(uHu/9^3Aldӻ@mA jIH{X;8C\kZ@KhzR+T0.K1,ЏsDT@VIMQEVB8yncX3`HI ~ȥ/k0R@n ҘE5=! 6U8bnaψ3Z͵m׺H,]Ƨi.[ēe+I{#u#D$ȊRAelOUƵi# T+ OBll`.oΞ{:Y*/r N19pT_ͦ%QTju  Pg*Тw~zG*wԾo`+/-W1t/U( kBP.u;+ [bgan՗fq+]ƤmGurHp0b?at {$Fob$˵d|[̦|lb.0-㙕YV}9|SB߶pAڷxF# P~Q(쿝dsw]y|Ǔ<و;;4ٓavܢ6X92^?[b~ah ϏGL>>Y}(61zgRކ!bk3i%e1V1^&3oIw##Sٳ$uW^"5E9oWͅ@tƩQr=i)maɀƁ l|7./)%z夔|A[ 7[uh %fHD:sp/UG} T2) !blP8jV1rp$ b"Xϡ蛈e֋=AJcP N.5] P$IXI6= b1Z9T1Gv^)=:WMZv@!=xt3 ]_l V[K(4N9cv'55:Ihruh_ ^PyOFXJM8% 3gX8N3R|6UK_Rm/"q]N Ff-hurg_n,eJ)br?9Q>زq2Z-’ K#Pf5^#X\Ka\{=ITחY^ ܣQTIc'`bӤmϛ&`8+I .m͵{.-P:V*{-u2>sHUзnݦZZ-rh̄Lh%s3=kbuYN[Ug^fG^*<)kZ9^v'ۅ;ڻA>>(8+EEl9P"25 'F8՜+".[Wﰊ-,yc|A$嶪zfEcoєT:L),.FD /Έ1.rA2&/*mƷ2&lx9d\-SP7@x[MuJ8W4 t9)gZJ=S `tSɝwoؽ7I6up6ZaφXP18(TЅw1kGDŽ5_2 2peRIr@^~iXW̑۩8n%I7pdyzFE#'.82vȣ(!PXAVʓC9ua/a}&;J+.hϣjl|':$X_@F'Uь?65잜ЈȄg/I5|)$F@`4S-AU*7_ (|+L-DZR\cG<͘D6CPL2B h`XXcBVyJw< i ū{x`I;j,RnPENÀ0Pݚj|o #1"_/:F{/jZOoaLj |cu`EVbcc¬j WpiXٻHa$m@l=ĶQvJ PuLs/*or:ZY:_}( rwj92PϿ(5z*̎+ºpN28W [ξDFtg6 _lZЂ\􇈒=w7#}2Ư'W_F*kv[ș1\!qB+X!FPaM]&[՛3:쬦kX 1Ԥsk|7!{ itF'б# Z$904'VT0cy(u1*4 lQ(ڿPF&, 5xlbr\jpM>v3+ tU'XhH@C. nVWzv%Չ43s~j+]ͭL롬7*MxI?:pԨ'{^mi f'^Ęi(;[ e{]k17aʫW]UJM.EFj}V )e#GsQW{B_ 'heK^sbbtÏ0-n*,E2dyAxJ VyX/fn-指$(QkXF bGjTj3UJrh6#8ާgC-"A;cE1OhS+l#{5HNQ ܟ{; N7PJFfϾ6eNZs-{s?.:_N%x}b!/ѥ$WG}ξ1/ޣo_s/-gx1#vغ*LVp3>L;u?6rHE[_i&.Z^hpA+HjKZUw&e9Kqnn@~1q?sl|΢H1 3 o>a\@VM4i/%gYMBb~CVKt(hQs <g<'xڇyEImqtY3:( h8ԝ5$U{^ {"478Y+6b WN =,w~X8~1z3ѫ[.0F=_"%@8V 3#_ٲK-":Kuly,s>$SRjmu:\*4t$!,J:=-ݦp3y:Fok  sTS^YaHr%jre@dԨ bU2kڗv'ɃE3K~n%qλ!z8[IfpEob@EPϐo7) mx#=ȃ 1`h2B+~az4OD:-`8Ҝ{=AF+16 H)T*Tzeg|JlA>(or-=AjY+`u|ڵ3?j:JOd)۠uB gJ#C+٤ V|=SM34SgtJp52KWW/S,C$S>?j3 $Z@[xD 3YNYOSJ ̂BKp@ t A9_vzp Uʥew\f0qo #JY<@p+WPp{z_%P!l)~TxRyv$2WFۜa~A{C{  X{V4GoG^_0e#ٟo'e>zsY;Va_NiT\{>3xfޡ(%sUw  f"laȈސF4rzذI:> I4~J+$ K<槀NnD m p2X^Q[bz L/ k+ 9XHZDE 8OH^c$?9H=ÐgfG|p?/y!_+2"˚h<".(}:4OYgă:I q!i LY]Tqp2t?MVw<۱v׭#RR 6 މzdE)NÅxsܒ=ŅGsIϛkSMq3%A kՠ&JD.\5wtUx>,\õyFEƺHw'&F, _}S9pq>$qdtu#~{w`~p+ _/]BʖaBTgT x8HvqMʉ~Wm]{CF㈲eA E e9(*!g y2v1FIa4 7^0I瑐;"!K9ŶQDD6@Ln=F :.\IkC}}@F1 nW8'F;ݕE-ȕC=GcBG >\-R"| tORˆG2N"?{֛yǷ r@x z&5fwn01#/E(*ɀ@9G,idKY݁aTb|^M0ЮfM _q9"-MU5 FWW^ϽXnB O\8'%-r^?~/S#AxIi赚X&Ah#!\Qky)KS樭i+ӷPmmƥt|NnzC#ŠFsg !q5R%cϾ9r2 x<*|m.6_ZW;ۇ$6Bt>B0"& g[A0h$-ʍ zhЫt&C/(: Kѵ/*{nЋB;SFwߎ3ē olەfDծ\2&M!;uԢ˚=c`0ϞWxSs@{t2LE"ܠ$:4wZxnZU>>_8[`5-CfF[[%_+/1BF_7tEga u,(>shU .=Z uFqS_MF*҉Lm\$Mڳ|󖋍N%} %);S dDoR)ژH]W|w䬮dw\b2yPo?1wZʐ*}Hz#P>&%-4 vPU(T$k)1D ;WY蘵 Ew _ψ*@I^y⬀ht_CEs1ˠ?F>%a I O3⌜zaYŇNFȸ|X=åjӭ7`24vU&q5m0d;}QZtP VKྍ{ᄲY㳗<_՚ʣ-(%&>݇:p MJe= طT(]rE{O&^#$nj`2#_.s(?ދRJk+ϼg,CG^GwFTzL3~U3U0M_4 Ț/ID I57.9$3CxQ\7D" Jm)8vLPq?ؽ*wC~*48 ο +fYyA\Fv;;ĘI1OhhJknFܤrwWYޭ =avGvظrwzgRoO,D]tY#l&ӝCKkJ3:W(l7XMok*i얎S l4:/D(MqVY'YDQrWoQƟgؐD/яt;`qo2]x&Ԃǜ0 _S/& rka<&n!L.*Í,HFt5J䣅;lW"'(jiNt~/ p)tϐV'p1õYt?H7[A]{eY7u ٟ]GcB\hƗG+,W؜;\i3gKI.L&97{6#]Ib~DѢ^ ]o ?B=n~f9mۍS Wq" s6S=U(G:}|}x3 K({o()lR1 ZhגƞeG]}4[Q"I\j 2e?_f?+t*$!-j'\o/pA Ɇ>\w+އexJЗI2v.*W.9,FNjҨZzm՗u%r墘lE|*úu!(Ltx*Fy@%w^i->:7Mk'6a\ǜǪ1vߓx7K4۷kY&Y(Z%riXMsZ[& ;" esT$ Rr ׅNa鹼hZ96=z*ijqs d,,tLKͮuW[9]Ɏ(Ap)QWA(fagkE?ʻl?C Ɋd͟|oN{pn{7Zjz{8 <ۚAd. |QʬҼZ+ lbЁ( d䃆3В H"zT֝3M(JmQ)nGQEKE/é<K~_wON b=,͉a- Bdpgum6 Ҫ+']Ayia!7g^ͬH|7۹A֪mLi$H܏L2߸xPdҟ N} :!BOT0@ V?~k^f.y=o)=gJWG MyF|Jގ!+ i#_ĨᖷNBdnw^CN7"M1h!Etճ?>uꛅXHx˟hmU{3o*m?? 7O8U/+vr:%>aq|l@ d"nsrN$$?˟'=oIZM@ AB@Ka1fKVD̚U*ͪA`T1ш)]+zEVWe Hc L7M;ӽ PzhǾML%g)0+I3݁cm+ hҘS:E3+xFԵ=>"'܊${CdMK8zAvieRj.1EcȲiO@dKj )[mVÓ1{DU[:Gjp"Yj{E!B?(Ӧ{w}~prM/@v# 7IJm3ŮP;*eƾ! ۧA}D5J>xTk?-d_` Kjs;}5-2h j\7}r1۳KaV?&sma-b"% Podn҆MAfC:+V)<v\ ku8#<6pk^f~W͑Lu#Er,[X Qdywo}qF6. ?i"~nϡ0 WR"Y @kǒW&Pz8,i`F)j|Bs_E=*zSDĔе,:j=}# Ҙbl&!:(Xg{-:3=S>SPz j񵗑Pjx{V-FXƢ~,RA6yЭK>)f `^% >w4}lRJ&-X)vw{<|\A*#%BFj\DQf$Ј(Hs)N1$pvj: vϿI])]opЫ<#j߳bv;h- _Y  Ex Aj3naE%72'1K6O>9<#]2  R7etKs"F좦IuQnY'VHŒET\4::RcrfytĦmG PU̟E`ɡ!?6 gDAMKNԫ)gN u*5x'fp>%\,;\6^zk\Q@H1橺#s('GYmrfT!VV%ej~LW]9;ŗ&+?;OW}LXvXYJw~>Votj AXIn.mGU@|0k+_ޖphP0][a"T)ib֨=(-)y%5?Ay&*| ECg77aONwVSl˶j:xؑHL7M; ^Rę=UΡ RYpvM q$s9nK|:b2wϝILĘ?tdCmW V4)166Lîޓ$9D;#;^t(uS%6*+ܩr͊2rDވm"MBy j< jܛh\w0]UTiE;%{)Qg+.WjLXͯkOEa փ3]/1u9z'߿.SOlasm:YoI niɾ0 Z)(lt2fhk}wYK|ق/ +L)\ p0ZT ͐+aȱ超 rݝqwN)` wJ 8Qc˹#ԟ!F$yuVHռt|&%"//v\d16R>g:̀d# .:oLt=ؠ?aOd^Jĺn{: MpOiSvZcm~5@&h]xkA=6>Ԓ@ф ߰f/aF>m+@:٭HFp5*Úvdjf2/O^!)^U]#Z@CZ`%SC<0dBU!|zp&GVSGPDc5:MO^ْ ԉf"!;r>^ 3Y:Ǩ袮[7Yme|Vda[jR'U YuӘeD@$c$PGJ?:"4<8ٙZMP=}'8=etE>ǡHrRiB5XƿUI'$DIfK/q,Ԟ^#gdoSb>xoNTQeC!zU1z:;4"j0̼t:a\7_#"*t OA+ iؽ{sT_q~0 `]#pz^brn~xQ!L?&<6@㜧 Y?TYA ;AIy ʲ] Ȣ:O&O&KW+7 M5#cbo"gsqN7X;F9Vq|mt1dU'٨CLULje Žb::"Jwrop\~@3f?|1P贗B RQZmc*vmR'Haާ͚5ٸh4r{rȁ!N%A&5D+s} |JT5 %oR쌓"rd8~8Z/:#݇ա F Glׅ̱)S)X4NM)hr-Je#bA\UQB2JUCph[FZG eܼ\ΓT2sVy ԰9SJ f\A[22\nIc,v6A;wV$:eP'kڼ%߹a BIEzWɘc{Qȑ3+˲ؑOt,y]~a.§5<-Q8sUF>5V8vlEuXj vhzrmi_M$;VJ?u k?[ow\xhD09oc1A3 Zi,XƦW^N{F%Ywa[L鯮)){  )$,FK^sMia@~huqҳg5|%d΀(g7-rCXIrV m-=3/gX4[mQL֔Ȉ,ǐwS߆b{ʷN vml"j*x-\L&LKň4fJ,p:^ƒSck CT3N Fxkאj)Õ!PW8mps3I~ !jh)r#WJJ>K|[.a9ɂy|Y<{Ph2jihSO;(͇5@z:Wa=^14$`:x[/xtb!Q/S_S L*z[>.? q0ư LŒ vCVY4TIxawߑG23N 7w}0uk!Vt?8)goP{aZ 8\LkUsmSERVRs-rDFK *Ka6B3S=vW[$(O % ^n? p veydOD_% [ɡ b0~w eGRy 3(+8|7Vɬ+jd=1 q幌c[ᳬz [0P?m*z|RB+'户CKc3`Ǧ`TVܞ%[FA7BQ-y臗z4jψh\k|l~sTm6Bn1:(&I&'Xx;6ح+͊n%Z#*W]v}\K~(vHj}y@p?Yi:>b;|_D0S!t/<8dA8MNXro7>}"GӬa8(u^MDo,JC]!|7dz}&1שi b s]ڜ-ȇr|LN(}gfG7*ŅM ݕ+)_ǿV٥я0+sQhL\um}jkzh _@<3Ac d4EXqҏtKE.$Q1 pps>4b$&Ƚwkzi{ي7]&!P^vD=_>#0PA]CdԪTϺ0jLK`IƺTS.)g<Y'Kʱ lRGLH̉ G x{="J~XV ] tqAh"_/5d`GRvcO؛l͛DC),;y\ii$:&Z.hBѪW#VP y^Wow^NE1vζŕQ(zǂx4m.VJ7w!y^g@B# [9`T I"sbc\'4dU`p+ĚM#}4D2c7zk{3y)9$b5k{Dɩ4l-^fJ͖VkdA&8!i7}n60^:#;Y*֙3R/彯ę_,IOAj|>W}Dcj4 7) n8[Ar?{0OJPd BV͇Mo&MGAxnջ韻 6 d2m<%Uq̋E(C&@ {anň5rYM,upf*B^*f#Kܫh+X/G2!Q> Q9}\/|A3+2ƎKex٥č07"> OS;*ׯ5*`qWX凗 8ŁA;{[wz,DkO0R}OjnnzqBC$#O#!R'_&ڄQb~a/oi|YknwAFiPN0h F'])^_u!v]wp|ߨ7_u XkM>֖ @aw׬,Cn49rA9%]HHU.QU~`ݐK3geJ[`iN)N԰T6)J}r r<SRϫ3a*Btq*HҲP5t-&El{Ħ41h>L~醡YHkJ7N7]6耕STaABRi326mpsMhZ1KFo j<հ"^tìXaLwpV)dN 'PZ8* jK}ʷV^8y!od]6۝Hezu=jcIѱ3 j/͏j{-U!},>bi`pλd!48mKi#i/e5-ȚJቹ^yeVkt~܂%W7>: #{3cpbH GeIN´J._e* }7 ,BAI^5'Rrʮ]$0v̿5aqN 9aL2*TW}ΤiCܪM'yw_Q͑&HDzakH ]Dҙ.zBAxn<*\DOPS2q}sD?fҜ,\Ld>ص3$د-˜-n}II\QfKMy5^eL gzKfWYCRͥoOUw.,S}b<~d'XZm_*MiW%mڰo̪,c9!Ze'7K [!]*&&%-=!ER&F+Sb>ة}DSr`Y,t;5giSU[Uc&g赡y^ĠyB@DH($}vN͸s~t!ߥ{n{Y 93sZ-=!Mp}lT8w!p|O iAՎ\n!kLosTb~඄O`qx`y^wĖn;=V$sKoTO4A3<+=3w|=5`l4f*ɠIVv&r[9rtzoBOލOA muG_Q/~l*T}p%d$qK A'.rG L hb'##6LE= BICxBG} aQ'dm'K7^b熙T&SWe0͝svBEcz4fqZw2,5 - ˣw(GzXcldมYVT|$"60܆k3V*bL^xE\7@&" ڈ`:2UFe 7~ %dX5_&a 'b'ǂG:kuZn4Ko.QK0s#YipA:O'_qޝkٷ`t A/kEbcFugx G^ ceƭχDb֌1WSťϔC T/LypC,|2ߟY>a8Mc܅ h8`bKWykˮ[NxI oEpIEγsQ^IAVۖ&ZM&*JT!߽棢h>hȱ>H՟/]I XUkc 6N|F&҂]/Ձ|` NL3nbz"9b}b-;NY5}1ߴB$<1l$/v[B)w}w_4+aS[ ò)M䲼nx6? FMdDa VQ[ بQ9e Sjo^j,Rʈ&|D*&.a8iM/ ,VUnZ5O% bC'xT`ơ(~&5>yz{i\E/O[^] s]tԮL%S e |wY_¢"AYϷb+\ya`nϙ۹{`ggB{9ЗnLOkm>ק$W{xy & 3:m4qbXLa1G"㯭uq<%5ֆMkGJQ{B`5|)Vc1€1jgXKsL*Y}o/a'{" G +?6lLG.+TrHz:8S soQ<9Զ \^q(=7x/"@F)!7r׮h4>OJ=:X3ٜ9)Zu5ڿl Gsm͠Wfvq^լ=îoI,3C u~=& ;Sx,[99O0u&,wL.6 B[`2٘g BCJ#F߹*[hPZŲ goTsC;yhh{~:^̆y,pO<BN$T:CjSY΄[7}R_6qnpi ˗3BP%@%6~z| %ފi~yJiB^qXTfʫmڭ^wӼdrP(G2rsQu=v:4Vԣt3p0"4?Uz!O_g^ zqF&!l4sg[sv 'QT.N!߸ZF TF [3熝Ino$ J_xMz||sfrS%%7=)v\A}7 3@(eהޥxAr2cha`qje% vkU36ٔ;4r8 ʹ~(-Pގ=zV69oöh ޮЕ8h]#gY*ͿkÓ2+|:< ‹U\N#fJsMNn 1 tCl_~Z]]//٩NzݢKܚvzC.Q}Rاwܡ+B7 FL9QOᾓaxpȐBzAJBCCEw"t樛>1f<IN't!4a:7e-xdۜ T(y1e 2bv"ߟ2F>1Ƽp\&%@y6T̔gl?j Y/@+ @̑g:*/.9FwY>+܎ L%A<(2boeT8Qm%k08|sOڐ/lnH[c!.G$=n%AaI)h|Fvu'1cj8+5JrRX(QX`]6 Oܓ@@o(1 Hm|ud\9#>D`+ 鴋qMh#W6:ڕ oZ}GRM^xf)TSMj^KM$9 lhqd|N1lOki ى*FҢYP؀l`EEC(gWG7ıؚqZvM_ށÒKM2uxZaxѻ=0Ez>ʜ )_om YZ