From 7bd7d4d476f5091d39bac11d53588a80d4bef9ee Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal <jrosenthal@jhu.edu> Date: Thu, 7 Aug 2014 15:01:05 -0400 Subject: [PATCH 1/2] Docx reader: Handle inline drawings. Previous drawings that were under some other toplevel run (i.e., a hyperlink) wouldn't be properly handled. This should fix that. --- src/Text/Pandoc/Readers/Docx.hs | 7 +++++++ src/Text/Pandoc/Readers/Docx/Parse.hs | 18 +++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/Text/Pandoc/Readers/Docx.hs b/src/Text/Pandoc/Readers/Docx.hs index 367e26bd0..f19570aec 100644 --- a/src/Text/Pandoc/Readers/Docx.hs +++ b/src/Text/Pandoc/Readers/Docx.hs @@ -321,6 +321,13 @@ runToInlines (Footnote bps) = concatMapM bodyPartToBlocks bps >>= (\blks -> return [Note blks]) runToInlines (Endnote bps) = concatMapM bodyPartToBlocks bps >>= (\blks -> return [Note blks]) +runToInlines (InlineDrawing fp bs) = do + mediaBag <- gets docxMediaBag + modify $ \s -> s { docxMediaBag = insertMedia fp Nothing bs mediaBag } + return [Image [] (fp, "")] + + + parPartToInlines :: ParPart -> DocxContext [Inline] parPartToInlines (PlainRun r) = runToInlines r diff --git a/src/Text/Pandoc/Readers/Docx/Parse.hs b/src/Text/Pandoc/Readers/Docx/Parse.hs index 96210c31a..bc4e6ea06 100644 --- a/src/Text/Pandoc/Readers/Docx/Parse.hs +++ b/src/Text/Pandoc/Readers/Docx/Parse.hs @@ -282,6 +282,7 @@ defaultGroupStyle = GroupStyle {groupChr = Nothing, groupPos = Nothing} data Run = Run RunStyle [RunElem] | Footnote [BodyPart] | Endnote [BodyPart] + | InlineDrawing FilePath B.ByteString deriving Show data RunElem = TextRun String | LnBrk | Tab @@ -874,14 +875,14 @@ lookupRelationship :: RelId -> [Relationship] -> Maybe Target lookupRelationship relid rels = lookup relid (map (\(Relationship pair) -> pair) rels) -expandDrawingId :: String -> D ParPart +expandDrawingId :: String -> D (FilePath, B.ByteString) expandDrawingId s = do target <- asks (lookupRelationship s . envRelationships) case target of Just filepath -> do bytes <- asks (lookup (combine "word" filepath) . envMedia) case bytes of - Just bs -> return $ Drawing filepath bs + Just bs -> return (filepath, bs) Nothing -> throwError DocxError Nothing -> throwError DocxError @@ -894,7 +895,7 @@ elemToParPart ns element >>= findAttr (QName "embed" (lookup "r" ns) (Just "r")) in case drawing of - Just s -> expandDrawingId s + Just s -> expandDrawingId s >>= (\(fp, bs) -> return $ Drawing fp bs) Nothing -> throwError WrongElem elemToParPart ns element | isElem ns "w" "r" element = @@ -943,6 +944,17 @@ lookupEndnote :: String -> Notes -> Maybe Element lookupEndnote s (Notes _ _ ens) = ens >>= (M.lookup s) elemToRun :: NameSpaces -> Element -> D Run +elemToRun ns element + | isElem ns "w" "r" element + , Just drawingElem <- findChild (elemName ns "w" "drawing") element = + let a_ns = "http://schemas.openxmlformats.org/drawingml/2006/main" + drawing = findElement (QName "blip" (Just a_ns) (Just "a")) drawingElem + >>= findAttr (QName "embed" (lookup "r" ns) (Just "r")) + in + case drawing of + Just s -> expandDrawingId s >>= + (\(fp, bs) -> return $ InlineDrawing fp bs) + Nothing -> throwError WrongElem elemToRun ns element | isElem ns "w" "r" element , Just ref <- findChild (elemName ns "w" "footnoteReference") element From 98d14b2b2a20111d68bdfbaf358da41537ea71c9 Mon Sep 17 00:00:00 2001 From: Jesse Rosenthal <jrosenthal@jhu.edu> Date: Thu, 7 Aug 2014 15:34:49 -0400 Subject: [PATCH 2/2] Docx reader: Test inline image code. --- pandoc.cabal | 1 + tests/Tests/Readers/Docx.hs | 6 +++++- tests/docx.inline_images.docx | Bin 0 -> 37784 bytes tests/docx.inline_images.native | 2 ++ 4 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 tests/docx.inline_images.docx create mode 100644 tests/docx.inline_images.native diff --git a/pandoc.cabal b/pandoc.cabal index b30ce37aa..66b4d61c4 100644 --- a/pandoc.cabal +++ b/pandoc.cabal @@ -178,6 +178,7 @@ Extra-Source-Files: tests/docx.hanging_indent.docx, tests/docx.headers.docx, tests/docx.image.docx, + tests/docx.inline_images.docx, tests/docx.inline_code.docx, tests/docx.inline_formatting.docx, tests/docx.links.docx, diff --git a/tests/Tests/Readers/Docx.hs b/tests/Tests/Readers/Docx.hs index efc520dba..c310cc8d7 100644 --- a/tests/Tests/Readers/Docx.hs +++ b/tests/Tests/Readers/Docx.hs @@ -107,9 +107,13 @@ tests = [ testGroup "inlines" "docx.links.docx" "docx.links.native" , testCompare - "inline image with reference output" + "inline image" "docx.image.docx" "docx.image_no_embed.native" + , testCompare + "inline image in links" + "docx.inline_images.docx" + "docx.inline_images.native" , testCompare "handling unicode input" "docx.unicode.docx" diff --git a/tests/docx.inline_images.docx b/tests/docx.inline_images.docx new file mode 100644 index 0000000000000000000000000000000000000000..6288f66ffa51b803d2bbfefce15e22060d237c6a GIT binary patch literal 37784 zcmeFXcUV-*vN*bsq>@B(R>@h(c@zXBOU@u+fFb8Nz*e$=C{alxlCzRUf@Bc^$r1!+ zkep^fU=SGIV(+u}KIi`K_wIY|+<)G8@8Y9ZO?7p3RdrWYhxJecpMV-50xkmpa1*e- zYk%?r4*(7b0e}j)e92tN!`&C^?rUuj<O%h$6bf{6z43<N63=Vk5=j5Q&;MWx)EQ{$ zbl$zznuTS{Y|ZrVh`1Boc@I;<VJjy*%Uj_Osi}pZg%lGqa-_XkD^!yW-Jfsy9@N^Q zPB(H%j?YDJQcFhQ61!W`7cpq{QXe*5nLe`rz71J{E7>Qavw`^ez-@qCkx6q}fFPhx z`ZI&m<2b)ZCCTR1%CC(f%i5nP?huB3U!U`YX#rHIhlh{O=J9{nT17fFy%}cWByb!# zTWL?`gLb}GRHJ;rBV67>d9?E=7%*t&sJc2xPeI7~=&+xbOZFwtymrd9n(L9G%jk`l zWlL{z*9lra-(bALmK#~*bv*hj!O>_)+%%2(DF5D@K_AY%-i+_rjn}WOJNdmBrx8q@ zRy#K$j`qXD9`Q+p>J)_Q+em!zdG1?0bM}=!Ly4Q|sl2N!Q{-K)9L2qZqCU5xr3Rn! zNKQ>FoK}z3zR^wT%0&~+t5O{pwoKhdcN$6_qu-2&ccx{^B>H$@qAK$;1uys7=|eKe zIAw~`d=?{~$gpG@RX7xUlMYefQ4))&c${UN_x+pz0M5_xfrtO%$$g#NEu^3)FMy6p z0(!EwH`LWfSm>hsUl0Bt?6&`;dPQ=FcGqpv=-me`N<U6A-ETyG9kskR>V7$m_;%bB z(F}*W+_(AMw_WOmx>~k<-9w1oqupiasQ^@pZOuIIOFGWW-ZM;_jD*z(V_U5EZGDMk zcOP`*Uau(IEMF$^`*f`9?DpVRc~ik_C^>~5*LS_7QuJesDp&Z{i~TziBCl~Dqkp^+ z*tI{c#G81aUy=BvNka0*M(8KVxvKeLx6^Z7XEqqEEmyp2EuF5NYb*_YHDcdS#+UjP z;}6*D+5N|-4tC=5!L8f<m@C7{{+dJ2U#WCnD~eso;9wM`*gxJI`6O2mk;a?Zb1W7v z+;xq<aTYh2w@s94XV7PcVJ$hnqWNsH<`>a_<~*BEj4wHY&SMXzL1y4GUVw+Uz3?9% zWba|;=LTlPi&XfhH{pT#5TyQ}{Zyp>o)4mTxo|NKyZ*d<C3&8dROD9FOF`2^4g4n~ zThC~5ts0cPFD5mFwH&x|j;4<@zet!VTQ9cMadE22-Jqm*7lrMmwg@7sb{_nA@hXAW z<p!rY+Fqiy<z>rnw)A0pQ39dVHS~z&OYh*X$M-LZ?Y|T3h>U%!ElOH60PDwQF5iub z=!k80AQzGEXArDOZBq8vdb8X>`uTjdLGb~3QhK=a?Ld_$!FNf8_iu9hNIz01&z17L z9?Xg?(uurkR2|O4I3)CZR^eU&d8ibvq7oNFWscgZ?uuIv{Xzf3$RQcd!C#*+V=HB4 zsJR)7dtWLQA`x!1TsCd@JfrImUFNuLLtaH&La(}vEquG`;@NLhHd1A6Jk>IHbmg&4 zF%wX)w&^k2^ZaN3qE~q*o{YPPTR=aB`H%V^L&5x>l2*Rq(*AUI@Zi)nD~zS>9lA?W zI7*L5a^{~uB(&SX3HE<R`STF#&PZ^QCQtzYB{=_npQ!&lMYl|5-Djn)g<3y4zxVZn z-7j|%zo*!A+D}3WMJE<tMcm${-+xlDT@ZhEB+tRwlfj{t<^PzF@y2!K7hR%VuY7pg zgF-S2JD%|lDl3pO(Q%NPu*P!^Pj#WIlWNT%q;+}6$wjvuyU@Ao=<Vg*_SR`t4N4Eu z^elkOn`Ij+M@nU9Z&1A{Wy3H*$B>lv)fOsb`(mQUxyR0Efuz1dQZ1q>-QbpknO*Ch z!2pApsP~#JU(8gNMm<xWhso#5Rl8=hUr%2C_~ANVzKZqb`d-rd>CcSU)Sa<Uis$C= z+18C5{JT8M_e#)ZMnTZk`@psBnmT6EZ#qc_l(DCk*?B|Ep#%j85njce#R(b>Jd+<X z$i18H3oc}s2kH-oW#EfjRuVIgn}*1s{vsXf?{>QbQAc}U=GZ$-eyN#mEIp#yxS6Oe zDDjEJzdN(!b_+o#CX+L{>&I-kwG*odOj!3xHE)RvXG6`N`redj2*QKUJpD==9>aRG z9>iBGJms-yRg+eUz0LEUkrO{5YRiJVk+H-Q>|Gjf#}oy2w=Id*o^crdJoBdaC#u|e zB(@z{HT723E+nLfEtvf_a<A()M}hdw9EP>GYng9pz8Cej!4jBSS3Xs~*}DD=k6jQ( zdQI=n;P|ts3^uAN{C>MyLxDj3z9x+jKmAkaj{EzU{5OsK&L@v(7|1t8P(h!4Xa(L& zu)Tw?ndO)H>DLRmE-Dk;%Iu4KIN9h<9HyySiy}1lUKLqSa9nZ-VQ%KUMy&Az^ZoXg zWM=3kQB3Frk;unK<uvhw<4Ky|^&}W=09>b^O?4PYq)pYOXFW_d&&No0U(wk(Q7fS! z0aH&uNA`(E;Z4FAD=C8A@3)LZQGczqIF{kYs(<N`$~(@qgk9O9O^UBc$TdH&FK2BM z$%`g3_p=JJ4tV{5d5gk~5=Ua<6sjuqtaAB-bRTWd*k$E+=HHat%@L9tRMxlH0|oZt zhrQjph^Qo7-HQ_6ger*CJ$Rpu5v#||`oF%FE=WHL#C?0rE~c3K-6{34%kjt4?_1WC zB2Leom&h5WW(p)LEy-qD&5|@j+(viuXL`@SO+VPIba+6Tsm&oAuwE!&ZjcHI#BP1l z&FGzEATDW<ja{qJHmR85aX@uT7^8Rb_4<cPt(qRmVLg=c3w1U=q<!Afyd3!3o??Qo zNtGV_T5gr}4IXZd!a;E=(??9P+}D}{M_Jwm3oJjkbv)f8r~4{3{B*BIItZKKuPoBQ zVmRk>-$>`V1@J8Yn78#_Vvlnf^{25pjd93^u$BjzVK3!x-1mG;Ij674D=36#3MV;O zGY?)e+nVG>N;(uwF<ENe3;%?0ywd*qp!f>gV+HYrEV2IA;*4jP_a|kX_tfNr`d+hN zK6){A!gKF88fx2!;M(kX+pd0^v#%t1&t1t1u6iQeuZ-T5oqI95`+nJHG{?`ZQgNw; zqtx67A(G$?-LJBk5Opp%ea&4%fFSSS-BHDpcg658ZsjBROYLV~{Uol$d*fQ)kUDNu zJp1avT$IWE)3Q$TxP#j04cmYkr{>H+tI_OFxMTyiJ6lPdPN(NF$xo}1kvJ#a?T$3- zH@_e>6UNuFX;vJMC2n64SCx6poA%H|+T`-PcM!M~AwXTuES2?}%=e(Pv3mNEz@_B| zW)klz6&XQ;;S$3~oN5rE5yn-zZ0UGmetyZmnUGEL%}7nP42yaJgo=0Q2_e<t^IC`6 z?dM!h0l%C=EUnJ(RjRS0sTA|KV|d!MJ*}LZgc&#M?%WCq%&D2^n2j9ajKCgb4xOrB z_CYtzGai`;(8U|r)uZx<wY_-I>pqoDWGQD3Sw756F*fC!^R^@{OFOB{?K&gIxCH-W zVK5;7pCS9E*_+6l!~ihM0su6BhHPIas2f!H_wvrg%3{k@$Ad|kx}6=vq7owfj*46B zjf~;eH?lfd{x`u5uNK)uZP5?4nGD<*vU*hxj{EnROS%*BFY(o1&)9=qQhrzvMmYav zt11BHm68h3h{a6Go`iVJpR_{u9jh(m)#+t!DC*@(MEnY=2VRK%pwv<wT=Z`bfr;PM zLyC1K6c;dP#*$XKx10>ov{cz9UnAHnwdfnXVZ>){ZSwpksogQ_@Pn(n(H0yg9r^Tv z_b;(MnU53{m~`eRxl#oCO)vYm8S}22WLGv^(mGV~TDlhR80t|(YW}QqMm?Z+t+SrG zEd9cb>nonaAg~gLwLvhK0(S&xTAYZ)_vr*&ElfXdzQ3mLW6$qxxt}qxd}##t=9PW| z(Q?6oyWRGlQRxEkGPB1|Cda?nYC{xYj$SOSFD$Dav8-&onnUyaOuGDorFoUO1zh=j zG-1%C(#R!9u(5|v{KiS`oe1m7N-+sKmKHqI(>>C*kr~%UW9Ew=pGn(7g4_y`C^8-g zvG0g`o4@&gcz<|Z<cI4li8UeCSujRN_c<BVf1Nj4&T!vbu;Zv{?b2O*1|u<L=j0bR z$#2Hbz8rb{I`~qHw&!vp%hlyC&vQxoAAZ#okDw4CrMWY4v^O0fjF7+AcZ6VFILBZ+ zB9=}dCd$voCA3uyOX(Kizxwi%zV7O@g<;S>5Gx~0JNz6o3<+H!Ry@`m48rv+StAs} zaLe57p(kJQ7pMatMjgQvIhxhTM_6?}-syVkBFzxHulCbUv;2D2`U4d8rm5U7Sw8=- zlH4zCD5{h#h;}bKu_-LpW90i5tps}ck{Xw$52U<)lg+NBrL&@~+I-I^cGS223G$xa z*eisd4ZGsLG#=;Sn0;@dKp}1WrIf>tNH(9`EneLR?Mo+-f!Jn^(ymQ%GQtda$ydv# zW-o(z*T){GXzAy<W!|;mQoz4CPcA7N@GxE!F=hVaqq3smqm?^tIxm%$#N~{nFr`~d zk%m{=9~*9o)<{y?&`iC!dQ1LRLcaF>f}j0!*B3oF*QWCPuw89kTygQ#Pj^my=Ral} zzc7clvn+A!+k}WEmVY~1Rw&?6`CxIpC_7hq?TpmxBX}aPkk@_XX#M-51dBA67S;WB z1`-{CYRa7-9v+?1FJBtrYkgmzxT0k}(L}X2`+kXTswvM<;e6vo-;QKG)Z@~Xw#;dT zk&;!UcEhR!9cAeLhkaVs;tvE@ZT;hdXR{Y1Ru>@)*{c)#J&iwLbkRhWjhg=XZVli2 z=PZw&i%jZMsklF=#iYMIyl+WA?!D5j_F3PAwoAvd|MueurYo-Y&lfk8%1~AbqTlMK z@GI>(d?wiAM1+uUouXTt#aShApIOB-4sLe)lgCYvCvBmVS%roe3mNSuJ~2DR$EDXj zsnu@ql{UWG);eVG=QjSzv7Bj4Q{UHt-*S>VOG)~nRWnfpXV%-&dv9qjr5i7PsV<K0 zB6r{zZJDK~vALs*4N*)Dabt<|y6+mBjl7!WNA=-Wl*8%R&NQ<$TNbCw-I;Zjmvt`@ z5J!&p4{via5a<|DX_VLZ==pvlolK|8z^6u4Fpwf&l0Z^OpKu*WT&ty=qlr@gRv}+c ztMx)#-fG{`ki}hSg*rjM_tkS}l7Vl%Ut2ya_2|i`)Q5Y$&r8|1Wk!po)SAAlyUM#) zZHkxYucQ&JbiK^^EkApv?8(ajMFpe#KT&Jf$iA6u*<6NrmYv0wM9yB-|N0BBYEo== zC2iJxUt7QRtB92BGgI277W0krS8q@Pb3ao?iS`ZdP{8+R+_Pod`I}L~pVOQf&xb8W z2JkFc1(anj-JILHn&4X~hA(9BC65GphwQ_p$<Q&`8|I6_v{v}Xp6#wUx*vDXJzR!1 zZbQi&@7AlTK6q%NZ6I)YI;z3GW|taz0AGK{XIk~i-k`_gm1!;UkKf+5?L6jhCMM>I zHjw<z;ek&SAaXvp+VX^my;ZezGHa~=bK%(JM@XyJyB<>QoNpRyr-E2vEdk@B^$o}6 z#K3ndMl2)3MIQ=ObZLfAjScBK2bo;iP`s*&`Ubnfz?LQpdScz|1A3x?Gfg7nyARIs zH`!=z*0S;cd@{2d^3|LY9`g3|=BEvf=JI<)>qM|{vPTPc#BL%m!}J;WYQ8By?Iy{5 zN&0^74Rdq<^gu+)mN(V1_UbrFIXOpk%hRoIMUU)-yy=_UVgf@qxo)rU8y_f9v&}`^ z_2@`De>ttAFA~A6Pdr_9ds=*PgyX!wz|zxga$Ph*rN%djlrr(z(|y(cNWq&YK?UD# zG1bwI#Ti`{IwmKpdh~4SjeosB6rB#85a*XKUu!gMd@@$_0k*!q-pVBZ-x{?hgDd09 zA3ZG$kE#)+-!1+UvM0?CJ$#M*e7BVdy0JEqx~z#8R2xT(kR*)GHy-|JZQ|=%l$H7& z3vP7&%&Aww?0NCr1b$oJ+~d#&fQx@R5CiUj9(sFt`hXeL&&}4|2IeZ{><M)||8~9z zTvJz3QvvYs@PG&4A8?K$Zc<ZHvVN$iqoSs%3|0UDafywmr|YE~0O02C>#e7%c*Dfh z>;~~Pc<9Xl9;Pt@BsO+Fp7$O;)V%2ag7)J5ug~G+A4dXXg8zB_zf%8)UnKTWA3FfR zyEv5hu=lZZ1K~gbAau3!^!5b+q8}h$D!|thgo&9!nA#f@5QJ}Ez>a^w_b*`EKVXyJ zX$<s~K$;6#$?cqM>_Hd~!UDGcgm?TW_zxLC3XqQ~)E(*#v%7I&3(&F-FjwgB6@L`} zMfE>X{@;Oau704-zdx*CN$TUGuK~V!E_8SDexUac__dvlvOWlNfcQ_IzKR!kE)d@G zb1}RJ!h8U5>AHiris2vhm*j$-42(gT7R1}beANv8fe&`K)z$%Fu<fNcE*=^ed@g7{ z+4(4ewghg0@VpaL?P82UdGG;y=zV1n764&ZC%*^(;E%8F<F9{#|D8{;lM*-uFZkel zJKLx~1Yt%Hj`jA?yXXs)8UGE`RrR7TkUxH}r|-jm$bi4*?y7y!7pN}*In?KO9YLP> zYrakf;5@x(OCaIvZSaq_1ZEB}6}5lR!#!PppNpVu1O?uHdKa>R{0Y9=cq^-dFvy2s z59)4sVK)#aq_?-Ze_>l85LN(;@N57m-~rfzr5)f7oB=lgJwO#u1mB*3H(28UzyMbe z0|jfLAO?m<2DpH@|D5jO?=*k3`J2M=_tt9{t-)UYbDBSTSpNr&2LT<yZ30p7UzR|V zK%PK~KpMC~03o<bpg?dR#7Yy${w2Y~f0FYC;0UaPlK#QR3-AMbzL3KRP<+nl$MaX4 z8&ABgVRpkwXi%EJwe<MA9^~_v#-Pj||7-!k2eiPS+6n%%o%-M{^ncadm>_7f7$fb2 z13LeeeF=XMt`Sav<uu{k-|Y!!3FpASY2Y3>0<OPH<OWIw`+X#Q{-P877acl4N?*VR zERi6c2Po^GlK#txI=DY){JZAD63`g!Lv7%Rz~9*0Q@6KoPu$MCU2uEzU;6l)<G)x5 zKLx)YzZL&Ielz|T;0FFj{0{tf{9gQO{11Qe{Ljb!4=#U={qOo-;4ZYi7==Ik`)6B2 z0atQGawc+i^84g$<ecQ1e^K2arz5{Z{(zhttYP|V++6>z{})|gfGKFJKdt(o_jTa` zFu)L$1O^0vwBDdqFD&d11c6-t*-!o<DFG|N9RjugFl(hQ=JKCX5GfPgC%OmRAmSsE zCb~nUegXgKc|_b`oitb~|0Vq&p7R&Qzi0scCo0e?fAJCgeb!yf)r;2tpxmyY+)!U= zAecJ<K*_^1$Q$P9<a<Np_HD@<_rO#Jy`koACnRvg#?|%4?^QlGyrDi&Z-1!05O9$P zFWLdXzTWTo4UcyCZ=A0d0LbrvG3)E!I5R&0sPF;Pve@4^9xx`-AON6A!p_gz{||m( z;vED49|uv9-+$wgDuS_T{``C&j90|T0C4u={QTt2`T1Es$bSw1KDwSG0bk`nm;(T4 zX<bBp@Cus%j}ZV*Lw}b{0gve~SOt#<4B!{|O8^i90|@>>a}ldAo{RX3_t*Q<>q~!9 z;Kjej{}TqAg3tLZpmec%__v-5CjS<Li^k_40m{pl0K9m7JWAjaB_2K{-g!5`25Lh1 z2k+nI1q-}O_ymMR#FwvJB>@TQuK}0v@bNDZ;1d!OfQG;e1?vF<O2X?m@7yDz(zPMJ z<wY&>_(k4jcExucG<qXw4pCe0Cs(f0($O<8a&mF=@bZa?OGrvd%P8GfR#APRrmk;b zXk-iyubn;A!O;ok?Bna_9}pN691$569TOY(G&v<TEj{DqtIRj~1%*Y$C8cFGwRQCk zjZN>HJG;7jdiy^0e;yqhpO~EbHa&wxE&W(tSzTM-!0he+JUBeU9{;+~3lG5m%Vd9O z_8;^DjevKFfB>I>_(CtdO92;(QxXu~yhC*To-VPC7u7A1$Cs%UU*x^(xWX=~ho-Uh z9=S@(A%^6{T&VWDX8+F=d-DHDv%eJkTdx^_6d#<Fl=zeY1i;~VfY+CPy9zD={`d9& za}!VyV!KXs!-f%nI2oNfb{J#VX-!@)Oldl|A;XD?-Gw$F^lEBzWnId%pwF%}DwB1W zQq|HN&*Do-9lM?biA_3D@915HudOzb=2IpV>a{VZixlMXjl<Lw3m=$?XsPJw2Ee|r z<ra5ijAKtJJERhXsGc^(<EPkq)j{JrN4hKS7n?<Lt$!{v;4!KTeUnO+AuN`f>fvCH zl|NB~UpaeC)DlK=s)KIq_P{C+{)QnwWe@QF&cd;QfXRf<bU*LZ-wwBH-g_{|^eN?} zsQ!~wdvsv&CPhqbHm&>H<ODBaVrebi)Ui~9*#tfBr*6)JP3B2WvWe+}=&JB1Lv8t6 zZ4GbRrqyE_+G~6ggAEE{P5mlr;=U8RUJAEyqX;}4z;YSxh|Nb@$EbEMxZyssvbQ8p z*IRGx-dJF|$1F-m+wR=B9|!QJ5p#@m%h`0vaWl&`CCPL^DSM<VWP7!B4_gpyd<phv z^NkO3`7k6AQe0KENi<$WB%I}miRv%S0_$UaDz9qu6`)E+%8qS#dnEb!`vpITUxqmA zOz$r3<W;O&6SWCoRZ(2|$W2){CG%SJ_Ew|ldV_I_8e#q5=K%s)+gzuDM0(nRJZ5G` z1=b~ZYE(ap7rhelc!)ddNonk}>jlMp4^vYO3JNc;{TOX-%^DwwI(@JhCf;M*;n_&J z=#y>5m^8_cM3-MH(|_|LZ=11FF>UF~xOu$48@EgO*6E|O*SM>vcw;{;jh7_5lgQvQ zW2eeNUd3wxVeB80X9TqmNAY}oJY1H0MCG1;>@>v#_@1k+G>hW+kUO-6itX1{zG)Uc z<I2xhtP;_S<TI>Ii8M=S-Q@bd<&V)}LKhQ0?6M6km+iE#yOZXu+c`|Ljc6=a=QF%{ zd8E+Dty551!JNPRL!D3i<#rc}>At1;_7bf1;%YAiF<c2lo>HJzy<w&k<KghWrFJB* zwRWs<+~JvdpqFdLOjKH}6i1x9E&Xw=MGysxXAHIN#-dbstjN|ZgAyqw?JZWlrc^JN z#-LbvGTBSxg<-ii+5G9)v&`H85^T;#3zwwIbk9brN21wbY**w$U4<BI?TqMU{7P&# zYz3{NX!txUpLUI<#Jj223Dqk^RaYo%{Wr!%NDc*7uyN}MGrR=pJ_jDl6nA<==E`7S z6g!0xVl1D%3qT4I?VB`=c?h*A6%Tv3g>u%^bclT|AGiwnvQ}j*C52P}rRr%-?d9On zm4ZA)FufY>ST@0;oFA=s<`>GmY}Te;{xa4wS?YSQ4~Ys(hm-Zp8Fy#%$0EPP-x+jz z_z5EgSBA4(F)CJRoZ2uj*wE%J(SDe1VNkJBaO^R_9(xWv(cR1p*t)~r+jI`NN@pE< zHDS}vfy)MM1QDnLNd>x$9<M;xz(l`w-v?E196uzfxmjy!Oc|1pEPTWhSY^gtHp+-L zas3s;qEbv2?qqvgze7nRGGAt-Ycx%!CQ*j6WWHr)HeYM{!!etxTo_#^uNNo9^<v|Q z<*d<;@c|>3sGhOXghU48Vl&?~MjGb4D<61uRQXF9IX;~Oi{)l*IVZkaXkCcid(N|b z4y<>ZXgG5px{L&Iy&w7D^uCz*2<PNdZGxI3Yl-jd&)OFm_SG)8hxD^sTr|4<QuP+4 z3{j4cO)_4csa!8TFqz8Ov1qL+c85s^nP*s<LLPhx6{dGV&&f&n1$NjsS@_mUEeC39 zIe*isnC$9|sJuE38&1wI<o=S9I69%04;to)kt$?Md}%j6?AF;^f$DR>(UPJMM}<C& zU#!$Y)#pq_SHg8l*JgUQapiXT@>?O*?qVkz<u37s36#`6-Cu$jkZ5BP^R8?MHwC#o z>*%-N=9qb)^_X|Q`Eixn_0kh+Bl_OXLMP@QEI#AHM<y$Ei1)wjGoX~2RWC2@CsfhH z+p63mx*w(swUQe0P86$9JB_EN+DU!ZQdV}#T5-mep96#@nD(f4cL>qxO?35EM1?tS zB#aZy_SEkjpbTtR#F}tpB#M#S6nZ1JW3GN~Mx&FQ=_E{92QCj*yV!LaByK$CUu$vw z!V{R5yeu7#uZ3Y{$A2~6z2pS_TFRHYrkz~K(CmlQg2_wQV=F@qaT)7WInZ3eWefSV zK(|-~-IDi~wlKp>WKD~ZND(_pwC~!O;RYWzIBcs-`%dbc*@Vnhbxb?t93U_`%fcy~ zGN0w+cmh*UjUB_WY~;QyI*V2LZ%mxq1keX7Nj4$n?axkWLRb-Q;-AYj{15#lGZgfe zPs@X{&t~?*o@G<?z<GP5+t?xfUdQfiR9$IKy44BAmwBg5b1kKHwM9H$^-|^Jrbo!_ zzDWYS5LYocpO;>A6f34ySF4GZ-uk|i`XaZkpUc<g*LARtT#{Di)*bD%b^Mg&EH(>s z3fDL|iwzHt0;qw9cz40e!GHTjpeG@<-XYC?!#;sEaCoZG%&28_wKloVrdTW!K0H`u zUeq!>rN^hH$mgxrq0Sf3Hn>}Sf9w13DgsC1hh|^0?$x2f4ND@fgwX{~p;#IozdluN znBqnk#d}q7Wq6e=V68NGb{R=y8Mg(6Sg$RFK1u;-ZndX{y_n<fX4Z&9E^KAjQYD#~ znPeE5IH~7r`xPx+@h;|e@~#hGaX);2dgtf+#T^cmz-E-o4^tt#Eacl`%V0x3DAxH~ zra{>-gIOb|vI-4H0g_`ZEybwOZ)pLo&cD`fa}HdCJG7lu6Ao`}yJ1LF&{4&Yi?HQx zlF`IZg?vd`9YWm&skZrgx7J@cO9=Zv<cZ&Y_~UeODrwP>FPG&Ua7RharbL%4<*7)i zt?>D_)vOt4yD4|P_bxRv3Q()6>icrW^iC@Lil{bcH#VW%GuubAolHY8sDX~|o*h(` zig(;#vBYN}B~!xx$5E!Y9!#MYceNFjLvgq`5=H`JtKoVBamq1A;wn*RI=#QbJDYxB z<X5BXwgYrVx5Zq(+mb+48yd!iw%oV3mmhuFyW1t*QMJolrqpfG$YnucltCp&23OWJ z@Ltv{?^5}YPv75{@rwJ?#L>w7l=08DWYa23)OQ8CLgd_rmpeBfZY0-EiMPvkQ-_%J z{#(B6Wn$GFmHc9{m6WG7dd?Q_zy;V7Ufggv3y$K{728n-H^%BLRmc2NC`Y%ekNSRB z>M^4kN^uJ>QAL$h<ql1{JZ^xEe%I<!X{iXZ8-4pr#xsTzJs*TH9IVOKCdw5Scvvi_ zC9Q8YV%(+0<5TFcbfwD8+*qxW@Tb;d8xL|vbofrtyy~lE6ZKa_{N(TG=LF&63=^es z9}N=4xASyzE$WK-d+Od>O{tv&YM5&})x_L$cI*&~B~0~ZBc^_v3I_4fDC7=oUolb> z8Xm`;7ITVAD}K%_8FyW1`PFZ|dVIiDWb)tSBp0scZN-5Zej>*yUfCWmXM^-09S&ix zHSIuAT!S%+O?h^&B@ei<76!TQ_fa(qBwcULuZh0#oFXT&Z#j@JHLN|UV{xMmHe!-( z$t+it@qwFuqLf&wn4@46CQ<+X$BOBpTB>@Ez^wFV?|$QiV(naLQl|~4*)^E9L0(*? z)}V?Ow^S)lL&`*UE!++(5p)hjRinSAoSg&ASku~ZPwlc`$HyC@x!OVDjo2{nBniJ% z12-wITGH#uE0cQd4b3AiZaZ7mE<rv^+E;VlV~eBaZdK)-y-zFjtI^q%uo#*en_S(m z2cz{WCMiPBD%_zLUHtS^6lMLkvD+pXE?>2t`FVyRqjUbj2RE6GALc<wF3O;+`&n#{ zWG}Pzx2t^_#!JlatP?qPprfN7V3Yazw!UOy)hK~|m`~JAwxcem`pf(;M3=QD^Dfum zI}192e2D>3^}4t3GrRi)dywy*K25V=FIYj>^Eo5L^ChZ3&lr7>(!t&&j+eWMWQ$v< zBOHF(qJ<nLQwmtLzN`$BXs=kGxlbp`9V^bA%oKD$l4YNRN{I1`t>tT)Q-C8R*ZN*P z@?=P&>bl)ygHCmZVqp&ppH^xo804AH|44(W&ch1rcMqE__QGOKd-YQ>5bBA+eT#NJ zLlJc`^sp${=y|t6V6*$1i0+~6po)|X{?__w*x7B0gm9ugom0W^=-<wP+9kx*C-U0J zGW=mrAA~Ea{hd*G*ZA_zs;L~aEi&NcqwF8mgS5-ryY`3L^G>*v7)DPEza(mOOHkUz zJ;xx+_lO?aNv_GZ)-b1axb)I49=2-7h3zVKs?&<IwXsn$fHsT`!<txOdCz4<^~(Fq z1+CWi>HJ<|FS;FkO-}nMCEcOKa8|oCJC_L)=03v2s>Na>dRI%*`%Bt_N;#crYE504 zYSQBF4rx2X8bT=Mc!_d33H==V<1{mav${3tbTkE>Q4S|h$9RsMymLyTxOA_=sG4e~ zZv3SBSz@r`+kZd7{FSEIzEGUfjdf)nzQ@=d24_4#AJ$j&QFIN{_X#vR#Fsk1P+||v z(6V7pHkq-g&=WyEkv8Jrw_~2dRF8%bzCzW`)23fam#DBwwVTi>E3HFJ@rn-)6mD;9 zoq6CwLPgL`zvlEi_By|IPsALO^9dOkWCu;!>GoTSy-&^-o*Yd)GRDFESV&ApSUD%f z$aEgKMEL*{bs=X0b9^+{UlN{Ge$ZqW%C(7=Qe0y$^+GIbDl-pXE^V=%db{(+yO>$C zY;5&MR^pKkD!!q4x-ACda4Q-@!bxgzM+#O~Oh4h1F!NzKIX(bZw>6(w{4GQCt6!*Y z)vb{_d2{o<ZijW>Q0|B033wfM#8!10-`^pA)M2Lh;b}Higs%28$5-_N5^M}{f#zas zo%Qb4F5Gk&=~?UXr(*A#rd7Xn*2BiMt#)@gsTTwg`~hmPP{DwzN|Lg`5cARGZ!QXK zlVVb<jwa;q@}13`hc@ulZ-y$)%&D(2Xv9u`jwV1W(HWCvF4v^F8Zj|N2S)L^8^R{u zWEQ)LE#us0=MTsIN|rqJysNK{L&bOATcu>%ZZ~Xm9gL|=me!ET-k<O*wIX9v8ux?Q zC<omd{aOB9&jcm-4w^1Y;_`|;5wT3ZQD(kO@UBNrUZ9V5BUE?E>w2W6X&0HygoRyT zrM@?8UPI+@YOqCKz?~~>`06|Qr-|y`#o$*0YUZz+O07O`Y+Fqk&z*e(GY}cpv0FxX zTM1*kYJ^^SpFi7=rqX{bBrZ>4FuIuRkBwPmpe4-xH8jutDp}gzByAw|nd((T`s$wx zBN>F5HcbO^xiZgW(xg3mOgd1h<IKyM%gJ>?b*szqq1!&c_SXWUzBmQGKn&9;(Woac zX7`dC=8F>=nI4ffsm{Cke7;?_G*L1%V}Yx5IRO*m1I2&;VCuB(tfuI!z*i^UNcWT% zJAkRZi>_)vk;ILKLBc5lnLa8IV~AtwbXZSWM%%7g!e!7uWLl>>hpAlR%HYZ}yWLPm zx7FD8hWb}|Z0MLSH!ozp9^U?B+KCr#hLsIH*fZaX)-l8g$DLB5NB77SNvvZKl-s@@ zEP*jP7@d#39+c}cZo5%+@s&!wjbS9%$Eev*rjFeu1QFJ!J4^^|)$Wj4^}IPM+lmc1 zSeTJL96x*0LWvRXW4jtg3m2@zgwDsG$OKxW63}aHG??waZcCDfn4`}2nMTX{DTU9? zR;|bnB#^6tCyT-naD`mvDc{-3fNsh5Yp4-dS9iZGeiD{I{8Ws`cFu|8Eg0j}lQs&| z!lEoxcp@w9lmZJjVzIIJ%%hJn3fz&l(Vm)NxI1r#pjw3%x^T4529_o(7Z(Uz6qu%3 z#0#y~g9#L*#!mSw!@D;$Y=ZIfAlpkPCN4%ektrM-?#pnslL8sqxKD>=c3r0Nv4R*j zyhlNLEQ}Rf+!;*#n^-%EQiT(vM@j{@T^*AhCKy7JBe8EdQI|x#i3zk*ZAIuk{^?0E z0?tD#AxwBTBuarCgXq?waGGbuXg7M4>4X-owa+FNF-g@AYL6+7ZwsF47OtDEAkNxf zo5O;)ercUm?B;)W_Fli^oVnbZE%P1c6UjBTgVZaVltU*}k_DZubB#_JWV%f+sMr|g z@F9Amr0;PKNSCPfx_doU)6Sl6nJr3RFAk|*J;IS}<~cVf#kV^IjQYB1pWQ<5b|byG zvWl#%1XQ#%IzH$b)jlyyoEP_gqsS1AYWGVFXF20}TVHP5<g)S2Y_x&3z)^=xQ9r`H z)kRw7p$BThxehjK89v-z<Um_|IDA?C8IA06VAD|jRlYmfdC#i*89q}cSiC_<3LU!5 z3_b&`K(H2Eg+PVR=$}~MAOE?w{I!kcEayN_WN*;HZ(L5r`m;+DJNa5gWGv3!i0~~F zw{<=Z>3wI+eT;9}Xd<JDA&pgb>E<@Kp!B-cK-&D^hgmJHu;`ckj?4}isi4pK1Kw*r z6J5OqNVt8DGM!OYlKip#WM!{R`M2Hh#kOBU`JqUi>9;UOiM&$!Qw<F1T(~2wQL^%~ z8{0ifx!%z$>h3qY9W>pKJMANqbk?O+TK0w*%Oj)I+ZN~&^$mDG7yj&$^wUlpH}fzx z+Z!_%o%!YP2({*^)b%yhxwpuJp;_!Ey|zfY)e=Lq0qTA0v{dh}@@a`IIbz&p>DSJa zY-|dW8f9yll?j6A6x9a~<8|e;Qm@Vdq;S*|jz)h>@7}RZn<3}nkLM2=k9G2iXj_GD z4!6}uRbSQ+NVU^$V|*A{yp5i!tt6<Laqn+CK~Vja?VLCVEU?jr=m3ovFF}J!Wp(iL zG6##sRQr5s{<^j)ewX{(XH2-SVH_Ca$6)~67t`MLU1DDsvk=)vajK3He)97>w`PjL zM7=PrlLGmqxDNSxvwMa|(Z>FUS=!D!7nlpwk@ZDcYtP)<PO-uJ?b8mpsVJ#?{ms5e zBdybGPg~^$ca`}o)3V%V4$Tm2-}wwmKa3Wux#)?O5?<~f)DkkLABj%aT6k43Q8|7r zd;hFTL2LjCnK3t?QlNB^5Jo3;hg0~nMNct$bRl9{xgvU-Jrd=>)nJg{=F3qXGUv>d zJmhBJwm5>#sUesx!WB;9JX|qQ?GlDJ{*#T_dd=OZy=Hei?c@O*ip^Q{Act$7A!d<% z5vR~ak8P6KS1p_v4YesbmL(U+#rmqcM@z5EstqHN=z=^4wh&m&Hl9;WtcRoXwq0pM zHF_RJlxwLyVD>f=|3`fIY}Vn72%HO}ddf=?H>HPFMe01QhcKK<A&>z{s1Mlu%1sDS z7=2)uCT9KvN(z3ZaLvpp2C2iaX-x^2hb}@WrcDC(PIR%RsB)3yIhSUmtjol20(TEr z&OQi=Ay{St0}kQn!G?D>=v~tZIsS@uHi|H*z{yFS>+1`|t~fz67Z_CN1@cq<HnIM* zVPo`Qd$gcKJ%+%FXQHn163Lml!H7d6hKCqxcjAJZV04BXG)62&*Dvu86Lw%~d#uP$ z!n<_h8GYc+b?EklHZG@T;wT)GLI#rF4bIWV@D(nLJ_mXO{O83ox~*<ts-s&%p@o5p zn<i7+J>NeOD<gGgQx4<9<8Vx4@BlQer7)7jMXN9{r8iTuD=9G`^RN;*4W1IYmedVD zRk%LlRwrod;z8~lEWEXfF7EciYUtLEw`f0y2cuVBW*Ae=2kPzj0Bq%JsQbni+kVED zpFe$jbb0O>&G_P8RbDFk<27YK=HJMXy$$Hqn2Lk%#yzyb<cTgQH~%iR(fW2ubC~~a zm*%02*J`DMd9dcHYHE@aX9-4unaOuTDUJbN;%zxxm8GrOp7m!VsrU~6h6Mk`@hZg% zH;zOQ+!b}4y$N5;TBv7>Y$H77#%h3B#)=t3+!0O=*Jz$-yT$#?+%n#15^lZ}PBHgw zmW>Qsto#-?^mMjMLSK=y-UU%-G51P{5yH!U{AEh2=aH9J*GQp?m#>ZP=K@FWLFsX$ z7UvGLudNlc0pqw9H2d07XD%<=pF2);ZXr(O*H5W<x)g8d^#LOq-Ml9Qn1`kMn=hHQ z42|@94fLGh*>4l`2K~<gj&lGdpfl@;m$ZdE5lC19`Y`s)xsPix#LL{X;oM_fEq&eJ zy5~aEnKJoykNh%g{Qc`g1HLz%4$neRnsU<G&F6qw;Cy*;1q<7jX)*OSw?s`w=&s)Y zbmTkt8BKTxb@*a2gg$(+D4aA*61#xf?b?mT;f=S^2X1zS(T!9pFbl^`4m^A}S;v%P z6q2ZeyY3cXnYFEJVScO|njC1mXD-YHVP6wT=rxUGDtld!sWV;5^ZonGSn7gu<x%rK zBrWW@0<}Hsbw>tP{2O0t;WN?Dh+f+}dV^LJvty+(rHZ!=jOa+Bk~s2B--kR<H#SqB z#a5rv_TflKFiW^A8B4p5bE&XO=q@C8QbikYpi(#P)?`%}2X_MFrgrm)c)6Cu42vj^ zGU@u-!}uWECK&gLp2cT-lI0q}@a>SO^Q(|2`HbG)TJvRDt=VbGk$E#m9@gw@VM+6s z(S7lz{-Fsd(pmWdzU9ErCU9}NoJF%z?ZCjv)ba`=3L0)nUhlpao$@=wUHj(%u`O<v zMHL(f!P~>Kw%8gS3;Xb%jxO@BLu2M_-)a^wF7Y;H4U(bc_V-3p&gZ~B?x;~iwypT5 z^{HBT40*vVY<Xg-YD#9<j420n(A`B@u25`d+RUu=1h*01K?zx`0yqEdi^XAFXK%zH z2@o;`s=!MW5i@jMp~i|C$T!$l$MF?R;W>~{>9I5kLGoZ|n{q8H!kFt^?l?4jVGTh@ z7ZKfIdzZ43wtof1ZbqHAmC78N?U3c|t=BHDo?*r>?gpOou@z7}k&{IV;YVR!(LxbR z^C1a?Zx1GY(d4(Itu^pv^t;Y<u0#i9^=KI!K6C!eTqc}(4t(_sDc-05Z#;boN6?+J zXi}d89rxSlcPy3;b<zC1KW#9=s3~`u)$AW$2|mMJUhK(z+*&6KMsG4hjqAE4tKS@) zg^wZfhU?COSpBRLLzuymYiH`ZR52X`RGNQv<-3MP=$9Yii-~M#<@QJjT3`5yHFX;= zTm{>XVM7j;FH*$CExHIwc9@07RJ(dqSa;2YHFyZInMSK6uMV|3`FD4aKFE4(+gm>% z(xL#N;Hzg&dvEk2-ffR-)>{koCAy`)QT$jq7fQ4C)+g_TTDHg@=({i6a=}^I#oYZg zPUnDd%g&FjZRiJu87v0l176FZU8mxF5z{A!_G3RGGu(I23hN+P^LhSBoV03qp>s1) zB{Jj$K|BqUp$;Q%8xzd!M2-AtX-YqEXflr`p)|0Nz&;)Q^d5$U!X^`#p*$+aR(rMT z>U@*6!3_sS#t;Y+{xoK^kHS1Iu${&_8UvS%OV^1kPF5$6vXFN+3EnF;68Ajd9AvmB z$Xd!@D(SQf2ha@XKt#6c(=d*(vE~<NIes3~idy_1+o<1S8QjiFi?Lan*ch7KSdU%t zL(Je%u@BiH!lyvh!&!jy8F6$FY1vR&@0#jKFnJM|Q5sLdoDGY4cGi)3!^V-(n1-`A zM#aW>EkmC;!!!KUKDFr`>dwoVS6gq+Qqc;XIZ}Fwd}2S-a^|u|IDK>SkCnh^Tm&vo z^-u4B<s;B>0N>r{bAYNP0CQ78_#1X*-#DeWL53v-riJ8ffsmDbBctVsL^xa8I%E&g zM@L_aytH_H+-t3YM=ztTH6%3Z%)9TSY<@qdYVv5TaA$Z14q)<SG4W@%(V^*!BH*gS zFD92^Q94<#N3Eo%lz*=*M><oj_J9OO#%yRE3uzP@H)KP{o)RC&7(r$s)N!BWeiQAJ z$G!GLcew|)!6b#$C3T>?2K5N@&2XLez4oH9QaMD|(=>kd{J<Udr$wk#-d-`0)NE)- z|L372wUZLu?B?e1{^Ea;oBrQ?H31n;!jXfaAT<sSDpaeB7RFVy$BUy+mCpfo!gJtJ zUHi`pHC#?8**WlI(jolN(yskLKLt?<&PUklX(rqDP4I4sm;(1YlO}jh7Pkb!gm1?z zA~dUyg=^SOxOv0ZSHc3qJHDNUja%0s<tVTZaU4I+0dP<6g(Kb*U%?2yOyK-kFJ*Nm zf7}{&4s@ScuUQ9q7E_g+46crhfTK9KZmk?J5xP1FLBqJ&$j<>cIq;^k6LF?;s$mHi z+f|};45>Sr-zzP}gllPuYF}+j?_9}fKMO5<zr29<KOTM>ZmUQhj?%znodfEp6dG}D zq>$lrK%*!aq3DtHEW9f<e0?wGlu;H``5f5pKL>0xJ|>;Xp6XNt+F_f9e;t8SOT8?Z zO$%{+9qV-t*vx@v&qaG(CvMemA;ZuA8^2FE2NWP!nGBpBCwc%ksQR(}R}D^JstZGR znm~8<Wb_;ueaHRF@2BKBkYWn%IHvu;-PnY-c35M0M{z!+1{{qkoc4A6-Ye(83o6Bf zYV#P619>K+a@sTM@XDR)X2(Tq&7Q%&_g7o1yHdex!X18yB4n{>0j<Io1&*k`N9+Q5 z7&~@<36iA1V09{kw#r`|5R~jR<BmBnw^RoOFiSCUnJu0;9Hi;g;J;VHwKpRtNtS)M zBCRQUrB^RyMA^+Z(`~1^tX(_){c&+5PR;>G1wD?o&iH|q3z+h%W*9bS;1iV8&XM)* z%^t5SD)dK<xykMXdz?~{;I3GrPjFYF^5AA)TZl3Gz1Gw>v5gg27nAWSIm?2zOoQh8 zZH#Z*YZ{^l#U2?!n=Mt;xPoSRm*2epG5N~hoU~Q@PTCH5+0(4m_F?|a&;OwP1!_2f zAtOF8yQ&Q$(7C)fVDmI_%{Ip$_pU$u={4t}s{`}y+wXlLh$O6Rpj{8!JNk2=guB;0 zG<@`wVt5IArelT)%*dKX9_M^tt=t8}vW>?_T;{LqFd->p_phI6=65Exe^IwDjw~Fr zfp<eXC)8~O;p+>iP-quhPjC2CGutmi{gGebq0y&|uA~!kl+KxCI@_#U=wlrG-@mQH z`!Ual-9*QCuyQt|1LEaE^47w*Ym$)Jjb?&d86+VD;S6xUQ1k%O?m?-?Exe`nSVp&V zAQCRSzXI+z>vH?=aJb!Ntzx0LIlgCre0&^1&EK)XV)|h7y?XAw*Q6o4lunuMd3iA7 znY8+bJQQr#t&YjqLAXq-7}m(xvu93Yq;%*eGK$($@xQ<K#+Lq_;SENdeW1~NmUXII z7r8{n=WJx#-QnJ_hvu)jGPUOWKR9n?)z27*RTgfHe*f)5M$#+qFNQ&EqCj`aYC4|D zb7?%2+~|0D-(db$*0{Qq&=fcR)>+GsI1liay$XR=g2Y15dPy_poeQjT{1`Cnx0BTE zlEYcS-A|VqTpmS1<dS=%wW)ce#c)aZnp(MPNYO^aL(UdVU@lYOb|&o$j=HqzY3Rdt z$g3X{Uf7bUC=*46&(t$%JIhxLLvQ_be)C~u*X~z&hj4*{Ia22e3hTr0VyRZ<W%dbW zwn_u7i64F0H#u5HvE^+q184}614nK=Sdi6hooj`6RxpMmOSjZG)WRk%uD83$TQ7a+ z!2BBMRUn$o$J!NPeYDSx9;?O({j8>hwQ+tJ7iJ8n&?q@;<Ii#;pu1xpACNB1+Ei-C z{=C%2i+T=Gm(;~w<^>ZQ=WMO|+3@QCa&J&dyLz;tMQV)i3lF-G`Dy&8G8<6=c?&HI zEoXA7w7}sjMwL>X6Ru0V&STCajgq@br`P*%S0i47hI$Cc!x;DFvSF1f;Wy%u9`SY7 zS1e%7!|`J00L?&!S_MpWqjQg`oP|wQ<Nj}VztZPQzZwX7V%aVjA{{1ew?0)$(y3ej zKFjNAvb%)EI}eA#V)OOV)8!?KNRx%jqH@K;UqneI{LCdfCVRe?M&-*;Ch&fKVw~u( z9K=^z%+Fs`CkNhh=7UN41$y}O`hG9l<x_SP#bef+*e=PQBytxVdt=K;i(4U9OU&=9 zpOn~CeJ=kQiHXZplO(HCy5wU!lDhJYPYHb@&#a9yWPDa5Qb*kf`T2_nxUvF*D<yV4 ztUGou)l$%TnoinetV#(y%hk0?WWMhe7(8*Dqwc#LctYp5tNq=h+;X@F!ZNb}+T`o6 z#OO-&gkZb9(g~~iK+z^GPCi%XDR=KSCUmeT`<DyWd!Y;RZSxHUp$^Mu%f67qhVdJL zxs)C}9=8g04x&1x0(p3p8&-M6X@+tZ-qVE#Skg>c>MYd6hf>b7pXimLb`Sc#om_!7 z1tHst&vNH)6*!0bx3a<b;_st=8b39z4X?CDtDXZ`j`mo{V#-YQHa==M&YBHQg27kE zwid!gN8EM<eED|?X99yayUhCHY-6^MW^k20Zl1rsuf_|AoheW|*@yHzpc+hHp;lNR zNAK7iG&jLnt{$gzQ>p6}M}PcU`LtV|UfmF5^7LsUpLZ$G!>-Q4;F<&r82Hswr7FFm zo^?VXW+~koHBSM4=b>3nlcofopZP%rEYOE#wU-x>G;|u2rr*^gbh6T{)Rg-hJ?0R^ z*oDqE$XD>tivt~9>rv?xVUCfEVZ_nzxJ`&J5C<ZR(AIH3-`{L~GP5Gv%GM)8Tlwa@ zDhEIAl^suPKf^QCUlqGIhNOIM<310e#c$Ie{r0(5IVQW*(0gG2OEDn=D%CU;rCwL8 z%983JB@oJ>;&DVDD_zpBeh23n^}rxWj&qO|rt+&gm@1W{zP35r!a7rWmm0hQwO$;M z$JfPhC;sFogY>WpPQZ!t777QPX^rPazWyAhabX;eA)C))S#GT=E&PUM?}^6E?`inB z1ms!6YN^Lx2(m@cMD#v#?tLan64x=A%SI9(C17~9DY&+C>Fv*VF9kGh%x<T?#kOz; zOH~Nk=g6tB*7N-=lrg-?tyanpt^(_QcdD}Vj4k!G#7By9i;`m7xB}@qgN378R8ee{ z)9cM_33957)t9jzdg-$7-RgBH;VP3Aa<Yp#A`%UauU=<#o2`@<!~8`pD`*#7Tb}T) zMt<Ud>FCKq|GcU~vHUsxb($krTfCvEnOXCEH&?2NyX61Y0tCyxw7Ml)eCmfC6Yh1X zjtx*?oVfM&ETzKNMOKi)ICn|eV>;sS83wXVC^#pX9ws^Rb5L=$ZxE$~q;WIvIvQA9 zeiz?u7QE5uqmcU>n?hg+?#dlxsALDDM`S%Bo=&E%wD6Q3yM*o>?t6hXwpI|W#UOf; zNZ=&suqe!e>iDS^Mz-f2)&+%#@NIv5*m%@9Pv1BK?#!+S#`m&vPE`uR1;ay12Fih8 zL_C-Va*e`xz;l)qq+4URJmhXY)~5vSGG5=lHB1gyv}EtO4tF1sGcVdaWRz*_9mZ<G zNeW@VlHwh~`v(@$J}{A`tsshL);(dt&^p@NKoFu=XL|4GBi%x+eAK{cD7I9x6B4~Z zAtxA64(G$NA>E9%nm=G2F`^x8*O)9v1%1OA0{NA&`Y5(oJ*;#K%hCx8ozj%p?)B5# zlLx{i_gK@j+!uc3f5dS<BYE7^9%E&P?A4VUV9Ml-L*WFw(UbfP%==Gj+o)3SG%?CS zvQ=Zf=Mo)-V*~xK_bey(OMM`W9;E7-{Z=i^q><Umm)#V%*UL9vQda716lLCPHA<en z+P}3StC5@HHRiJ{9EGT@Z|{O!gY!*5kmh02W|L9q&r2VtHWz2Zrzdwi=h?;&c8Rbg zhc4*4d5OB1uJAgyl=U{bDLJJRX>)Ax!zpom6pP5=6pAjPMY1|Dy!)E9rL*zE2;3Uw zrp-Sf)kTb}4`h1$MXCyM&1OExxO+po7aBQGJH(FBmyA|2D{?_b1){J4c<I<YW1cQ3 z7MhMKF+x@(i4D{WG!(HuqoY_I?K+Xx3mafuQa4!s^tOu9J4#NBc}j>^YCQGr>5$GV zaXsBs=!Y|NNd4f5Y&$Xy;(8;H7;?ET;v>i6Ind*?pl}XUhBFO!@acIaW8ynFc|Lsi zs**IEfMEL;5DS&Vx~N&V3NDeI{`p8Vn8ZY-p={B7WxFtB)dhF;1pI>Q2%7?C9tkW4 zy}85|*&=$Pe9BRaR_$DCW1U;G;yKF{f@=kY`_aW6<iMTNr)D5MOqXpMo$Bv5NbKEP ziHV#0w6WQ^>JtuN=)V{^BTpZp1;-vfg`avQ>NT%up97dAa~Q0AI+$(3itvo126XRm zk^VcUY~9i=@1~<%?OhgK7S|N-RH~;*UK#7wFjeko*cO7ih?gm3fSXlW+)x;}rhoDX zE`jY|)S){SJ1Ytko;%gYv_+r>ER{OjYu};k8xn~U^M(u69Q|l(F`{~zJ0Yc2WSs-} zO3b=Nz2rmc2S3{Ihw-m&QZ5lcJ}Tw$-ox}txR0#1o&!s)YA}xG#_|yUQ;%n1VvBO- zgWk*o!pONJ-XH~QYeMmt!z54BObv7XulBw&D$ZqVvvGG15L|-0y9IZ5x8P2&puru2 zy9bv9CwR~V55e6D?lLbq_uib7duP7&t(o~TYfi1zz25GA>#5z<ReL{GwR>+k5toN5 zu97~qyfx~<L*0S*T3P%+zeU`K2>|OnfJ4|HY4k3l9$6d^9fdFk3t$0CpOMa6?Uv)q zYAU-Y`+@d^a>&W(n#5IZF-4h9KVqy5<}oiTR-7qu60U^+*ks>yE}vk;1N6znTe_yJ zHGCXj^8<_S3ii6CjiUBTe?LjYsxH|MflhM*`W~(N(+qQb^fI&aY7a{hOcHsPV98bT z`N9_}Tk@RhR{UzCRS&Q;w`3l`n!%Q+zh?Cj1m-*5forfvz6c)Q{eb2-JE(wA8Ptv( z(-YxfpRRS4UV=Z}&a*CpW*2uY0))Kk69=y~0JB~$)?4K>JmR1!P!2Ed$DMsOyzvMU zJ1?)gV%Xn2-s^8|>BBS4p1pgKwO%u*PpWcruFF6%=~~){rl?97uifM|Hbz}AXX{(? zFiwQNa-S!F?2*4hS$NCxFwLXN1GwS@vU~Z6YTRdg^RFRME~y-GMtk$FEf8BT;<jGJ z6p2>sXgn(psi0@)=d*roGlPwTLu>D6;b77jbG`)MDB_EA+^*8+VSw#T&^I-7bbSc_ zfe2<*-6Gz^dc`B~?WsIr-@Ob+em8E@#?_!E-}g2f$`>ol4#lCx(rOM<J1>;qotje? zPg9R3bghvMm+qZg4kFB|s*z?8>I~?ylW&ykNadei_GZ_aS5;XVpq^F0bY?dg1ms_3 zd#w^0^fKl?^kw1D-CWci(*l1=jw!l|kW03YAw88kMhPjp&#P~Pc?sy&Aw7M5{1v-E zBZ@t%wEUfBgR>8Et62z)eGa3n%wN2pe<|*AVHtj|LeSmMH%q<o?K#%byWnFja~jm6 zAKy%z=BJ<IuCWrh8HDHRz|gtlY;uKu)ogv%yT*6DQpm1EZM<@zn{n;HJS|^IlNaAk zdYtH6n~O)87DZlVrRCGG0xX7~p+pOUxe9_=EgdD?q0|Ik<X+t#m*KX$9}&qNRfRQ> z9Jh#F^|>Mms*bsIgmGfG6F>B{U;XfbPF+jzD*95gvxqcNkDrY!Os@Qj@lI(C@Jr)f z^(Cwd`%>#m+++6e{D={8s?U@_FMRbbk2bK;3#Lo;IeI%Q^&qVo3SP(nwYf(|^0!?N zZ*xJku)^p}K3z+r`*QRKo~#W?XN~u4W#g*F)(Nh32i&J6r%n?3KU%P!s|{6Q`2hMU zDn{{bPb{#A5w%Vucwp-ovuo8@MS=Ae%<gVy>d=E&wg1EzdL!PO9r|vSV(<H_H1cdH z*C^KRwBD(#0ye1!N{<MQkUsb5n|}Q}#eISF`?L-dMoiz)MZu{%dy8X@&hMF3;b%l| zfdlK9U_Ra>Z9$lA&JPdZN9wsNnm_nR83af@iY`}{E*j?b(c06y773aKk<Nw$5f+5= zub%bmAIn#*27zvO|L>is{C9S({{C0c-@n7(<K=&g_WvK;L;ia<{yiK2o{fLc#{b9v zrTX^}{(A`jJ%s<}1%F2z_?yuEP3TY_XF)%+DEta6SJ(=K#R4MAJUy_0s3Sk)YulQc zS{X4~*&11xu>f)9eh(`L_7qCyXP6iW@Tc<h3;`5KXvn7m3k?kg4F?Mk4+jee2akw? z2#<h_00)PJhJ=iQii(B`kBE+ej*0<Xqy7vN^HdW85*Db4iU5ZIy!+oQKf}a;gg`<N zV5Gmo#NYx^be=-p{i(ph!9W9nRv1u$U}2EpurR+q{%4>SG&po-PA*rsdJH@g^@O?! zEMee&ygvf7{0RsI1p@&M3w%V4283XNgo1$jS3>|22oeen`YF~7E4vd6hLU4v*W+KJ zps0bsN{ud28YD=|!h&B&%bPiEr@DX*6F3<b!@&!4g`CTDOULldlg%cJnWRcfkE;H7 zUXYq<EmtUTQ=7{Z?-5zA6^Vb;Z+~svz6EZv;p)kME8!hy5IR}vZS>VcEmqiQx4x+O zRBHis>2%G+%+gG;if(v*+GgGnVTcO0P5EUit`SWFU0$&Z8gFj`y|JgNj55{_dYWMo zckmtq-PUx8^T=r2Ll`=R`EQY{F>1KoImc?mQQcEGata$N%?lk{of0FcgGO3fc--YH zA693Q<x*dhe_<s_zSh%M@Eyx0*I0!sNKJxbFA0PjZU~{!px4l-ZJ=d>pN|0ZVRfR1 zOMxy7r4yLKbuFVfE7agl8a6g(f?~2Ac%8vU0lhjmC5ZNd@6_gtxfUK`J)^QTvYI`n zlvQ%^Gnsu_7OWDo6o}NkJ?|t1*{WtkN~7U1*LLaRB8>$mj>J7mbmPSV*0r0IA`#X# zvalil;fb>kbe|%xKCe10JG0%>hhRNVxec2sTIl_OvMn6wOGW<(V$~R5t^;RXUJ4uX z8=g9Ar2F(@f%Ouml)pC{WxHo&JfdA%r$}i*0E21MN_>feeuDZi8!p9wb6Qo&;hkyn z@x3b8FCl=NESr}oR3>N-Qy`1AnEoY??rI>y<wbo*L#B$1&WnORHRc#9BjYp`?dbe2 zVRNnW7%QSH8YYP1Z!$Y@N}*Bk&G%sE0$n2E!3`ZFS7FY<cZ^Hl86L)x<Wy{m;&)V= z`4+;%UFEFVV&KeD*X#I;43<kifpCrJ$O|dq4_t3<cYMx*5+khq(oZosr5UbY*rmR7 zxsvTpEyVFo{3x5>>`iGzx1^<H*QFP)(|@ic+ge$^)bUC%9_N^#q4VQ-8=-Qe*L&-H z(lYL-m#C^|V*DajDoE7@>6`T!kl!25Q>0#}CQJCHBMRiQjz=^#>y*ZQZ^vsLviYFy zZ%nEqRxwG71zli~No!?3DAf>J!@&VMgdwx+^B%LOsxJ8wO?!b-@wSmw=Dnp=L@-Za za8Pt+7lG(-SA19jt)A2XPoG7y6n&8~5dw3dFYdu3h)!dExleqHPz!-`oN%p-LLilV zF5VWBy0RzYATdiSy68?9uduA1oxdx-v#YmXiUgh{**HvMe5x{Wy+Va-h~jxSaj<9J zqJoi9Hi5=I!LX@AzXP|i?`Dq$<mo6|HL7g^E_Rqg=>XUIny@uOHRY`tOaN)n+@25Z zI4x~x^G9_Snv9f*I2Z-d?uov{>NPki0U0d;d0GRlbDZ2bQ}Lbpew7VZ^ZQ$^yV#CU zHa$DL(p|HQau_C?A^O&D+PwooNzDr)F^X;y;^QH)Hi;3M2oOdN^6Mw=F^{uPscn8K z<wvHV%U);@=;`sFlrr=GyGr><m;PCk!h)dTU;s_Z^iwGVo$#-ZpL8<lDXJG5IxY!k zJO-w^hKp-m{rChHv#>u<1NWy|{xcQ`8V2e~E7Jp783G&%91{8|B-&E}uz)yOAZS1- zqbtFX8jWFK<FKeW8t3NyRW%oiID=XNk3h7xE@lp>rnagg?s*?2!+gt`D;nR1u10yC z(OLPiI~MAJpgz^`Fn>LX9U=c>X$hn*vXqeR<T?7J<lVmAvh)|Wlv2zf;dB0e+%3Mg zca_Ps`JDI>6d!b03UPx%NoCR9$pYK);!+yZ)_Tp>x+ln~+-^ST#g<;<-`5CbuM}1G z5UfmX7H-9RdY6?6>RC@+C&9p>g5csl1u;7h2i`FC9o%pJu%Srzyb6bwB!CT@=I%~* zeQ(04^ij%0(Wi&DB<K(WQofBx3c}lofaQ2K>UeD@i)|Ou36X8;n|B6#>y+4u0#lN5 z@m^(GHA~)#GAtYmF+nhcXNI6TY{$X5O$&+23Fob0HQz#9Fsp+glGtaMI5ZvwE*3Q% zJc+15nbkmKdOaaprxb9P-Em?3wG@-Ruv!#S#zt*Kht~3vnX4(^sIHHdIs<r8Xm>21 zN5y(ocm0F)#JAt96iXK(twN+AZ&&RjIC~k$Iyc_r!*AJ?H%@b_NzbZSv%rRu!j$ZL zblDjV&Bz>#?L{@kuQA|B2Z;oMkxKFgewsu6%xtn3qKqQI_)#09#-O}}Mqs&GLPP7b z&WQF$opSQ{E}QV8IEI{Yk`6LhzZ$Wo@v`QqK^I&aw5okC<E<3iO1%U7uk}L8J>YKh zgeLmT@yEqnX3PBe%P^CCa;Y|gZnf=Z0*az7@0`}PZ{q}VsNoydle6NRp!ab(!QpKu zzN%O;<e&|)!u}xIry3uB|Dt3{?RicWHQb{6Ca<xM?T4n7{E#(AlAcB$ki_!+`0E@o zL`G)zPp^kQ!IVf2TmJYEeW)9e>qO25<)_}7sWMSax^N2v5|ZnBjc7|b4&pXfB<#Km z-W>iw)S_j;l1)uhs+NvPQ>q}TkQi*wd(3~NTT$teyxce!YD*s-fYT)C5}k?$L(mUu zWy!uiZfj=B48O-0R=T(j7;k0~SyY|sS};<L!!R{t^LItgCA`LjxQl?~(s`jKDzU&b zoESQB;d87!G(AI){efDKxD*@?-%dWEifa>JPSf|K(7Vjr*p}Vsb};Fr^f<CF47P)N z+81y!^Sz3`*KGEMegw_5vu#<uM_E*@N>YdfW1N3bP}PUe^CR|6pY@t~lkX0<RVZ?1 zhS<&b_5uPEH!jt+qr=ULo+lQ>T5u8V(3WyqVQy9|&MspmDc#&!#|r7B;B8P&{-7YU z2(Rxa=$rn+iz*=hExbh`%b7W1KVAO?2})a0xuB<VyP5!V${2Bj!BTyFQJN%i>a^EO zT$WAO@*&l|q9R)wcnys-b3<g<gDCFr*4>v$v>PgG82^&goK14#dbIAi`1Z0JWh$b0 z+5X;ZWu}_G_P|GBbZIwQG|Yx=oI^b>S(WYV#Nph%j@Z<RpG8C@R+;-036gp%6`aVy zxPJz*;JLSfUA^6+%_Qa-a`S``H4<`Le<gvlzH05)S!-*n()gr87T8p1mAe>kC=yT0 zBYUBFe0!4e%_O$_meTh|TB_-psIvLxy`P&C(1zU44BtL;4$+4gYX|v=cJ-;}6<3yO z)1YF4TNr#h$IZHOw#sXnC$w&=t`CxgcHaeeA&YdNZ3=u1y`<xLZb4gGd`Kvr4n9D> zyd7>%XvQEho`S3c99TngO=QS9Jg+?h+eK%6hBzUvAgUasl0%L;nq9Z+;1Ok&SFiib zI=DJ0Q3~9Bm(-OilFVTuBu(O6nUyCbH%lImVbGK=R6;@$))-t&z@$8c;FPOh{~PwK zTYK@A{khmDM#SO=Z+p8)Dx<6s^PG|#s~K%5F>BXDA4ieFROKN(v!c?{BI)FU0ZP+U zjT6F}KkVMG<czAT1_@Ju&NhepQ?egtGZz;tI}7KhtPut3b9QSSs6LEe{g}>lU&h<( zz&c__*V$q8EaVLOf+(WQI9mM+$~`*TMU`vgDcJ)SsN$Ttor!i&PFXGTAuL4;H6?b$ z(W8VCYxDB-C6=CZt}W%q)rhGENr4S*!&2UOpYJigvo-&ujmb(Dgi5)#!SY?_eJvNq z#&a%a9A$r@O?hj1I(=6{=e+D^><kndJ>vl^)-lKAQrJo`Wbc&n#ixZMx#=6&oGdb> zDcyOsMJ{*P&tC3BkKk)@5ColLn;;?j#CGkMvhY89RANJPTnZ!@g>qajfA?x)J;M~o zj@H$6{3_H-Uf4=2fLW7xRHQLO(J?^E!v2kXY5OPD{!X|397TS)JFBDlYR;P<s=TVl zS=edYism+;EhxsiIc-Tf_z=0NqPlH(-rbf&?@4obmoV`zH`#b<H$+5<Lnj$J;yG%= z;Y*8wH^iFhQ)v$S<z|@F`o#f+Rw+K@;&z21xe&tHf^s~cofOz!&~NL;p^r@~Ytm~m zY7BG~=$X8;mNj<hiiO~_<WjUGvb4fST9mgm+cGmTJl)75Ff%c5IANlMrGxD^4D_D4 z(b4ip$Qe766L|diT)q<~(2CbYa#iz{HkkPvVY?Va4qOxYj&5mH_oy1ow*x4j6g(V8 z!B9s}G<3mZUP9p$Ggxq03KAT0o3tC^OH3tO)1OzAR0sP`YtEaCdOE&T@0*$>d`KR@ zFq4dT$@ERrg}EfSB+J;5V_9+;xze_%NmVHRk>?|YJz%}NpJS0J$mg8CC2XJ<l0bVB z`W9LXL*G(bLg!<;VuVGoZ*x)J7S5X%JbkB=qV3c*M?+kB+_~lIGsGWkUudi+k@orM z=Fs&}8Z(1@--QQyx_3DRBHy6U<71UKq?IVPF6#26yLza8^BVMOwhC{ZL2oqBuYRWF z!*2<Li?U<I8u2BbD8P$!w_Sp`Z^>yUQ7BRmPda%_(A4{KxxVI3cI%KmkX{LX267O~ zwK)>E;*!JF8rvSL-TFa!G9jAtn6H&Pt0Q(CDq?)06E28M+V!nJ$AQ&^e+Vz{=Mm`d zt;HiS-}8!B-hT%Y8wo@qoWgO+`njBCn#z7qyr0E*H-@h)8IWC}W@6TX+H!B<9X^~z z{Yk=M4tq<~JnL(P0V|K`QDh4NjrFmH$XIxS#mDbd2r!FMtR3tI13Xz6>QyEA;hN=& zyRUAgXTS9Ld0W-NONZa56L~VzT}Gf{=l5;q91&J4n~2=W-;bP*YpD;MV8h@ktgL9t zah&e$ore*Ew{H}L;ETg_T6xqv2;CADy!U(BMfkV0jvIq@qEE}|D&T<$P`95O67FWk zDt}S~kzbW$x|vX6j@&zcD4w(zC6OpkBMVcuBO2X+jh}soPSE{q7IAyA$br@Ku5F`n zKBnc-`hLg8@r@+35AAL(I+RCL;IRtr;u1#$jFO_VuOc>o{VFW^^uoai4JY0WVL^{z zsbR0mnhWh_q6itq4qiqcI)sN^G;XG}Zl4qnmf(d^?if^(tbMuEOHU28%hmL-8EUR* ziEfPDHi+!eQ<eZTH2x9FuQAD0V=R3nVv|BWmt0=Q87vR)O5Z&aTeygIF(-LPw%U*@ zV8+Z$U2l|AXV~de#weX9V+@}wyAWj8VxR6^Xk~?ieN1uN1;x~_LDAVnLLGh<WOg?I zI_2NH&F200khicPkcIHifb4&Co3o3jjhVBCm5Zggxw)B%%TFCTsk`8u&V}mNk$Ovn zyQty^q--nonkX7!XSHS2D0cqB@|hV!h+vs($H4DB)@R(vS){X-EE@zXzuUs4!DtTq zM~_I6E#V@qoYi1nPi8klJg-5N)t2DfwTs>ThCS1!P#?51O@?`@)F!{y+xw3nTRf8m zgISz~gfd3l!#+B2dS(s3%pacnENRM^_en;rX!;sKL7c2XA0~_7Ky^2!Xl(#@iK6tx zG#TuBVJMN<CiW_+cmg(D6(%2Hj6n=3T93Mf3R%);+%vuRZ0MdBB8BeNq-{%-7CA<w zCx%!-!Vi!)QC})j-UheGt$7+vr8Y=cr3QkZzNMz43jBWH90jwvS*RPwfykd%pmn0; zIVai2UB)SG1`Ge5YYuW?(f&&k^uxDAnoPDv<9&wIR-0w5OT~Z(W-Q)NAGlVTXRFa% z-JB75U$2CzCIzB)(Wy*C#Oh(+Lx=~94l5^EpB!XurTI`EpnrSg!!em%`kivRjC`Bw zfT#UqEgK3G8-DhhdR1C-4I}{HgcjzK`8nNSsh0-pJt`Y`3@;Dag8L`A_7j1@hHoLB zMS?|~R>w70L5vzSqpTL3IH@?0A3tdkQ@{%?Z(TZKHy(+F)A?mX<=q^qFc)RppY`mD zwu}#*gnvTuCu$@^O1lp-Lm|~|oOrkKxln!8kPh=$kDGF>j%cWi1z`rcLg=syYiIVP z4VyzmW@sk7H>_c4xU2~#6w=bn>WUzPYQ`YZo$(&XZHdh=2}yA0=#v0V0~Mg#XupUV zD1!%;4YBmD**g(qO>TL}kAvkQPRdX4;Svkoo@7jAjtfRmH^by}*YM-n_JEl4v*liq zw`=M8pndr0_scmVbB0w>cqO^3%N-Q!Js!8zgA(w1M+B3P<fz(h2S{vF*lI{ZO>}w| z_u{SljH_yXXo{A%H>-Iauw0vGQ(fy46tp|SBS{wVRcRP?oK(u{RhFhoTj3JpE|r$+ zlE8&DaA7J0TzulyU|XGQ%0nAXpyl)LQTvjI_d2k?#y*fQC~vycB_T^y0~2aXqF|K) zYoKpTt-A8!MXj!#2DhAA!NgX=28%+H0KS`tsr84>I__(gL>n>ePiV~uCB=L8=iI&5 ztVqk{vtZ|g<Obc8d?Ez&Mx41v>k`53vY9&9mZXE4k8<2YVjdp2KNKr1G&>;O)93xk zG8mdNv$*UXU$;<2-Z2V?2ykhQe9@8JL6;9-@s!d3fbd9jZ-}2%Ns=Kkij>XTr5h-O zrO>inh^*v{;jWzvA;jF7h|ms4ot@M1g2DTmrw{X9?#1gO?|_FQ2YwZS&HkOM+SE<5 zJHyr34>M3+KlIBK3-@d_5B=p|HyZvhL=a~6ZwssNMwim9c0U61;rYRj(%z(Wl1LcA zAH$;fZH0-tad!Jdb)a&78(cT3+Z$_56=-$AN;6Q6)Mbk|?3qH(yzv`4+b?OEbDq<y zVAR3|tY=F)N$%OX#q=33#hap6w&G=Z*y^>0M)UKqu1$9d$@=c$i6BZ0piDvMw84lu z$#<55r{B^fVRj4%@HB0-Kd2#2L=O++*qDD1YDH&KTp-Wr&~~%;Vqn{&1Pdn2F<&6h zsm@n<Z}!0sy&C#`I%Iir+1T@ZnqsF&<CzhfSbjKEx@RG+a6;X&oM4u?CzPObsvmZ- zE1%Qf^lm~Am8t>ntYD66_#miK*n^{{<0H;tb>Jnrq7-I4IPro!F%-XnS;un%O=WVN zP#Uga%2Q5O(@mjOhmhEVe`Q*i1N~R%H9MW)Y6Iz@AQi58hs0LLnMbD+%A9J5NpgE| zcwQcMk%qUb;MlxE>~u1VkaQVcQX$|73F#)20Cx3HfssTPA#;pAr-LT5TU&%f$n3$f z)A8ww)d9?&BA9>59UaeU*JmKV2#M+TCT(3#$mnIUL`m`%tmZyws+!IdqngR!bpj_C zY%w2BsL9x0!5`KakXQ(Sd%n#ZayLjXLK1WEYv#~+V!ZkGQ{<St-$h=R`(zAL5@J>w z{e~S8xQ~h1>kn`USa&okS)j8!^ZrYb&-is38Kv8^c&wzrcliTP)FJR3zN3@V7#c0R zHzmI~BN#lKBjE>=LBI>8-w|d%4phEGJ}|y4rx5<E*hzzkslVgfrNfgX5j5KyCLb`@ z!I1f-2&||ES!MTV6X^_BZ7#UFSc((bKkHfroSs+8vrbngP@QxkNUa`Z)W6Nn28m_M z|GMVz)IaRogDT?Mk}ZO&2TEvTHQa_RXlTgnHF#O$k=+mC71v81hoK4&Rnw(-r82Gg z=%wu3;nqOjG^+E_bGai7o;A7S1OX?9@Gxr?VarjGq-M6D*ov-nRWFD|-F^YhM%v~& zS*H7!Mq-_(GI${d!KoGT7p1wnTbnzkkyzD~)`cg!;s<*wt;Er31Q?(lMYTTfNs0O` zsn#fU7W&Hck3|KQ1mD8kQsOr&U&+uY@-I}*b-LByuLr`478<t>7${7yrZ#QHysm(( zpS>?^*?cxfjktR2)Jl4W?k4}Z?_cSd$pXvsT!DcKX97inhE3PHVImNFDEQWF532pm zb6892exx@@iRX?9EgzJePMSY&X5UIku|n&M=eYfN&J^@<g!s66q()xSbtdDasm@)0 z<oIP1bcGch1S{kttKXc>17a}A6oaKr)qR3V*!<xaw^80ZaDQc#1vlSwYYtvn6$Jy{ zC8`q-Z`Z<EJYJ9ER+xjqX-Lc_dW$_jJ&-PP;D{;R1dG=t5WfFE(3ilzsLwk<&Ojhp z3kc<(tnUx{^0e-o)R9q{lSFN|pL&2vI_zN#z@Qn$j;&S{M@JVu&`R#}fR|cJS_fU9 z&rOg;nGMu7$2on&@L-!T=-7OP*DQE<P7pk*5Lckw%j$k+zRg2=p+>y+Hr30|-SceJ zb$mDif>E_5rHPT$_3`Fvi-;&oeqx^jvlIe+^^EPr;*e%&x;RjHw@Pfi(0)?8=g6Tn z{`1hX$q7?v>$+o|z=>M@1xr(G?yx@e+R9PSNH00&3+txD_N#(BIr3G+FDU3}0b*Fi zv`z8|RtlI_3N&!jVJG5g0b@#*>*86F6)9tma*E{lVujYJZD1zQ68ZkvQ2j4O@95$6 zs7@5Bh>VjwB2Y6f*?8Op1Gd07{Lp3WG0aOJQsybI`|mIw8dV*Wc@%(5fij*j3{YTk zkXjlRjx>56q^)ecGKCtxSKI~@Uo>8uT<7xd6l+N>Hz5}Ae$Clo<hqzZusFPG)NJ}H zy<Z*-xEPm*U2Xg7tDA3rFNFG>*`)8pCOFXrZE1B}XL|hoyS<y*JcNHR(-*l9{--@B z64x=LDHcbDn<9OytM})&q-x-J?9NLaUvRca<26`dgX9m5O<LpquPi85Z&e}Z&VRg1 zDQyxnuw6yGW8&|O4YoSEp2c~UY4Qfgi-*AA94wTDt1>7M-gaFbzfMuOx7QEhbKLQT zeqz$mnX8N9W1x`bc@gVZO&wJZ&_=CGrVEbayk5`TA?cgc<{RVhdXTXW8uYSuiM8?1 zCuOfGuLrrAJ^hHy&cn2^8?s6$<o3d}qwBLu3dMj6Xy5{>^<0d;y@JYmh0mkwGPbcy zi%r-*mf<3ESS0rg5qXZ%%d(+}0Ovi5MbXs?jp)h%wFZ>94ez?omSv=w?OAkNT6wE) z)ng(@*ge>({Gz968Iz8rCsuD9U(PJ;Xkc#r5QDBzw3j=Xvgy(YZKK%dIP<PiHX=sf zlIKegWf}ET8}&Z8R)o??+QXg3zpft4xQ3Upqx~ioIFZh8w7&Ei)5qb6C6g^>oH7Hm zJ0Yai2KzxA(g_2rlB6{%16RNzs0rMk=DFKg4YJZb`p5q%FDU%U3)++cUa<1S3oyL9 zT_k5-4Ys%7(5MbLVPL!GBt0+M$G0J|q^xGFNm3vUdvOc><7=_==Izl)RDAKirj2K! ze;4vw;m#q6kHLhA@CQJ=_!<b+&S$LE&5raCp>oZFJqo3dZ+hvWKaXGN)t&PwJmUjV zgq|Va`{dVNxNkc`Y$+*Knp`<c(GWcQUa+#MG<M?6avqJgW)~a-Hdz7A@}@aS1X@wl zm#yOuUZDSHUZBFksza;~w_R$7zS!~1&fb|}@(*6{`VU@E`jZ#De&PioWn%>SEPwC< zmRKJQV$Deuz;fLHc3e>qu;aV(iwDH_ahzZgBS^_AL%=&-^cht**d?-0_K*|z!_cF- z>Lh=n)76kI%9DYGDfww_UD5z95v;?Ns@Pep`tsB6TYzlb17xFw=!tAR*>2w_+nw1u zCw%iy+nxMR+f4~@4!aeHZvB%!oyWO>^fz6|ikYo&)cf12uv6^?=+)oA$_%xhhzGVj z%erRDJV8DnaDez<8#r8FKprRhr~UpZFJQk}e%kNqcdf@P4{kpxhbq-i%7G=)!1waW zeg~KVEe2nYrvf53ZZrrHMEn)pmFkCE?885)k{R%Qp2$qnlkl4%ZR=6)>mLED53n$v zC!RD`idqJ6D1gdf(aE?%mOp*%ps?9Lz_ElpBDjp6ItTk_pZu>x&bhV8HAtM#;<1(l zx6T$Gn-YR1;Dii=Pr<(ur4t9oP|9oLEg&;AB7vwO;V+@gqCMaK`mBWt2~H#=K0=Yk zX2-XaA#<F#%k;Hj{PN*ku(KJoq4gG1p&PHgVP6R!LlCRnYX{h~Vf|^Q+BycFp$0Zw zig8iRYgp9LI=yZoMS<yjls#^uZ=q`n*DMc994~{Hz|c^pbMLSWuTv$Fg*K3We1L(Q zTX_EoN$<Givm1H7BI}RnrFPL&A71`6nDbE=sw=R}8kM`87=n4@JZ%lskUGUe4kQxO zh$D`%#Wx0(YaqIyFoC<OR5<gaeLSV3JCUFjoG<(8dz%%xn&z83mZ4bHq}I8$vf?9K z7&fRc<u2gfxKPuY2w0P)osut#A;hh>9Ynn-rG=5tJ18pHakZ6%Dl1NRooiya2*~g< zDp8Hhyqhu|$xh|)n|!s>nX<si&#uuTksC=AaUTB_p^<x`4#r&Db&z=5fvXu;u768{ z1`(hI37Kd^sa|!*X3L$3kdZB`P@ljCcbf<Fc&WKxzq2^4I>;%|f~X=@taEqA?OG~` z_2Amnq$ntRg?v3f%Tu*_)utOb%@*X37x0+cVas74Y$REaU_JBd*3^KM^R_Pa)U87( zXHxHDrfz$ttlPxojP2H(*mGn?Mt0scNXGUboes6^VB&V+3$OF=8VRuX1~d!IZjJ^2 zBP+;5-|+SZ_JPiU%tUA)Sg?O(Jv6a*GJE0$#Cecl)Hy#h8vy|S|CY#jC50{~)cz&8 zJ7k%qmmiHVv2nwmJ&z=pV1Bk_?ImRPDqY{`=-_|@m+op==f~mF(!%}Rn5o8kCpMjQ zMIZU0I60`dA=a9k^2eza7cm%55#&%q0P`$Fyp)>{`zqze_pXR3=<<X&{!}kyoA45n zoGA-2ui@cC_^TA#8^3-q9DVC1g|znS17w=m7(M+b=1ziqEG9PkID*)KkCJsYo=B(} zBFIqGZ`lre&k9@(5$;Y!^te^9#}A^Gc9;&ib&iU@mAO;v7-=Q9)f&XCY{l$s?O#{u zvnQ6FghLES1Qg3R6V#&d6W+sdE(w0pOR$45SjJA7;P3($gVkrhSx~2|sv>%owD;=U zyYKL4LGtTp;ITSZ8Gb_{OHv-LqhCkv))>e`Z|}|C%ScU)b*ZaAlF95Q+its;)7whG zpm`*W_l=uu<Uby9WyjNnt)??Q3mRMCdtM|JFEOUkpta>|rky~I%=(bcwT~Y2rmx`e z<%lmZF#mlYj>%>K$sQQ4@xWdjIxrxAZeN<)+qtM38Qc6Evy*BIb`wmP?JrjeNtdb| z$8B7u#;q{JV^MKR_}=VsRfyZX{4i1eae;qE_Y)a0gV3tEy^7UGFDQB6nbH@#<j`Ge z8=JfW2GN3k#R9w?m|=CM-yJAK*Uy=pQVM8Rou21iP7I8JxckuY;>4t|^RQUAz0b}D zv;-oP>ihh?twI7qERAe=T=Yb7WKkznUL>GKCSmt<<!7}7Y@=ws7E6*0+hEOdXmRq1 zR8W-5M=?@z9Dd=IYe|_>Z`S@^3p`Rf4N5_-JDI2}nU=6nTge=8UyB?on^^Y)n|`$@ zIoH%+$+rtbRy(yg9Yx{hw?hV`!qGY1GtQ-KsT4VShftQP2wUr-Qjl*<NX^p{SYpvj z5l@LfkV}PD$3S>T-X0+x!3`fp&IkB2gmMgjKyZZW7dtYY$|0{S>r%1X$@6~)sSk6m zO47ZB`gs`f?KVZoiUMVcNGmE76ncFq3j0*P{zOO2*Z5-H)y!nRHz0*{sHv7DXSbln zwujeV_X|zeXUChT@8r3kC08`5L<<)aXv2}dKUbbD9sTB#RI5Ddb<=YfFW#~`$#{O) z(+P1`F7&DZtN&H3&+41C_vPKasZO1dr^y?mEl&8suUqVnW!_=haYI*~5zWx|QW~Cp zge;9UzpWsy5W9tZaUyMmg0n6s;VG7(@$4Z@vslObj$j>hn{0fAVv{AhfL@bg8b*It z`{f(XSNj2bX~dlR&C`;5J)$pyJT=W7oO?v+=U+yqrp)gvR1%v94|c%x7*u=C{N^@I z;vE{1cwCQ<*GC8ZR#=XfA>9}PBOLq99ByD30-HUDx1X}a{`>GGZ0_my1P1O9Fho)R ztWkj+u74}kUj`&Yxl?|g3AIgQl_+ms>utEY4%;hLdJzKY;Cir8GOu_|SDT^dsJEAy zY&McpI?idA<|lWXvkvzhH@itrj?DYJ5ppUTn6mW@XDv51ZTw5qYDS3IK8W@2V^nuv z`CPy~calw<RVo!DP1NIODyA(A$FuCIjdP2Y$2kq9W4feq%Vc%I7#WiEpV}(AF58ZJ zp;^0Sg;s9S`(ES0KnZ_jy^61)pFD)Uo{cg__GZhp-`-{&ZL&)QAJ1n`V*H&5Bj|Z` zaUP@42oztx4b;$A-A><6ks%a9ZTH~TP%B>2i+H9|>Px)9Ql3!b(o%O>GsIdM)Q|-p zwkfnp!7H!}J^8E)1;?D$nPi&f0&n8z&|cVqY1@kNb`RNyM3D$`e=UWHph1&gE${L@ zUlGTmELhv)31^e`>FlwCq-D?0$Ai}^Y7ofr@LDx~@wddw@|EPbJF;-JXQm3Qj~qp? z*_$6<q}o5bet>jaUDr;2nePW2`~ERp!NBQ(gCA%h*&zr-0x}jdy^VXK0DylgkQw>6 zq9Y1uRx>*n165B4GiSZ05v(ZlSAhO5s#Zh*U<nxU2!E+Q2sCNnWM<>c$nf<1d&Ru~ z4R8yfqAAca!CxxE02>uQ_4*&R0aoH_3kdPl`hP@v^fKrQ0#G7>FM#$Jq-x-x`zO+$ zF@6_>L_05t1ZZ-O@DFdWUkE0^R>{xmE|zAtW<V}z;F<YXC;W0K`#pX1FNlvoCf|S2 zs=p?a{zHymAiui`{{lfZ`-dFAI}ZO2@w;Q&FNi|xe~0+#=JtDU{O%+03nJ6;9}s`` z82G*V@5hV3s^<cEJb!lPZ-<S)Bm92S_6y+~km>U$!hbw>`yJ=^Ew5iV@BIFP^Xmuw zH7)+ijDJ-Hfhykq=?DEMPyW5_-&x8p0K@QqwEY*(@_YTinvq|%fjJ!cr{@1*R1{^P U07u5BjXf05BrxeJW1e394;prYF#rGn literal 0 HcmV?d00001 diff --git a/tests/docx.inline_images.native b/tests/docx.inline_images.native new file mode 100644 index 000000000..f962f5c09 --- /dev/null +++ b/tests/docx.inline_images.native @@ -0,0 +1,2 @@ +[Para [Str "This",Space,Str "picture",Space,Image [] ("media/image1.jpg",""),Space,Str "is",Space,Str "an",Space,Str "identicon."] +,Para [Str "Here",Space,Str "is",Space,Link [Str "one",Space,Image [] ("media/image2.jpg",""),Space,Str "that"] ("http://www.google.com",""),Space,Str "links."]]