Re: inserting image in dynamic .prep file without saving image first
David <[email protected]>
| Newsgroups | gmane.comp.python.reportlab.user |
|---|---|
| Message-ID | <[email protected]> |
Dear Robin, thank you for guiding me in the right direction. Seeking to take the next steps, I tried to create a basic rml file following your instructions (currently no preppy): <para style="textstyle1"> <illustration height="200" width="150"> <image file="" x="0" y="0"> <inlineData filters="ascii85 gzip">Gaob@B35f%hoFCm>=?Gi.rhAp;,b;f,==7C>I_7M'on0oMCEGjZHTBh:!;#n7qH68DOY<?C0#"@bDN`&TDSYY [...] </inlineData> </image> </illustration> </para> Now, running $ python trigger.py test_032_images_adapted.rml runs without an error message and creates a PDF (attached). However, it does not insert a graphic, just some text from the binary code. Without any error messages I am at a loss as to where to look for the problem. I assume my rml file to be faulty, but do not know how to proceed from here. I would greatly appreciate your insights and support! Cheers, David On 29/08/14 11:16, Robin Becker wrote: > On 29/08/2014 01:00, David wrote: >> Dear list, >> >> following this recipe ( http://stackoverflow.com/a/19160507 ), I am >> trying to emulate the "not saving an image on the hard disk" approach >> for z3c and preppy in an dynamic .prep file. >> >> I fail and hope for your wisdom. >> >> Two questions: >> > > > >> a) what object type does z3c.rml expect for images? > I'm not exactly sure what's meant here: rml contains only text so unless > z3c.rml provides plugin flowables or graphics theres only text available. > > >> b) How would you suggest do I approach the goal of not saving images on >> my hard drive yet inserting them in a pdf via z3c? >> > in modern rml you can use an inlineData tag inside an image tag. Our > tests include this > > <illustration height="200" width="150"> > <image file="" x="0" y="0"> > <inlineData filters="ascii85 > gzip">Gaob@B35f%hoFCm>=?Gi.rhAp;,b;f,==7C>I_7M'on0oMCEGjZHTBh:!;#n7qH68DOY<?C0#"@bDN`&TDSYY(['=on[krFIEqTY4eZ:-1s\Q7i!$o?_#G/]#R#]D?n`E!JO#o*(^pV(_\!0-QBi:!M+"%6BJ^W[_-jNM*"IbEj0c;&#m>j?NXh1BeCE+"e'ldtf-c\O"pP9dL5 > > ............. > [U.b0P5FS5q@Ae$iXUOQR?/_]6\uD;_Wi*G.Y<&_n\uUU-5QCdGa-HhT~></inlineData> > > </image> > </illustration> > > so in your prep file you can just create the image as bytes and convert > to a readable form using various compressions and encodings. The dtd > says this > > > <!ELEMENT image (inlineData?)> > <!ATTLIST image > file CDATA #REQUIRED > x CDATA #REQUIRED > y CDATA #REQUIRED > width CDATA #IMPLIED > height CDATA #IMPLIED > inline CDATA #IMPLIED > transparency_mask CDATA "auto" > preserveAspectRatio (yes | no | 0 | 1) #IMPLIED > showBoundary (yes | no | 0 | 1) #IMPLIED > anchor (n|ne|e|se|s|sw|w|nw|c) #IMPLIED > pdfBoxType (MediaBox | CropBox| TrimBox | BleedBox | ArtBox) #IMPLIED > required (yes | no | 0 | 1 | true | false) "true" > alt_file CDATA #IMPLIED > type (pdf|bitmap) #IMPLIED >> > <!ELEMENT inlineData (#PCDATA)> > <!--inlineData filters is a space separated list of filters which are > applied in order > allowed filters are > base64 | ascii85 | bzip2 | gzip > --> > <!ATTLIST inlineData > filters CDATA #REQUIRED > > > <!ELEMENT setFont EMPTY> > <!ATTLIST setFont > name CDATA #REQUIRED > size CDATA #REQUIRED > leading CDATA #IMPLIED >> > > >> Thanks for your guidance and creativity! >> >> David > .... >
test_032_images_adapted.rml
(text/html, 23.2 KB)
<!DOCTYPE document SYSTEM "rml.dtd">
<document filename="example_14.pdf">
<template>
<pageTemplate id="main">
<pageGraphics>
<setFont name="Helvetica-Oblique" size="16"/>
<drawString x="100" y="700">Using RML with a templating system.</drawString>
<setFont name="Helvetica" size="16"/>
<drawString x="350" y="650">Text</drawString>
</pageGraphics>
<frame id="first" x1="100" y1="400" width="400" height="200"/>
</pageTemplate>
</template>
<stylesheet>
<paraStyle name="textstyle1" fontName="Helvetica" fontSize="16" leading="16" spaceBefore="16"/>
</stylesheet>
<story>
<para style="textstyle1">
<illustration height="200" width="150">
<image file="" x="0" y="0">
<inlineData filters="ascii85 gzip">Gaob@B35f%hoFCm>=?Gi.rhAp;,b;f,==7C>I_7M'on0oMCEGjZHTBh:!;#n7qH68DOY<?C0#"@bDN`&TDSYY(['=on[krFIEqTY4eZ:-1s\Q7i!$o?_#G/]#R#]D?n`E!JO#o*(^pV(_\!0-QBi:!M+"%6BJ^W[_-jNM*"IbEj0c;&#m>j?NXh1BeCE+"e'ldtf-c\O"pP9dL5&/e7`NHf-71(:VP[s;An3[Mgt^]%_SXaLd`T_Tg=gl+Z=PpP2A?M;f%/EtcHb;'hSI$:q=<X-NfHk0:/i^ng"G&t`PpBXe]l@`h;-o)_o'sPP=D<mH$O[^Hi*U5XB;aEf@SX#cd1M+T2):?(lWuqJAAt9TV.t9i8B]YOO2?N-Bf;_()@r4*YAtr)&]u*jiXO#W)]m!Yun*kkieD$R+86=a2Z-%=gKG-/oL(1[INeWldi1284ZjtIf5!1)`DTh\7sEhc'pYug$HYq`2'3)jQ,BdPa'\Ie1Fn5r:A6!Bk_;Gl00'')4?n\=]nm3[r1$1D;4dOgGp6KG'8%(:/5\EDI-Z+NZC3)mbG?gf.J\B]6j;?4aZnhh7GU15C_S)IJ`d-5B,N\O2p;Pq#Z+4-kqP,,-b6T:f&9s8.#_4Mi*CLMi15#8kM`LbK@uMbKDCc.\osVAS#FQ<Rnp<#7hh9<*`dXq!d5e7ul*Ke/UVt['mF:fWeq/F`k`c+$Xc)`4u?O/!J*?lg#K.)GZkdg"=s0eC8U*e>^op:H(3kT/gtiV5:#r[C*-=mHiN4kK]V[J,[)c/oPZHn*'!!m-O*(lFLrn_SqEL03u0=h;*MTo&VB'Y$AYd[ATqcg9k_JY@#%aj+]mo:b%aD]tJiBIJs-C!s8XXK7cNY6c6gZ,9nElDr/-LldkIX\*r+_F8,+YHhZs-<3"?ndBTs]qtKQ?O,lMMnDN9CLQ<K>R[BJ0S=H+<RX4o,nauJGP:'.t5(3:ofe^$>4YnlM4$3?;q=>CU?G([]o$sdBY@#&9S"#n>T7?Ipc.f^G(D[eC]mKMQrVI*I5%ldANupT8qXj%DkKdMLI/3X3laLfi^460s\@D=oa,ciWJ,]<;lhBl*J,]BAqtKR-dZXD:aT"WcnA"@?9E5VsJ0cdWVHfu4,'<00%*Ru6,^@N%3bE`V5RGOi@sYZ`jA6"?Yh1q:UN,?;ATc1NOcH;C8#XNglbY\Yh)RsJI5=%7H2?C4F<T'Xr/9p]JPbR9NSRkSjf+@%i>=0&q=-dPl_Z$]g$/J@I_UBZ\b<\RA4P@cdD/tA:HZA0H%+k"kbW>rY'tgSs2<dYr)53YN.RbLb7jb:9OGC]\bFVBS2>I?iX#7f=3c`?,1Lh\oVLqN]=0sfFZ.PjlVZEJer["4DX!oOhqZ&rac=l?<T\j:g.9L\I3L*7gT@kYS$(nt>R<$.fG8sc_hFn`E8?i19d)qrkaU*\;9)qm/[`*B`E7h[O_hpFLKUq8&R!e.rQBYBV_g?a3Nas;lb7FLpO/!56hRE?l"A:p@'W7?^P[-HrSli5m5KPRV,RV4f7og`M1?4oFp6hr?<^VKddE?aE7<s&S765=blSV_<id,W[O<uX.5Vhc/=:$S@SF<'r0QJWQ)"f0j^*EL@;Od61c$;'U+L8ZqtU9F*T:;SWD_-*ET#(7502oCm%O6T>K\\$cq!3R?[4)J8$aa1gpVbm(</LXa>9p!eB/u;>_I;eR,n?0MHrG+2!J%49ul_iO"(?(d7si!^>pNu->VH*#O+@r\tb"NWk#iu1sNQs55f6,l-1Lcb2M^S1H16;e2:dj2E">n3AF`T;e/loRmgGF:i_rcU>K[(Mlp1*<K6%qNV??NUi3N7JI"q:&+uomesRqQ`CSUkVh`mU&C90[j-4EdcWo>Wo-:p3;Q\,:MMt%R[Q+i])-L"0&gOkLA7Zb3?=G3g<q(UJLRRAFG22Z`*l$jn+RHr0FBXZ3n.'@tX`L>Zkr$S^QXASH`YP,ZkS&5@OYUq"O_4W,9B"S!?,a79>9@]8ES+Ej[B.AmT2tE]8_P/PpI,s7b+6hD/A%3lYTf_a-\'BukD)eNS77ar-$W+?>&2s7]1cCGc+b\m[p6*p-p=SUhlt)ik029+.gLuj(:5*HDrJ["_VFTggtFSNf^@AB-&;oEU,(4lk8>MooNt-s\R4-PG<8^Z(7m@U:%-\*jYq#j-4!p_r+>04$)MoR<Lhl$_t!ZoUji+ChQX&/:2RYgc<md;9l,j0NoaEhYOiblX8/EAS*j*598rVq1u.g(@W(j[0(;C!h#f+.gH<n5Qa"5"bI@Jl&WMU(>/\*MI-V+DkAtMmI2,$5ihB4q5FL^4q:T\-V6;;)D%VBT)q9WaFa0)eQ(-MJBFG!/Ua^um7aHj'@l>r>\nOX_1e`*5pdXoG&qd'NA_TiQriYM'CG&D=T4KDQ?OmC[N@$u9/B%VF@S-ef-SuARjNaKUIL6*u/D?7hBt7g"2V_V=T?2\^+CmMU!U=fKO\RsE=1XncXVpc@;I?klgLp.BU26N#8Y/!Bet`-5'B^42EK<ELpAF!(\H*8k>,Hu5+#/)T]R*']H0Yed4%P+./2V?aAVoM?rBI,t9R*bte1f";d]F^FJ(qBmm@Zr[&@'F[Le=Lo%8t%M'$:m88].NfI=QoDJf3(870-CN06YS"UP>ZM/sg*X#FZ,p-$lEB`Y)q&nWC(6!fn\6QkBNiXt&egBi-*=PO-ocjMuHGZk;rf8t8XhT^aP#(:t9NGI$P+O8%ocO0Q8e(kBQBSAL2$3M0jghe%U\bFJ_'=<t>6iaEKa=r]>)45M;,hP=o>PY298gS8=nF2XP9D;<EnVoI1`8Mh<$njPXnmns724"#V$D6_NqYoO+F0XUS7od^Bd`u>H%2D\FC`0=Nk?ch[]]W;oPQ!8T,f!IC,3&YAUUi:64&Drd3k[!Iss6LPqEOqFOYB)L2)m^5^a(2EQm$9G/VS8Y^hJ(g<]u@ET&?%7!NnslKE7/:Y?'b/I5dR(<q!p.\C_il)^2Bg\Z*_3hHP0'm^DRYaPY@`&$=,j?</f@VlY9aO2Il-VWJ;MOb^)5mSRedqYU0-9mJUQlB1'MNi)B6\\MCDZKGoug3b_c=]\)sNrH6lT+\"+q@#RN4k3/<6Nq7rKlN6f=B&on6%R?^^@#VK:"der0dnQ^hY_\!>UP;=[BQ\[3No=qL4JgYA:n+tu<'WDo([:-7dgDdQTReSHiBuAngJ8He\V4GOB`L7&nbg=flLQOHg-\=GFgaKrKj[!l`B.!6Xi#<T\C?q>a*P3/d;fD>9I'(g>`N%GeRpY</thkc0cBOG8msQ"IpIGoo>`"X8Dj*CqCP0"FJU.I;'F*r&t#eqc],hr+XA2#dgWMZVO"l_AF.S&obgKF$J\Y:-/E2t/leB&E3u,ooVc[32R-/)9%M.sNpC(R<J*l8Jh5uGDC*]8^*F1A^ocATnDHIqK(nZ#Tl_3kiKWq:YODFe2W.*H+_\EiS?2YhnSH`No:j<jUl-%kj30jBYk?H-#0jMpT@7crSn1k0V6P]>oQ<.i?:4%n4LbWsJ:')_cYuboJ9<S"s'+5N\=M=2F['"qq9@M3(_3u32Fj:,V)>C-#!R4&#BOZZ-9YjeD;SZR9l$R\`k+TC"`i#U2G;35M'2-<p`a;qLqp33Zm7UIm_$9F[HD"9du:<BZhZ=j(CB@]m(NAM@\E69)G>$EBpa_]6T6U=#$/O&ef>PQX,d8+m'Zs2Safgt(P%*t5!KtG`JhQqQ.BS-+YQs;;sHL7fJsX,<jAe!B6_JI&5%nU+>IZ.X`)U[A_MtSNh3rSRlC).l.)7qF?pf1g89nubPLFK)h;[7%ukGPWOP0@lilZQLfpe\Sjk_XrHD#Lo>6BZhFDn+__D]q;jb0]D1Ckhg?3BhHF>2f&(r]M>eTQ1qrLI(9Nj%bbcRA8c/L(eb1/2sn'R"pp>kXC>$70Oo9P?:%\0ER3..;M=nlEac/J;0]of&\pZu6F0+2c4^,J``#KGW:K*Z@Ojg+E?3XM],`-RSb*@_Ba2n&V;p5ekEG=E3l(K(?p"WC3&m)cDTs1]0EotRh3[:4JCHp-%S\a0m;Kk7Z90%!Q3BXt^to[XlBE$p#\4.YjM[N,?l;h1nKfMA)"J)m!oWW:6[q>hO,;8Bbg)uO>fA$#@K+>(](C'?+h9&8aB.ni3NJ+Y;_E?ED2")3j*odMpdfU+BR\\Z.#@hhHU#OPrp#@He%")(!g-h2i@+;"E=/-K>)nW>*c`p`=u$W!IJ2?QeL994a*"thh_o].QLJdle`+iZ@Nm$5*&l?sIkK3r4p`cbKgXbk/d#1FX]SU-lsa+dJKY\Q@+$:<o=_!]ukI_mWs(([BA@2Oj23e3N+S7T5NOWq'CPnSnBOK<AX5IrnHbD%u+i&Ad4Mn04u!LOnfef/YV$o[aB'[*Gn?/m(d.Nmn\KLa*,iA*q@]el5a)<O7Pk`>pJElHCo)qOL@%bP!:GjqBY&W"+j2KF[4U:rn'Z=.$L*2f4o$\0[<_)C=^$cD(B<V^uZ`0E"&4P#f-%l13"_]7a!>1V8]@DX*-jtXhgmZYg2)+eDWHh!U(Q4e0>S031kNSmh4fX^R;#-h68.Qrrb:'Ic_+d]oCfObd5l'QgfWm<`giuE^k)f\qHU.=78a[>XNXL7sG;Tj]ZgULSuG2LLEA[#"OQW;^Rj6ini/nQ&:>@<V*i+gr:QaEdA?Zk+$XdW.iIaYWIbL]u.L&:fNO26JCZ?HGB+j@3Mn,fATPNZEm,a+18TMHQ_8c6e%m,<1P3#K;$"qQuNM_kU:7g[KUk`&St2cl\kW_l_1ZpTI/r^]Q>WVmO8.UOK)h_!^$LATCBLZq8*h1WOZbUn"_#ci,:NBY5aD:>/lZ&$S1j%#naT;.n,+7eME!PkrkAG>(\Mg"(j!9QUkc)"tC4V#>8"2E)UM9/NX@)In$]i5ZX$n:B^3m+Q(R'ej?6N,ji0@)oa-;t!rQXYnjNYoA(-1u%rr.)NuH+gcpV/Y@kU>sgifFa-@cL^(Q]b#[IedHluMFul0).JX`\870%Mpq0\!3fR(od,Qik+PQUT\]1cf3.$F)=gSenh::ArJRW(_.p+]m_]-.aY87;Z<<aP@C#'X_WY/L\r?eaPbA9cSaX\Z(GG<iG&O(s+:\)jG!ED7b&DQ)%>hD\B0+Bc1/KS.rCbl&eP<cuK4"NtV%En"<l;$"cn_doo-JJ5Lt\eolFOqRI9Q_V:.F#OSZ&'te]Zn-YMgSYS9N078Q8N@)Kf*HPZ];UD_-3b@nqo$*?[^t!*W/U2,XI8F?)PAD?!oB2#e8Y3e,jO)r&D"'.qRhSLAC[7)m-9f<UsF,472A1%F`rA;D`H0qi9`$.k39`:U@_f1(aC,br]U5Y3Hd8%#s$%OY%D&fQsXOMM?cek:%!B7fh!4Jn1k\g%dBRts8.!,YZ.csb,$nDKYa*p%E;F#]iC/7d&l[X17/8WC5j]4Ob=g@ZRl6jE,?To\!15:qS9%'D%k+Qft<(1^MP[D49'"`<*1\YMst6k?r#EE407*`g0l$H.^*\d:XXT4G'O<c[FifUA#n=<8k0J<$97Cei*Kfu,nNZ+J@]TgISNULVpfVPijN)+sh0(-ZB/h^g,sNsGf;H"s_B<Op\_h:?taf*pe&bB4rTGjlsCU'A8*Na,HV?VV8I</@)EfY'E2r=iob%idr,^>sBM3JT_Mep\Ue\Z\IOl-6m[PQ;&<:'Sl!Tj[32f'm[mEd/iM,)YRoUdG3.d,Sk7A4.Z9raK\jf5E,7*tW`k0?V?;?*41pAYI^J3`jjUJYI-c22D=%V,n/db^/?OlCofu1/<\ln@@8\A:O9=!r#32<F1:W_R^H[(j2D4HBjN)1kN6@-k9!Gq'549r4"-B,??*"]j`$B/4[J;<,^YENu[PtRYcO>6/TPKF%(lQW2shgQef^Fbjqt[V7:A5_AbAtPL#40SoG8@]iGWGd9r^6EEDY.%Q-#W.O_J&3N9g<!5-(iOUY9#)8rnJUXdQrq"H&m)'-P+Gu\YIhF!%Lj0;B^<g8[/((IR?Nk3;!H$,f]B3oIM]%dZ]&)]/uGb!#_m:V=5:T0kglYg$-JKm-#;=3!C1'O-e7We5b:.O0gOBqu".9g>fX5Q'R=?Z_1L5hUHI`3:_dTIImHcs32;QqMfm%scZZ&pVqmO&VAIML9q#^(]N\h$3SiE`VCl`'@4RYjLWdnta4N/#qoA<+2%E4RA:mU6W3P9]HpcjTWWX_>QScVu34#Ur1V.U]5*`-i-c^0I)?f"EFFSudG_;qtK@\F,.ebiD$@H//K$Lqakp6\TR1>*&@iIe-BQm+tJeWf)M8b9+;>7hmVKG..81qOi1[aR]c2.o)^&4)RH;qJto:"/m9@ehR]9O&m0gLb?U:fLJV.=9sBcA:,9oWWLJoEW0"+S?2d0Os9(O[=@F[5@-:$Fj!Pip/Q`Z!-#4^WEe.Epo$NNOWiK/8<=eU,5l]RY:fS1bD0=#n()1V-=PO#BReR*L3eUKF;eLaU[hrgrHQQ2Faf\0CfcP!OX`c($GNb\\b$5Q8d!,k5>a<=:M5;2BEaZ0KJ-6%jD$,rI`l(%p/cf]nF.Lih.>!ddo,6ENTrXZU4[jJ[a"Cnn+*L&9<RuZ$8SWKNP*4jrl.][5oM^fDu;$hFb9pA<ZiI4isnh"s,eHTjA_C[I'FZrN=F%kT^3u78kiUa8Gle/_`Gcu6-Ws[+Ef%OE\eaL8;9OF"#F%%(BEIaPt+Jh9YEn!,,.-?W14%OS.-m;5Q7"9jMSt#SmI_KKSk(*4`<$,Bmnue;=G]W,p\)"1nT0Z`Q&uHa3W9r8/-m))A&6qDJ[0*W)'M0/DeL'n)H]=j9Pu(mq(nMo=o5#.dZRi6S&8"E]1qg)>u2rGtNrV.t7Pd2V,ENr,^bWb@?dKjWu2o[6pfK69PI=_TFa?0MZhb8r^YRiac5hO*<N(f:F?o%Ku8.^E][email protected]$qZ+Pr^@L(fpo^B2RKd$?jqFKqEXd7Q%FX)h8I%M.l(D^tf'e/om:ram2R6JG'NifP3ht9`\Wa5gYW2Z+p^,F[3oZ%pR*d>U]EWgu-TouQg`[MTAk@<nYEJZOo>jX83]BY_Tm%SYbheF^8hZ$>Ur%0eTN+*bbkmaHmDL4VYW/AhDWC='FAS\=q8d@4X2[_#7lJPPB*"e,,1HWSaH?lZ!BeZ^0XP?/QpVBH#Cnk)M>p#`/[2IcEiXI#p9XUAI0>!?O3[^a^Qa\gU;=3ba1b<gc7?+@eYIrs`1M;0CPC;[)>4.MpK`e85,*sm^qGn>e9($Y!;Dm&2]tU]G2=8-7Js'PEAHT:1B%]rlY^oYHp>gV!3<1o$m!;NQMm.]R($V]=!$eI1&N+2S0=HA3'un(+J'QLNX#0HN9QY'+)A*[9A3*Qp1s])@umXt:9otZ=XF1%d;Bg9kRQIbd5naNkj)R8+`h`h'm<c7M>Ml$/]HRJht@Nu)HoB8i\>0_p;"reT/C:&K(7sQQcAOI#o-'K76Ag^>uRGhBs?X,Eu#LX?9G6U6Z;$.ca$CMCs4F1G@]uD;[7W)AUZWNI<ZMRPA1+\Zqce3_lQf8FCYh)pgq-h+,ni'Kc^Jkk5a.L:6W^Rp[q8Mbrj?2.f)^gr\klsc@I;4+qr)f_^tF*)1.s74O"2\C8;r:U#tQ@eR)u$qe>HN8]bJ(3uOV5L\S0jh>g*P>jJ6gj)Vk$789geP1(@Lp@nu*3u*?T6V?E*2WtmaOgc?MkWC<$6%K@,^ceHf9k/&OAIVpWrtf(_f@ZJ"1>L"ibZQuJrDr&`!:!npnflV=rW1]p[V/V`qpcP0%/^nF=tVTkWH!V6Z8o)8C/c>Q<1*F.o*]dhT[Hm(<(+.3`[_U)h:#e&h9pZ+_X>rE+""Pe3A`c8&lPH:*KX0tD;eP-FZDQ"&`""#JCHnP&9rf`!SQ(3Y<P.-3oRJ.b(s/=l\O$0mPJJfoT%2m\1.j#"Yufh)9f]5k&.r]F'31_SukXXTsWXT(iicI/1ENO,q00_7S"?+hKtk)*;f06F?['T`BKB+`cuRKWL0CgTG=0lT1bZ<<ULHFbL^+Vp8#1O5-d4qp@!fKLdA3(fVQ7VRm!]?B@f#H9Mi?%SW:iPTCJRTf7'&RI(OUOSsM%ZXm37_-EG)L#9C9+CA):h%F_8Nl[q+TTJq!AmuD7([QJU![E$G$gW)L*)7b5HUtT\OCtD4PeZr/h`!0\u=<ga:%PE3-)+(o>BMIs!YriluG>;6@q_aLpoDP*.>.O$!a0!fpDQ<ld/q]&tB^0_7Di+E8XV#.%.((J#SDX[1QIVpsY]9,_K*]Y@8hZpPJ/j(^o+2?Ddt^laE8tdj51G0>3`+#Mgg";Kg&GNWC55_Pg)l2a3bMHJa/3#)n")<@WK(>/oo@m'LL]>[fEo8[J)+)Y^u6#()Op@3rmhO[N1pD]*QqfGH)8,*V9&N&>#R.TD^O?!>kJLOeQOma2SG`umN7_H*0?Z)][b1flKI72mu0<7b/1TDPd<=eFu5@'XaB^k2=17W-l&ahm)Ej;+bX"ChlA;ZAMpUuemgrp%*)?l4G/kGX[%9"og,]nN1oaA1</nuQXP8L.J9B+A\\0th6+]qe_,[dgJb1!Qs8F.Iu*/a/qQCt!P3hVcC^SWRrMI$1WJ0/W8^@nA4Y%'Q7`uO]aeH^b:lQcium"ken$#Cp[I6.`\Z\8XrZiVPc7(LIRS#-7eZ8lHR!5LQX)^4T0hjtp_g_"Y5>2(5\jQ<qb,0)!n@,4\2^[/X.o^(ihO,q;_[4r-thkIQuLg<6`d`1#7Co*UQEV8Bd2>em25e;@H$0TX6kVn=U8(.'03QPoV[^K!Rq9f,m<58T8S)q+,.4emqQfqO(Po*9Y2N5okirq8oSM4#UL$V:r[j"FR#N2TU'dn+!L$?-\,[p6Skq9jsRf-74,X'X_Ml"3hXj$FG5X+FE]I<Ad<JCmc*DZb^W:t,$dD+YDr@4[lh0/J(Oa@c/@hR[.m?aejjBS29DYR%hFs)1W$;EWTX"OV*g#6Qr`7@IpW$io$)25SisH<ek.E1gq]i.Yu^.!N6NQTe<fS"h.P5.)mEn]/*1!s`$RjYD%NQ<9ooA4+q*r>#qT6$JZj4/NFe/8DdCHgTfnefMB-%S@NgtT:aWJ/F90d=+\4\P__APR7kDP9i.WFIjBk.QU!6hLms]pC_S!Z9:E/m9-'33h!-@-FU=Li@(YUiDG!Uu+(g_`1&m6'5eRt=Em3S99J=MC*+U21!PWTi6Ck9:T%3R?_j'uC#/`!I48qW8rb/2N_;Sj#Gs*;Cp%i,g"fgHM.`O$k"3bIuMYo&cgB8W<r:.=p/6QN=bTL(iVEkYR-2TKErE.4E9Oin0>9a?\5I;eDFLeX,amC-S:!P6<dKJnUl/%CQ],.XV!o%`C.7<>`[A$#c1@qA7"KTLFFIVc%]jGAR4/NUr7+@H6'CXiWN%\u8/RSmk.`B?ds![tqR_.s2dHh!-YrFE^&`"+!;>!<@<8P<nmi%!,gPe`AXCC@uhjiPlmK)beq:9HEDZ>)YG=6\?W]"&h3/AOqm"mJ:%i/[.M@C+$_._D&>@2T$`oLHlT\O??.@&(fke6,EmK2W^[lX=D\](!lYqPa`#+j(etjm5N\]0+_XPE_uAiZG=&Y.X(.%Zb$FRluZ?G(+/ghSS47ep=B&U+;MV4acY_*4YSIrc(uqBCF)(:U*9#`G_R^G]*G0a6eq3(DWij-3J7e54q@,nI=u$NG)JZ=%(Lq;.1&b\HS_Ab-,$O<D=2s-I'E8?7N5UMgPre))F2hCrRh/%7HTfY/Kd[9bBld+Xt?d<-)#@H`p0M5g6ffOqbnF-V3>p9JE:QDL[m1*lmQ_*#Tf(`@%>SW*H]Vnm=N/oIh(J0b)LD"-S+U3U3<OJ#gpEG"K@%Pg>!^:=P=UM*7gS>S=pX!$EPK;*=?fLaGOY'Jn+9fGp51l]#U)D70hnYO`VC*5+/a3YBI^pADeZHUNM+7].:dO9gZg/YV?j&2d>^HO8^m+`8ns>!Hs#eo:a3Bk&t,EotW<W0TcO9S$@P>X7!'*u.g@W<+HU76PItkQ9tC`;bN((+^8IIVCctWSE5'Tg'_1cUBqW-_g$7!9mJeLcp*[O\>b:ZtT`R#*Gi!0t2-sTk;@S;2PogV;Sj=4mNtDN8=uOn)<T^@iq'RWrB?ZBZ.)KNE))WJp-<G-F4UAFO([gbo?aH8"*7M.@R8B8n2Nd0<N:F;hFBq4`".<+4SO:oIh:B8$@b&jp_pkJmPb$Y1)pXV'g0l9EHJT^'"uh_&gLH$]Dp7PaH35n5T;qO(cfi\d1"R89GE$6AosN?A^-qnPBlXF%iPON.WO@;%kaq_hC+AL@p7OjB9.*#/oV=$=fkrE%^fr07KV38[7s,q<eNS1S_a\NIf3E#n?g6$CjOW/S9(-rhe9d?C)a#>5SCFT*!C:h3&>3nH+=?fUV1+*TF`Q_"SqGL:(3?Gt]n#K<i[^=$3$[%L8GV*%q_tp1d5$8_/'M7@"0jZcoPi[Ut@-!!IhB#)(].G:Z0<gKjG)2%TU=h%=YH^^--&./(lPa]Lo2d<9A,CBFQ!bVV\2Z4!-1?]B.j<)5V@GNqc/-#tlV<sa]gg%[T-eDD/(P<RA!n>om*j52V$()6fl9#7t+1WZ+:YpVWFJBho6K_s&_)e'E+'dQ1E%F"f)+II``iV0=eAlCI9lYobs*^8@i9NL'uA%YJ]$$5t(+:s274YM3/I(R;<rq8k;]l(>W.H(1Cepon!#1+it2_oi^\J[2Na^r38"=0asdWuZ$%o;CnitSh+/!s;VCkb=bCfW,#<rW_V;*e#@!4OAt>*Ph'b-osq^fp)s2]FBg)#i9*^ENjgG3=Z;C2,t&/+Gs2#6Fm=#5[p60skGcQIeSXU%]"hZ'9%b6WatO#N5u:jcEKThU0'G0,1W,7i^@@[buQ+Jeg1@c3#opgmUZ?XQAd#P.WV";h7jc(m!d769$/b":mg7KGMGuC*7sD@EIBl,EkGA2W"a:&2L))>Z#T.#'4;I44uWCYQqcmnr6TC*bdsm.?Ge+d6Vro/tR!M#2."JT2$%N6[749KCjn`":i011N4eR-N#@NW0qS-J7LK`6Pd$e0SM]*iK&Z'+I;6hYDW&:U)UJ?0g?fUpg/"WAD;(N`pWONFrj;mb($='Al(R*9*3V*,$`<GXl5(?dUg`R4iRJn&H\CFLRR$O=/^J@<<=P6"24g5L^F10!KOgfd9PHN%EAX/S^P<S(Nh<`!P@4@"(]&s7Bg<VG[m1@DL=`J@:9LMjLKdH<IpeC:l'L,%o_PM^JI:@oq)MsC$#Y>@8XL1S+,@hKZeX+iR-B[!#N_@6R-;9f.3C*m2ub"^MEtWK3,:9,r"h/><NGrd"#OM=<($HkKmlW9j$#bf9_(5'a<OpJ`?b#NE5NUQ-`SWUf/E!:_:s0dj>,8!s1;[/HA]QX4Zq%'9[SI<3NF3(L4\M"umQ>3-E,I71<J[edP7kN^sV'B%`#tG^]ceZC;(tP)o:U[msB9/@N>3!$*Vn(]G2PV@%l3!d5KP'/*)n"l*uMO%L(1i5I4Y:OF&r*H2RR=TD6#_>[m<DS"oODb9r4A8<u39[Hk\'pWi/Q7T`lZN0fuJ5KE*fs:P<4HM+Lr6m;^^_0T/Y29q:ma)S-EWLh3a>U%D:*k]uJR%%`E+fI/F$N,&BT4"GNZqTF!SNQd)r1X#!.N8tN2qM5+O2XB0DXB21hHf+k="(dVuq*Hms`1KZUM#Z+g"5t1CW\*L'4eMXpR?k.ai@9=P=LMA#9,_O=7M+EdUt%O,%n;O>5V=3%j7n5X</X3S&Im[t/C-XWX^W@'f3C%&[email protected])Y]G;:i"OaC0OlG%klTq0OmHT?@`o/D-9nB/+D7^T.e_7)h+Bk\a>e/7eA?ql4V.$!$nL[,`=#aP#sb=YV2P=_'o$KsNfNYR::T!ja5-.u(mSh*PkF0L.6oa[P^2D8I+.ffY)6S40iJ0M8h&OTooqJF6ToZ_RX-r0]u(>J"L/[E<:FY_5R`r2J._7U32lj#aQ?fc#*S2pe(;78q`J_Bp._JIYAPoP.*K8'.??TaOf/jM;LUab<pP,Jc,9Jh.PLoqk$X7_F:s0h!$1n2e**NdGP!XZ`!'2t32I=a4k12onaoD9H6q2_55Dej#rsXf`PpU;]t082L^?6>QJ%\9Bu$l"NDTGj'KHRgBqF8hLMQ^pZ-g4%er0S:\[-_"r,hBQ^`KSR\6fE@:mu>UFp3ro&DsE@S`,Hk?sl!>B66d58u8An^<giJ@ec2iIT]j['keka;YKL^/:R_9OUZC4OBb/USZ!V*Ta)\H83>aoT:_L':(?9WC-=Aj!dL*O`EpCu'NX1ImoK"u<(^=Y*Yhc`JYC'JKtA/HVI(i[+PI2Zm*rK<r@"C/tRZ,TmOO/J9hf7*HQH`3?3*CGganPJP*'iJ8BEj\?"LX)%K62'>AtmV783Jdf2h%120R<lW&N9B!.?hYk:@j=UV9?ak6Ar0H?HMC,dpn2L=\Q#40Dq?sTl"C9!;hLDIjU(YFa62E,<MtWAg(C@\s;/.d.9pjQB7t61>YZd@@qR.Y9Hq8Wt/i;]2I+=sQC'4iN;W\K)q(p&m."pGTYSU*f&?K4M")`MGGNOt*I:k6D:?]%`S0Q?jNtQ!%i!4DB\8q^eHFPWEqjebKMRU_B!?qUf1(<2:1dD+m:Q+,?oIi),2%\n<'=r8$hVI*`.&9<:,`m\N[gV*;<.1s$d(1Alj>B37OKi<W(0M1u#nku$>sg'snqf*$"'r*^m0:?BQpqmdD4LT8`M^sp?:4c!=>^90F-5#ab(U=XheU6LX:$986qe>V9O8a]>odNTaN'40j8"/ZK(V8Qq^Bf<6g=P4ZllYN<sme8QQ2+'6dd@d):C'gLler0Y8ZBghurd2+_?\[?p\U/*8*((9GdrP?1@erEmN2Y<KAVcUe%pd6&e;$B4m=h8LSXF8ME-L4>#3#"Gl..K?05Aa3+ssU%T1oleJi=$UX2QYYRB2aau)QA9FNRO)@0OpBEn6!T41sP0GK(=K@R8-+]Ei[Q6Sj_h5&MLpup^hGJ]<K2)r+@V"BR0USWIM@Oc?nslY_]Qe+Fcg\'rMBo544qBC?Z7V4j[\*Y+jC3tgB\0.s<Z9%uYs1i/M+B]J9YsG:c,!;>+\B&;R@K7eP][o%/s?&fK>!bj^[>p`IJ\uSbr:rG,+1cAJ>HoLjg$gsjdKdON?A:NB$\l4[Wqe$)"407Q:\Jqp;-2]'q6[[-=B,4RDGa=+H[/<i^+Z#<UPpU6Fm?342I:2@;<?F3u-sMJink:.fXiahC%kI'XG6QV>jla<6j_I,i;@GJ.dEnrM[@:nVHu/r`,\`j9!#Rcs>j5*7ALXDoM>jaQCY\fPWqc9>Zr[LVu0d]P[+YLV!SC2c'n50Gq/&=@k+NUK!&PRte]=>GssI#^4mT*OZ2Ylrm\r214O?9PXmW^\b6"2=04e?shKp%m/UJ&5;,74m<:-Im=XV_S<'XGNrb;SBdnLPqJ\t?2'lDSIWNcL$R:YGcJQ6-TJU@,\pu#1`*V$WY1U0`%sZG%,_Fg9(t4f"sc%9!,i?j*M3"%WE,r_HA,arP>8t)Vc%5!=;o,1/)&45lm#S%P-<]1)V\+/Y]R8c]36]2dg/i.P'(gi;dmHu7_J5cA7s3PLL7&kdQi=CralUe%g&W>H`X6Y_YrJN83.sD,6nSVfI7.co0a1r9qn)Y@IZTE)DpRW.SXM$mW8c,.h%dFg+8,e-aYe1_#CXaY:^0qj)_o%R3)C(He/OQM8:eY^-e?6$O,OknZ,uEjJ_Uj#*%Q9#LYKmS@q6SVXhDLYQJpn\fD[3$<'YOD^V"^0El?N07i7b5!TH[6Omi_;&s&])k3a1kedA`n<AO<LVYlh4sSq\"VtQGb@rG\7**0XC!c5sG]"Z]S:bcFECV]GEQ8?"LB%mbd&$[uOr-IQp.r9#8Aq_oNKT`@F!iAq"P='Hjjt3JP)16kiHDfj_B'Oc\foBAn,`'pY>O:uniP0GV`u=m"H"n,)/_Yl%\`1@p+b5.6G5h7g,/SEP1ZBXU2.Pd;Wl<C>d%Gt2*6L$qnS4;^AAml3tiOuFDg6c3"70Ua`-mc$BbpMN4Ae9)VBO/Cm??O;6>]n5A@qJn:2f#_l<%J[cUIO3$,:*ETF_.9F;$cTGBL2KODo$nI;^J4X?S)OBJBY"r%6G78+',@m[Q!7^AKmMbFe4U:>U5omS74]cdcb7?EQUaUM8GD>UbtAg'g)>?[i!mEO;q6P_rg!%7@#"*9VF3L#BX.Hit/[q-j[(VrU,K/p``#k7pU4EA</Epn*JV._.aX="6#d1ga[P1YUegT2uY=V+@IT/J(RG=`F1`hgjmYf(CfZFBWX2LA=b4h*g/(4QM"?mi(lD\4h\dZ^_S_q?`)6F6UHjgDQ<Uo+EOj!@s<TOud\)sNFI%3RE+nFL]Ih6>&7)gJ,EYa,.X.NN7Q(HA?Z:&lu._0L?qDhERP:DAJF,GHb5)aT0D`J3e@j0)FB\Nd:T8I2%14;CG,h`<WDB(f3bYn5eU5T\6rn)(l1YP-:$g8t-08;n69Ko$4Ir`uf!KiN6c).-[bn%s"t)fP)W)l9*I85&,F"S6#+8)AXbWE$KhJ7eJBB/ai@/mHp^ION2s]S[KEG=G78+7Od,EoBRcW'udND."10XK$J`peA=!rEc&=2uiW=RJ["`S63%3me0N$Tp<%RR1mer:<N_1XRG_S!7t<9UWuFSP)l8;W%tDJ?(@=fe6@7Bf/60'(._AJb"C?Eh.)FJ3nDO/65mTNTktAaJulke+>?Ulb;_NRO8$,;%./7QK[f!rLQ.0hkCWr7`DlZ^Z`#aZ=-4B40]k+g_qL+,h"\h.qV0WT'tbAp0!iY@$a[,"#8C)do:;4u!5/\MH,<pOX&]dO:#;73,tZB<3l1\-7ZeG6DHb*>nGqp.p6QNn0+ab6bk;;'KEZWJk)_%4(2*IDpX99Vr#[s2MQGAF28-4(!bc@p5&0q?O!Z"XQkkhkpHgXm3%"tVh&t3ibuNB5:"-#oQ^Qq,Rh$BRlV`HS<Lq7?5r1D%Pl&cY&k39fM4Ea"M7i%<4^0Ed<,\=3Yul3E/0e8Pb],9*]7<pK3"ZYC+@<c@\J!hTE":;;f$2LUgHrs]6u1j$PHtoeT&2;+2(&XhI")5@pq,,T&J)n5UdDs9X,ll,UM(rMj"cE%li0J@Mmb8ZAh8Y)M<M:`Q5.p&:noGAS-KG`>22bQRRe>I30r]IhI[iMhlG!JN\RSle2%4,2*;&\jl5Xu4&-7"5Jg+b8RoXRV/A"]P7>uO#'bU&"1S8TT$*3J/'.XP%Vm[LaL#;ss8@teLB<3diH[@NV]u2a&F.<nj*.S3)J04gLQ\2!>0[sc)Wq6$rWmLjN"=e:?];HFZ-:@k&'g&Vq^@,K76HrWpm7sFS<'O,ODlo>F+p);?4"VtWB%h0g:4d3QcuKHi>(60I7ScAMkSsP42HA(l_mR`;,X*Ci=!)Y?UTg%\[p".Nt_kHI<rqj5tcnon:fctMWCU<bP469!b1A3=Wl:j+!AM*[fTtfrT?s#b71rB`5JNG2>sC`'A=VJi!!j<MAB1;oXoE')!fTcfdh?`,)lr740Psd#T9HSfNXtp>__n6%ubgs2PGKFj'B!oOet_@)h6>IOBgT;:MPHV*X43(B]7@r/CcLl4<h35K@pLdTS(DrgblAYiSCS'V3.H%+Xa\`[0'!Q<1&S7M*<sZaF%QZng\4E;ojB$+`m-1$4EDP!*G#s!ups7@4Q%'&%b3bk'r(s&"$0c:jp*dSMRNR"_0+cZ0P%7Llo^(L]Bp7-CNt9b=VJdMrpjOo9-J+EhUn/fGr*SSYW$RKjG4FWJG!gkeLh"4]V^HnnC"bV-.V%*//`^!O5m)OOI.)bJG7OA9;_)cE4D!:K<It('L)k<?hI2!;jD]$mnpi%P0,DE-cd$!HY7]`=g-$:SJ(Bqj$?+mEbHoBEP]e`8ZbP4,>7#XWn=R"\22h#)i%#s!\.ao:Z/9YT%D[VSbcW@+/Q4.JpGc")G2qbSRp"6DA>liW";i9hgFRcqL.jp^AL]>A0-W=rp@np=\ddjO$+o[dR/_^XH`gd)0#Qp:8IuU$i1K`[ZDnW\$plR3>=0g5G"P!aYVlfPQ#uaQgN,j!3jKe^C_!C(p1V`6fKjVmNa?D-*oY(E)ACfRC>+X53+uFi_8'^*I%ATW<-7m!KCIJHQ01J$02fB\cq$NHardZ#Aob/(q![TC*YDYE/1:Bqs?gP4YrXT^fY"9+llmL1A-!A$24ai6ZS,IO.Qjo:8P6\h*LM8.tq+`e44OqhuRp6iD9NfZ'QXA[;`#s,5:1e--5n<q_&2_+Y__Yl2Kc?e_4O7>I-+cn)-(l5q+Cpq*c?4id!+I4(bo\^H\]Y;nta3P/th5tQa0mWVlP(e#1C!2q]t+hsq&D!iH>'?pZ-A`eW&r7dMa0=fiCT=%2Hfjl=gs1#:*5#rh5'#YMKGiQSSIQOd!=F_o\^2<H190kPs\c,OU].JS8f.ANZ:#Ak,??aYd<+bCh:oE/?qYDHgr4UUF0e$6[5+:u]id8`)lESlO%Z(M'%o+Z-MCg:E]$kT3&IMZg_em[2Lt1;;Df'Om_7.8PenYYKS,5mBVJ?D5c*?"1"3KNLja)J86V\(KU&,Ugoo=/*L\Q!;r2`CDZ`G1u(I>-.ZmE;)oqXr%/leJ<.1)MK4^@,mP?0<F-XMWna,q@UhtG4+F0a]/4k)r5HoQLk-_XEadSJj;VNJIYm!$\Dp\X[4B=o9iWpNF4J;8%]It"SK^KY2ZBfVApYnV@Q(DT`JKUB]1`0GiDB&?Z64A;WBZXlIo'Kfh4KK+Eus+T#N,pJl1oPih]OHj9lZ"*6f7iCG%Za!2KJEN6k4#K9n7:hn^kEX0$IQ>^+O)U`G9!%ga2ks)f(qXWno%^[*qKY+an<">F>9H<U![)Qo=.d.?khm-;$mYe<_>W"bfCn/2f#j#M`p`p[b1)1Cep67u0=mN5j9V&q#m()3B`4+rD!^.TjIYeYh*2Up*C8/LIl0O3D&_BqP[)25nI3=+U[Q>eV]WYr'fbSXQ5mT1YM]APWNSPVC9MX*i-*"2afOM(hjTqa+d*k;Oo44hLBPPmV6hcI")"3C6[tY"==,ak?9=G)3J-ph.P1iJ.BNh6hYB5\2?c)W?6T%%F.N3MA-R(&p[`$sk9%4JTQ>cudo38-50ek%^&?VA:%5Vg4$`G#5jJ?07@HKi!kfktk\:&CY&Ll!?-.u4FDM.eW>!fgIe05iXi8/+15o'ihKo-+#mlQ=6SFE\Eh^os.)hFt[la(#&8d7?/q4W7CM"=56m>q0==a9i"':R"Pq$fa7HXV(Z$>5dh3C+#JIq_S,bsCKMqXN?kl(OogNpTpnQrLL/Ek!ubRiA&^&4seEX&jUhInIU$iMnHrqsHRf4BMQ7(W2L<\O:C/d@'PTI<9rdc#(d;o\cp]&Ac4"WoNj[gWTGDc?P6"f>SGX2tA].F1]L!/(9$#MHC'$NW`Q@;\^:Z#6C8,6LL@g/)@qcEQ2SmB]Y?blGGLc9<Nf"bth5'**8kN\/Ni(cFna=\1M(A0CGop)C"<96!a??KbQdnC`^lZi=2hT\_dHLd;0RW_O\oJ1\?tV7M_K%5WfqkXKUolSk9u,tP[X2jfap&rf7PM$!&J?H8k`a(p)M'1IY85f4M:5pO8Qbss?6SRqI@LJ;'P).nd8dU/[#2hm_-TMl--3mURB':)?Vq_KEPC?%\=-nJJ.o=0Oe>19A/8P)r:dfmIB9VL>ZlL8bV9/Fp#I1e]Nfr0g;W)+$b+PO'=r1.dG"oeX9^#LL>Im)8bP\7?/HFYbMGn&-1B;BX&T6uHUao^9S$=3=rcDUiiRJ1L__FtOqE[1b_7HreiTtA(k@)C-tXW_7I`])uKOc>=]V%_]]9iuOd-N/ml;.],O?hk;44UeQ*pGkB2oY^DAp+U0n8nZV:7W]ca&Y3[mpgCS>CH(;Ea5^uRK?5eXcfm$R2#"Q*2p-&lkWLjk-o"a([p`aU?":`*aO"en6M4h%28cp6T\C6$A#m2##u7n60U+!qC)@.QV;Z7p5"4Cd:7]m?j.?K1PZe8CCGM#%5Kj7T[]#TI!Xrt-(f#ihCe6Ktit6&lhM"Z[0*B==b*3^%`j1pX9Eqe0l&;j$7tjf4q1dq/L6PgC`!cNAJ:U=cqm1"D.G26;BW)7od_%9&i;^dg\trNR0?jmHLf567=rTBj%K#Hcn9rU8>:,p<%-7?5OO_?$&rflk4L<Wq[_ZUD&_`tm&XeUH<fhsLf!ARuh#WX1:DjWV=eB7JK,?LRXCkRO:5B])WaEaLP`m#NQta,H[l,nupp,:]_1pI@WDoWR@o?CsQ8`R!;LSsup37h"5Rnq+"C>B3+2$qrj]FV%<2U0,M2_Mq0*-`#jqJEb@T.$399Muedo-Al%F^'S6p?.`/?ED`a"0uZ0XCg.^ENIn$W'@hESaf>24mu<2e5en46j8Mp;LlpH!E3n]a2PiGa@l-gMa-O%k.rc;@@6),af;&"u'>W"I?\rlc0;(V98`*_3@kj!sLq;.tABslesP0-K?C7HQJsARE#[kP&-U@o]dK,j:@j)MV:C3k39>]qDOd(jn"NT<lPlT8;EET3F+_\QSt@?pp8:%?3qIF(uX9gV!sN&Hq2bb\u-Ka3K/S.ed]SPK05gX#,#htVUOC?rdEI4Z@S_,L3lcG26^P_29Pg$ZW;t8ES"3uECrV>hgoUoHMt+X8?(5@VQh+jE$rpd(>P<PpA_8Emq/E8Au(F@To<WmlId\hqfJrDe+*2L4UQ&ka_VK(rOL/D[1)sm^ml1m[3r;e/BFF&5KPP,94R2['^.+hiba_tDE2Om?5etRi]lmE)5qh*VSGRLH5/DI8`OHh1&;70NAr%I#'@dr-N=eDEV]GMZ8sVToW8a^U&ZkC_UWj<'0?/h>I[uT:f#Q??)'*1?Y:qrctchh.[-`Lpf\'k@lq!!rU'2go8+E:HGaUOp[Bon!"6cYU?]6Q*gH,+>AorrXAKff#+-6FmBdVn0_r<MN0B-NWA0*MCp.%^GkrE4VgnN+LWc=F4o==&eu'PHB<TTEqf_ZNm$tX5d&0iV'\QCAF\eXQ-R"^&"K8`lm%nJ!D'm"PQ>n8q9.sVN(Ya7EPC7jK>3bIBXQs(#@-=)IMRP9LAB^@^\(A)D'E0_VI.k#/S?t3A^r*%/Fq(Ao?pj<qe-"R!/V+GLhcKZ+["En?O[._3^s"o1-G+,f[Om[Nr*)+Y:L6<Q;q:na5qpI-?cUd=fid0ZIB`Lk6U,D?\!Fu^gI((Ghga?crRQ#%393.%s14\tc0\LMS3R%VccDKWo-Iq#aWHOB2TG>Q(MA1IL=Kosr?sl($Yss+._Qt`c'kSBEO0:9/o.\9IkJLp6hAh$ZpO]033%jd9Xf>?*q/_^MiZN+YU?#J\o-^FWT:SZ47O6IC>^V'GC%]=[c4`f,SgH+p5et(k@r[pbKp4&8V(Gn;O5>)NJ9s%[:pC"Y:RiB_4I:@5@oa2?U.f']gbZ\R7]l,d]k/7F1'Sa$mamMGCGZ5;Q-!gAS,B:E.X;</j:bo]WKhCLs%JkBRkE+Vg?SMmu\9%/W1!Ur[u"$7^,FgDrP$I=ErOX7-16=^qP232;?(mi>K]CL.hMXUT4\2^NnOD7Pb3mH;6Xj3=k]9WYaRdAIIBmP4b#k/N`<@BYW"Tn%7i()0<t^8tW!\=S?I3pg!3po7+F7.&b;\]<gbU&$oB;5m8@*!1;4kmJ76n?dS6M7uksl`(22Zd?V<EG^o#-ocsrjD=3CA+_KWhcMm_IfZ,pT\gm_\V'OgVA8RK6)ngOQEh7j!RlYtc4blCOh7Z^e]J*?:q@0\.ZCN=!1t;SbD>46KK['q=:(W'!<:42rFX_@'B:l>NjK5qWMq;\ClM04Xo*;=i[.@:9(([%oI?=[oq]YBG?E[!`oS0aPYVPT7BBGOS4Xlq(gAC=hG"CdW^JZ2W/mQroio%^u2ur\uP^RS^i8e-<ej<tLG=^Z*]TngChl9k^CfIIn/7=Sr_V)IU4=B+Kf77M)^2I:C@MP$GgOj_dHXP"N6&EK8>)\^eq-DXL6(LAg-<FLGH?)sa4a[(jVq[4n1/jDdlS#E^"od?ITag=Z^*MUpdCSTIiFCSi2ud7<?XVR^"$-A,5O,#/>29Ub\s1.08`seK:)7_cYO)$)dM[/S>8Z'RhQb%@CRV':GAZNp^KHIB1lFs!9nYI,9IIcm&#<_&KTZi^P$/IKXOeXc@,Fo4(SL)\Dl;4[RDpb^.QV13LRCtHe@b`uG@=kJYeMhcC65qY`All:[6FWl(j4)hL558P5)VEe>S0`!6WkkH0,$F$jt^Y6?/:[f7A4L1Y$6*Y+AE>CU9b\[gs^WK'E$uX`ni#<pLn-K(UB[\ar`:&^$X+ZO4O,$PNITmEF+q,QRg=0<.a)jSg?E3-)i5!V:EQ(rsOtiD?$B96Rt]d,Cmt&B=X=H3L=s#Q[_#_LUie53LL[OQD['6D+hF7Xb/D`6SgQO1VC8gcT.QJ\XhV<T'*YUml@$7q4,(m3>AZc,L/L>"$[L24r!je(HS<M\t_JNUdr"l:HG=R\trb[U.b0P5FS5q@Ae$iXUOQR?/_]6\uD;_Wi*G.Y<&_n\uUU-5QCdGa-HhT~></inlineData>
</image>
</illustration>
</para>
<para style="textstyle1">
All the best, from ReportLab
</para>
</story>
</document>
trigger.py
(text/x-python, 459 B)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Original source: Python reportlab rml-for-idiots script.
import sys
from z3c.rml import rml2pdf
def main(argv):
argv = argv[0]
# open rml file
rml = open(argv,'r').read()
# parse rml file
pdf = rml2pdf.parseString(rml)
# ... and save it.
with open(argv[:-4] + '.pdf', 'w') as pdfFile:
pdfFile.write(pdf.read())
if __name__ == '__main__':
main(sys.argv[1:])
test_032_images_adapted.pdf
(application/pdf, 24.2 KB) - not displayed