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