From 5ee43cf3e1bf452254f7b5797ce8ff10fea17d9e Mon Sep 17 00:00:00 2001 From: Max P <48almonds@gmail.com> Date: Mon, 5 Nov 2018 17:36:05 -0800 Subject: [PATCH 1/5] Imported `unescape`. --- docxtpl/__init__.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index c20bdc1..3291b61 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -15,10 +15,12 @@ from docx.opc.constants import RELATIONSHIP_TYPE as REL_TYPE from jinja2 import Template from jinja2.exceptions import TemplateError try: - from html import escape + from html import escape, unescape except ImportError: # cgi.escape is deprecated in python 3.7 from cgi import escape + import HTMLParser + unescape = HTMLParser.HTMLParser().unescape import re import six import binascii From 40bf39cde7fb9e00c70fbab15ddef106873e920b Mon Sep 17 00:00:00 2001 From: Max P <48almonds@gmail.com> Date: Mon, 5 Nov 2018 18:17:43 -0800 Subject: [PATCH 2/5] Added method `escape_values`. Exclusively for Python3. --- docxtpl/__init__.py | 41 ++++++++++++++++++++++++++++++++++++++--- tests/escape_auto.py | 12 ++++++++++++ 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 tests/escape_auto.py diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index 3291b61..287fcd0 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -19,13 +19,12 @@ try: except ImportError: # cgi.escape is deprecated in python 3.7 from cgi import escape - import HTMLParser - unescape = HTMLParser.HTMLParser().unescape import re import six import binascii import os import zipfile +import sys NEWLINE_XML = '' NEWPARAGRAPH_XML = '' @@ -171,7 +170,43 @@ class DocxTemplate(object): def map_headers_footers_xml(self, relKey, xml): self.docx._part._rels[relKey]._target._blob = xml - def render(self,context,jinja_env=None): + @staticmethod + def escape_values(context): + """Escape strings for an XML Word document + which may contain <, >, &, ', and ". + """ + def escape_recursively(d): + """Escape string values of the passed :dict: `d` in-place + including nested dictionaries. + """ + nonlocal hash_values + + for k, v in d.items(): + if isinstance(v, dict): + hash_value = id(v) + if hash_value not in hash_values: + hash_values.add(hash_value) + escape_recursively(v) + else: + # Avoid dict, Listing, InlineImage, RichText, etc. classes + # by comparing v to str. Do not use try-except. + if isinstance(v, str): + # Unescape at first to avoid secondary escaping + d[k] = escape(unescape(v)) + + # Avoid RecursionError (if back edges, i.e. cycles, exist) + # by using a set of hash values of iterated dictionaries. + hash_values = {id(context), } + + escape_recursively(context) + + def render(self, context, jinja_env=None): + if sys.version_info >= (3, 0): + self.escape_values(context) + else: + # Sorry folk, use awesome Python3 such as 3.6 + pass + # Body xml_src = self.build_xml(context,jinja_env) diff --git a/tests/escape_auto.py b/tests/escape_auto.py new file mode 100644 index 0000000..97708ef --- /dev/null +++ b/tests/escape_auto.py @@ -0,0 +1,12 @@ +from docxtpl import * + +tpl = DocxTemplate("test_files/escape_tpl.docx") + +context = {'myvar': R('"less than" must be escaped : <, this can be done with RichText() or R()'), + 'myescvar':'It can be escaped with a "|e" jinja filter in the template too : < ', + 'nlnp' : R('Here is a multiple\nlines\nstring\aand some\aother\aparagraphs\aNOTE: the current character styling is removed'), + 'mylisting': Listing('the listing\nwith\nsome\nlines\nand special chars : <>&'), + } + +tpl.render(context) +tpl.save("test_files/escape.docx") From 7e72603441999aa64aa2555d25219fcd3a735267 Mon Sep 17 00:00:00 2001 From: Max P <48almonds@gmail.com> Date: Mon, 5 Nov 2018 18:29:33 -0800 Subject: [PATCH 3/5] Added test files for the auto escape. --- tests/escape_auto.py | 5 +++-- tests/test_files/escape_auto.docx | Bin 0 -> 15118 bytes tests/test_files/escape_tpl_auto.docx | Bin 0 -> 17330 bytes 3 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 tests/test_files/escape_auto.docx create mode 100644 tests/test_files/escape_tpl_auto.docx diff --git a/tests/escape_auto.py b/tests/escape_auto.py index 97708ef..f38c3ed 100644 --- a/tests/escape_auto.py +++ b/tests/escape_auto.py @@ -1,12 +1,13 @@ from docxtpl import * -tpl = DocxTemplate("test_files/escape_tpl.docx") +tpl = DocxTemplate("test_files/escape_tpl_auto.docx") context = {'myvar': R('"less than" must be escaped : <, this can be done with RichText() or R()'), 'myescvar':'It can be escaped with a "|e" jinja filter in the template too : < ', 'nlnp' : R('Here is a multiple\nlines\nstring\aand some\aother\aparagraphs\aNOTE: the current character styling is removed'), 'mylisting': Listing('the listing\nwith\nsome\nlines\nand special chars : <>&'), + 'autoescape': """These string should be auto escaped for an XML Word document which may contain <, >, &, ", and '.""" } tpl.render(context) -tpl.save("test_files/escape.docx") +tpl.save("test_files/escape_auto.docx") diff --git a/tests/test_files/escape_auto.docx b/tests/test_files/escape_auto.docx new file mode 100644 index 0000000000000000000000000000000000000000..5507e43865762240d9ce0ff0e94d94104ad46003 GIT binary patch literal 15118 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 literal 0 HcmV?d00001 diff --git a/tests/test_files/escape_tpl_auto.docx b/tests/test_files/escape_tpl_auto.docx new file mode 100644 index 0000000000000000000000000000000000000000..9a8dd4592dff932c58d088e7b3f6d1f0e612c21e GIT binary patch literal 17330 zcmeHvby!?Uv-e=Z-5tWvUI1VK001e#%!!II84LiRf&~E30WjcN!gjXK zCbrIc${zM6PC5+kHr6CLkl<8V0B}(If3N?;Z=g46*s_NSMf4{4DR8oW{*5A4e(zw; zdlP)~d$0($Xc-$xiTJrSHv-=51R#fuG{*}M(~~AvmZXrcF0s&3_5!RtrjJGa;1g3t z(&I+g>^|_s8tV$?lX@G|nMVNoFu^VM zcb4Jq=yy7y+g2fx#mLMNs%G?aH{gMWu|{Xj1#^k$&`oAtPKoN(h7_fvtkf}^-k)ZP z->9R%EMDHZWvh9LM#B-5pd#xBb6J6Y*JlD35N?0V05`Nr`xQe?i~+7VN_Lpw%pwjL zUs=I8Tgr;oT9}IMQTra_=j87IJwXBWFqc6YWOQccgo}!HPa-zwJA> zPCI_T&2SAQ9j>B$d>N9=UU~lUXS4>E!k7eZhdxi9g%!cYRl*e$7YRfy`;^S5>7#I< zkE@^jDjY@;gmrt{Zj>*G6`!9W0P=s4XQEiVhEq_DEJ$48LGrBUXkzWe$nc~5SC0P= z3-6yEy)>>1B*zG^P6HnUC)*SjyKr)48I2~Ea2B9pv?Qg`m*y?!o*wz;=fQRM4aA41 zrsF3(oifB+))REj@RC#zBidlU-0AjcJ+!(55`$awncctGZz81cT$?@)kx5by1x9LM zMvUXVh`kL<8SO;hrV+W`E`+yuNj*Me1gy#Z;Gi;hlj6&omC8K(#Zp4c3%ZzJv^|8d zc?{PV&Q!1}nUy}~efMg$POtJod?U*{OX@2+JZmOK@{Cx+QaHS`*2x3U+>XM};lXsU z*|6b^58kHQXqr#E5j(ho9H*ojwR#(N_!&Avmmsb7clr2ST%G<3RKpJq01yCRz})N{ zjTwIx5@S0f7aNf3`=RrG7Z@;*;sdq*zkSsv4%-I)Sojm~kp~_ONo?-rr8!jct+npK zkcfzA<_A6q+&*Xuk>-i2VwrMddz=`Y=yNQ6tcPuXm98l%w#oDoY(P6)GbyUojFA%= z$TX0@{w}Ul0y)Hb`mkh_mW|+;RB1L7)*9Oa=Mzc`TzvnrCaF%_u1Pgx3@GWOL*sWWt1@ z^{CmGPv=9FfW;d73&DiIy`Zz9GsFkZSGBO|=z}88{>u-LpWa4V;0b4PO-p<)5A2OP zO_zL`yOnbWXYgd=pqvqS7V*{xLg}sWakU;}2lPqB)ZxRp9y~2}XQrHA%xlelNpSJc z+=1qIC>gAcSD9TONu%Q6Hy!RoaqNJe*V9sd|Hy&W=MwD4kN|)NHUNMMVys^{@Xx$A zqrPOj#D(Icm-YN=FQ0xwB+f4U9gis5(gI+GB5Zm$pujvlOau*R(|>%u=2jGW8f`); zQ;8fRisZ3lZ%eR$ncNQ)Gb(07Z#};4{}4z;`BIcu6XKVZ6^HGlEW z@%p43R`DvNPgEFujvy?KTD6ve4TCBox!qGSfMAKv868~5JV zBd!VAm8CWMar%9`5y&i~0S=G%zJNsbw;=@&LNiVVog31-sD{xk<|oW8j0KnVG=X$n1&V@V~WA;xdz$fqt2?=od~w zU)0y7vvkf^p<%@#n_+mMYLjv_K}z)5RL8M}De>i6@wW=Q0%j`PcMi+0C#m6|zH0gp zZ87f{kmi5i^ICheqJ1=`KO?4S;y^*~^ko)OsuFD~4lTsUII{dH$X?%$xOX3Dn(?yH zE2bAN6mEC`JO#ltJSczSQ2DU#L>EIKyFwa&qCUt9`R;YOdgX(_&dNZRs+F@Rb_oK_ ztmWsm-YlmLH(F>`bvOG0bK=9N`>TW&*)c2K*(L7`{@QtM8;fw*yd-61CH8``)YnVO z#NKJfJbec@rz^2>_)pJUg^-Ip;QbHDMBbf?O>0{AW~s_Jc_yJ@>hr95-}z3v4?Q&a zrvxJxhAfz!KB?^@)hLc#s|*sPpxKFBRknK4wp^qPvt+l#g|s+2k*4YvN9;DtxSBKp z+uE?pYXz0?Iou290)v~}To>D%0^3)Xb5}=KRBnh;!*Xs8_zn4d5PD&Fh}h&&MDT<{ zqfT(bPxf=~&QKR7L*KXX*RSXf$6;5_X&o{u78@@-rPJ(1%V)SS={s1X)bV5DEOE%d z?r;U|=EU+me-T1X7@FZU&P(udYv9MG2%&Kw{@90ASl1v|z3z!C{OQAb-;UsypstqA zIaC8MvE(xf+AIYqA?LBHW)j3X!n&QxJPkYAXJCI=umXah5{$4YHKR{Uma%59aH?bD zv>9Wnrk2qQ528l^Q7<}Lh`8vqF@Eou-CUg@IC{-O< zq=zpQL`P;H+q;IEqo7``d13Q5XC2Z zD6hlNAL?xi&~PT0fvk$3Zf0F32I75(4@fT0xd;nNqamox(*10?$0tBZ=Y2I)o>qhyfu6+;n*Wf1* z!97alATW-|u?PdFpf=V%QT(=h<614^UnOFi2RW$dZ2W@1w8K|pRuV~{T-_ABKZfEH zri_9?*&8N~TK#~OPwUEo{>!q|FbE!F)IIEb2;<#U)=vp9hN2w6{Lq>xU$}62Hby5| zDDs*iXBcUs*enI{CdFzRIG61-v45Em1L{>|(f=sx{{&5wp8C*~VH*8=6of0fgUyxhxWAgdN1l z7y!P}rTB(KenZKbjvT)`1W%a= z6*Nc7*VquHYu1vl6}Yps`^~@?BX7IfvUz6sLA&RfWfqxS@6Cg;;g^3_t07VTdYvGJ zdk6&pp#07{<|YQlCXTE>7$+}b#Wt4-CHR!~iZJFBU3gZ69`2LsyXK`9%a#W~IdfO> zGaE-ts}D3dX-gu_)Utl3z#4%UUybLy1?DVxYb^!YARk36)AG)gHS5LA`1DbTxR<5JnFAFT$vJhg(j8`2hYVzejvUd!5T z0#8;6)EQd)<=>CYjKmZ5yG@&OSHAd6f0lF+Cxp@x8=HZsG2!KTBPijwnIZfqb_ z^Y&w9ep;8;w&{Qi-2mq&<9RX`T_l|JSUBlLGE;HdG9bVDey9+b(k2lQf0&kDdhewo z3LL-sSE>DIv*He^o>i;j6ffO(12f)(RC%0xv7VCHY9n=r@Z} z3_&~-h(4N!3*mS8gJ(1{pd0TX)jb`E3@6Eo)()%K@EY3ah6TG+ZSw|)&Bu2h2Q0N_ zaZ8`-GgkHeQd8&Rxamwrr+3S$I#)4xx|hXM+KYx?&8Wg^7?HUs#2Z44`I!NuvE_z| zVL4Ww=EN{c6*r6vlv-bLwuZF5me*uWjMWR+28Yq9Fz?7AY@w__xB{&N|FBRX_*OZ0 z{7mg13x$az%dgb#`a$iGQ`%!*lC>Yy*1=FL<9IW>WVs~p)=Ik4(u;2C)x|X-Opr6J zN?wzG=Tpbs@%hMsZ-t67{4RM)6!0=dq}zTVf5BvH+k>}-EEaiWOWGe5mm5azWKPhp zG_4kf;dR})g^`EY5Q_DiPrLaOBja^jNPHLuV?s()aDz}bo!j3iWH(PndDgqV5UxT~ z(>$iW-umLvyOjz#z_;eN8Z(4F4oEPB(Csn)N^LxK1N&+~p+=`%LvC7A!_Zial}1d3 z;-LL2<5mKunAoAzTJaHCRZU6H+9~9~Zkcee1nakInkf^ad9qaB0DZ|*AI6mZl0)LR z0iQY+MapI?%c};DU9b(EMuuQA3_IlVRmFGp(Bs`-i)r>sGJo#w|AX3NAZlyB_?6nY zKd3FZ2cmXM3&Sun5)JRvmP@VprK@3G*#Wq!pVpXNWyjcv(jZ+@_0Im+vA0GQaD)aY zWYT&wCM1?6L8Vo(i$#)EV7t#OX#J7L7j6ME4bOF`P$kM->H8RdI-GpLfxl9l{uN5} z#8t#K?P8UeVTo=B#Q!I;ng1pB{~cogwvPWR+5c-K`@d1zze)DLO8bA0(*AF#{hQMM zm)ie(sO>KW7=Z)%a%Lb4?mzonCbq_ZcI9lp{&3|$Hk$e}`Vm!hwQ7dt5>?4+vFi;O zRUdQludW=FpKChJo3!EoxN<9m{{vTUrL4nGYZf*>6>?a59c2nwmqSfcssh^=f+dZ@ zikV@_6thGP=1;2zLf^FVDWXflwkukX#a{6CI(9p*tG2`aB zC+8(jA-09K18onh!8BnhY|v4yRCy3dWV&YU3pPvG8Z^GeJT?KZbB>NJF-PrMP}1vZ z$j;F2bf`raXawb=y5VUyQ3LzQ(VpHd(4qznGoK|#@2qTyox8kUfYmpccL{40)_21A zI$bn-Qcv?dCI2b5&n}mLsKI~xVHUIWq`tMIYlnlG5lZ2N8a|Eh1ZaMt$s<~R?N6&W zp-ggC0a?~>i#HR_Ph)19@-j_*Vu1dfPBgx#O3C)1+2uMThiTb5_g3HnYji4PJCEjg ze=J@vq9O9*WOXo~g&>Y-QT%?Cgl*~}d$t=@lVIb5cM6}HF6SpYl2+Y~t~QfzJWKQ| zcx-D7`Qz2OB=pHD(>b~Vrg%@u;l4C?(oO}-XDqE5>Z1;-8VhF|FW8RJ*Ev{Demn}gm%-pYM_Mblc9!2?_PdSWC zkfO$2$e|T=^t@hYPs&sbrhZ z4=Zz-qb-9S2dBbkxUfw=+)jJPc&4Y-X;-URb{`VVnPsi6)mf2@Uw2&m%NM}kr-zpW@g92{vJwJ0b0DAJMb9PW z`-#Doeo8k#fhM=ptrIznd;@l1*pUa~sY};14O~2>!_%+|VWkhAs z^=U@pr}Nv5=?a0z%ZCS~+xpJOm#yMPFDG3bgRVUgLbxGg+TGbBbb~Bn4S8Y7Wh)CD zvUq8#C+7N7wkNCX=?%TklHOvigX!EU;h#-^hYFeQYIHQI|JgS=${*`u8i z3=hR&1Z=zyE8ZjNrVjgr1Didf5sH?t-Ob)f$Ln#3=uTT?T_(^30LLrQAu=Ae`W(5D z@GdoY=Ykuxwg9)3#`?H>KS+gTJz|PRtWMNIDL!**gzSbw8KV1sRnJ11buxxICHB<= zzY!DcaB8T87#E30RP9P+h;r1Ls(pIKXuVLrDl$ zg=Kzps`-*gFm|un*MotPAv`017@IY*uMC7)P-@C#G*BIEG1SH7&TSo+o=vp4K8hFa z_H6dVU-U&5jkk^C?OxvrG#z&``zEYYWOpz~DV46qPc#B)@~s4pmhG{-ME|QZP3vX} z$Dum>X7N>`ULCczK+ID>pG@$$>FyHITIe1b2e-mYiC(9LE{J`_5iy?$Zmp3#3)R#h zze5~$_%7v>jGD;L4k2S7h>~|Q9t|BTPLI5e@0wG@k<^m0q-vEL2T~TgJ7in^pp8#E zMJ;+0*sf!Z8ZGN7pRoZSrE^GE?m;HR-}Qt~6msVtXu}{0?oS4WlZmslg{|2yd&L>5 zT22QXD88rC&k$dC(Yz_ogEIV48uo$5slxYDoC{c4;S5BQul6cV-y|85*i!EDksdcZ z99!D$To2>t=JF>+zzD$SlrZ5K=thQ|jnds7<`d{aljWn@p2au_DCAWO^Yv#v* zvqH4Agv8LsEd2nbRkmcvqHu-9npZ9o$^F)f6nDx#F&$R;!euVns!KCZQj}`4Uy>li zW8J)$ZeCKCD}tG<4&zN}9W!;Wr;O#1Z)@=PsI@U;>I1?aZLRm{;nck(jf-)r9vs)X z)&N`n!KY`UDzlkG!kjboaekPERxNJ|KBI{@3P$-^ucGb&u&0ED#9^yGdj57dB2rL0 z3g&W!v1V)HD1IaZm`?%`BMQ``ZxG4QLb`eZXslKJdIrvr;@@K3R7CAbr>x2edyB&ozns;lvQch6@?6~!k6b~=~kfn z!T2D@lV_hrSH+glTb@@tm7ds&W=D03=7>FjcXZX*3$sakO5ug9nhFsVaE2JLh&WJv zd2P_O>SvGF`<|A{ZWV9jnt5ftOGoxukq_uSqT~37L$UV{z%^_g5;@w=5hBw{tTNG`B z&^DV?epEV)+9Vd*1%VQHl+*6aVavvYZDkkG#zcwXc9*O`+8$9Z^Z3L&K1Uz#Xz9zn z9Z#l!eLlp{$5-H39xOq0an?^vVc*@#lT8xnUpPI+kV~47zg+BW`Ng{XGFSxZ8>tju zY=PPOPAFS2PNE$5h| z%QCK+jZGCsY)ttcwU{CoUfa7T|F{ft()Yf zVQXC3UzHcs(d~OKPNoO{<}(;)$JH&gLNa7auAj37uT4a>Vd1zlqG`gCQ^*SoNb>r8 z9@ct#U)0FEh*`)*2Nz?N=kulm@IsNUYnu(;{NQi%j98IVIjC1;(r6jYy3$FPR3IaV zJ$jjVsO6sz0`3t7oF@h z)WSYi6W;T_IuG}kW=}ytCq*7HX9i^Br+*Lb+7?oQ^d3HkDr*J&r#qJurq6U$K%rQsbP3 zpNEex(_ES(s9TK|YwCuN4m}NP$Tw|L9mON9Vu7N-fShi`eN62$z5`RUC>;5SS?ECra1~tE{w*1RYm^$vAqRE(J9+kaJPGXDia;J8 z*|2&{FDX=xia)rVFXn2L`|XEv30&-^@2M*$_k~aSPs?Yu1A&EZKxEt&>@t+1AlQTc zVKy`Ls*t$W#u40o?WUw>=W^J~Zgua^FF8_&_;>sw5(Oo_nYnq2leLGjYLh+#eTtIH zssq#QOr;no*!XYTVik(Q2 z)FH^s{36(%SRE>aT=b9YLx1((s zXFSNBfns;pb0dJ_h%EAD8XkUu71kuNRhsX(MXk=$!#ga zv=qObTbw+%I^Nr=bIl7n!{g=gDkE(3DI=sFd3F+~d$;FAF4BnqYNfxb2z9h73~{u| z9Coxy0&2913T(6rk|)h5+=#6otpG;0OIQm7uS=jo#7ofa8E2z!MG)BNaPuBuyZi{d z_O3;+qs8H-(24Wp>FBs`P$uzkY3@=KV?;;AxyDoc!rH4dYtv;SZp;tSmq?>O+eNbeVkJSjtI+B z0!MCd3mi7-1-%XLZrkHx){CQz4#KZK%Y{*Yxm|o^(3kuIj|v{{`t5v_(#-6uY;3gDz0ZX3+P zKO_z47}zg$E_^@IV6%N2Vx#fZq%J+Nl|zn+zP|dgzvGAgCv7~5*$`>tSYp1C_SO~_W_<~sn%k|6FSoB2mN-$NNC-goofi2 zUmthny7<=ySd?6&h}SV0;Xb$<9kBX8--7h+x9LtP1;|3i57F0C)BB`QEv7^-QX_iF z>!1En?&v($5dbgDHHB zTT;q5y83+{dPXk-*T3IyLXnpE+Nws5+MY~6UUE2Hxq8h z0#3iv`*Z5t#@e(B5yTGd7{-WN26ajWmlBhn1BV~+#OxdCfJa2;7gK5@xDtL4GMW>{ zJ*;tU?yr5r_94#g18Q?tOuWg7ZPzVa&>Nuh_{0glGOX3O^kkoel2_9xGz6BmH=?M* zjmG#hwU&^$hNie2+#TEJr1=M#n_=CUVfWMeQAg?ejT(J`n>PmSQW9Cbbjvp^;kN` z#Dir5?c~zAW7{=pxtb5(9QNkUH7kG0Vz^ok`Bd_H9v8;U=X`p`J!zfyFfymF(W$}5 ze@5LkcwIveqb?6kJ0!bR6VS#g&FcDKuvxWaq-p&CntQt%LRQm`59gOkoeGmfk<*&^M zcdu2QD6?O~X%?aQW6_9Y1sCr`l7SEouY<3DAh7>j2Zw5&{TlK|Q#2YTH#C~Otl-~o z&E|%jfFNAiuf0H!h)8)-s9&b``#?YD6ZZEhx>VT*$!GJ+7EP>*7R7A7RF)9>&)j~6 zfWFGVhT4(+WA=NIaz5cxuIY~meqW|N`=8FF)S4C6M#P(BX1uwIZ4)!uziR~1ju8ir zK_l-Luj0Hg7*26;iCA>hSlKGpdMS@B(4l)HxM4IU-tH_Z2%lY^3VwSoFJ&*g-N?8l zBPG8@cq7_u0c)Ds@3Syh3)!>opf{z`Tx$0QwFi~yM2a=!e8g}yxeU>1{<9DFB2y6m za&ju7@O+og-8>T?tg+*2odE8gqLYE{y>+Sc za;!(s&_-lBDG#ACQxi@|FWHa}abXAQ>mb6atGy?PDZ_CC-L5Gi9U7grcMSbcm2g0O z30U9CEXwwgWtgKAdr{nEc?e`_2`Sj2rG&jBduJnPpbQ;E1)p+NGX>3ZF^_qsewl6r z;pMm1IGb@b27B`KxL=}Yld>u-KYlGHpSA!!#pwd9@QOKQ)_04~>x5R~+5Fbx zO-*=e^e#=mJxZhH;DM!f-OS{(@5*{)yoH14P{yKjSp{66}Wr z(z~E{FmpMW*}fHV`Kb4gMWYY`2ggM%GS#gjD(qHE+*e2c;GM$I?3t8#ZAnovhH^{@p7X-ura> z^b(0j8@^JGL`LZ^r`QjdhKgqSj_pB*=O94%Hf;7@b|aJbWl6zRTUM@pasWZj&yz^I51c zX?m>wsO>%Ly&!k>diu`navFUCyL!90RuO(%Mg-i+B^RP{A5C<^4V!PO6gHNO|HP() zRQ>(I4ku*#H$6W%dx-HU$)^X*^Qlos{veA^0 z-adP7Xr0@aV;X z{6_v8=R2lJ<=CeP3T3w68qJ$eJrNShT>0HqfHFV+VNc|C&0qXSI@c+v7UOs4$IZl0 z=}+4t3Gp&^OH2qMrx4e~2rKx!LQ}}OlKxqHOj(B^Wyd;6`yweoxE!>($15Z2LdkT( zgZP2uEhDtN3On6W$$Aut-1NwEDs)(`;C$DTCU?(P-WCj4(fv0T6J6SDuQpB3uZCSR z=j6Zp<8a5L6>trerA4|#3CJlaT2;o0?R7a+cI%rMbCxR7_N=`VR5EXiYMv15r^qy3 zXxd}mV8tksowjnCXzrJd9)9yr4-RD^QD%Ih^aBOL7BitMbGW9O4DopiD24K{OA(sz&Rfxw;M42X6@r zPn>4f8@m>qZwgwEaBetBU{(PWK8Vtn)BMkkcKj9yUpk1|U21dJoXfblFr2WB} zxj=-p0iB?sg7OqV0pjwGcJ@w;Ms|)SKZ0IB**yOyCxAFSBTmi=oEhcwX|Qi7`OOND zHY{ibb8++2>+GbY)z>VRdppRI2L}yyuCpp#O7B@uN8fwID_^$R))3xim3~5{hZ*XG zp-o(v*)yseFr$Kx#UIqN$`XTyF<<2qQ0`_n;BWOf>=cJ0l>&k`l-L*h_Hg=ytc5P+ zfuWL{i=LxKG>yzScPd{3^*WI(lB>c0X5Gh_r!$&Z# z!sv#!Kmyq~<{aOZc3pUDb$2fyGMcz=M-E_5#E^DhpS&;V zo)hKK9v0Rvz^}j@C={ML{iZnFBYSl^HPOYKG)uh|3(F!kTxFC{bHVN5t3fZXgvK*W zJv!(t`bJe2mvrrshw~CUOMw2&ZWGsj#Q8xeO%U|X{?2ZFY*Cv~AXXE7@t43`TW4hh zL+fAotuf2@+)1pGNAl);`X0vcAdMF4(GLug;=`{pNdj z-lNk{RBGYB?hOG?57%t9WEu-3aaDA}SrEgcQ~hGGx>>eFk=8=|up_3va;9pdT(+nb z$IOw>-`5suSn>w;ZXu#AsQ~d3oze=Z3Bfztnfj$I^oxcX#~2*!TmD0y3pTZ#0Le?* z7}ai#N)_I2(|b%P3|Tpi#;GfKeHMfm9k2qDP*Mv1m;Uid;%{ozy%+EfZwtiG>P75T zfN%G!{ZjL^aLTJ%H|rL;FyRn6v5X_?AS&R8Sn5sD`5yGf`ktiG1?7(#A@)ffNFp6R z*A>g{V(>trz`wKne3C)jsN`!=1!)->%x|qOM2u^+Po=%IWMh+ypVC-8nm=sWs0k!PD{x`wln1$2!mhl5+m|s zcjQg~j!i~e?qGGsDeVq18N|tAZTCGLHmQvx_5s)dWTbe#=EuQIY`%G@TND?M`E)qX z<10G%nn=Ev&wTJJCF`rO`h4dOP^fq=U4_d?K=cAFVRpqr{v9cgz1eqBaX+x(kN?Ot zyi-I0uAnt)2*fxje_o>u?Ct+uqCl_gw<|+&Shj}=rIqX)S>a^H;uDH8KACb5*I69i z&_Xq5c(9RHedOL+4XF*xrkE^m&FcA4ul?gf>JfzS%vjQ$x9S$I=6*uGOlpU!n_034 zR($0f9J8vC8=OlkUr%txE)N7rqY;VjJ{CKr3);RM>nd~yF&nAO#b8-rK(;}7d0np- zr5oX5FP5l7*BNWJO3~PNsubjilK0>A6t;~|8Es42DEW~vU01_`zJL12#=5NtZEc+G zD4FucZ2&$;9Ke{l3pGd@gG5i8!C!`H+1;)dBRpsOz2*yS zoy_W8yABOOWNS}I^H9Vgoe7JzrIgq16GJ-ea2LBKp#8Krn&6nf9rx)!K?Pvo^dKYXpEKQmr_Jx5|B&}C zFZI_B{+e3*JMhQn1jyR@Q=;w9z`y1k{uy`%T5kWl48)&%`Z;&(kG>p1`TKv%B>Nfu zb9%)e@Mxsp;D1TB_!<9m0M{S*K~Tv3FT?*S;{Ip!&oSG7pc_EB9>1Xf6v6#JN9TbI z-9Mp!2@m<7qhqoDg8n7O^k?*c{oKAde|heI9Q(gUTjTu&{Ywzs&tv}_M)k*A(CDgI zpZ%FXz~k({fq(LDe(vF~hV&nJ03d}E0Qj3({WJV$!|0C=pm~0qfGOw~GyY>H{fz&s lj{E}+0PyksY53nXro0psXhrz(OC0EcT2PMYp1_Z9{|{BKyW9W( literal 0 HcmV?d00001 From 8dc7cc7de37364fda6b5c7fe9bdac04dfc8e8fbd Mon Sep 17 00:00:00 2001 From: Max P <48almonds@gmail.com> Date: Mon, 5 Nov 2018 18:31:16 -0800 Subject: [PATCH 4/5] Added reminder for the test files. --- tests/test_files/escape_auto.docx | Bin 15118 -> 15169 bytes tests/test_files/escape_tpl_auto.docx | Bin 17330 -> 17378 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/test_files/escape_auto.docx b/tests/test_files/escape_auto.docx index 5507e43865762240d9ce0ff0e94d94104ad46003..634c112047cf5044703bd5d6935f3fc0d60879f4 100644 GIT binary patch delta 4519 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 delta 4598 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 diff --git a/tests/test_files/escape_tpl_auto.docx b/tests/test_files/escape_tpl_auto.docx index 9a8dd4592dff932c58d088e7b3f6d1f0e612c21e..c6f7a6c5b5456134779f35fb5a4fa6deae65aac9 100644 GIT binary patch delta 4078 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 delta 4022 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 Date: Wed, 7 Nov 2018 16:56:25 +0100 Subject: [PATCH 5/5] Render can now autoescape context dict --- CHANGES.rst | 4 ++++ docs/index.rst | 3 ++- docxtpl/__init__.py | 6 +++--- tests/escape_auto.py | 2 +- tests/test_files/cellbg.docx | Bin 8213 -> 8211 bytes tests/test_files/dynamic_table.docx | Bin 5265 -> 5263 bytes tests/test_files/embedded.docx | Bin 272369 -> 272386 bytes tests/test_files/embedded_embedded_docx.docx | Bin 22124 -> 22126 bytes tests/test_files/escape.docx | Bin 8449 -> 8450 bytes tests/test_files/escape_auto.docx | Bin 15169 -> 15162 bytes tests/test_files/header_footer.docx | Bin 12560 -> 12562 bytes tests/test_files/header_footer_entities.docx | Bin 9879 -> 9879 bytes tests/test_files/header_footer_image.docx | Bin 21371 -> 21369 bytes tests/test_files/header_footer_utf8.docx | Bin 13957 -> 13955 bytes tests/test_files/inline_image.docx | Bin 264572 -> 264577 bytes tests/test_files/nested_for.docx | Bin 11541 -> 11542 bytes tests/test_files/order.docx | Bin 9341 -> 9341 bytes tests/test_files/replace_picture.docx | Bin 20547 -> 20549 bytes tests/test_files/richtext.docx | Bin 9140 -> 9141 bytes tests/test_files/richtext_and_if.docx | Bin 7584 -> 7585 bytes tests/test_files/subdoc.docx | Bin 56198 -> 56198 bytes tests/test_files/template_error.docx | Bin 4080 -> 4080 bytes tests/test_files/vertical_merge.docx | Bin 10027 -> 10025 bytes tests/test_files/vertical_merge_nested.docx | Bin 6010 -> 6010 bytes tests/test_files/word2016.docx | Bin 7738 -> 7739 bytes 25 files changed, 10 insertions(+), 5 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 77d2dff..2dc1a2d 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,7 @@ +0.5.7 (2018-11-07) +------------------ +- Render can now autoescape context dict + 0.5.6 (2018-10-18) ------------------ - Fix invalid xml parse because using {% vm %} diff --git a/docs/index.rst b/docs/index.rst index 7d6a1b1..03aaef9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -159,11 +159,12 @@ Escaping, newline, new paragraph, Listing ----------------------------------------- When you use a ``{{ }}``, you are modifying an **XML** word document, this means you cannot use all chars, -especially ``<``, ``>`` and ``&``. In order to use them, you must escape them. There are 3 ways : +especially ``<``, ``>`` and ``&``. In order to use them, you must escape them. There are 4 ways : * ``context = { 'var':R('my text') }`` and ``{{r }}`` in the template (note the ``r``), * ``context = { 'var':'my text'}`` and ``{{ |e }}`` in your word template * ``context = { 'var':escape('my text')}`` and ``{{ }}`` in the template. + * enable autoescaping when calling render method: ``tpl.render(context, autoescape=True)`` (default is autoescape=False) The ``RichText()`` or ``R()`` offers newline and new paragraph feature : just use ``\n`` or ``\a`` in the text, they will be converted accordingly. diff --git a/docxtpl/__init__.py b/docxtpl/__init__.py index 287fcd0..6d245be 100644 --- a/docxtpl/__init__.py +++ b/docxtpl/__init__.py @@ -5,7 +5,7 @@ Created : 2015-03-12 @author: Eric Lapouyade ''' -__version__ = '0.5.6' +__version__ = '0.5.7' from lxml import etree from docx import Document @@ -200,8 +200,8 @@ class DocxTemplate(object): escape_recursively(context) - def render(self, context, jinja_env=None): - if sys.version_info >= (3, 0): + def render(self, context, jinja_env=None, autoescape=False): + if sys.version_info >= (3, 0) and autoescape: self.escape_values(context) else: # Sorry folk, use awesome Python3 such as 3.6 diff --git a/tests/escape_auto.py b/tests/escape_auto.py index f38c3ed..d792fc2 100644 --- a/tests/escape_auto.py +++ b/tests/escape_auto.py @@ -9,5 +9,5 @@ context = {'myvar': R('"less than" must be escaped : <, this can be done with Ri 'autoescape': """These string should be auto escaped for an XML Word document which may contain <, >, &, ", and '.""" } -tpl.render(context) +tpl.render(context, autoescape=True) tpl.save("test_files/escape_auto.docx") diff --git a/tests/test_files/cellbg.docx b/tests/test_files/cellbg.docx index ca70ebfb23a3382cfeac1d152b19ba6c5a9f161b..a01362a4b0980c7d66e3514b9683ad9112036a78 100644 GIT binary patch delta 1002 zcmbR0Fxi1Oz?+#xgn@y9gTb#YeIsu(V?B`e{l~I~?I}>ymx+Oa8%W0&rREgt>w(C% zlg@iF8w#|)w{tzAy8K;^c8AC2y&V^3d(<{4&b-Te_mAStYv11TE_&gl*(CSe+*n@z z@EUV<`%dMjkCHBA-Q408U~qAlLB`iz)lqk}10|Y|YO-B=<>Q*WYxY-e-xHwEM> z0~Hr$SQ;&7Z%A_c6ftXt#uY#L&F$dd?d&y0+4Ub;Snz_A9_2|1f zFY}m3%l_{LlTc_<8@2Y*zW9wG@LFC7z z>ot#VKhsU){${){t@!tRvyvpPX>YzVCwj#TyBYj$dMAq#E}K1BiWr%J0ke4@YZeP9 zD1;t3&;9gavLTmNeb!+E0oU(;xfb?@ZGH2_QFG#E&c>YR@5~~Ve->;~F}d9Sf1i@- zTIc4MhfY_w@BD6Xrs}h0#5X>{>i1JLHpLhe9J{_ZduqkXvg`a!ikacruVpn1nYw%{ zx7IPO)_j|AojpbK$ihdmffZAPeA%0ionbG?y!68&!^>!!QO4(0(G%)d+w7lSIP2i) z%|6@Ki}wHi)wel|=fnJ*`zCuE*P7=uTkHx@)O_p2b!8)K&>xNcXO+AYW8%^xbWb)o zOzG?1FQJ~!w=hDa(TzK}Ve!1x`y)5~W9B+#zo|OXi-%Uh;3AsMf6!Zn3HU z@`)QITzuE%Pud*L{fQMEHW!5dGC>$(1#H|%$!hW|p~qkeAHms>U|h;HlaZH^NrV}m z^d|et+JOTWob)D7ku``11@nyw6S&+M85lZ%2~iN35MiK!aSBi*B|kZ!D8HasKRLfB zRj(p9C%_xUP~XE3ciy*SVPMFSMc2;BGC5IBUI8AJK!XjK85m?>769o6#xjn{3*@vw zPM>^MPMT=}=j2y%%3wX$q6LC30$s3_4c*|G{FB$q%Y*e?l$TbTDa61~o?n!rUtCg| zlUj_$k&^@DrI|z|C+Es5fprN0xxXYQ>&h#5fL&Ll@~jLP0+)cc381)chBQ(LBo-7v W%w`3;2$X5L84dz<*Z@7wzyJX8IBJyu delta 966 zcmbR2Fx7!Kz?+#xgn@y9gF!4HXd`bkV?B`ewY*Ui_Yx@T%f!II4W#3XQge#+^+4p> zNoT#74FwwB+qs@lUH&ddyTfDiUXO+56Mr!{8|{|9^Jjw3*4k=ija>oW{Bp)Ke?FU? zcy0FL`A4LmK1#Zfb#seXfWgIG1{q&B-Pe0JRio$NBN67z(nX8R?w^{ZRG zKleNdU8APXnR>r#(qe?7{ypz{CTVZ>-Y{BxL;S;h=^3$(-x*QDX7f_%nT*^>fwg%d zQxPLGFtj#{v1GAuf`U!SbWPE_$(>>} zb>#uW|7)hJ%kTZegc3}?>+&Zt9oxK_^8+h5Y}ln{g9B-@qU2++z%u^7Ob~`p0UIwP zlL#|B`AzngwF8GEIQdPUBx?XtIQg8sOg%6irsO9F6y+Bb>n9cz=vCzA1bCxp_PsG- z0+$;j149Q;tspSX!axI~4GWU)hRI5DatiPm2AXWZ z%)lT6vjIpqFv@XFPLR_AJGfU)n#qlO@+vuHFt<-$n#o>p@@jbnFxLmjy(=`?KvHaS zy*v+C=mJo~Vd2Sd<>bL!etBul!(t2!<@rS^`o$%cIjO}E7qhZ~tmFp5gFsK(0bR<# F004^sQ9}R# diff --git a/tests/test_files/dynamic_table.docx b/tests/test_files/dynamic_table.docx index 1a480e25a7683881477ebab20816908ce7739d60..ea013cd7059d6de5333601b24fd68554df1bbf12 100644 GIT binary patch delta 826 zcmbQJ*{{hP;LXe;!oa}5!Qj`HzL7VRkrPP!{wUeU`gC$VqeQ*0H?yHY+xvfA6TJQI z-V76%m{u*g(0t-A=C+hF^ODbwMr+^hH}6=)y_BPBPWiLi3ck(v=KN9Vo6_CwxH|Q+ zmg7N}*M}Bdef=)8aJ@?+kJxevkJZMaTVLi~(>GDP?k5?mwaCfoVo{18Kf}?UCmT%+ z16RzpOY4t0ZsXvz`FLYO{nc&d6Y7mp%#*v;UNy>p8`O2z^5Xp)4>~U@DbJXZIk6}= zy(~ma=Ci|^rM=H~9(($D(aIFg>8)Y=#k*?X^Vqr-e-QaGNqp{%Ce`X#&fr~XCBNsp zeeTYmxqXK2jq^WFv!%sf*vpI(2EI?F1=d(FGBEfuF)#>j{w(0f$c+?4n-BBLGcp6i zXmcmiOEwNrV2LN@hD@&F)T%$5#casa^1hbqakqbLevrn}BeT6VpG0lrUr@Ex{)o1; zH|O2$>lfB@wp?=VQ(l1>|vv-S0ybG!4FhVEAR!*BiV?~{+3zYh1Pi0kN_7Mj2<_^IL1m*wlY+;5-$_B#94 z_lZkdw>RwPtaGbx-LX51T_b2-^{qqKpIA59{?7f(h!QlLPw{+X0{gv|+Y1~BlbgBT z^D;7tFvFA3WIrK0q$D&|$N;2avbTt|N)<3bQ}UAoit-DJ^^^09QuQiwa{|0kweyNd zGd*OUtR*6+01DfA3I$1f*%%nE)d3>|m`q`yfsvVY@>3ysup&?dTmi}`11*q&sQ}Uq zjPJQ8s|ag>U2s8In(^=CH^OpY-UMN3rf>X{*9t3uxq-sc+Ri}p%kzs;^ovtVN;31( Wiy_Wq1=`NQzzKvlK;vzNKs*5Ec05=B delta 896 zcmeCzoT$kg;LXe;!oa}5!5|h8w2?QHkrPP!uF*OC@%iL>Mv3~fUd)C94e#w-PpB?` zm!sX`v3YODh1njp4T>}G^4|S3!6*CoH@AQ-LEijw&)?7PPn@>8dH#`kMTLeLruk8- z8Z$CtCAL)EwK@B4sz%SjM|m%|spIP- zlC`w|rt)T!W*xvSwcY7S?sv@S^FP8{f}eNH($dZ#=)| z$JM}-GuV@K?{yu$0i=R#JWKlxFcb-B)(q1+OhHG^Un`Kz?sr;~ zSH&L5G%x;P^!zt(kLJ(TNAdpT0Kxa%NQq)Ivw#;PGcX7?bMby-0yEw*%R@xknPM1u z8JR?w;Ynz+kB}Ww5}GVzpa2Rzq#$Jw1SU5aXke^inw%gk4^{*U;wwNIWhMp&8JG$n z-N2Z^IeEUY7Rc_&o+8pJWn2sl<@rS^`o*awC7F5Y#d;OFIRW0N4&fA$W-8#GtR|uW z)^|o&nsM*s7s7J&Aoo0MkJ0}EG`gLUfk6Pps%`uX3@Q1^0Y&)*#rlZ_1z3#seJU-m q#sa9*7wAw_-`oHi2G^aOUz7^b&I(LT3=Et=Xv4(8z+f)~;sO91Ts&3) diff --git a/tests/test_files/embedded.docx b/tests/test_files/embedded.docx index 4d80e0213ac0b32d926598c4e9febc3b87eafe22..014caffa6ce7fa82d2792bd834fe7ad671b30bae 100644 GIT binary patch delta 22108 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 bz+`!MDX{==R$v5!{3^&03=Cc7AP^4#t@Mp2 diff --git a/tests/test_files/escape.docx b/tests/test_files/escape.docx index 30daca0be2752e82d68a36406e02a34fb3f1bc79..10e6e8cdcda2391930e0661e2a24c3e4ab345808 100644 GIT binary patch delta 456 zcmZp4YI5QY@MdNaVPIh3VDM{8-^km{$PA=6PiEwYFqSe+g)nSc3LuOPtW7MOKsCOv zkMA~kKiQf~)99?DFtEzhkzuf?7ioqwM? zC+)*0mC3o;M;~vCD-7#pTzB%D?`7$VPigiIi;YD;F_*1(m{N9FWOXw4k{?IT1Sw5_ z?l`Tu>481h9;SzRek@*_KU}Y$azCxG^I@4^+cE1^U(Wei)UEXvIJ##0f{T)ez6iPh z4c7O!tNO``5)6~|gdc;0K}1A{8O(^~{>BPsgb7}S1cS5qXEu0b5-SfF{$Dd) zU4HK$CX`UvT+IKC6&wsXqF2G5o*c*h7%bqzqr(hgh<|1SF(zBd*@5Y5IWsW5Ma~*b zf0DBS(}wakNTF3G?+6yPR*+^2;GP_zpbX~L0lA)nlV>X^fVsQmrI{3kCtsIW0(1WW dx$Gj7B^Bhs+DJZdN$pIsd0RZz=o+AJN diff --git a/tests/test_files/escape_auto.docx b/tests/test_files/escape_auto.docx index 634c112047cf5044703bd5d6935f3fc0d60879f4..fc0e54cf04f0ea1d73568c5856f054e4a97430d0 100644 GIT binary patch delta 1506 zcmX?DwyTUcz?+#xgn@y9gTb#YeIxHKMou8@8-B^I`sw5gj1u*}-pqyqZSVheP4M=+ zdoxU6Vp_G}Li35gnA=jy%u7By8m)c1-@IcH_fn3kIpxo4EBH3woAXDdZ%TK!gTi$y7Z{0v8Xo@_KR z3|ukWF0DW2xQ&C;=HrbC^;fr*PpCIaF;DJVd(|latykAw%ZvAKJm|crq&#Cr=ES1h z^s*2wna>Vumi9i|dF<)qMJrP{r?=+S>x=xpCt20=?1AP7RedW%R_|}SgqD?@&GH!NS!%PV@{X%r5$_x_1Wt8P5c47rYb3WicDs3(X7;d)w4&;|GKtNMoQCWKduue zIA-O1TK(0ygy*d6-7U?0J)IXKZz%BbPkFVeao$T0K7})$s-fpEw5(djT(5mUg4d+? zv1;fx_Zjmm*rMmPW}Tj%7|_G~=Xi8jX!N1QI`^vuDim3B8wvxCOsk4pR-5oV0icJ{Cq3!3BOoYEIH8h*6K&9g_mBJ^nL-MR+kHANBW=WxIUVF=-p8f z>-2}$((45N_zUuNaUXnblHp*|eay+#LPM|R>Yvzx^)0Rb3?}7kuW#U2zsUJ;>OdaBR#s(gQOlUoer`tgJf~BE4Hr2O?b~#mxdz2bT8Wg-So*`^E~^eN*HB zL_?R{Q68|!1(P+5T+Hx{FuBdlTmZp^=7+Opn#gMG%%xRM0~1L~esVxjenGK*a(+>& zUPW$BfHxzP2txNHb7>|`mdUc_;>fyd&7~cVvobK0=NF~u1C1!nP0cI8qT3go%z)|9 zhMj>y2AES}pn-AeXDrE<9?(2L}19g z2RaLsmSCWP(NGO)Q+aAqFm6}*PA<4DKbwbvVPho&13yeVkZxf7q7L&^No5XF=pn~H SF!&hvOqQ@#W-BlQX$AmYT<{bC delta 1660 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 delta 1517 zcmbP~G$DyMz?+#xgn@y9gF!qXXd~}AMou8@Yk8w4?&ahsj4Ji-aYS z*np?){hzK?)8}Q};ydP$UGC_y`_P0PX={Hg-dfUSyWs!4jziOWHE$`}{#yI!d*@rL z(^tcRvc)x6G4vGXeBNJfE3oXpMD$|L;GCQ+|;p3Ou4a_c=!w*<-_&sO%pR2MbLDo{1X~{y<=@%uUqaR$d zyRUfio$v0qoQFOv*wnUQvtHYcm)efM)_e^9*Rps=dxCp@!8g=oxVcbuB{<|K3-Ub% z$3Uap3P@B~sF*=yW^>DI{=_2#5q+W*2w^;unFC?W=C**Svrv)Q9KbFG5tUVsfiQA8 zw3)#Mf9HG84q{B!QCJP8Zz+5OOI%jugD8C|_Kua8kx7IZo=YaTXxky>lGEA-V4Y_T zq?I2tF)*a$CkGVe7ZmF!78K}Ji7#DF&j?&Qr>k$ANq0Ke9K~;nw-Sh@sX{PJklNI>HbkL-H zuhbPW)Buf6VPRkpgqaJZ8yNTUOrEa?vHwPIMJhK?(FUMT1W*)Z@J)WNF9&v{;-d5O zd4YRzB)bzsQIq39`4o-D7g1J>iGFU^#xGC5mc4b1%yjQA?m$ufG9 UBCKp6Jz_xE&dR`0tPSD;02uh@g8%>k diff --git a/tests/test_files/header_footer_entities.docx b/tests/test_files/header_footer_entities.docx index 5c57dfa70cb45346ba25d4bfb0cf42c80f553058..f9b286feef09338a4e958a30f0682f860781a6a3 100644 GIT binary patch delta 1222 zcmbR4JKdKzz?+#xgn@y9gTb#YeIxHu#(E&_o0`uq@eL^YfQf;D8%W0&rREgt>w(C% zlYG6I4F%fX|LdCI?RWQPnBc^;YQcr(6Mr$crF>&HmsbhS{lC{TqGaJZ+b=UtTKmtF z+;mUoj)tAaQ^kt4(?Zv>R0_X&V7>NU+4*jERink*E!g~{WHnd&7H_UwD!B7Y{gb+m zNRf{7QQyvd6jYc!Pv)7H%crNycuy)$PkyDasPcGULg@AH6Y7jpj1#-oUNy>nyH;d( z@)GYG3v=0>{SUs8t+e~hGNbm{12My??~X7(WjcOEFgvrkQuAr>GOZlW=ToOm*Zym( zXOXn!1c#c+FZY!y&syHC+qpRN(eY=-D%{^xcH5+H-nEQZcE%o6>-`EnA5&N+_us5x zL1(?~}RjW@d zs}@XLzp3f^3_tq~o?dBTZ}ywtxcc@`kj;}HelxyTa-2!~om%~klhOM96pc+W1_j5$ z=Vni-xN9G8&(XFdc4_r{hfcwOoYSk%a(|iih;Q572AydZA$wG%cocjtiGTX^kKZ*vK5KaLHhRfl$&{O!TGmX_Iyct@-P*E1n?rr7rv9h= zpikNFGtbTcr1alR_x{DW{of73E&8UZT+>w5cz2Ga?vY8%pN`#2!WmtpKi+v>UO4BE z)``v8`uouW@~4OfCnz8%KVdrsrZ=*G0|)FX4kkzlCkao1Fun?AK^QXyA|Z_RoG)0x znr89;0c)Bn@5#u^$RxrHPtubcmF&RL0Z!7BPbe8EfFj4<@Po4hBLl-~W(EdfU;>AM z2FBw|li#Z@J6-cw~{o|Io8P%%JN7t z@1QKoG>v2ODpt8nH1)nW_59xPp|F;Do_XdQ4UDMKm+47;mHTs75LGdG+9tZ zn(4gAWIYu%ZBY1dCNmUf0`=YmhK~SDGmvgzydny9VMc0V%4A1XVQ^4Ms!B6ui%&LF zl>>8c0!_OiG5MQ{0@yXDn_q|QU}a#imu6r9YKMacMiZ&Y`#8lXcdPJ#_00n6lUJC$ hT}2+OkK_8J%W6PZumg)BR9DC;PBu^zncS=<0sti;vVi~q delta 1159 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 B$)x}Q diff --git a/tests/test_files/header_footer_utf8.docx b/tests/test_files/header_footer_utf8.docx index 5b48dab6109d70dbb0927d00deeb3e782f836b43..903616ade53e68ac05f6e5ed8b810a3a5bbc5e9d 100644 GIT binary patch delta 1269 zcmZq8ZO-Kl@MdNaVPIh3VDM{8-^ja%u^veKhF`L)ehL)zWny692Ga3GsX4{^dLVM` zBwuf4LxHyU|GFl4``x`6CNMFrT5zHH#9z#9DP`s*pB;_XzTI!$v50#qN7bD2XSEf4 zoA1r}qtZ8}yW4Sf>SZm*gD$TREx7vnU1s5WmqZ@1N^hcdfl@l>gSN>#pU+ z`!^nRUQ|+^F(Y$gQEqx!h?dM}hc!!kpY1&M^zovVDV)<=^Xm0Qe&3U<>Us7+^Mk6s zl_9J5w_QTZO3r5dobUFzJAdZ(8M-&l|2QqomKJ|uFEdKGY_4UgV`K&f%;tMcb0Ca= ztf!edK|vMcq+)11`4XpQy}kco1A(LEcCAm33Ks?~5V^91+vydTV^Znl)AAE6KmYn{`u&OJ7nX$@rFx1OGi?e;)qXu?@00%N+HO2tkzIbC z9ydAKayNB<6)s`Q?a#b*P#{~$*Gu}y!+FKQCKtGcS28ZKT{-0)>#d;cH3IcVXRm0~ ze^haD>ubl&Gu3ZS)4Y27Q`@8(nFsdwR;{|lBp0&rz2l>q9C4bhL5dRDS|z+QE_rsX zk$(DIQA|;hr*E!z!HU|C;f{|PFY;Yywa~I_QBiT)XujfC_-r#nmy4cHb)Du{WImc; zkx~7y!~$YW*3sVr zrXTBn154a7U}NM)O1YcOxxcZ3Wxk1d>{zS2QbjUcorykZDr-j!pBK85mf3(M@~H%D_;bUzDN`G_o`|HLnDV zX^@l#bj)#}Vi}lAfOG@n?#YhE+Tie6Ya-30!9Dqui2|6LXDZE<$~(E+R2IzD2XYTd zP4+RB2Xj{gxzFV$pDGa$rR)8M5pw zKt&hX7#M_56lv;AK5q>1)LWpzv3iraOqIa)7??5 OV(4dKV7O-p;sF4J)U{s# delta 1280 zcmZq9ZO!Ek@MdNaVPIh3U=R-o+Q_?yu^veKTHdIMdkGZvWny692Ga3GsX4{^dLVM` zq_bYkh5`-m?Oac&E`OJ!-Qlr$ug603iN6?}jdn}l`7^<1Yi+f%#;yQwemUcrKcCG` zyf%CB{3Fs&A0=JLy1B(Gz~JI8gN(16?(4mqs?l@skqC2U>7qquchCNssrDo)xZZ7g z*NO=NTV!TlW_B=CuGI1M5qae=zuA4=c^e0(&t1$1SLMD}_@8zn@0f`7>ePETqcy)R zce%bH`M$Mt|3w)aR=dkgFHVT)+;ly))o%0RppP@ylXP=U{7qvRg0r-u4plC``qi!8 zpL?E!u2ECxOugSVX)!`k|DJa}le9N`Zx}7UA^u^$^o&@??~Ev6vpJe&4kI%#a5mp! zs)I0ov7Tn;1O->=S^oKklh1K#*6;N@Y#`EFK2Pb?qfQIW0IpS+SrtoL6*lfVdA7gf z?TLM?pT0>b1&M2|Za!YTrutlZ^tYdCf=(;s~-a#d=M z3ELAcBq4clf^Xf%x~6%H=Njgk&p6TMarlu~;g023rs#6y37Ix*(cXHgY4Oxu3z_xn z?^iIFOkC!@>TZvP{i&X9qTOG&ow{V9b&T;GXL#w|sUH@c+RMjqJhf{CoZ`ocixk)}n z^=;qT#s}9wD&A??*JRJL`DybGKF*JfyVD)EtiNk_u)s(DM5u?r=l(-;8aHrsH6*{k zcWg=R*T@sUit+F7~-Vnxe zeM=^8q_nzuow_+h#+2I%!pPFIf<(-DDJ2%L?jqhOUJzsQ7r8B9dbRvFu*4DtHb!1X zCJ|;7zcEWnd`JFG|tRNKH&hEi%M(T+n2DpthIdlVeQf!P;_-frd&= z?lOiL`UfbRATwFgObIOe3Me~Qb~3vOMDbc6_mJY`Q^vAjSxun(l(|9Q;x^Eip+Fx?p!oK@0RuyFX>mz@ZbWX5er8E(E;weOPG@BUDHa04 Leqg{qFa+@cMO?Q` diff --git a/tests/test_files/inline_image.docx b/tests/test_files/inline_image.docx index da4aedb52c94a48069db19b940a50b8f41854b37..b2f02042ae8fef56ec0211054ed840e4f54eb72d 100644 GIT binary patch delta 1516 zcmew}NuY7E0B?XdGm8iV0|N(xUt9V{-UW=DK-yRD?}y+|leaOd*5|D5@YuY!igN50 z|E0dmT|!R;%@>dQ7pt-DZNf*zTYHZmc)n*@Xa4N(Gv=1fe``5=w)d?YwuN8z&v`y& zX7H|kON8Vknw`z{Sv6}VU!F`hlSc^yUzf`p_f#-4Fq~#$U=ZBQ!#0hP85ks+m$HB1 z0Ef-re=(WHlNSkS)K5K~*K8o*`u#6gcW?Mn2cbz}jXA5lZf^U+EF&SOdt;hy?T7DM zJ8lV?ZrtRc^E_&wU9tPN?Yq~nQw#jPi7d}2VovS5QbLl&aTS4LVJ|F+|h96j@ z&@of4y5eQ0`c3i9<=CsGAI=D#VOW%VCc=N6_JJe618ZJC z-T0X!(LmMt^38w$8LTv<>O{i#30-yV@NC|}v$4!kXL*Xo(gQv6w*-%`eaZ;GR-D#xw8iw)X7X|(CJ?XG0oRC4d4=Y6d=(GvSZ zoZogO82htuhqJt{lu-H~%FFZSiM-c-MwGDL-uRu_l9>;b;@)jN@8&ARz~CS>nK4Oh z^A)2IAyBYy655~uqPKT{VOC}WM})TP2^p}^DhuYPTS2Vp8^1B11q)4j$NY^Itm<3h zM{cmt-e1gDIJuD$`Q}%-TY30FcE-f(%U|8g#PE4P)8zd|qRoe^+7DMTZa-Yb^kgsC zkn>EPkjRf_nZd}*$RxrH&nnaBv9Q=7^2+q5EG!1~AVX1-4=`iFKm+4GV1i1?PYx)` zFDTYe&M!*UtH{j>@J2D#_qNj+rV|_t3{zczsSl|# zDVG!&r@OJUC^>*^);}~mdlM%EgG(3#13%1KAl<-tOotH?JH;iHIjO}MaRUtSY>-Em znlVoA1R4hp!*w8$SZBuRXMiGL=g!sivWy0XoEb2(g;6X>Wn`Id#>xWD4bvl8S){c- eGO-}iQ({2@#7@3o95S-8&j%Z!uO{&H!X?#bNIu+w;|Sh03m=vtOa;WrPg*WN2T z-_5RSw0OG(n}3w7=4#*K&2>u!cYb+N*AXewaX#wXnU8`Bv**b?({lOrbQ$kS#p%hf z6c$w;?@I{1{(VB7af)$b*V?P~M!9e2itJ8a;(cRbF1xe;!8fv%cAr^h)INJ4W;pfT z5$2~%$FB%xXEs-AJ`G-`mBaabYTo*lF6?UgC(n5&_7uCVKHd8-j=>^n%LxuOm0#%| zs)p)Y_B`uY)+s;x`~;mF??0VnQ`(A*Oe@O3wMo z{#Aj_HvNhvdk<%MG2hzFe0Zacsq_7|Udd^}QeK({kK4;0{K&P~DbTGcIKQBR&1HA< zS^4A(C5~!$r$3v2D8_L{NucDLXbGmiujebuzVR=;j}r8oyHqwP@PX3cyRGNlT!k1I z9E2w4xr=Q!777sp#lz-g_Y*SU2)VDo_>mi|w8BDBzm76Y*E-yAH`Ooy1JH!`w_PS@pR0lQ$j4JV7VvL6crLrQ*f zKv8}{v3_DffnG&!PJlP6v9hc{?H^gETd}gpgUyQp3Cv)h+{hw4y@!>B2a&+0FJxsA zW$G80zJrxTO92#COYhC+Xi#8axCq3ez}yT24UC@!r?;@ND1%iYLKI!qGNb8^KviIS zU$Fu0m2;iW&JNXf@p!=PgWL=Zdw>|#@Ry0x-zhMPPuJvN;Q`x#hzNA0cXOv7Gy^JK z2~?^Ga&k<(zWmj_Obnm*GohI}wTfZ-H4YXfuxoVLS)`fgS};$xOA*sW3p3w!`IDHA zu`)0ON~2rX`i^<}1$L+ztAIXYuKU6~{RA5{Yzsi9F8Rhhy^ozmu^!}{QXMvVUSnsfH4E-#?1i}CS5^B@p diff --git a/tests/test_files/nested_for.docx b/tests/test_files/nested_for.docx index 6a6eb0cef18c9a8a4cadea09b2d0aea10de2873f..569b5e3d72a6429ee08b071741115365ad466c3d 100644 GIT binary patch delta 821 zcmbOlH7$xaz?+#xgn@y9gTb#YeIxH4MrI(r`3xgJgmI5)CWKMNk^x~nWld(`1gh~} zmFV)-WO5*vX8l>e!v+E^?`>S4bo(FiYzzvR948R8UO;8ty3IcYJ7sT1E9CdPDwHnV zRP~|o_@^_=&m4PwHvPWq`vtzMQ`|0FEEM!ucq;6gWUZ#0ez=LziPV$Us)~!1C3c=7ti0rw#{Rb>g9Fp zC;M#{=gt(|t9!Y{<*3C0%V(=rMKSVwy{Vp1q13!^FZZ?>|;qw$W7ijmZ%u zmF9yRnTs1{q{aU!J@JG8hAs1=x7QO3T;xyqdQ9-roWgb2-_YBxBh`ar!c+OS_@nIw zq9yYGwkDoi@klR6RET@u>jRE!AGv>WT%xFW%-O91|yMAozJ--Xb zS99K)T`z64pD}LN&&xK?H!uEf{+|gY+&3$Td}9R%e3`5d2Z%9w2lr#JK#9;wNVuOA zSOH;3N<}e)rRMR>0gFsNs=6Air&#S9SRzNAjgcEES~uJBxj^)`@LMtRGBSxU!=rq1 zy@nlF^8pPrF#S`*8cdsO+JNaYO&g@>-mU2f7Ol~iW?I8NSzkna@&;`lu+TrC&{Dz4 z(mJwW?te{brZ19{WweyQTpOV5Evd|5^5h5|MX=%;AosTNgMCsI`cnA9{*PLS@YKm*)1=pq^NiY2{r13UOm}1ar&c=MXpNCF=2bcg(M^oPVlYU zSl2Xf@!jNGc?J_rC$=5ceN^DTQZriMj!G6oW_Z?8R(I=HZG3y`Yaa7naGj;Mvds3; zpA*Kn!gQ|Per46yRoGCxCp5NP)n-MJzQdzVj$e$s(;c>?8(*9Dnr*_-z8Mk6XUt>U z$;}z0-N}0YYr%mTs`5v)bXuG)=pFn%=jW$<=V#jwXq(s1+WYhLgr5r9nf`BLTH}wl z7YOfavgg_Sr1`|92_hNat;`)hrq6N7mkd{wJhQ(%^IXN0?gbnc-|~bnzger8QnS;1 z#gWy%vpFX{S#XKZ@l5T7#sAI!Gob|gWJamS;9#GvI0q8QpHy8S3`=z@MsB1S+B{ii z1w`h#)Jh0rC-*m2ux>lKC}uEYlb{a=h%wnpc{P}Rq5KUj@lb`0k(ZH4gc%;=lN&Vb zz)B8kn1ShE8rERiLemCJmuuP}#r7UeN3dvvmNe69?#TjDV*CN#Xa;IaGfm`~JXc#m z0hCJOLl@1GWMp8t!^FTK08D2v(7c!-lj4Jhc+eBTK+>CR1;k(4{ zz=SjJ+VbjV_+pSz)@pY0rPr$4xhS%oX1v0Gjmnvb~ z-OBiNQSN(_zbPl)wP;>Dm*Ek$d#A|kKtl7EV=(mQV&V`rqtdH3J*st*SwWOtqR zn(%r0M7y0$?_^QDzFC278VlI(s_duI-cR1oWm)!hYNcb$GPT%T#vk{mrx zbHe`Pi)?}dU3E6i$v(T&ecScf-w$pI@3>LD+-2g^rbgp^?_yUUDc-twk1&tt?x^VZ z4xNGlIj6e6Do6NcvhTK2@D^zADtCDp=Vccec_y=vN=#q&XaTmGzj2b#^>8D-|KoZzvT)yG9PTH$Da@idE=dF$hK zqxfB3#w}-xKRM^n*-2be${ue2Uu@HMbk5^@VuFUfuDh4bGEoG7dKM!*c>PFi-{SSJ~lt({>BPs z+!CD42x3gG5Pl36Sj$oX7TCO$=`SNMBa;X-JatXps%VFly8b8{fOW1>l4hFDH2I{G zJW}v~R1#$}V4uvPtOZtMsUocu$-%%-o?n!rUtCg|lUl4-k((3XjcUO!WofRBLNH~M zA1I3}fKv0i{7Fp5SQ!`sr5PARfoUBE8W`7!PX53xJ~>mF2dwaGqiua2BLf3F3j+ht z7&vHPTrNF%sDkr7btPOGzHg)mM_% mnkUb|kdmJqP?TR#te;p=0Pz4T8%RGl5FTV=U|6OI;sF5iUs_=R delta 1008 zcmezC@z;Ylz?+#xgn@y9gF!qXXd`bkBPWpdwY*Ui_j2+~MwR+^Iocf_oA-JwG@tm3 z!P#iH^qoHwe74qBD{Jfu@aC5@p850H?8Ixc7tcQ;{q#}Ng{+%fyaEg^?lQ>uy6L{& zyQvyI2Oo(rXO=EnWOn!LubFC3qJrI~cdeKZutjF(Wo8FMSmh5uixOrN$46ib>>}b>#uW|7)hJ%kTZegc3Hs>+&Zt9b;u+2$W`E5Cx`|&1XcPvVy~A zi}Y-8AWaUEeGC@ZC-jR6%t+(#<>F;z5@CiXugO~#?U0h!A4LO4P-4qeUVQ5oBLl-@ zW(EcUpy4pkz&L}6fgvS7IiM)Npjbb#pg^x8Hz&Xw)y$vD(o73jCX1=agKV9wuO!VR z%r@CaNnQbDHaNzB1{wg(mVp@zq#GF5a834Mmz%s&i3h9@-G?x>4UAW~CkHAkgB5*k zw5`trx|E%Tfk6nS0&Ln@!O2sU6~KzTZgfrB0u*EcDg=2Q1{xT%g(oM5v1K~lS4a*ckJOC6ZPj~rH-$UNY>K+o66S>_$OT0^T=UC)@|z(`z1HcHavPRYi9Yk zu&%$F7fs*X_KKYs7XXxHo|3!87)vspt_vLI1qf%IejU{9Eol8HyUEs{V1-}_k9KHDp(=0}2 zpsP3EVZF%$c0Tv9`RRs}_i<^|PcigAY#`8DUgtVRRk$o@fk?=5Zl_mVj!C7Dy^{oQ z2iCBDdT+=QwLK(|z5n}~>i3_2K6&~oc{?W%zl{$5b zbStt=Hl#4jUh}E@sqhw=*#6vU!k zsrR}=dZyL#z3&B|v(LL2wP8nm_iGESHokKo%|cbZD-527H69Zd{K9N@zTw5Yw7I(P zvmL~$l?wX|ZF!4?g_anxZFT%$P(L?|hMOJ(g#hlpb98-FoGYIf|NAn>Bfwqbse zh&p?r^dv{E@7`}EML15n8!FFTw_ozbLGc;&j3{9{`K!%iaL~G2uZD#2ZQDF%u!xW2 zJ$5i-w&hB&)MQ=H)gXb%w>`gsC9Zg}GIArOuFaA{ryzzX@O)zhD|sfoNfpc}WJzG; zWn>azhNs2J&%EuB(xR@90od>aA8E#8lWTnB!MwXZ(oD%LlYjZhD}a(MINli<7`#{+ z7-WEn8U`8|?Kvk~`f7potoD;;TE#W_gr5?an+@bn;GW#!rvT=@1#<0pCv*8jEYR_n zW?C;W+0$PZEUN=jEHT;B4C|f?`9xirgGDQzozUm1g=ZGx?aW z0@%Cj@+UDJ19~+OXoM(=p$Ft9>+^_Dp5@B}cGydxzMU$Q+5D8j+<89I+Ie0K3@Q1^ cV7v5_^NUg;_OY^o%n<~_Fct=eo8BNE0Loj7h5!Hn delta 1138 zcmX@QfbsAGM&1B#W)=|!1_llW@qnO>yqg#~fwZsXjheWZlTR=@vl`F*`E2%NekPsz zs9?A0T`ML8Y>}CHnc2Zmxl+g1N92{i{ATxc=WQIEK6f!6T$TG?;eXnRykjEPt5fgY zjMn_N+~xX)Q}dVf9`n_x<*Z%GxdJgq{RqD{d?Z^Ow!)$y`*9EhWLm1(lcTmzcZq^dh=zbS&Ym; zXK$|dN?_zh^3Uc1mYXa>AP*UM$Q{*VWMJ@OWnhqDnEb~_u72$mNB?F65%v$e=P!D> zR6Tlz)pE%H_vzVF`gFRDJTl>WpwH~5;0 z&ND&fgraDTVAVIO)q7$L9|g>EGP~w*sHz}ma@?Bv3nsoezawgE-w(B8s$1N0-nSN1 z@tm;Lbr0et-UtwYb~z2y(z@f z=0?r>gAY0dnf^w8;7tu@RQs}9=Fp7aX(4mW);LLdWgAT1o%Tp#vE`9mkCsbyoa_y4 zPA3(6DzjJp=Q%xr&7gH7$GZbRJfE$5sP;xr=bur}MVUudDvy}U&NsZM-@$2{EOgFs zos-iY`Bv-Z4IEwv_RY*oUh(|camC}$tJ}l&|H@q4@Yz{Qq)9HGtMCiUvUt=mKP&f* z6%^*1WKTiD{+P-pRd6KCl~@T8najNz%$U5L>oHiyn>UXc%-ADvj~&FA>?ySxOn;a9 z2A23B&C1Bj$RxrHPm+^gc-tW*Nqrv!c~E?A|5-gb9~hs3uYfXNpI8W@jHuJe%x z8~Wd0S|x>rfgvS7IiM)NpjbaSzbI9&A~z?%8`X*hKGIC*StsxHkypS>D=?E87#bK? za{*J17TEAge`zLRp2^evmBCy~AeTpIa+tpYn7aqay(v8TroXZi$i%jDZS!k^t_8V9 z5MdzD#6C*~hVuNP6#dk^l)U_s)M9Mz%l4IKva+7s;R`Wb6UcpGGuh2o32fJDUumv$ zwoqe=CkOh9gN0uKRoOdEX7`f?drIC`?{+QF>a##BjN$|Z&&kbxieN={r=DKj3zSp` zx>XKE(K*k_Y|;vorF?n73XAR}9KQur5DHW%fuiuZ*JJ^I84*@Ckfc!-lj4Jhc+eBTK+>CR1;k(4{ zz=SjJ+VbjV_+pSz)@pY0rPr$4xhS%oX1v0Gjmnvb~ z-OBiNQSN(_zbPl)wP;>Dm*Ek$d#A|kKtl7EV=(mQV&V`rqtdH3J*st*SwWOtqR zn(%r0M7y0$?_^QDzFC3o04vz!TcdvRLBGQWJZFXmaEWW(3|Mc8{+oq`Z(TD90{$$HNcG=<~&zeJ< zHd;M?fAsTL+w^%$beB4EOTIt&xwLL;6|1u5mmj-c+HecJ-n>HXm0Zh*Rc&FvB&;_) zTrv4R+rpNc#N3;d9H&d!aL!ZxpC$%p7! z%Jh$smytPBa6jlZX9ccyzL10RSfdl{Mo|%C`2BrW=H!wzVOtx3j0=sFwk~Gs&&dFz#6u?|VWof2V?#X`2@?dTbP<9gE zoC=rPc(0w`|1D#yT(lAjz@~ delta 1029 zcmdn$zQvt4z?+#xgn@y9gF!qXXd`bkBPWpdwY*Ui_j2+~MwR+^Iocf_oA-JwG@tm3 z!P#iH^qoHwe74qBD{Jfu@aC5@p850H?8Ixc7tcQ;{q#}Ng{+%fyaEg^?lQ>uy6L{& zyQvyI2Oo(rXO=EnWOn!LubFC3qJrI~cdeKZutjF(Wo8FMSmh5uixOrN$46ibG4GIp0NaDT{)wp{uUIV9U8N;7t?9^xrM~h9EX36h zeRTb{RW(1pn~OtBp{=KU`S17AZ*JDymioqf&OF0--Z9Sf1kq`|S0(@JO#6O*PUWO+ zQ`mG<_OPFS{`2k|*`6gE9=~4pS*ImpzN=~Accqqa(=C^d-)Q8W%oVGxImNHruYOhU z6$Ld7EYh=@xx#B{Q;`Ou#7F*US z${ln0bKnzIxfdLSlV^xL1`8B%YcYcvb)wJNc^R2RnBhrs@>>Nvq$FvgXaG_;xjQ|Gl2V%D|u_&A=cCjAIyRU=(I! zU?|ToO3?>KdueWJUI`Y{e8DjdOd{ujNkj&w7f3fSUgMrz#v#X#ZhgLzG?P5<vf}R(iWhxEI_M30RaOIj5j8qQ&I*8fC13teWH^axrHYu zDDfzOJlFBK_tsH%1_mZq1_pkZ9w6Po_*!DJpt7(CE6|S&4BS9?5EyiK6+k=y&~Ri@ diff --git a/tests/test_files/richtext_and_if.docx b/tests/test_files/richtext_and_if.docx index dfad17f8d8a3b6ba696191736456910832ff9e46..ba238107477d9d3fc3216394d4c10d48bb7ed245 100644 GIT binary patch delta 837 zcmZ2rz0jIBz?+#xgn@y9gTb#YeIsu(BPWpdJ^5o*=ZncR8J$_4zn|Sd`5~iDy;ZQ= z^sW^X0=CG^yv*!is9dSz>m!o2wEw2^bp!qh7xp}I*pPMG`ow<8O|uP;p39n9{w=KQ zujWP5H#feYyO3!(*!bPAQ|UA-b9&9)-C>>EUsZlokeF1qb=$p0 zA>{=(rkKAL-!SVEUs4&ug*zCr0Pr zr_QPR@af3p-0Y)|x5X8P^)jye_|5mSbj7DM`-a8Ff}fbn);mmj*LE`OxR}Ss&Kaui zdgq((oa4My;Xd_VcQSbpcXyW_q$uC~MDPO>SV(NRLsS|P@Z3uqF-E6nUh+qSCN|&;En2RSy^eOB7w&7DD9ykiieh=H@Z?e%Ww6l`q@}gvBpDb|@{p! zZF<*=2?1MVW?p7?FjTJ8@%0gTr+%S7`-9>VZQW?SjX>-D6ZbTglRG(Gtk+a zvn3N5xsm*{*@|Tf6WBvarfZ7cO}@^iS%2E^uz`T<_nOwHz2Uu+#RQy6cR708b^5_@ zeWp!Ia`e1R#rpnGmL-c;?K<%(F8iEJ=AL^seA8qVlHSi1a-GJ_cJ9Zn^0h+wS3f^; zG*Ee)mAjW&)y-j}X8tw(1kazh9`{4H>K>55{81bfjlUgoS%7!J%f>f;V2UWg8(oQ!9WA!jLG@Z@*u+|N6Sj9 z=&>*`q~s?D6y+Bb>nGtnrRm6Ul)x%(0=d@(Cx4THIDL+cwB{*b7?kH1rRW!zROX}>LmbY^2C|16 N2oC~%eo_j=0|36fA(;RG diff --git a/tests/test_files/subdoc.docx b/tests/test_files/subdoc.docx index 8a862f776ac9f66c212988e732352691c5f58118..9579b916ccc798fc331f9a273deb36c08b1849b2 100644 GIT binary patch delta 1025 zcmZqM&fK=0nK!_jnMH(wfq{d;uPuEeZx16UkoKKZo*w>u@*+m<`i={;J!%^iXWr$# z`)7hr_U~_Q0b7E+`Q@I!pWUB0ZFTefBlC(14Kqyhqf|9!WW-8rsk&=(_T5yCo`a7> zm@`Y4EDF1O_EW3c6RTji>0K)(1ZjwN2F60y{L~MC0 z`(!@P&AA3gZ)MHAUZ!{S*^CznQe|(d(_a|Qn!Ef!df1;=D^kudZ=9BI7`o09(!0KH#t!VD~H!EtiLuWsqrPrVtYZMie|KqiQI0oN3c#kFJp7J4nW=GYnbf|pCbUd-}Jev@+H zYj^!ShjpK7bRXYop3Xim=emYmx$nV9Q#Om^x3{ld`S9NL^_#4Tvc|=K-j-=&2$z+v%3$(4>~1(Q4xzQxLeP&+BN^kEat^Vupt2;4m7j~Yg@7XmrBk`-b(U(I;O=Ckr0+#MqWlH5oUOLn_PXv4k^7I zx?!LIN`3os3_okLGce3kVqg#ircD@VV4Tl1x&Nj-SP?k77#SG0Ff%a7z*GR~2F9P9 zlh57MasZk1-Kj-PpM!yc#e;!?A4QQVHv>a?eo=~kaYh1*UMs>`WYm)oW{Bp)Ke?FU?cy0FL`A4LmK1#Zfb#seXfWgIG1{q&B-Pe0JRio$N zBN67z(nX8R?w|m%|spIP-^2%R+v-`U9HV#goyO^{ZRGKleNdU8APXnR>r#(qe?7{ypz{CTVZ>-Y|MY{KI_d z8L^Jv8BsjFIr{2iMrNR|H#1((W#mQ*j?HVB!r8&$u{+m%8N*~AE{*!jr~M8a2(VtT zjZdt6ELs?}z$tWYo(Kw&wS|o>H+=ZvA^!=S%A@HkU6r!l7aI^y)88Hs6DcX7oXGw*Y&3=gQ@-Iwdj z%fGK~^Me;hxH5BY&E+b6(;%|_fWUT|nmo+tbmERb``m>JA);tu5CWn>azhNrj5)i>;r z(%YdM1`43m=dH!(OGVW5F=A=6~}+j1b&COh1gu6Ji)U`WYN4k*em zDArHTFG|&`$ju4xMzOEnx1^b@k4!E+FV2tVoXPb- zDU(x^H=Y%lyx|rPSoLn8<}arw-?*s+@flFXtuvEjZ^?tXbvLE?1uj5cT3k|@lUh7E H=e868@H%QL diff --git a/tests/test_files/template_error.docx b/tests/test_files/template_error.docx index 17186497da7e126c86fbfc7e75d733e1bfacb5f1..0955b00b9f042671452df3667e90f417c11c631f 100644 GIT binary patch delta 848 zcmew$|3RKNz?+#xgn@y9gTb#YeIsusBPWpd{gb(b|Hb5bMwR-!ZK5tqZpOL1@Lghe zV8WSqZFzMwe6oLkV+-68GxAKQb?=17RLK3+}c6@Go^X8>} z_Y!G)k>DlRYn2qZ`d!-3CgFm$nv2i7hIr_>^_}_Y_&Uj*Ct%hT!)x>H0vXo%OO>$g zZe{$sDEGa|-;@*YS~RbntM`c79j$40yyyCc;QQ6x{U_fsx!GNQ6z- zFMIR*KPyblyNzW=rU$5-9QzdbG; zaz7B?JpY>Kp}0TWelnqi#AF_}E6l(|u-SlPHWQffn9Yk3%uwN}VdO?iFPqPCc{B1d zGKnz5lhEX~ymm-Q=nJnwJSah-hb}OH!JvV$78vG`u+C2|%}vcK(W}VK3GhZS)E6B1 zKn==3#WGN>AgY1!6U$^?Rylq&4U;$U*??R;S)X5;=^EQ)AAVUd_dTC9Qwir}9)1Nd zcNM?%7Y&Eo~} E0IoGY(*OVf delta 829 zcmew$|3RKNz?+#xgn@y9gFzx7Xd`bXBPWpdU88gO3?-n)M$_+^W20u=@w4fjEQ-%JcQF+)fxYhk&yV@aWL8$qdfzN&L!Q>}wyhtJt?pCToD%ft zx|f+($erc?c;Z-))AMhpty?%-F1b$gce-Ca$?W!d%N5FL^OP(%ugY3Hq2`U6)SSxv z`1kXBk{DkpxHzSYrEJc9XO=JFaEhltI4M-&h+n_b%bQW(l+PUq_3>DG`M6E9$V~Rx z2i_+->|U4f+I{wU$z3}WR>eLqxmU^`wblF3{|(9a{pI2p*`M(!I(o>cYs%3b28#R| ze)F|L6EmxA5B-`Z_{-zcA@>9KdF+?&cUqHI#U9BtFaBZl{5Nlp=Fiqg@$+OJwkyoQ z*xua8>BR_UJZ78C1ZITtcr$V%C5+AIxM~=A8JR?w;b~>^T3$P(wDN`5ARd%*f?}RN zb7Nv)ILX1lAP7uXFwnqQ0~9UKFG|r*$xklLP0cIOtH{j>@J2Dz7aaOPJ<34EGBCYB zx`FW{%Va)QIes(^lQ;0$fLuIThhLiM8r$RvoFbEB`FX%X@A;&elsP8z@XLa^tNEoT zxAXIgB^DH5v3YV1zqGbE4+8_xbpb{B1;zTw`9-M^g{*8Kmv9214bWNhctJb>cZ4ms diff --git a/tests/test_files/vertical_merge.docx b/tests/test_files/vertical_merge.docx index f3fc3d2af246548301863ea2d5b40367db0369e1..f36199028b31e6d97877ce8f405f67926ab5143c 100644 GIT binary patch delta 986 zcmZ4Ox6+R{z?+#xgn@y9gTb#YeIsu(BPWpdol~A3{(SOGM(z5J3$s0H8x&{W<-Pl7 zf=~AEZ*Bowg1q_Vp1+^npEzxG^ZX<8iV6)gO!K2uHD+YQN^GgRYjgJ9RE?g4k3^U= zOP4GPyLh)c`N&5 zKF`g$21jpY&AeWwcl6ne7YR~jZ>rN@7|xoz{6KoxpI0kV&MYP3UVKcA)7pc!iv6_fwv``d%Ui(TCe3@@k7@9)!BwD{Td zP8P+>o7LDHSvf#{cK^IbW^z8aS^W{uN{-OdU5-i~v zh!o4~vx@uI+|03OJAF?f>HS zzU%TQF&$%NUKcDW0&L{E^efBvbjoRDnv#|Y$-EX z$xEsY)|VW13v9Dvt>Md8%Sex7a6F za?9xic%vAC;Y^@Q!JvVWiF5Ko9`Sl~4UZ?R_ukLQz@P>6n-EMjkZxf7&Bwq{o?n!r zpO&9j5|Wsdld4ydn}e=D>|uFo6&C};t7ZlUeiZ$$1fcqhODc0xiy@k|P@U^*EOIFg zX!{GG?Vyl=fdR vbyr22>7v5qUn+87uC%JO;8i6ChLrr|fTH|@V*TX&qSVQP>LP4GDj;J3J6l>o delta 1029 zcmZ4Kx7v?4z?+#xgn@y9gFzx7Xd`bkBPWpdwY*Ui_j2+~M(ui!h2|4~F*qCTmcH|6 zg3s34YGsXG0p9#_#xs9Do1J)V_Tu?Rq@O-Yx{!5qi&ucb#a#v&UpL*?dpA|1=inm| z=FHMXi_Gqx{WVkVNmQ`g^sW^X0=CG^yv*!is9dSz>m%~YUw*Uuy7M*;PM^D&53b66 zukb(ZMBXtG>(#0EZboZ7M#xMkDX+<5XTzvJbTfIN`JPBQ+rp}pqziZNBgrfdE?|LR_Z}#3WdPDrfeCZjn zj^7zkJiYmz0wWVM(AS$EDHSntBL&Ci#Y~Q@9H8(}GF?+N`3<{SeeYy30jJVkjvjZN zelT30Y15J%Jug$SzCV;@$)Z)ePJD{XJ|~m8=UxrpG+BkD_j83@r*X5L`?0Hhtx*2e z&yO4pRNiLg?qybWbJ(bve@#EZbgAT>K+stC;=oyK{x_+3?8n-au z%qoY)tt$^0{$Dd)U4HK$CX}G@U6((J=@=^mL!dMRgD5bSY*yfW$_frE4*oZcV8%S@ zsSt*l>{4d1$ajG`T)d1-BFyk~H91km4k=x&P%(%Dh3dNVx2|7fWMH_@%)lT3G#v&S z7-ujsFr?%s2NdNO6zeAz6zEmt<^*`7nCUCCuVKC)Pq79_i0Mty-J|xKXIUY zfmMuwp*+7RMZY+;q$D#hy%<{vggq=zt>R)}c-73nzz?$kNH;L9m4s<8smw`*YG!2v Rso@5~gG>zU3?V8YE&z2bP#pjO diff --git a/tests/test_files/vertical_merge_nested.docx b/tests/test_files/vertical_merge_nested.docx index 9d4b5a930f0e109be1805ac90c7f7bdffbf0996c..b2801773c23a344216e5da70111501f8ee0667da 100644 GIT binary patch delta 166 zcmeyR_e+mAz?+#xgn@y9gTcQoeIsusBQucRT*=4_VRSM*;Q)&iaC1XM>Ub7G7|MLU z5JoZoT_&)aU?C}pNP+MXFk`a0s2xaVa)qcFnBFLA1ExQSx`SyeF$lj>%ofbwDP{$x Mzlm9cX%lfb0C*NOp#T5? delta 166 zcmeyR_e+mAz?+#xgn@y9gFzx7Xd`bXBQucRT*=4_VRSM*;Q)&iaC1XM>Ub7G7|MLU z5JoZoT_&)aU?C}pNP+MXFk`a0s2xaVa)qcFnBFLA1ExQSx`SyeF$lj>%ofbwDP{$x Mzlm9cX%lfb0J_C1eEJE?1dpj=7_V~-_Z1lTvHosAD?*F|DHKJB#^V_CyB-^F zs@t^7-Y(nlL*VVTsZg` zDcH73Pa=TUg{>d*?aZdBfEc8^pW60K?7sVCy%jlAO_stpx zlz`g2o@om+2PmZG)K7UiIh)PTWu1I%gc!f=Iq7GW@-uSEA%&Y{}1Gn(>U|e`5POX;~Y#?`DjjW^$da6gRrCOzy^s^&cg|T-!Wr?=6hF+*t9= zpJC4WfTyhXecAb7&X~LMq2@-9NlF= z$ALiuV;TG8iR|K&SIO`=fD{(xGGCEp2g*4zFz`bafv5(?L|%}Gic<88ODc0xi}fmU za{|0k9k)|PnrXGjOW6`V}bpfQf;D8%W0&rREgt>w(C% zllJ>D8}hW5&r>=zY31~6M~;Qhb}1~$t`>y$uhBPtFh7AyK_Zm zJ0J1Bab;WcQT0vM{f*~)eoWO!@sQm#QGUvtviPT~5|-NK7gzgA?>_BQCl>tD&nDrY zn3kUY(wZ|qn!4*&wp1T`aKYExu_xH=^XXpYe|GF|Cmv*M-ZtgKeATH(0zKx-q zZb*NC#^P_)PMLA9sl=aqycCgr4}>j(R4my9&iR{qJ?Wn{t5 zu{ZqS>;N=xHPAd^6!ZRzF)*a$CkGVe7ZmF!mll`g=b{@33YYG=#~(&Qp_f@#bmIc(l5~v+DI8I9