From 655b5a1865eb832aedc2255c3bb6ce4882fe3b12 Mon Sep 17 00:00:00 2001 From: Rolf Ahrenberg Date: Thu, 3 Jan 2013 23:30:44 +0200 Subject: [PATCH] Updated for vdr-1.7.35. Modified how the receiver is detached. Updated the femonclient plugin. --- HISTORY | 4 +- Makefile | 77 ++++++++++++++------------ femon.c | 4 +- femonclient/vdr-femonclient-0.0.4.tgz | Bin 8993 -> 0 bytes femonclient/vdr-femonclient-0.0.5.tgz | Bin 0 -> 9214 bytes femonreceiver.c | 2 +- femontools.c | 2 +- 7 files changed, 50 insertions(+), 39 deletions(-) delete mode 100644 femonclient/vdr-femonclient-0.0.4.tgz create mode 100644 femonclient/vdr-femonclient-0.0.5.tgz diff --git a/HISTORY b/HISTORY index dda3933..7367d05 100644 --- a/HISTORY +++ b/HISTORY @@ -454,6 +454,8 @@ VDR Plugin 'femon' Revision History - Added a new theme: PearlHD (Thanks to Taipan @ VDRPortal). - Added the transponder info window support for IPTV devices. -2012-xx-xx: Version 1.7.18 +2013-01-03: Version 1.7.18 +- Updated for vdr-1.7.35. +- Modified how the receiver is detached. - Added Ukrainian translation (Thanks to Yarema aka Knedlyk). diff --git a/Makefile b/Makefile index 7862260..e18fb84 100644 --- a/Makefile +++ b/Makefile @@ -3,17 +3,17 @@ # # Debugging on/off + #FEMON_DEBUG = 1 # Strip debug symbols? Set eg. to /bin/true if not + STRIP = strip # The official name of this plugin. # This name will be used in the '-P...' option of VDR to load the plugin. # By default the main source file also carries this name. -# IMPORTANT: the presence of this macro is important for the Make.config -# file. So it must be defined, even if it is not used here! -# + PLUGIN = femon ### The version number of this plugin (taken from the main source file): @@ -21,40 +21,43 @@ PLUGIN = femon VERSION = $(shell grep 'static const char VERSION\[\] *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g') GITTAG = $(shell git describe --always 2>/dev/null) -### The C++ compiler and options: - -CXX ?= g++ -CXXFLAGS ?= -fPIC -g -O3 -Wall -Wextra -Wswitch-default -Wfloat-equal -Wundef -Wpointer-arith -Wconversion -Wcast-align -Wredundant-decls -Wno-unused-parameter -Werror=overloaded-virtual -Wno-parentheses -LDFLAGS ?= -Wl,--as-needed - ### The directory environment: -VDRDIR ?= ../../.. -LIBDIR ?= ../../lib +# Use package data if installed...otherwise assume we're under the VDR source directory: +PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell pkg-config --variable=$(1) vdr || pkg-config --variable=$(1) ../../../vdr.pc)) +LIBDIR = $(DESTDIR)$(call PKGCFG,libdir) +LOCDIR = $(DESTDIR)$(call PKGCFG,locdir) +PLGCFG = $(call PKGCFG,plgcfg) +# TMPDIR ?= /tmp -### Make sure that necessary options are included: +### The compiler options: --include $(VDRDIR)/Make.global +export CFLAGS = $(call PKGCFG,cflags) +export CXXFLAGS = $(call PKGCFG,cxxflags) + +### The version number of VDR's plugin API: + +APIVERSION = $(call PKGCFG,apiversion) ### Allow user defined options to overwrite defaults: --include $(VDRDIR)/Make.config - -### The version number of VDR's plugin API (taken from VDR's "config.h"): - -APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h) +-include $(PLGCFG) ### The name of the distribution archive: ARCHIVE = $(PLUGIN)-$(VERSION) PACKAGE = vdr-$(ARCHIVE) +### The name of the shared object file: + +SOFILE = libvdr-$(PLUGIN).so + ### Includes and Defines (add further entries here): -INCLUDES += -I$(VDRDIR)/include +INCLUDES += -DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"' +DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' ifdef FEMON_DEBUG DEFINES += -DDEBUG @@ -73,11 +76,11 @@ OBJS = femon.o femonosd.o femonreceiver.o femoncfg.o femontools.o femonmpeg.o fe ### The main target: -all: libvdr-$(PLUGIN).so i18n +all: $(SOFILE) i18n ### Implicit rules: -%.o: %.c Makefile +%.o: %.c $(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $< ### Dependencies: @@ -92,36 +95,41 @@ $(DEPFILE): Makefile ### Internationalization (I18N): PODIR = po -LOCALEDIR = $(VDRDIR)/locale I18Npo = $(wildcard $(PODIR)/*.po) -I18Nmsgs = $(addprefix $(LOCALEDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) +I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file)))) +I18Nmsgs = $(addprefix $(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file)))))) I18Npot = $(PODIR)/$(PLUGIN).pot %.mo: %.po msgfmt -c -o $@ $< $(I18Npot): $(wildcard *.c) - xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name='vdr-$(PLUGIN)' --package-version='$(VERSION)' --msgid-bugs-address='' -o $@ `ls $^` + xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='' -o $@ `ls $^` %.po: $(I18Npot) - msgmerge -U --no-wrap --no-location --backup=none -q $@ $< + msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $< @touch $@ -$(I18Nmsgs): $(LOCALEDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo - @mkdir -p $(dir $@) - cp $< $@ +$(I18Nmsgs): $(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo + install -D -m644 $< $@ .PHONY: i18n -i18n: $(I18Nmsgs) $(I18Npot) +i18n: $(I18Nmo) $(I18Npot) + +install-i18n: $(I18Nmsgs) ### Targets: -libvdr-$(PLUGIN).so: $(OBJS) +$(SOFILE): $(OBJS) $(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@ ifndef FEMON_DEBUG @$(STRIP) $@ endif - @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION) + +install-lib: $(SOFILE) + install -D $^ $(LIBDIR)/$^.$(APIVERSION) + +install: install-lib install-i18n dist: $(I18Npo) clean @-rm -rf $(TMPDIR)/$(ARCHIVE) @@ -132,7 +140,8 @@ dist: $(I18Npo) clean @echo Distribution package created as $(PACKAGE).tgz clean: - @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot + @-rm -f $(PODIR)/*.mo $(PODIR)/*.pot + @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ cppcheck: $(OBJS) - @cppcheck --enable=information,style,unusedFunction -v -f $(OBJS:%.o=%.c) + @cppcheck --enable=all -v -f $(OBJS:%.o=%.c) diff --git a/femon.c b/femon.c index f140e59..fc32bc0 100644 --- a/femon.c +++ b/femon.c @@ -14,8 +14,8 @@ #include "femonservice.h" #include "femontools.h" -#if defined(APIVERSNUM) && APIVERSNUM < 10727 -#error "VDR-1.7.27 API version or greater is required!" +#if defined(APIVERSNUM) && APIVERSNUM < 10735 +#error "VDR-1.7.35 API version or greater is required!" #endif #ifndef GITVERSION diff --git a/femonclient/vdr-femonclient-0.0.4.tgz b/femonclient/vdr-femonclient-0.0.4.tgz deleted file mode 100644 index ad11e9e1ae636d9b032a0cffd45ff3c6a7c1a1c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8993 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 H0C)fZ`73NV diff --git a/femonclient/vdr-femonclient-0.0.5.tgz b/femonclient/vdr-femonclient-0.0.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a3e5dbdffb49e642aa9c57b7ff510c9b2585d77f GIT binary patch literal 9214 zcmVYnN0!_F;?91a&Efy|kHR9DyIs|P1`UgYB}wRyEa z=nwkG2VZ>l&j6q2$H)8^pVhzo@8RL#`S9rZ(QtV9#b9`Nj6eGL^OLgvsa<7Ct-mOX zqWajlPrd&?`kAcVfApk3{w#aY1wVWGbld$O4WB)i`yW0#K03tn;qmbK;0rzYEW3Z= z^Z)$*5589VYu&l?6MccN@=QBhKBQx-<)vO^^)$^fg=XDZtE-vSx0h!Z*Oz*dW>!y% zQjd$pvP`G5N~bx#&rOwLC6gz5Ry^ve(4{rw8BaBJH7m-#U+~XY$%+0m{&k?#zosCl zPOScmtCB1o^=JPcJ$p#XgEX&fIWc3q{z}N~Jm2B-_~Z0vJ4)f=t8@%%b64r{3{vp@ zK)dJozo42FD~!SZ?E3ohY1+`idiPC+BoO>?CR$F^5)&;&He3< zn1wla#FI%`;4okiPjNJh7Q)0Lvsg)uGvk~dzvXlBHs^97CwftjGTKGn>0gvQI8j7v>&H{!(h`PU}RuWepm z=2f{|U7^F5l{MbDzwwgHfpnsG7htGjxm}ddjmhrLg=O76(O}o*0e3gY4CA z(`d(U*2bsP92bP~gQtJfyI&n9UwyU5Guw$gWbJ`I(9e#K*VenarLP}dFE6{_Hm~&Z zvRUbyzjap_*>ZLCyPNZEqw9RUI{N!Gu?3IrA5Qf3D6I}$H0gm}|AeQdsn$4rRwt>S zJDBMAt8)##-ZuB5$VSWUa}#>KI+ygwX3ln3`g=}_a#LtmFBU~vvCUqSFFdVbkT4Xx z?6IVJWxaX#`t_;$RjKbUZr{Fs_wCiqIXuAqo7>%W4cR-@P|S-We^SBl*KGAu_b=*y z+wJ}F@t<}4_ubVU?()aaxW^~(-{9HNa0UMz9Y25e2mbp#K7akKAJTU1J=c>+YM$s@ zco~8e`a2+(qFk!qzNR`H4375)-|QcLbD}*m(IkdLrS|nzo>nQmMd>%_^Z4icgCVAL z#~;%8cZ&qZFVWZLy=5>;kTc-Fg{fw)S>gHq@I`lpqj-hHPE4J_WSMem$#Q8pWGvMz z%?k|&`-7wX!Etw?r<+KT@kdPhQFr|D=JCJN{jcl)`J1;tUfq2A8Ta_O{y#k$ZqWay z&;QW>-{bS;mjn&Iy?LjRjXh%bUAPB?IsYGJDw5|54{w4_~~1 zmg@5+*xNnd!^3Z0^!Sy2RU$mRD<;*WDXo4*Xo3U59`t(LS9Zxf0r7G%ha6y}s-0XPNZP$C=GIT! zCZnChjSGki*f(0L!0gxQs5IqLZ#h|tu-BTTzo+$&MXkps=ff_w5W}qZ6g%8tQS?b_ zewf)@KZ3CfYu*z#n5%)39=#%pN;|P-Nyh;P`~~(%CKUkw*y4n5u>5Aq+?wpgcWNq< z3NJ2yM7kp?vqqoZ^|Dh=SrioOQ%D~nKE=}dF?F-OUb7X>GPdahEmD`1WGdjO zDS-rrk>5=#6(&Mx@im%CW4xqxq!H60d>S;4g-Ti^*SUQZdIR52MTo+3@AKlZSvM(Y zO-Cz(&yH{BzM!cUWdivA*ycIDmE1R#q_c7aN}4ETY~oh>Va17pMjFVj()0Y!N`L@NtN)y5l* zIoTtMJp1QGl1@l`nH8__!hSGhrF&t-#^oFZd?v6QyqZ~3JB4pm$|q)1%%nI2~;m`Xfy{4%pss5yH)$Nt&7yk306So4705MN`wA5(pnIdF*Xf)lf1K4EYD zQ9||>2NHp2Z43hM1x_);ZScZ12`->jp19^J#GK{@=9lD!mb@jOuH$TQ5m%EnAH&3_ zY=`lDZfO@vZZK&J;~ZWQI(W3oTMHLU5Xkjc24WtAaIgRcpH4d#xRR7}R<4jEk&^)< z;M(WxOUoju$3g}>5xQMSCoKTeoYB?OEktW6?~k5fz@o0$!-%-NqSx87$D73FiAbtu zfD~}u*ozaXI22q6pWZvi1--7w&qD6Vwz37GBqZ;jkaaBO#Bg9i9LO_5IgK#A@ti3~ zI7#}DCN&YIixC?V*`&cUJqm*?WOK~g#(rqlE`z^tLl&5N+4n{hGC|^kYi8kLj?Ya( zU`CHKYdnQufj^L_->AV*iHN2bttTFCkd?<{;(IgBFfi)}47Q;AZ#0+vQ-KqT)eMyi zoS@g5FE8s#q-`u{U{Vm;>#IMhPr_xqy}!J@zSCzn7yA6o&BYa^#qad1H@DhHRy}=j zb$5Sz_3|CP;(^z1F0Ni(ouAPIB7V?kliT=a%0%$_`NmWR-K@=& zSho8eEF%oT1T5|~6KF#Q@0`9!c#EPYSqG%`uX7b{M(@PC?-265BvbA+gH4=C5`Y3$ z6Q_6JJ9eNbRJeE$fKYh860q8)7o9^gm?YrYB4m*cFAk?-Vi}dyl}lOW;X$!_5EVn# za-zyQUt_&D$^q%vq~{SEuLe6xRkL|KMMYq}$O&#wc*8Ll*W@3rN-Oq=dQH$&*m)Ob z&@KpiPqe4ZCe-*K2k&f%4cA4xBo5QvovWq8N zRD^@UAs8cgBI8l2)iiH;{2|7fN$21Shz_3rRKK@&K`KEK;L)9uX)bsy!ao!qcPybq zeq1{qIh$h_@?|(%v$Ucy3?ke3FaiQy)XD8aD#eU!-x+^*oZb~LW4xh08o7`%EM z15-O&Iw(ixs0KBDN#dw@pEWCxGGdJ)k!e8WcKZM9UfM%AQ!&Y)UzT*|; zROM!Y2^P~^HYJt~BWm`Gb0K%DDeie+DsmbFO*ZXaL+A~>-r!2^{NaYmjG(t0xgppYe|Q*L7}zK#6jqXq@=MCul1mL%m^6Y!kEcfqGDu8w zPY~sp$^@RaBx}Kep%g`lYq%5uB@$?nr#vreSQknHdMC_E(Xn`Xqs244fPb((_Sq#& zi}Zu;A<(YkUOjMdAau`MP+8RfX|x)Mi=mU$k6k&3Q=e zRa%6%d--8(*<78FgYCHN%GqoZa*p8+KpQVXzK&gbBMHKM$r9upmiNSnbu3Ug%{oH( zN1c|Ef{_(h7VGZ;xre+7kDW_Wfpc=+n>6yud$#Jq!Kg|J3*fy$7^t1~i5F%Ng_Ar* zz|dCJ?6F^>+{1|IFs{h48mDpz8kLL?Tiii|orU(1oY4l(5x84)mw@_!6eU8UmG z5r#>0S5id-D1eETL;%K}YTVL{1BZ4i4sVqGU`q*qL*h(wLzKeEHZnU3po$W3E~9Kl z2&ddeD1b9x>*vArQgw!#0ZyP$DHrr}UCirNOEU<@c_=5SpU%ec$qRxjkl*Gu z=vijj*Oih}W=A-OW&lC$lQSnG1wgeyNYCqh(Ap@e@DU^^zNUK|zF>cOW2{!pO_@Ue z>yQ{~lZ51S1dW}7g}nxmt)I*^`oxgCryop~%5vaY2J2jL{!Pxcw5H@jO&eA)Kw^Wi z?0G=$5mZj)EJ;A;QqW^yZ>+t$(@A&o#zkLEY@#aQdp%FE|%0IF%Ej>2;ArIhrJzN<&UJB)<;fG&hw zIt8*xYg8m7CbV!_P_AR%cupEb#W|r&K2V{B*dhFoBD0iJe6E4#aVv5*kS5Ab|PxR{pc@3YBqiP-(2b)w+18U=G zyA-xdy3nr-9*sBxQFKpxttQOP&x`=(kZ4AyyK+LJ_&vnfW&%wdnejb;LIodHO3><- zt^#!9Bvb0U>!TY*qy()TlYf|OQjH!41`~wlqEKU8C1=IV2xWG@Uh)tDp+z~trv4T>7t*qAzi9|# z)!}QR@P=%0AOP_o6}s@>q|U^$WT`>$$Z+pit}cXkakNPyxu{lRFqcwNG8Cs-bbPx7 z8{6ji1d3V2sfIbF5MR=^-BPYk>A{3=xfsd^Rc^KRA-y*g@tP2om0YBorK7ZxRDEV1 zo9ev}6xYuq>%h4bRGS_xr7*_%iVnbDN#5`J1mo5u`<^6ssNgtmq(=5PKB?Qe7H5*^d+Up9P>F=BC_XweKirs&gm4W zXj2&=CxEE^=Q^2kE>A#86rD=VSpkWX$FX71#NTJAA5gwV?@G0Kp8DQGU$2I`*4FLy zR3wEAhMA8n2qZhZzW;>|B~$_VF(N^@95!w(^Bm&Qph>HCj z4;zs&q>6e;POC`=@g;wRe8F&0(Pu3og@4X$Mo3zMVd|vIMJX+#JaN6e1S#XV&I~MV zT8`_vW2-F|Ze+67gxh%es1sF5QZm$2!l0-uvC_Hf8z^%TAr)^+71XOv%571XY{53< z+;B6s_s{%Iv_9%Sacx@#CHf(%OP@XCbX{oF^SL@n9HiCKSA!I1vt{IIck`L?5e=O# zqA*nXd?yVZdRqDwE8m9M2H2e|7SP{o@~bK((I-nHF5dq(G)Vt~Q}V37;I3MH z%ZomD!fb6tCr*X#3;rb(Wyj>osj2xvewN{szxypM>4E_W#gaPVFOGLdXN%Whu1Q%BZxxaPHJ7igv3I`GB)wjaKu|Q9h6e$fFN=UB!g?e z7+n?RS1I2}SBN{VacHuOVMJcfN49MHLqlxL*_;VS>nmf|0tqpdQA3^gv^!+HsZpy8 zE9~^zD2`or=+S7C=TQQ+3#dbrSf~&NqKYzf4Rp2&7u>e#kvOOg;;?r1wxA(QSZ-p$ zN|9{Y^sp2G=Z7g2n{K9N({D1Qb!pHK;4$=|M%uwxVXgm!d*Q_X#$Bk+*Y7$SyaK94 z(zr%UDrUR>LHQnfg70l4?V(}g1)6$fZ00_}`IYUq>FX)~grk^SQZlF5A2dlu*K|Dl zpJ|X2W4?0^1DXesPg+{2WqewgjJ2C}uY3q%C$K<%vrjUG`E3$_ABA7|bbdD@D;4vi ziP`CwKhoQfz`%Gn(oC6(J;|2sPn~Yw=pW8*Z_jS-f8_fg_Vvrl^Rst%m-_y@Oa1o0 z+q?GXw2>tIbM#kC*<1lR9-HUg;W!%s0<_^33GBG`k(IG9lrc~U+wop*|MvU3=OGD9 zlDo>~enGXHIMPf{PfyQGPtVtFuh;bKj&OaAimi)==QyI*5Ve-=HJt*L^BgLXq(vCn z1Ob%l@xPt-1E)I>eaGv#g8`^j&xGCYgScI7JECo$LYmI|n$sVM)0We^52jMK?DN# zT>q`GeM<@U-Ox6KAYIVt*xecr)W$$kcg0z6NV^95-L6vsOBWzPIil_~oZ7%W!SJFa zn(>DnN6FhCuz=ca(RFIz*Y?hY?|3I}jpSf?PTzJRe!@t59#QFa<=XPJM1uz{aZX4F zhTS&x)^pws(Vqu2foRxGXd4MLG49r>i^ge$HV41JRq!Dm{4=OgPju`v3CuoI>H#(l zayzXRP>NVP?P`x?Pz66Ovjs*-AT&gEyJI&UzhD_9;HDLrydeC(Q*-GDe23~`tlLs5 zm__d>JqkW*BErUSQrAci)sWE~Bwg!j9YNch^D-B=y`g`k7ww);%7#V;wqTC&ch#ZN zp3{ZAcskj&+R($)q7qaC-1tLGHn+=zVo`s2HoIP3&nK3%XxMIh=xym3TJAxFM3QyQ z42V`TKVM)S5N-oa)mm!wL~7Qai57;U>Y$iiKXGa0k?mNR3%;vl(o+!yyWyPBHd&+k=cLb(N3MX>BvCN1olZ!=!hYW9*J}3J!rbN(tCm215LmV z0h3bB%|s}uxh&T1Lmd&PU9#)7PUsYyMh48QEl25wfJFEx6a{1I8gXoDU+cn*@8dfr z`l9YwIHX?(i^>QTi5Y}}a2wvMJ1ZFPkuuX_urWh;h!oR^ChSOI!%pA!vkiY>%z*>g z^K<3463YdjfEbFyNIvf9jl6W==*CE9OHm-mS0qoauMq6E}u&i0Ys_sJ~GjbsZo~JZyX#Z5tQqP z;hqmg8pp`&C}lSqwBBw*DGsENf#tf9c6=GeRB~yQbbi}@E@oXBp%3LcTT#*AfoMCV!P`sYkwuD==OU-+-%`7Mir z64^zN#E6g^O|HNUEs$ZBWG#mTRa-6Q=#Y#Dgz=AsZ#t8H&lFrE1y3#Lag2XXi4f2xik2zH|Bd4brlk~ z$M?n&xj661yFnLjd>xEK8oL(~kxvh@rUIFyo1Ultd1zfPK(aUj2UqOXxDMwx5LkE} z6^pcx^GQ0onaXQj6Y#G>NK|JTnMbk6T!bdd;vUshtyOCTbwQK z7Z>;QP)~8%63_2VLlPX6%mE1!WT2=OSTznpzbEuOOSfYT7{qLhWIS&q6ikIsFj3xk z)X>;Z#EobLqpNVmE8r`MBcaG|XvyFnGi@<{T@X)Ts;#CoPE0~Ji~LZabRE%D2Y8)8 zgOpo$$Es_bEb7`Qc5smXB*&Ls8&)C=)?^$ocWkTVQWVe)?P@_6)U?=eUJ2u&u{1cG z!!v2sms=IzJxWesXE3xY*l^=#*VlG$9pWgB12|Mv8U&HPW#_W6Im&!de4>=`m?ZoEs#Oqca(bS1oS z#83s1JE?nlEV!p;DXwhiaPq`L%*0rfVCqf;wlzU`R@kKCQoIq77>Oyq;n-slHipnC zI228=8!v;)FhOs!UN0-<^4;BCDGF}p!7P}pr={_<{O2l|tit(uSf*sZtiol>Y6tQ{ zR+(GDE$k4!w+_~o|CE+aZOrFI6}QiVnVEIZ7^M(LA~|k_{&l_336r%jO(GnFdDZET zIA^d*SZsawWphXVZ<8naTeR_|`Tw^UoB7{fJbUqMKmWhSBlCYZbpC0T1Gs~O)S7Nk zWWLAGtO)<3RN$Nde2inqSbX@v*>$lII%D3m? zYV+02d_=D<7B{p=r4k1x-lviRC*G$L{^}&yhv+Cy1Lg9zY<7(Q_Wai=D8HSKePRAT zfA+)kjrsrl$$tKSpXbmzjPs?+$dZTleU&M%ga@`6xp4>R^XSPfB98B zKF*@NtO`=B4;o7H>&fMMx?t|9o)tYq@-x&Bx43Y~cc@vT%Mo z#R5l&uL_OLkWgMY6;lA@MX(My1&WM}2`?b?I1B&>YzmpY3$v?)gP#Y&M5C!zDpvn( zv({*GS3xjCR$$%r@&(=V<<(^o9Uf0FMX`7rtT;~kI74a9OkuLGO3Tq#RYFnm>C@** zluBj!pQ4(#+HMuiFpqV|A5fE-9JzXgsWLD2{kyaBt{~?j?SHCF#{w?t#&isdenPPTlD< ze@v~|>EQn+MABD6FI^<6SVW$`laU#^{&Spq~{@d~Adq51@FA zd5J%WH&_