From 5338b17a8f241595aabec7348bca799831b25b66 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Sat, 14 Feb 2026 16:53:30 +0100 Subject: [PATCH] Avoid NPE with malformed Visio diagram Fixes https://issues.oss-fuzz.com/issues/477312394 --- .../usermodel/section/geometry/RelLineTo.java | 4 ++++ ...mized-POIVisioFuzzer-6312416206454784.vsdx | Bin 0 -> 33849 bytes test-data/spreadsheet/stress.xls | Bin 78336 -> 78848 bytes 3 files changed, 4 insertions(+) create mode 100644 test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-6312416206454784.vsdx diff --git a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/RelLineTo.java b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/RelLineTo.java index e6a9731b66..2ec8d394a9 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/RelLineTo.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xdgf/usermodel/section/geometry/RelLineTo.java @@ -47,6 +47,10 @@ public class RelLineTo implements GeometryRow { for (CellType cell : row.getCellArray()) { String cellName = cell.getN(); + if (cellName == null) { + throw new IllegalStateException("Cannot create a ReLineTo object without a cell-name indicating 'X' or 'Y' direction"); + } + if (cellName.equals("X")) { x = XDGFCell.parseDoubleValue(cell); } else if (cellName.equals("Y")) { diff --git a/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-6312416206454784.vsdx b/test-data/diagram/clusterfuzz-testcase-minimized-POIVisioFuzzer-6312416206454784.vsdx new file mode 100644 index 0000000000000000000000000000000000000000..e05ab739fa8a4ef7d15ba3114ff50542941b43c8 GIT binary patch literal 33849 zcmeEtV{~Uv*JW&59osfLwr$(C(Xs7xY}?i^w(X>2C)3aS&OB@IpS9-uJ9n*Hx9&Ri zrFNZNr)r-n1!+()G$05dC?FspA|M{1!PXF9ARv1PARtsAC=hL7dpj3XI~RQwPX|+H zU3w2&8^S^`5XyWYkiYH!|MOoMfu@vkxj{yxup5ak;X@j!O^gsEt98&xWG_lYgSDh( zVm*`2jSUt}9FZk5jB_$Yqwnu$bMlPnQf*aoYX?1?oFqebLTC%Skj1EMpXr?iio}<` zCWGR+_@o~m%sHFe(I-5x{6fu7T$*79c~p-+(2=iG8nbOmSfv_$(yjTaxArYS+&FOf zR2ehSv})G%E%~nBJ!#ihbhl ztUiQrOb?~8?{WxkILATh%4?6eyWtzd9bnf-%snDMuZZ*NfEqfYd1gy`MAz4Xr)~VX zz+XC&a$CcLj9|?{YzebCsP||2Ks-M|5Zo}`d^rk|1VvSPVAQgW%^6npc^Eo8$e5B1nWi= zRQIn%NT~5kyHj%1L`%z^Z4D}|Q#(F0=GSlguW={WKf$ZU6R|;w_Z6ui!9*87OAk+u zZJ%gG&3;tjQ|2d%PdP1Z?$8N1%4Pn5q>VkPluLhXp=3h^GnoojqLkqXRR+|`;ax>W4%Oz?*=kyG&QEfXd9`Q zAmiq6n~>3EJSze6jjLckTBIG?AEca>e?3o;+hMCWb&F9!v-ctaz~3 zPa7hJ0-3@O4WEsN=gLetWWnM%JWhPtmD~ThXYJ+Umf-8=PZ46gBC9TgXgYfUjZAE2 z6sxZ9juqKLsD{@#U_Ng|5oLNI$Fj*r^uApHy_&+r#&sjd&id@tQ2EY}KznmeDn#L$ zH!@8x^HSv2SWQHa25o-ZdYJf+QaronOJ#`EJHMufi@CA8Cp+XCVEjNCt)v1r7b!Pr|w$UhVfrybf5^TyX0Ib$1_! zRc3wyxu5o`3eRsh?$3zYBkm!bpQ({Z;ly0mS5g5_=t2;C#)OF&thZbb`GYe?{%$y4 zh=J)p+!3^=TEjUUlOxM*terObZ8G%H9zt7DAawl_78tro!A0j_#(Kw*DfICNGZ4ml zfa;ltsXBHYu)vYg$iD^P7hc*Ozh2AMwrtt$X5?Zscdp`YTcPR5${@~8;@LkP;=A$Y z1^V<68uElk9tMR3pNnZbw>|+5alv?p@qqX1x*an@zFAI9sqe#Glf@Il9J~ge0eyt| zX`=V;{xiF@-~bGBT@I|KaN6IeTVLBk?qiSAwWnKK0Keye6w$|PB(0{&aixcA3y*c| z#?L}8_eHKNxHhH8?Je7znD9l{Y8}TB#*^AEGK)*YFLO|V9Rjv+yn>+|geE<-d5Bhr>w z>CP!f$3y4FY5(_Z%0ZtuSnRbPWT^d-QGkdE9XTv8**O8u2}y%sMz*?QaKQA4C$kQP zWz!T?KH|%YVv=}30Yoqhn$T<;x7Ea2To~*zTjo%l#Hgn+&}@V%$SgiL5JBH!Op!;O z7Wj-x58iB*Pt{w}9|Fws-&ajMS6hJGx3!gGA=Vfo{n?nbpp-zBqu^0y8DiX)ra8@XbPeqt9XsJNq4k*%FJ1o3K$ z=wETu5Ak+C7%50*xkV|DiGo3nh;si@V*EjWE{$1WX~G+m*DTIWD)+%2VPt(f?NmO;@rwEA}p)i3*)ydmt!80p)VI@!^q%+DNJt+ zacl9IIt@7i-`zFxS&Evk0dUwf*j#5kap{UCsS2J|_Oa#wrsUNdFwUGAp$O_BMi}9M z0D*B>;o<0_x`z0B2lAfVk5(h}fYyFg0k3*_T$C&ybX|dugJ4WRpYciAp6q3Ko4{Vg zAZwXH@tO|`6Ua`jS-!g+cg<0mgj-IXI~FXH_n#7d8)7?i57^If*q+THBYLA%F6JDt zq!aol0s>JxI$UEX8wHl-z|t9;bQ#xz*~Tu;y1spk6s`O;-`r?HZHhVWX)J99^>eeseQb!3@P3jhL{3?nk2tLrh-*bUh4>@|WEeXsNV7d?G7i9p0j zts-yI-KmPrglhzkmR4mMlyM433V~;NT1-*rC~zrNFs}O>m@l^%R9K+C#VEwX$*n2t z24w)P###b=sNTTH*66Z5?MpC}TAjt4^3U@ej%c-+{P>K{3T65(b7cLvLl-EK z8oEO)_U*~*=4E6W=d59zL3n%%8Jq=7(4vX50!c9UL}5UR?3e4L`&*2sRb%q$8B#T4 z6T;fVHl~L`kX|%g@N43JAd`L0Labu?T4_9gE=86(eM11K(T^4?MZ5Q;`m4GT$S$}Y zY=fZ$Q-Us?m}5Gd5gt^GXhR-i#FGJWv9yIYz49IHiZfSc8CacgD#U`5_9Sop{%0jRF{ijR&i=#+PLC`juu_&O?v@`Q+C?L*v>IAk-iCtw=fVIF30ks=!8gmboxY;SO! zs|R!ipa{Z5d>@0<(FqFbfq?dLQM>PYQc-7v`D-GRh0efMk06?T2YkX_E7^pK&XIo7 zH0fw;^Mm^OZ2(V++@QFKsd#q7{27)-xlKR!1w#hJ0UoKk(Uf>fgZ#bgOw@`C z#Xr2B+dtb$u(AuAMAsLn&NMBzq49tQ7i`LAkWb2@L%bIdqIE%!xEX}Qn0!4iZT!6v zwlCPl-DV@K2N{`l&CTgYQ|eV?loV6V6V;84z^I|CE#MLm`QhsJ_I~vl+^y$s|81b2 z8)BkJhgULz;wo5;;)>ib$gM5ctwJFomg02A|9TcA6N#tc+pF|>p z2AB>L2?~Z<%R4X?*UgZPP^uD6)8c_>@y!$TvlRZJ*FOIqW#B1jzZ8kGz8M;CaxwTt z9{=TFpils+exMp5JBz7iw>sUp2|4ow3X=v%03kAVV3nAfyVsnzC`QuI)s>H00%0y5 z0LvEW60v|?6@zexnIMOW3e~xGCl_(d3ZBTTF<_Z!Q?*wrNsWVlZvo&;2PJ?;kc`XZ zaQ8Aszi`;=A1_a~DJ4PlVj-atYAVDg>?X`qM3q56jy zL!gRW3I*E+D@5M`<_?`zM0yzq5spWY!H^w!VPCVOlPk3aWlP4$KLD=5@>YWw>HI^> zxud%mk*A}t-v``6gA~P|WS3f*5a#J7e5KsQy}F6&Vyviv4q=-lmZ$&u-B##ZwE7N{ z`hw}ye=X4%Z`c2zWyO>o4*T6N&!mx@0qVZDYPCpo?@)NWN_=1e&lFP5T~yKUwo^eE5}_ANR|9Tg2qQ6w03#sS z7SpHVDX%Wp%^xn{4|w4>&9ZP_*puSihY*f~RoNDK^;v>RHA6r^D>F03ELu+c!S`I) zr5T3x#h2|e3|s}bhGcc5FHB7+pV9XPyj&#O)zU6DhZ7_VPOK$BZ!-)2d%pm*AOE*v zIM?#B(7w0f+(wu{$T(Wy3wy@M7j-o-)!S*#oa-i+4D1M=lNWPn04aVkHb*{ITz#t+ zCoAaX*J>OWA{b@cU@H$KR8ws$RT6s5-os}nAQsssM zU}26hAzF@86Vd_5u5s+f(Bao_hMU9z_s&ADH#|%>1;@k%RkkB_s$bM$hX8Mh=sBPq zvrz<|##NMCR2~ZB`QXekF?~&>@bhy{iz@pPNtGt?9ax+zB~4wgH3n+4s3|P6R?T)> z&3znBEY6;o3#9vDopDF ziJMSXCdZ>~WJ<2+ZiU)wrdB2Gu+2`Fn+l5%4tY@_omRi4k}F1*a9JO`&zEAxyiBdG z$`_QOO2w9dt?!nD(@@_xbHs3o?m(Mqd)FP>Maw`LyffH5CSuLtQ;EA2Kr4%(nHQ>j z@bk5iF9-!GQssbL65-01F zzFMV=2W;`x7O7%Q#f(xZ^}77fEp^ew;hR^M&-KDXW25yNi^lG}Fa#ZA|44fujy6jF zVnUq#G=WfjO4E$k<7kB1@;3u2A+VJJ9n3J*AnX29ngcamTQh`qL4Ik8Md-aR_b_PIz6iG*>p?*wY6t<$rks#4O^?)&Ns-vs?;WnZ?ERa#nW+DjupgGDi|S%?m3 z$$oX{<#Ip1E<1$%!sK!P4)u#-f^;#La94$!^$C(-xO*D5aR42_+?2i>Heh@ZrPd8@Ic^qFUE zf>b=%%#>V^)*~ZWP6ndA5CthRP^!uXU7+=E6&TguT91EOhhMRiFYWOh_OkEt9F}eE zjIsK{xI6619k~6n70$KSV=^J=icr^yrSHTvGdtQE2sUVw&JD5awh0$1UH1!gB>(b$ zfV^`}Z%3GVfD;*sw(cJRK2$Z)g*A)HXYq68OYg5+3BlGm>tGD7tA%IDpMNxj=+`4L zb6{}HNiWA(R&lLPFJM`T!bbC+PVX1;OI7c&o9e5w9)&A$`AiqmIAeedTZXvjW)9x3 zC1Vk!u5r08^bmUQAfX-D{d=YmIQjRMhWgQO}53^V+tY-9J zod6f#j$dBT)L3J>`TzQR|OKK8N+j?sj|ZHTh>GH(L6n4SkHB29;A+iqdo_PdCQss-V~G77MAmn8>wb ztE^9m{h~xG0ncJ*R>^+41yRL&yM@zAYCY9Dbb{o0$!uz|QB2YadmL?BI%Pecv)gde z91X4!J91V19bjuv4Hadxdx$c?US~4~TZxeP$Mj%xiX~%plQb9JmD1dJzLK5ARxypf z(9ft%k;a9n)u;;FVo$rBN<8vp;s$^*YJjVq=3GXj*{s>rsrl$(@=_ch#@#lydt=nT;m2}_ZYE@MKM!hXl?;`ptolK`u z#m{ z8Y-xDgDb!v44pbEKrQUb;m^iy__PUlN<3K{k7p9*x}a(Kd7zu&iH+Hs;c_d-cby{M z}!mTaV(pqB@DghRha<;Iu2Kf*QZCl-W?VY+z(xQScufL-WyvY zQ_8_EUAsUDWTIM5@0Lc3JJH0qVX|k3#~GvG>3GEzS>@5P zZ)^uLBMX_kw{kMB--G=Wqo;MP`W&$WcCAs;jl+>&H{pe>-OJs#)in%uX#6`7XlX31 znq!TnU_`Z!xC@$<(Je=Z`ZvMWIwaOp*&##aGwt34%JqJr~?Tl)&BXI9;ThlMP|FvAIol;d7 zC4@>Wwnrmka)${ARgydK;8Pc~(zh}q7VWjNx>J*!bGyD%yL5A6$;vk+=kn($C4k9L z%$LwxrZE!p=MBVs;~jYkA%x-jxSjDo!=hqj@DrkT$M)C!$%-4~Cmn6qLnc-UHCZVe zt#(3Rdl4YrTUf9j;Arsa5hczPuFYHLGm|cE38{VAukN^?R6GJK0joP`Y0^FFXN9{z z4{r8ETN0w^xq^PwwR#5I1)=^u_x|YrvRKS&GSUuRVZ?Q)ANq|xqY0O%_zq-`L$B8u zV~-E$7FS?=*}md-dT7{*u%@3nx_smDar*tOSF7wXjriM)zMZ1$KskI*Hc-CDU^|*S zeR?;;M89oC#SaVu6FyVz7R_WDC?Fik^J3psaCjk>O+roW*1*JP$jOY9(_=ZAV8ubT z)C0dkO-C$GW^ejwV)+n&s0ML{a`gONu3mhAg-g8XoELsy7TB)! z#|FY9nlA>^?}6}}cqFv%EpfXy21e9>R#~PXi+eVtOJ{ z&j*$u^oI~Z^{w9OZ7a*F?t zsKgCsT(Ir9-*SV_3`qGLMu&#jO(ngr)ZlsCtJv1s;Cr=zawC_ zB^XbyN_uyVs0rpSS)kR3snV^dDX7K)Sa57q#)s2x}_?_5q^*50xaufO$yy{KILsy(U)}Aa_L-q+o zRBNj!O+!j%`PCzRp4isben{#Ta&qO-q~qHzbjd_6ttX_KOgM{cRds{rW3z(DK&Z6b zGY9Ia;xGhO`SxY^8XFAwP&~Jl2-5XYnmxhOE0!q{FI5%-=G$pP%K`9?$U)fhyM{X{ zrp_?yc?t5}qGgE*ZL-D@wv6^23Ty*1C4Q~zU^zM2a{*-w7mNB=i?|LHRSc9u<*NxKb3q%O=; zfzuJ?2PrZEBrXY?-)sh?fmgrB%MA`wL{*4Y6B`cveAAM%$Lg}SE0ZJu2?dR4AaYYkjn zF<+GwK8U2&qjkXx%P~9z&(csG{QmW0qR2uKSbSS%EYa!+rrnN;oVZ$g7f14AHAz7s zhFTRsZMqg#QAkDlJ279-E+D!}%A8vg>ex|Q+Cw4&*$)HBykewzzR;%Car7gHUz{T1 ze$1d#!ZI-3jZKV+Fb~D)I;{SiEF!CR#UN|pBqYSnAL()CS)ax_0o1~Lgp>9G5MMZi ztA=({N!E4Vx^!v;C%U)E4$|A00=Uf#dDx`H&-TA9@?$-H{^TS_Am{2P+cq5HFu2g! zh+l;dro4QFaKsB$6yQa!A5-7xq*cz(vx&HYFnl1oUfTzJL9o_n-_yc<@}O`fxJ2o? z!M!;yOq(Ja_ZqfW<`-X(c0#60brbmr*C*R_Ls;@=gW{JOD?3DvwF(qSF??kz5WwAXA)# zqRZUG-mr#pPdV+7w}dc&zpDtnvtaLZwbG{1+H;KVRqp}Cm0r~!n2w08$A!sXpM ziMbo-qG_8)4(=8ec_W+sroGW{h$Zrn78g9|ZD)@zyzc+0tb3qv@T+<=7r;GN;*|fO z$Gpw@-2a3gIpn?@F{*Or@myU2iKidcVaU1KTnk~I{&1iK29@DLDXs}znvQdh+j=^%^u^Nof)$ys9-#N#HGvY5mSLavN5yeQ0W~dr1EX9~ zLB~EzbuIOdZgy^VZ!tI|8~DS5Q5k?szh~}|IK2^^4uIhpZ!XGyU@p`$+qg!Hkp6`f zth&W4BdtHnsXEzWf2Vd~Gp$CD@i4&5=1Mj+1IF}N*>xu?a@-kI;Hfi zsQM?NLgwD4{!sWa^H;309;M1JjR~hrN@l5}*jqN^a+Ff=Qp-LVvMeeeKr&&0Xn!ON z5Jl@u72KC&0}~758ElK#EA33{PTy&!D*Urp@fv~a zps!@7^aq#hS*T+?B%Kk%F+zoW4Tz!9X_P*fAE-J4#mJo*EF&qEoTeN;Nqr=Sho5EL@}JxMNi~ zT<8YvNz9ksZQ<(biIQt=~#UfrC%PCvpalf4I>(pjLk|D3P@iG7$NdjeakoHlS ziBaQx0+@CD#E5^6{2{~tGKf(@6fdK#iIAyCbU{6Kb484N0Y}ZJor>tBm_T-s+D zUOu<*(IjW^czJNIoxUaF-Wnq0SQZaq$p=GU@oiZnGb&Eai+Z&@u)h?9AO(85e1C8L!gbIt0#U`ckXA#yWF(OwjB}rNp%RPZb1J zm1VLF4$i1Yb%4zkqo?Pdrnkx^#L6V1O(Wp0jug!&$2F4EM3iDm%^mszjAnb>v04~< zyK?|Q9dr8#kG%yu_i|xwyu{peF>@xV3R2>-iv?`y-AGWCz+Ka9*c%M-BLc}1NMR_~ zS7-#3R&PI!M&d>9$Ly6Pe)V_ANY9RDvUiOy#bm%G0TE8>su%(iyoA`Vw1NUJ*w@?x z$?T^E@zao>3w0)Fc-zYf0<%b9@f9y>UHuKV-n*K<`EVG=rudVy54J|H#_m;*I>x`b z4v^>GzOXDtBci>ASos#b_u$i+y~k%3sha$$1sX5>^Eh_7FMr2_PT%G6NT-fYave+X z5P1iHF-b+ze%3le2{4;MrzJ4}E>Z54E#m97 zSuJaQ(W0OFmQz?DFUgrXj;y|`nn?-0=sE&{w6J1kB6W&sCs2-;qeF<5glGG#YBnjW-Z0JHRs zJv^NEk3ri`_hcIu8VHEw@2>9u7PMLZwSn2x(sthG#PHjx_(YVEUkX|nlIR(~w)Bbw zk}M-j8zxQSwQU!I-eym4knLd6zTY{KXb~C+(qZq^M#oPaNCiCdrXulSt(bI%V>P?$vzUG36{Sh`{#fKn;u75C=s0cHXJVFJseOfSqpkP4G?1 z@hP4|BlLJRr-kUCgyd)n6ypQi&uDc@bk<8TfUx-oYTYw|cKA)JCHRrGn zC)$dRN^~y@oUDaOGBMRc=L|tdoD$cTdUPln?}&X6-L;AwFcdp5+8K?QX`lDJHz)8^ zbfv6Xu?MD{dr`H64|!=tS=zqLS>F$h!8Y>Lr*>UFGRvkNUuxDeO*lpM>zb0z&34(e z2O$dydX=sLA*xPOu1M7rTE_G_ zqs_*IL#k*Iq7E5D_onz*x3`QhQY6>JY1E{t<4_g2ADrV~as;m!inH8lN~@5tBS-qG zRZg-=f9TUlY|p?ofn?reXk_6d2UV5iS>BPo}WH<_qWp6jJg}CV!E9t5{C<#>FO>X7b(C zZIB!nED1Cq>MjU}*BEDs`)&w_9ewmGIyix=qY@Ro!-Ye^o$+m|w?Rrx&x0#dNn@WC zVuK_M+ajynmPjZlu{ytJj%fSEtS@=}V9%H2>^#+lul<0qht6CT?f&|;Y$l*tl+=n# zSJduYtWJLH6 zSLJdD|4YCH3I;)dUQa3w3R)v(I}gr#1Xs@)-+%|mdU8X3%|qe-`G(VDO`DqAMeF_- zuE$LCS{Ip(3eQfj=o*6r4`WkYMcVTk!=}(x-#q_Mz5HPw_|mQ=TafSfoJPMvfh(OS zO>q^sYOVW0NLlN3SyE3w?RBHe2GQOvYxph*@5r_wp~9jq1IGqSt3@`p!bwhe&$J;g z*A~8$FkRFB86G*VDrN|d_@$fh}0n;WDt?V{kH8?(@|0#)*AYt$ZoC$T8q0 ze*3(eMnY(E#wZ#I!;MEfykXCcheozxG)Uf}fVjOSO;9r|^Un)F-R&M_x=&}gtK!%=w;~fFbY5gl>^z_(^QMIH^b$bGv$uzSB(&xRQjmn~uYZx#`@?<^p zXi9yKa_p6p-Dlj0n`y%*c5#N?_t2!dHy9{MHE}0+QEKH9(jGI6I2~ff&@g#@pn&Yc zegZ>l+Qgx#(U=ps4n}GVMrLuRGCw(W`%ax;aX4ODA9mP}fz~vf;$W5?3h%O~=tjHi z42z?UX+%#k_qb%ShuG=xUA_8#l;?}X3YK#=6OawQHmw=^Hku22d**4bg4=AfapUfv zf+tLssa6jFV|I5nKK+>`QZ=r)H9VQ-+!a#>=n%~x#siL>+i?aXX+bDr@EZM*4&y{) zEWg6xVeNReEriI$#vJMo+DoX+dcfcVrW~1wSAVhx?H@~O8cX=mT;Cl2Jx|(CxbsIQ z{g`A0qzaVaAq>S#C=`@aEcb#~xP$ixx{?XsRAfxDIo1N*kcx3VawC0y4$*k2y2SHc zoHZ`JP>AZ6*u*-PCvwyjer8$$nc3|(bTx7eU>}k@);%~1sID%U$UfKFz~mPcC9()3 zQLd2AeO||`LqA+lCI0zQnL+&n_ zXYg6CT!X(fCf*sOnG` z5U#N!jQfH5XOv%pgD88bwVxD|0K>ATYkd{Tb6<0|1a-w_(Z>i2!r|9Z`zlFp1J*OP z&T=8JcrJWZ)3B(RRqr*=zI2`!+4O}?$VkYnQyZ$v({So^91!B7QM z+M!}Y{PfryGcTqGHmY{vc=G|zpn6C5OlI?j(@Sm@d)2O%Z(iXEh?PPgNlg=9i4*Zd}}MxS?bns>Z3Q zm5R%A6HZ3w-qX_%c3`DTDd`;MWc6K+Qq6hUc5IJ~a9HH6o_BS^g7?p9og;?mQf40}v62-z1327MYVghj226eaEiKN$(zkNd@BJ_rvQQ#Xqi~ zo(oAfSN>WO{;GO}f4~2EqW6Cnftmg-0yia2|5Zfc0&ar4gXetJ5>uJPa<(D5W3Pdu zi^$Dx5mTwIHq^rrQklFaB_)3DPz1WYOQ$boz`UcuH+2Au&K38M&h@R_9vs1=spCTO zluAI<4AtG_<+ z__5^cGcFl2Dj*C(EZ$}ge}w<&qWQH@Zj}a-+x=G-Z_)gzxLl?ZVmK+W6tMh^vSVCn zD%|&dv^8;eMdI1n(B)0KQ$xG+G3IzH@d^J=GUw@(VY}PkTR-KD|Mz7j^S>au)Yews z5JU63k@*fj2dHqmnyeW_EO25Q8ymoc8HLA}#u6`UplVhon4sKUct4R}S*gboArvRw zCDyyS+U=}4FB~sr%|y+1h)Uw@mYKKWt+Xf{9$XN1oUKjTJbi@Pc6)x_%h$?vvkH#` ziDO4LEC#If()z90lzidQbuDUw`2{KSPT~=axXFj zY@7)`ooJ!|mD6!)-`d^Uc;fbaS<-OP-BG!5ed*$^rR%xUxyzk(Z~Mb@4+@;)KDv5r zM!qiZ-aUs;!F;iiD#g5}NWp+71J2}^jfu)6&-M+I#mVVvC7dFCMA4N zzOs*PzDV>(jl!6#j(g{Wxwd_OgEIBe!|CqBZi9b=Dve$hn@(xBGk^6Y@3$7jmv|&n zf3nqV>I$M=zit@8fDqJsThI`k`3dB~S^v_*)~$y$kwlIWN_b%Zoj7H5DJO!D)G4#X zcdpMLJpZ1Tqm>+ho_PHy(5Sm4g2C71`rQQv7szrsC-E{61(RGE4NvM4BxVsq3C8oj zb+`qq5Wl0_zMp-6dw(;-ABsC`K~~6mxmnsQ5g|C50eOaQ2dX~8O#<5EM>Hf;a~hA10huQQc>~k?C^1LedS+Im6v8 ztY1G>dP{K~M!B=5l}s=eUA2Blxq1AYxxTfC;w%HTqtmVt5?*vpnq4uV!gts@zW^ok*qXtEsGgL9(wUe6A8fu2Qi5nAZ%({T?+=W>08&o2 zz4NF6d*X+`rJ6;n&&egqT#qdCi!3CY7Q76Zvl2TVEt43pQAwS-{2htH zL|4o@xSrU`X~%LIGBMk59;*g9vDTJL0dyxq za;IYXDW@q3DQSKl2IX<;M4j>lrepIl=LKx^S@qL#^Cf-L&^WVn%YHT<5Ue~xFH*ow>=Y+E5UA~PAn)mGv zZdi?WMp6>n$%p;!6tlEQ=nTW>8I!}Sc7R*|U3-89Ui{7tVOl@Wgtbj;RfWvD48;&q zIv0F8fOsx6B9@705h<4W9H7(+I9Ye`06#PTzNCv*9>VHga?tDw_m?*mk;&uOfM@5k zZ&}iW$O;`qLpuHQ+A;sB1Ant?J!(1=c8hDXCv*7q*xexvcXmXlo{vg4k9>A_X;giS zc%LaZsET*kO;{?y{ikry$b@zp;&(gFmE&GxJW}wqu2eORbwD+=4^qGsot`1QV>?$V zTXLApI z079^cLIN=}uc@ba_1dty!jYwa#-1>#Q@n@>%mr(9Ts>P*?e*lWa%q`JWon6PRMa$} zB2l8v;v2ksJyWl;w*t0OdQFe%2{q9AUC2rmlSy8r`bV(VHNY(m6V`KrZiU3*J8+ZW zw59XWoOSz8WW2v|A|S+J%g%gd%ajaiQhkO)@Z*<8eUWDU(Iwj3JZN>f_K;K()7g2e z#=X#CUId>zoA&^G8cc06EYNhkPyKpqR`Hw2RBLI*jrBE@o7NtK(W8)=57L(ZTKw_4 z$u(InV%lS0$Dy}VJ1fyNHiLlH2E$=*O30b{oR5$-H%HS6YGO-_ef25Or!* zdZ_99bxO>6rYf@C*I+^YQXQLg!LoSo4Nw?Y-lv_N(N#g)X2Athq5#`$_zfs8vB)2w zfR8MH`^7+8Z2pJsT*7G>>X6YP$(+=e+zH=nuLiX@d5D~B0E3o(aSwx(3TjcQHKdYC znORd!rJG?DL62RbpkR}dNZ*uzFD*R~9c{WVQnjYShD>d@PD&nFtxK3n4R)r~AhJCCM0C&=iU;E- zB~TRzTdC4O6Cs&!g@y!oYc*t3^Kr1kpOme;3wo8V)>z19xc)o{WH*PD+!#%HaGgo` zl(0Ete>q9uWaVUF)pRT%I(QUGbrNOd+qya#%c*ztBI?T(=89Z5CtXplS*IGAMj)$q zqZ#jx@U^Bg`pkzfHkBXy+kVQQ-w?Im|Cp1lNND-(B@P5M^#=TpIobbMyItmJJ8z05 zw%l+SeS=aQ2R(&t4b*os8F~t*nrPpyvFJ&*6jwrLT1jpetim-M4Sv1dNTR{0LaP9u znk~#r(A~t+p-?U|T}*Sx>wi4o*aPDHbai#}su`~FOB)YgEL$_)&y&%8$Jde3^6OG- zWutm6$K%a$BdzA~wfr8(?bh4k&1fPbp0Dq7o84<~V#Zsx=kgP|Y^2Nfm*!$^My=aU zr~B=>kE%P_t-$Bw>soO}z;@g;$6_2oZOzP={p07GXnygxr?=Z%tyh>ocRP0_X499> zvHvwe??-Kw#%EOVchvjE{o@kqnro#vCWBh)V4z?YGbUQ>HutCTF@{=&u2r^^WF)q8s@d4jO>mFgfDo zL<8-Ksp@ah#1d7#MVgPpN2}(H`tNU}R*CwldD@u;QhhY5&br#Lr$}q6F6+%>fO*Qd zIrfF5rpYU@HvK{uZRMu^e*XgDd-qDlqW_ivsSMAIK!?Yczkx;57A6v=KqpD&6q1-~ z!51DueUkt$yzh1C($ewe!{NvF>l%#-A+gBSvX^UKm*4G1(#plo8)SbD2C~*po=pv4 zDp%duP5u`nuKxsH!o@A*5s*us*8o5iCQ9W4xqQ;ir|V1h>&eCUb?f}-n1DfFuamN1yc>xx_l zHp;~TmJ~g%NkU{g?AmqBnlFzoO_St}XJGNk*XiP3@1n>TkvHGF>$I6`{lFq?@ALKT z@cc0OJrgmsqc&72m^gcct?C_}7=} zhGJe6fb){!X6=>z-ESA;Ji4{F8 z7ii1ju-|U~g1+%7q-hb^`nro+m=sgldcE6t+_1)q5EDYR^>_0Efp#3_^(-Bk?D2|& z*eO#(oKaM&O{f$ru=>VPDOwz8)^cU1LA{Z;Vl^#w(BPw>E=?qh z_L|>Z4jp&9hIz3=&P#c|7&5wzt2zS{Qrc_3PJ*Iqb03fV_k2PY#|NDqWn-W2h%-J_ z-;=D*i!H#yoZvQcyTFvG)kpJkuH`~->``l1QVni zDWbNu2R0Z%UwB-IDd4xS+>UXlwc_UV)@>2K0Qi5tlAeHQIYx>8Q{k|1aOC zej#>O(6w$715UVkPmgxS?X};}4q74V zXWPVU|dXqOOkg%vI^hJ=!sa ztXt+})o@+lp??~~?^_41!fxsi_qqaF)^e|bsCnl|;qyWj?C4wsGx%!_AE>5c-NWDt z(|J4f=dqIY{d;2;R0H@xWW}x-7Jf6-0q_%?fuubf zZkwE-J5bvs)FUzdZ=3)gg=tj#|>5H>}h zE-nLsde+F^u#@7Y_A?*rea~(~Hd_m96SdPxM_t6Hq=V8}>W2EXZ6v6|<$+t*90sF| zrhZqA+J=kJ>9#ID*CG#4E#7Hq>i8D8tPvB7t_E4334^wGN$#MVk(&I^vPX`&bdGIw zpGh9<&6Ydx4$4CfTTzg^Plh0^yGA$AZNuyTt-W_@)12+Xt;@D;+qP}H%T-S;Nf2T5DiAuOX@EP$O3U!u50r+@!pXU_rp)`xH29@3|)E|i?6Jk zC4%pw^mj8l`CMy3-W{gS{1Ldz(Q)6t^$NKG`EpKM2i}d@@9KZtrs-APZDP8lctyB6 z>z|^2g>g7PPx^P)_VlmbTj6^_5nS%@e=|ki@XU6LdTY+`UBH_wnDj%hai%@Mf!c0> z`MhgvZ4SBhLbLgC29!s})k{7K?fFoF<-+hF)IQDJDufl_79r+i1a=)swcy-=ucBzJzEudPv|p{rJKeZ!I9a;Td6Q0wlbm<5E%{lK0d3K zX=RWq*b>fRXsNFf>6)^ST-UoR--4afs^t6|4!+4Ra zqeSlOOU*igdKhB#J4}99w(VFLG|pIb=>R6mgAa+$n#DJWF9d$~pl?j@78xae0e!X$ zWd^gkC3)a}-+as1tQWIbX$8g_^eiL}(&xIsJrQE-o0_J?a)W!=9j5xZ01EkL0_j@F zL{89oLEqd9$6IjLNV{jtp^NK%*xj7ZhR%22rxQ$T)W^tqrWnP#8G{~cUkeOC-fXY$ z`|CXCE}!@13ShrZ?b!2~9X)p`w(tXWXZ8ohqsKL>SZHBX?UY5eW`VYm6KrmEmhaQY zB=?pbFJ9lvSQ^dd*}0`W^{ji&f9%@oAvD9~-jvhe4EvD$=^sNe%3W1r)z~3 zFHaqn-#rJ^(P3@sS9S_ZrpTpgm>y2J#3yn}(#uQ{Ze^obxiXPd4Yp|>>h#Dz4`wY? zi5@v3#zvfyRVCs14d7BBm(9HmvX!)8qZRhYjjS?Ud_Sa@W&rwM>6R0^!M@_6ts+EN z%@}fSabMOXxpZ>n+Tna;i{jw3WL7+;O@i-TeL2-e*1zD??Gud?C}Hh9_{RKMLG7uX z_c$+XN$Gi?eZkrZ7c5j2yb{p%QuaY{wAz(jATP2II7d|OKTWi&)-&sMwcH2wg^ z|Lea09f<%dp`B#X3288?GL;0 z)ET+b+l%A#_&he)&WfM)Z_9z*7`+TVAVI+xbKcuO*67_ppX0)R8CP*nWrPnZOR1Wo`D^f$se78)e) z?YI^_gUCGj;XMX<2h1+t7frjGjMtko^OeI(sgu4<6$uM^aSmDq@--Nj`5@X{vF%szc| zk>b=ao-(aw&2?+?+gtA@?*e+i8sz2xC*=2Rs0oA}@3uifFnz0CY{cOn)eWcF0p&1z zFEzz+LjC)_G3UJD>_(%7*=1xkGh%#FLCUP~pk6$aB(D%(M9^~`U80~@+q2f`_@x2t z8RH^cngCg{!F)|*`mP3L7kCtsL6t@Z3(T$z@3|}gUnb3 zz@I(qukwJ;%-BL^j(I5fx$PmQU*g&74w5weVEH3s%Sl+MK$6g~{;O!}`b2J_YVR1? z3l^Od;A4@6GJ|#4#7H}!UKSt%kt5Zi7_6fZQ;Q-{oyFxa{bNY8Cv|29A|z7&S`o9$ zB6yl!k9v<=S67W#$Do}oSv*3#s346&$u^iilp>3W_#NJqHvwdZ6j31eIOh-oY)sqF z6!)6YQIMh9<-s7sAh4M3SM@TOD~|o&9~<9eX@*PXU9Ln(lFwAsN_OHf&UrhDXjB&I z2wV;A3&+L3bRC}GVI;a>|9E?_wgTG$gQH)J^i}^flY*}u%Tf=d2n#ER!a{{B?T2Vo z5jqj)10Rbj{rL1pk3NQj^g}tsR<@s7s#i72 zUWwjJeY~IQKlsMv!teaGAlD>9B8Nma{5aWujo3JJld%{7xix@7sgF#>r` z(APl17;KPy`S~`4zx=CuK4$5g=J`E$+1DNyQ$4nrW2{tk*=6Z_oMWf0k`SOPr5nHF zE@;2}(SH$udS3OC;|O0ah!c-k@%Sh*gN5Mu=FOeni9u8}uQgT{n6lr91ByUbp*q<1lU z3l*6VG%S>_o>{rWrbGWArW61hon zqDlX-#^S)wireD;L+tL04TM4MQfe^%z;cmPC zt3_u{4cv3S%n3Jno6$V8`rmmStnB)~(t&C7qh8oG5B0>z5)FG4hbjCSazi$gx%CK@75F z<4{JTfTD6{o9Y1cyA|Z2*tJ3+Cjc{)5$ijXesTZtFXHI{d_5^LM{i+aK zWK_{iEvf zwUSDM7+R3tN7lwEVz+!wB6!*mf#)H{E2z_}o}ibfSiZ#$tAO8}Ee+FAsvuPJIsXp0 zs->x$qOpyYql=laorR4Vzp@hZBw@ZTeY>!1Gf{IN;L3LS3)m0XGn?#TBye&zeKOyU zT8nFAhskG;Ck!Zit^>E?5kj!1Y8j9)s()T$B2ln2%hS5`VyX`+szHbP11q2*hFil1I{=cX?lOp<y^mY3I(HTcVwYsZ`w-T+Ox+_zQ(rWD10 zm~J#M93k8t;&fGo%|AKxDQa;AdEKJ?9#BwqVaC87K$;w|s`ZHXQd^*9a;U*Go zWcZdZ85kWjCw$IwXdQhH{lV#Y481uNf%;<|J?z0O^&vssw>SBrdssiWNCl_eLKVWi z8#xFN=m8A@PNhttBIwl~9_uV&a&U#r4|>TG46hXs&8LPl4n^Vt`?pelni~3$F87OU zspXy~dKPn>TVSnMFcU1`fka~v%_J;Y424&z{I5>3^t>$RX#KZV5RxdYkb|iRNPuZD zr#9Ax810p;?TZ^&*!LUIK!9vSMt2WeH+oruHO5H>IXjPFTqDl@A8=2+oYqob6T)tZ zCBgvd%=i!gTuJwYO(G6c#=}@$UPVrqE6DU1)0Imz=RI!oqv3e_98SBCV}NsW85Kn5 z34alFoPsWJ#^N7>0P~))mvKL|YEf`Q<>NI2xMYHQB7{3ap-V9M`UpK@Z?pdFd7~sq z(#x=mExfQ6=3-O}L07;=xNGY4Ih4gzaXi=-bPP`m=~IF3(AfeU`&{PGF9M16$TtV4 zNLkDN9AY+2nY1`mLfOH#hh(i_Jv!)0gxv=Ul)CD1zd3^tGF0mwF)CPZS(1bw zQMItap|(M7fDhlkTC`P%UDJ#sJ`O67<78o1MTeVf5#8_@QE#X6B#4d=6?nTaOj4=r zoZ)P%txKY-%Sab+9F!^RcoG~_Aa{{H_1-C|sG^L`h=30mZ3n8M!oPM+IFVg05B+io zMf8kK61|?+hO8ev7H@tGnowUlXdL~?lrvoCTsNQgaT0M`oL~S6As30c`WkHf7HeRS z9mAY9F{Ah2-$&YOnzJPI5d~9lW|R6;Sv!VLl?FOQx_meP`4WfAVO5Yl$=c!qlRDET zKmVY=*Mdm=`$5G^kR6kt$XJcK2Xf$E#-3oI<+R_6ZIfzB;^M#Wz85xo8Z=8q-gLq* zM$)T7EZH~bQ1EqY@rNZx#L#}dM5_JpO^OBozHm;5+D)85YvF|L6!#$@ljVrq*;1kh*>)1L|1VsIcK(IdsL|-- zc6Dq<_ec0kMdqE2K_oxT4UG;{m@35roM=^Pvl%p=pfmCh@{j-)3xxXb@U^sOQQ$)2 z%RuHCbEG>!(^t@Lx`Mfb-NCtC^c0b4xR!~ubV%jD_@<)vxO(g<)IbP%OhFi9AP1^S zPJ>r^@HG37$+5F%ZWEBQ$mLc=y0rYxY*K=y_dn$Y-0p86btQbCU0QU$KDYae2|5Irx%6lv1nv z`|yI`sjJ^exV=lPCrOtseQ}^RuI-wPlVT%QYs5POSx*F0qJ6vqF13%bkkUJT@|8%_ z!+$dVf=$LO+;N+dQmf?TPADN_1MNnzhd)J_h}@0ut%j@v!?@>0V&1OM7=k1X$M}-R z^47r)LfmZcLMWyYO;VvzBwnN4uGb|q9gPzteeXJzj@7+{g;Uo{U(G$m$PD>VCM1T9 zO~f#|KqWE^WhNhNA|A?Hn<)Dusc-^;Z#ul{K-mUNo-1bMII80W*5)c=W>#{GLF|eN zbWQdm_Xa$clsl+)oRFHK|0&!)o+mMN`pd9CJBUd7nd~ihoXL4H^`+mA=@eNIx|4ro zmL${FI5BUew^0S=Mft{dszC@i!WzbQ$-p~eeG@$$IQbtTac3UK4 zO0?DVpV{;tJ`eyjVqwo0-u6jN?8I)Z^%6oAh8xr{M+7&fBh(=oeYfqGz!>08rV^i z8QxyGWF`1Bui5o(lH4E4B@?THbtF{k%O95TNST;x26WpBC7Bx4uk@{i1Kv|fCVJWL z)uw3d%=z%Tj`fSV8y^eDHT;SH(b`JI{AX+1LcSFHZyUaxc!3GZ*k_0DB~`G z;Sni^`6#2oRK_RJIDO{dXOcfBAR*!c$OA+cU*lO9T4gWEz+%8MT2R8FIr`D>V9Fe7iZawt@)No~ud)%cz&s$j zw$F4KOL0hWE1+k5!XX9s$9Q7>w-=5|fTzy`feM{OTSI@vqjt1G*UrO75%YMZ;w^81 z2^LIsjFAv8RuMCqNVwWavqslued|Fu5)eiz2DUl#=T5_YQ4M?}R;9hEJkD?1?BRT# zdyz(jDb&PUSszX8OMb&G9)0)fUI?l|d%O8$DJb?+p^UQh{5E;%IBFTZUO&5eY9aI^ zY_d0hU77jEWNSil=Gzp?|FGi!Ev)ztDgHx>|B&K8r1%dh{{KM=E%!+{cFz5Hqpa8v zM#j38zFLVnrt{lpOZP#g4O(bt-hD?(I1htt_wm`tuQ)DwXx(#IYI2yM)g>mJ(eDUh zZ9Fewgu{J|MTq_UU10b=MoX+Q3nSET)F-faf6!}$SGKI&*D7!$N}K5yA+}gp8mO zyoff45uoVy@8hUa-NVXCcsNR~-o0HL!9%{DXvHecYS*gZ}gnh-A`m z9h4s7Hw^NVts7c;UB3&p{9KMj25}R^BiMzztLSAAZu39;p~RC58SOGb3b7~qaFC`H zKK!y*IeWS@Q|LF6{}yq*xHqC-nYK9C-b|i3G7Q~yl5goxLoy5-=*QGp z5Ze^~_)AENr)TnSOAHEa046qfu+!&hcWZKDEssRE9KE&PZ`;+q4DcC~0ih>O>6U7W zl6Au@mWCjtmUa+;#{d!v=i2Vy!s;JA-UzlwSQ_9_t{=r3@vmF9M^{^I@B8-=dqsmf zzbf2tyiW#7B#-I~a3qiDS=VkL5=7S?Ad)!g8@`}!7HIcDSj>>SvUdZZhLdJYf6vKs z)RjtfZJUR=2lMSxIu83+UA_t%BN+?ayX>7_vEBCeOd`&HTF^R(au86mR2V8@>S5%qmBmDRKc!=FLN?L(z*O+?%ou#CQ5N z14Vl-L@l{6uPes9Yt#APvSOt_-ROFYA7@(FevV}y?n)6+e&+&wU(fq5i1O7NFN)uH zkMp~EzW1+Lbpp}?hk1&EfBz~9KAAlwHT|&i%6ea8fr+8s&!C>@zK4s!uQg=CO-uK! zKTezsNA>kaa9Wg6p1#y7+F|@*b5B6%L>)k#gKhxmfQN{;RJk zbC>clm@9-~Dxz_j1(D8BrR8t!!$MfMYp2nYRz2`f4g=S*GSqI_%+cemGD1;FTvC8; zuWm~Ey&QIVQ_O7RoC-np{^GPstPZw}cyYm+AjKb#1c+#(f}lxPE$+MGKT?jJe#65{ z`6FVR+&LFN<#TXU!#TV$(C5GGy$Uw1 zqrq7fN=k(Ym6*Ik4aR1u2p(ZHy>cg}Y%&Iu(IVwG{NW>%3ZM_LE+_q^-FPjfV{Z5F zIqVmP<=55$Gw154(!q-+I&TeI=G`!G*rr77$`O~O^89GoURrx3PhvCpQ7N^wN;K@+ zAAW?n(>k`Q&=uFQv1SX|kT6vNBmYbGKqZ~htz$5dU<%d43CPFf+bZt&}+zg+lw?Ku3AL4u36 zUNiiH#7hl~^+d3+uc{H)dZ0Q3p`lGpEAAN!CKxqfZ4%jf$LXa8b@fBlu)e7EsORSw zm+fpthbKU3T;zseT+=ZE2c&~R(wm-OseY>`a|B<(MxN}0Jw?2tE0;jJhayB{uKMlZ z3Hj`AER67bT_$Xx^b3RR^MYiKV9yFy_ z_TB=h*xYnE6wer)(Nnw}Lx@<_cpQJK4bw6Ssv6cC(WJ&`%=|+*Q4?$-(C}MT6B=a; zHBTMTGDPFCei+L4F3dma6JdtuYIx39U-F^CRguW*+FXiyo~Ke41@DDLM?(LE z?8Wmp?LG$a8w`|gGzE+!_h>$Rq9utA?qq+9Id7Ay*zXZ^FeaCp7N1S}e3xvacuQ(V zFpbGEUQ-)JhN3b4-&&kcAjb@c_RU!KGM|)$cV!vT66rBy*kHh1MDydC$?Cr-DSeU3 zlHJKx@y$j5s7eSFBP|yLZR3Dn8&9g}D(Xh*eg0y*PMLL;({6a4YocskWi}IsGcdMz zkkd{mdoQgX58`CL07Z9$vxL7nu5oP`BbVc*jFe4Bdi;tW$S?ues}|9BWUX|KUn_FD zc3=3f6s!}Xsc!GTgkOcu_pZT(H3mW-SdtY^$!i}yKV##CpttrSIVV&Dpn@IWqU`cC zQR*Z1SkqLUvYh1_WO9g7!r)EG^FXc50I)ib706*Xu#`=m8t>^;Jj3U!^R@bc9lz6J z8|h-2qM4^-#u`HFR7n9sTr{!ldTXc67wmf_@7Fc2IqLvg z8fQL_DUi>!G^s8`es!o>sVG?fy(pENcUp~te+Xpnll+Myyy&3qN-}AxSvz(k#Fw$= zNMxF2rH``;-i+pNrMooxO;-reh2jZX#WC*<-B3L!Wl+gD`jgi^NV#V0JybGnjSpIkb-;#8FGJRt>S zWOAI?yr)u;w8_0v;Hu;7x@Irz_X~?x^xG~z(6qo^+h+wp7HqedM5*WG-QF%k*9A!+ zOZqRjOZ^hxvqwlVo-U7ahbM4^>Gfa8LSD8Fy3t>Xv*O$c|0gn*4YTh^3+mM{YHDT) z#uDgv>lyZ7yQzv)MRifL_YIS6x&5+U9Z@!gUsbpYS^ z&0g`$N=>|ZivBz6unDK$iCH!yf+M70|HE15wKB7i&&*{q9bZ%B4b1@q8`Gv2(F_}r4QkF`cm=w7_ORo<&J*k zChnv5{YPlXujU5Jh;D_|VwpPT)1!t18{6BhIRnb%%TV}iZsJTU3;5)4UbZoS-T6_tk2c2psHqa6UX`JVB_lSjSGh*}HIxr1j(MqM4(=kR+#KzmtHFk< zn0G2A3P#WnT2qNmL!fw)w!`wB_N=ocZCP3DOdCYIEsy%OzA z2k%6^UTAd9Z*POL3$?}WlE0RQ*AdI0rLUOVfzdJ?wI)X49o@+jUhYJ(@7P2X`&oNr zr~;*oCnhrPfOo@%?l_V}Gzv(u`5iwxN%?m3*E}wuFYX>vM`m;t%f~iw3`lF|UU9@f zqi>@}uKcaR+}|*`))AokpPPlHMCOtR^1LrymYqQ%952;Io){N|}2EI`44T4MK5z z^P(9Ge0k>fwkLGm<$T0e(&iqwOW(x*xx1cR@f#PWlpnI;tc~!vbqTd!;{Tt;JM!Ha z28?S=3Gia|@V=G;gJU|qNWzqSsjbzZ)LfNhoSo4Wz1z2}qW8bh)!f((m1BHjgfHLh zx+2e^kLZS2QT20IAkvzvy>ZY^yIEg(4*c#h3wIwnR^Vun0+ZqTd@f?I%SQvC{9Wl? z_!3|0M;U$I*jTWgN};~??)^x4>E9vo@iT;HcnalUcZet(dM@Ng`l|B0!AP5H<0tUa zOp+~MC&;=HtK%Hrwq@uj_Qq#UghL}O{p*ew6;Mso9Rq-Jl*hAm=v*eZzeGCk{NrY0 zixSuj12OXQA%S$FwJX78p-sZo;;euiov57V`reP%wWhD;pSdVppV6 zAvXI7=N=v3VU`?zgq=QAey3RC&~p~q0|J-$^H11>M@=Jg0|Qz9d#W~8#Xqs_d$y(q zLL)yGL1NmTz#f#G5=kHgCMR!tW->QlC)c_a@8cI95Iu~sS1Gk2K++RHog72lZ8+0J zflBXhOD&~sulIhcHlVNMlTt}$nuYD|cr%LIa#x05e71s{tvEX4vE{ue2qUccr)f(8 zCv1vSYaXQ7#3Ujr-JWVj+DA4}X`&Mdo62K^f}WC^4oYfxJ|$mMBp706qwDRYNK4i( z_El#Tj!R_)E7EU9hJ+~;V?;1RELFuh^8U*7vVU9fQRnfRuz9aMByyL-ukuOaeW?fE z*x&TEnK}OzW@L)9od9(`b6-%nrNyY*P0H1Lq_8*@6FMf5rA$q8uNhwh@HBBOgHrTw z3|rU&W_%#p7nI|No9c!;g&%z7%fKRrE4;I7s*ZNr!6?}hQ5L+fzK4PcJYr3=B-7>3 zX{Pm14f&DQIaLtX>tWlmDk#lHEnje;lMbF*YuR7-UH-ZZUSw$0LOot{P$q75bZTkI zR5NdX5<+FicwX_qG$V37JyjKfhrGm1N-ms`bc&cV0je-5hrUb;K_e<-nhP+vin2~I z86N=u9UK~;SfK0*Uqx|ei2mVF4A_tB*Yo@3!7{QkSYK`rR>g@1eBo#KLg`=;={obq zNBKp@EaV5tSf3*T@cyN#1+iqk?^Xvxp+R++zeAK@^jX#P<{}zrueQ)D(BnvxqRH-N zom+HL4^oT20nO)(dSr;kf@zb~I4A024e2GZ1$bpBf!fkgF-{7O1iU(BBdt~ZQPU^{ z-xoZh7sab$B2@JoYGSMYrF4sVMOgOH5(S)QA^2t+6&1coad^q*N6<>lIW9v)=$x0*%McyJ{0mQ&nrdH2&(t4DoB_p z7d?=@B<&Bl2?$_OB$4W6EVsmP1aywD6LrjyO7)aN`d9I(J!UTc6}3|4w$)N zbk~ZSngRg#5b3{!PTM#3E#Ft&o0IF}tp%`OF)N~+&na~{rB!Y$MfO;=NtaA$Oj=5> zk;%eRHq}=OYF+raSyBCWx488^S@plKin`+X_b$zFbNDpetUY-ydvNwM6a1sR6xW{L#+rYMh36x^zP2ytP7$t@MY8 zu*ahE7(12HQSx^p9*yt~k$`_P3|hEz4}FU^7C_@jC6QRiGjFw9N^v!Tl4ow6z0GR; zd3%_6>+@~b>Cw}#VNlSt_J2yBPQ~bFP<0Plc`eoF3y?uL#LYg|dFDBF@yO5XM!Gm& zv2~d~jm&f2t|*DuZt)ZNct1Oo-1UCAy`x;QqKFznZoh`(R2s(dzh5{$R|7N)H<_ny z%7?xc<(Ffp;E86*f$oh{sOG0lU#xafkO~#+m(-fkKiPki-p5Mx7<3qS`#J$wD4VXR zOYL)l4zO8=OZWSZM1yMygP{g3#e3##JSm82U(CL{3ESxG08jl|IyjhVMEJd?c2txt zJppoYq4}6cvUTHQGM7F%JX9ljWp0k0oAn4>PfHgr52X3#=aNcz7rt7j`5iER z^u`F|MzbJgTFyOJST^)qU&x=Aj=r^p?mlAN#omraT@uoLTFWO!by-ZC``v0R_}jmI zY_p3mBGkM~>}wgo~MVr~}mtGc&9nDVK|A(19Sn6TcDZ5LzxZ6o3O z4t>t;`Dq(ph}2$!LnKVBOqtO{u%$2n?9Vq;%E-U(a&X}0&TiC#ehul){F@6D0ONs- zKIE4vguh+>4XRA+xt2Dnd=ZM`JPtwEo9?TJLY$IXgu09(-#qp&F`jW_sjB2cZf zFc<+G2SOUv)mOr8WM)|o9|QGs#I#RBf=Y`2J=y4`GedUJScxn4`BAy*KKD!mV9!z8 zsVWyB>6S^5$+lN&f!Ov7fr6kTwJOWCT({EB`T_2G&+%=e4~wpWmCU89^7pKc8LR!a z*WJnGAa;rMq_~%^4EiP)QIt4?{F?a{IH&FDYa79v17>l9&>~TZ-TD&I+0vqlN{`zI zxE+WO>`I4c6PRDM7@cnZ!uNK;@!Oo|TG8=vx{?Db%}JzO_AS=Mvm+$qcHT@k3j5^` zx4W(Z)!m=IJ2WY;-a>wunQLnk0k?U6`Wsx|IRO z14?R*9YF?V_eb>ynICTnL*{UryoBnQKtymA<^WBQhxVdFS6dqn5XoWt{#eV&nU>jW zfp;K`<`@NnYF=(1pXWzs7oTm4tv!Zod^btPT3PUW0W^O057~Ipri!*rwV~BWzB}&sxqjs2vpA=#a5Jc@8wd z4PAxyf;g`)Kk9MBO%_)I$$g@lEp0(1Rb!}lW$z#72nZR=C5YP-zd#R2-1)Z9sBOYnjuUuKwO;C-<&)uPmbeW zdo`dU&+N6zdh8rbgvQobssgSO7-^s2q#89I%cNm3)<+tt*g#Ex5ym<&A21hY3r@cJ zsGtDd=T0OrcuPDDNAOHcNxzjvudW2di0A1@XeMk=K80n$tcrly^c%tetG`{v6{i?$ z%a@FSL40jcV%Ux1$Y4#kq;LhpUOfQf&weUNq{DjEuAlg2qP5M2SBVI;1J?knwiFr+ zVLlbKu|QNY%)Q=3AvN3H;lt+-$R%j;g43^l*n z3oU_5>S&F+QM|lN)wD=#cSvn?j|9`;^pn|5er9m$XLq>A&9A4gtFWmp&MN?+1)mZ2 zWuadv2^sV{#IIHtqPBq%+l!HU)PQAnKAIvrJ^Uhm-F|xO9xYne9;i(Jshlk4^uqzP z{as2xTFqI=rMmT&+I2sI@BF8{R=g7vDEUAdOx-VyQ_VJj%o$ZL>Sk(^Jy-c&2; z`@TFD6WwQ3HOIO2-c$?vOip*+y%CK>htb)9ho*;>B;$B8Az_BG4TqpV9Z1pKkQVxJ zKrZ>eaJl@w1_2_=OdZi1@H_*5%E%BVSAJ~p3R;Ab%qizyggD8@UBX%Be? z7188zHgsuxit`y%p+1}rf2kd04wGCqW_C6%4h|-6c1~_~`B^v#WMOKfTg)|1hRaC z;c2u7xlG;U|H|pZ@*X~C_QHQIeKi<}djiNr1)bk;h(&%iVUp;viUeygiro{V9RHGq zR=oOABe#b8ahSeEtjYcH?Gcm?A8jJP&kJLMcv*M&Uj(3%Ecm}+C_q4{K=|N5K$_+M GyZ%37i)o1f literal 0 HcmV?d00001 diff --git a/test-data/spreadsheet/stress.xls b/test-data/spreadsheet/stress.xls index a4ba77404e0dc2d235ec8b052f363f74bb942503..9b4388c582285394cdbe80c8f6ca38c1f371902c 100644 GIT binary patch delta 3098 zcmZ9MYiyHc6vv#jpT= zF+@$K93p}wCVr8akR{X@LQM37PEb@p#d-yGDk37HPT4%q)3eRzU9+A&|L6Dq&UtU^ zyK3nhvOHUsgo1xOLOg$RVZ=G*T&GMNqG@+~Xh(Q^Z_lnLg-7^o{e#Yf)+>{Qs2tdk zbYxTi`IR-x{FUVuRptJQGJn;)s_OYwrH|}-aCfB;i-SEqy(-8f&-3JEV>JA##PMYP! zK;e${us7C{t|om#I0eX0^2FK@hUjxltP@0nh)teYTZBc#@+a0-VHL668RI^iunEYX z*r$^Ou*cWJa7k_ec0T^hAp-*G&(UgRbaZs=_pn@_488=o2jIXd3+#lccEcmWAV`}} z-$FEiTgWUDZMVY1R>;GP4rrp1ov2DM5$5i_Ll<2hlr9G8JH7&1g-8%z8MF$F?^$S- zGrngP8R9+Oi)fYzNQ;xn2uRDm@zuB`k=jQfu8BUK2qoZ>9=a41%fE1>0H#NWoUjCv zWB?WGI3UuvwP#7?$NjJTA*ec$P}d$9x>! z2RhEr)7j|0W{L~6cZPVnUF_oIjY>`jv#2Gm?i&L{CDa+^B7q`49EityZ zG>c2KxHOAfS-!vsJEMKz4qggzf#iLo0mE|kkLWk4U-6Jhuvn55dq-d5D&627t z-{ASU<(e$tqCFj|;R-gS)9t^CU9x z2qSYD+2@5q_b7*D9KPX&oDS-s9_@0iak;5+g=$Q1v0^JUw!*~HzhZj$3}!32S$z)V zxDz<6;;@s#4hx6#H0wN*Rlc5?!pf{)WBn$!TCp}}tGU^AIl&|j=X01fjV7>jSfg2M zOx9Xuoy=^l#@3qHI>kDet>b3LsF^#F!v!1;$_bntF4U|GP1bs4O=7lQW9v=qBE`Cx zT@+`dE2hIy!|mp@fkzmgL34RHyo5)n1@NOnIQ`nKh;o^A6&+1~+0F7#Z zRAw7Bw$a2kDK?GSCT?~;m&Qux@E#7cX42)#;Bbj%U1G8}D{CgR%^KTmVwWm*3bRYO z*)eM7p333991h9}vN&9(S(llt0cFi*HlVQq6T4ioUS^kbvlV$XK@Nv2IDCx4j%ggO z)T}E_)>X!VAhtX{X@B(02A-r>H4$MzT@|O$IK+Zn9 u^->zPlt3!Bm4MU!%8AA!?;edo{|rkS_LaabIE0Z>*l(=OjSiQBE#W_1(IsyH delta 2831 zcmZ9MZA@EL7{|})3vX?ADFuo^d6AdVQJ^?p1t#c#!59<9*Z^SzVj5F#lBtOEZPQsdor*dqD$|J@_?*)R@f;fX=l<{S{+{Qy zw*==c!K;?%{f=oyKkXZIV~)ok|kEL z#446p_J51m+s!_M_(Zvj52N~Xve*=hO|jS%i(OhSKrmu?MOZG9#i3Xnip8N=)=A43 zun@7>lhE=dSq#NuC>BGp;Dd{IbP4w2<@oMCE-YV>#i>}Fip8l|5~L*za}momVfmUY zF2&+fEH1^8C@q(vKABhYD=?9apZhm(Ld3T)C*msH67d}rxG}zmE;o`tz!4Gi@UAF- zgar{lL3#?t&!H_T{52E528*e9_zPsEVO)o{G`!+hm=v)9r$zh*i{jkxkd=<{2egS; zgb5Kh;Dm@jVGhIii|(vY-q}rv^Kehm-&Fb{B_5r@@2(GTS3HEPk71F##U<$Spza?C zVi>pR$`aC@@^Ej>Z7ThW&adf8rEZznQW9ijaF4M<vX|6}DDm>m(aTY#j|N&cY3BRBocOSCn=t?}?P5!&&^O zsm4KVy)vs_o7Es^ts}Mp*<5xL26DL9FsQtjW=)GSp33{EoXx=noK$Y6atX^o0+o%C z5+5J&05@v$o8){Ku}uowq_NGCO(eFNh8@bq4U(wbLgh&;1IbjjDApFu+A6JXVp|oq zRb#hGHig)&G^{ueH@Jh!HY$6u45U)IO|fp%tnJd8Mr^ynwrlKm$)*##orZ!4;GlGYMphZJ^5V}~W{Cw4f(hK_mpOZ;sguQEHz@jq!jLcxao!->#Q!ddG(F}