From f88c9ad68c72d4a59161d5292c3442776764ed59 Mon Sep 17 00:00:00 2001 From: loliball <26589867+loliball@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:52:30 +0800 Subject: [PATCH 1/4] Fixed missing skip padding issue when reading odd sized chunks from wav files. --- .../java/androidx/media3/extractor/wav/WavHeaderReader.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java index 53cf0f902a3..fc261e4b009 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java @@ -172,6 +172,11 @@ private static ChunkHeader skipToChunk( while (chunkHeader.id != chunkId) { Log.w(TAG, "Ignoring unknown WAV chunk: " + chunkHeader.id); long bytesToSkip = ChunkHeader.SIZE_IN_BYTES + chunkHeader.size; + // To align RIFF chunks to certain boundaries the RIFF specification includes a JUNK chunk. + // Its contents are to be skipped when reading. + if (chunkHeader.size % 2 != 0) { + bytesToSkip ++; // padding present if size is odd, skip it. + } if (bytesToSkip > Integer.MAX_VALUE) { throw ParserException.createForUnsupportedContainerFeature( "Chunk is too large (~2GB+) to skip; id: " + chunkHeader.id); From b254c4625dc5f6bf8b696ec68bbc5e7308eafe16 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Tue, 27 Feb 2024 15:29:56 +0000 Subject: [PATCH 2/4] Format with google-java-format --- .../java/androidx/media3/extractor/wav/WavHeaderReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java index fc261e4b009..7ecd28483ad 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java @@ -175,7 +175,7 @@ private static ChunkHeader skipToChunk( // To align RIFF chunks to certain boundaries the RIFF specification includes a JUNK chunk. // Its contents are to be skipped when reading. if (chunkHeader.size % 2 != 0) { - bytesToSkip ++; // padding present if size is odd, skip it. + bytesToSkip++; // padding present if size is odd, skip it. } if (bytesToSkip > Integer.MAX_VALUE) { throw ParserException.createForUnsupportedContainerFeature( From 1994ba991c8f60c744fbede610aa8f3cbe8a9c9a Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Tue, 27 Feb 2024 15:59:59 +0000 Subject: [PATCH 3/4] Add release note and update comment --- RELEASENOTES.md | 2 ++ .../java/androidx/media3/extractor/wav/WavHeaderReader.java | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index ad682a22d2a..c9b409d0db2 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -19,6 +19,8 @@ * Add support for composition-level audio effects. * Track Selection: * Extractors: + * Fix issue where padding was not skipped when reading odd-sized chunks + from WAV files ([#1117](https://github.com/androidx/media/pull/1117)). * Audio: * Allow renderer recovery by disabling offload if audio track fails to initialize in offload mode. diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java index 7ecd28483ad..4db508135ff 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/wav/WavHeaderReader.java @@ -172,8 +172,9 @@ private static ChunkHeader skipToChunk( while (chunkHeader.id != chunkId) { Log.w(TAG, "Ignoring unknown WAV chunk: " + chunkHeader.id); long bytesToSkip = ChunkHeader.SIZE_IN_BYTES + chunkHeader.size; - // To align RIFF chunks to certain boundaries the RIFF specification includes a JUNK chunk. - // Its contents are to be skipped when reading. + // According to the RIFF specification, if a chunk's body size is odd, it's followed by a + // padding byte of value 0. This ensures each chunk occupies an even number of bytes in the + // file. The padding byte isn't included in the size field. if (chunkHeader.size % 2 != 0) { bytesToSkip++; // padding present if size is odd, skip it. } From c84a3279d34bfe9ccf1ce883aedb95dff0b875c2 Mon Sep 17 00:00:00 2001 From: Rohit Singh Date: Thu, 14 Mar 2024 16:12:40 +0000 Subject: [PATCH 4/4] Add unit test --- .../media3/extractor/wav/WavExtractorTest.java | 9 +++++++++ .../wav/sample_with_odd_metadata_chunk_size.wav | Bin 0 -> 88278 bytes 2 files changed, 9 insertions(+) create mode 100644 libraries/test_data/src/test/assets/media/wav/sample_with_odd_metadata_chunk_size.wav diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/wav/WavExtractorTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/wav/WavExtractorTest.java index f0a2da1204c..a7a92c82d04 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/wav/WavExtractorTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/wav/WavExtractorTest.java @@ -48,6 +48,15 @@ public void sample_withTrailingBytes_extractsSameData() throws Exception { simulationConfig); } + @Test + public void sample_withOddMetadataChunkSize_extractsSameData() throws Exception { + ExtractorAsserts.assertBehavior( + WavExtractor::new, + "media/wav/sample_with_odd_metadata_chunk_size.wav", + new AssertionConfig.Builder().setDumpFilesPrefix("extractordumps/wav/sample.wav").build(), + simulationConfig); + } + @Test public void sample_imaAdpcm() throws Exception { ExtractorAsserts.assertBehavior( diff --git a/libraries/test_data/src/test/assets/media/wav/sample_with_odd_metadata_chunk_size.wav b/libraries/test_data/src/test/assets/media/wav/sample_with_odd_metadata_chunk_size.wav new file mode 100644 index 0000000000000000000000000000000000000000..eb48ba3e3fd6cf8203f291f84fb2dcb573dc8ddb GIT binary patch literal 88278 zcmeF)S+AXEn%?(CQlw^To~VhMr;@5vQ+K=F?rz)NP9cd6*hZWjHW2tMXGT6lK1+}w zKmY@YgV^xYLsh9%rFo*Lff6;4nn#M#&i#A;e7v2Uq=fC>JKl!IO&ELQH zhkyQ$e(_KK{GVR#y}$S$|M|~;{@CM>{b;xQ@BiXo{Dn_{|KIm3@cjyWzXIQ{!1pWg z{R(`)0^hH|_bc%I3Vgo;-><;;EAagae7^$!|5jjc{`=3r@&EqWPyHTWvD@wKeK)V& zFcuf>j_fYpT{18KzifBqa2VI_ZrI(lJGQ%Rcl*3> z&hDMsdv))X`Sa%9`+J}5o!>jS{pR!e>FvF@_TJn3a9(Hj-kG0H&rk2qpVRa2clSQt zJGXaWK6_wye(#ID59YJ4>^(cLm*%&h&2KK*T{>quzxUDn=Jk2+pv@cjFxIp=}h*Ymwk=NKQ&U41lv ze>SgA=e=`t{6q6S-?p+=;lS?Oy{~7DzM3-~*u1-lyRc42cHhiZzB{Y`{`~#LT!$-jg?qEY{&jeE^NKm&CG+oZ=3dTh zM|8aR=ZK$e*M4yJ`|^>9%jXI&oljr0yK%1X*sT6_^V7w1efY17M`CW7{W!k6bFTW9 zxsEI5H{Z)>zFsr5su87eL3g-a;}wh zemg63ZvK$cb*&f8E}R*OdwTCzd%vFbBQNf3Z=~<@+1YpI9^RNWdUIsWZ;s6IFQ4l> zILH2C)`2v>vq|R1^V9qD*_Za7+k0l@=8ci(FXmi_=Ciwzns4T(kLSJjH+gXtcIVQ$ z?_--z+%)Tb@qF^!tkb!<0&8&7-1|*)KUVAV`T6DxpS*THYn_i=kP>%iWv`r1-!oG7 z^WERx{qgRPW_`%Vog*zb&6-`it>XDv!*54Ek8T=y!yMI-4sCaQZtn5yrado>WV|!i z`^9$EZ_oYwa_`^G>u=`n-X1A+gv;itXfN43KdT5@cCKN!`*P0p(HzU?56vpLa^L!PuE5ne%WhWc z*3sEJXAO_e6}wyCdw(Q@rTTC_efiwi&GW|!Upz;-c6QYc9hr4y3$4o4^ZR3Slw|tm z`F*Q!^<2~S^V4OUgj;X>|IPgWqp@x$M<#!__vGGFquC$LJzcpSn_kjP=QucbVb5Nh zt9fgz$bmWTB_nU2%>KQ(=`wq8biV0)bnm*kpX0M1x6ED~8F^!Oee&J8C-Qk}&h^s# zd1vnP;<@X)=F>OMU3@vaK$ES?SDReW@K@*c#(du&FWUb8Tsf^dF|XI>r!Qt#zL`~~ zF{kG<@61uYn0K;sm&`TYFfw}g*fe(Pu95Ov=jU7J3e)5Bb4FTx*{t7VyT^Br?CzW2 z({T3KTG_4aD9gkL*#{CzOLn8>cI?dj-?bc>Gg^1D;Jgpc5q~h2`N7ei+qd`bo%8(B z?!Vssv)zBU`^US#yZh06>gHLmE9ZCz#u9xslKs)Fmizd2WXGQ0I7hs6e)qxL;frHY zp58nVUuHe>SZB8NOTD~>k zJGXbyc25^=5;`|E_nzLdBUjD7-Y{2q>0IB}^JzQad#C64ug~A_&E0#wJMX+Z*GTHK z;LCE8{==I^IWlt0BeELqnV$0H{50#y-Y3}?ZC63dzS^#ZT{}Ed#^d+R-Hs&lId9JY zKi_1S^d6lvvB?MLT*qeLe>$&+XZ3HI-+5iX-OsJFBlmB+a@|}3oBPS!+nMcdKA3;; zn;*`RpPm)`*W3ENIKO3cSQU1hZA$h&n@_*J+2@yLMNZE*`4a2K_Z*&2e>-=7bM{`LI-CWF!dLTRo4=l; z^Rb8L{Yyu>uA6JWW7h82T=5n2xew>gSdTYm9lBTR@#fs|nb|W}cxb-If27%D&k^k& z8^As}%jfg?x91*S8l8G^EYYc1N9c+~d^txtGsiq}!M;8-pLk_{J~JK={^Ct}$Pg>d zzigA&FXs4RAkz2A9FKSTV!rj+{GZ3OGTyOoNosrb_Uzu-xjw(Q0`~grxe~U6*MKO# zns1Wb%V#C-nB5^ukMDjq{`{vSO^?hwx6N^&<^V~3Jykye=h}oVl$!?8cqL1cY4$S$l{ZHD#C$c=> z&Tr0a62WuWLs)}mf4kYyOXgcwjhyjtP@=1V6G#!8^U1c}3)PVkUhBlj^r>0Bk7w20 zCvW-Ye8(AheUi;@d_KpsW8aRnAKj$ceZD=?^70(v-TCZ+xz3wM+V7eDd2m+f{`vPU za~~w;;#tkBXQlGit}hgNe!k^*yavB<{rsQh6OmjzEBWah`P4}KM{|5KAoe{c)m70cZJt)_j1kLdAR+XxvH+Ip18;C{?#`;REw9ht?~YV`a^XAn;^@c`og!U4D^K_JoSCdzy>vD7 zZ-pRCXA=qXe$WhAWSQs#*U#0_;t%F(-kY7^A)qz- zdvGFF)`~4+C)>|Mb4_PQGQ`0B-)`{nr1$OFODKmu`tpKruyYq}ch9e#o^yRQzo9?w zQiSyRyaQof%+PI%<=cv};*!=DDR^_@)W}Jt1L-9U&*{rrTD&lu#B=3`1 zhqvZhUm9IJH9ucAGWGaGg+G|TZ=Ci1cGdwx`)FSLsI}#>>@w@ZTr6cnW zOZM5EE$p;>u zfAKPp&Fhh|s5i}BiMi;ay%XWyb-@cgJaz*%ykql4)@xZH`sbM9B${M(;Nq|5d~b}$ ze|r9$oU8bHA~y&V5`u+_Phr;^=l$dJ4vBR)#o<=(!0ai>!E%Wf*@`1`r#FoRUq9D( zX!prz&@Ts#{>#1peeeI+V&>n?KEN|9Po5{gv@o+(bnpBx&wuy4_)XHm(qB7wh9QGq z4$hsiBv)@zVRgfLw~z06d~gE!ziW3oBg6aheuPzV;y&ya{+cI8*i@gYJoy*J-D zJD<(t7vuAS#ndE$XMyakDJ|XGjsSh$Fz?W~Q*-w(&wai#SIc9@vhitr6ueGz`F)Wl zy@F(4pS2M?o}H_5mKZ^d3P1DlykIRz4|02Flfo189qfyHB1tSBZL}j_&!^lwc}~WT z&V8~&_isM>!TI~%+4=iMh8~#JzG+q%hvZt`nXCMI?n|5u(ce3JaoybAZbR@;Is}UM zAo-A|Gr}UU7gkeThaF^r56@403kiqG^2M$+^v4d0l-6(95y;xE^1JYXW7=nI3wsr3 z6I%v%(~TqBen2MA@BMb~H^Uh`JsK_IVjzU5bnowzAxq-*A%Dw=1BZ2b0u%g zwcw4c;-|AWZ_Zhto8O$CYr164L(k$*(sm507d(L-xNmT$$R8KMuFz=K;P~tx%mtA` zQm|I>1k?@-^Fw^o`MJtdqxY}Onekii&OYOcc@XGdOh{AQ2`PB*f^4NV{N2~1eb`){ z%5nYc_*~h2bM=?c{o1>4X0@-JHN&saC?4Y5&HmD6*F+cKN?!V#dBLj~0;~x6#lo?( z&&@9WX7=)Tvy-lmHOEDNyT?Yd5y$5oSIwQ-TUU1L$m+uzqPlM+w-_&O!wTIufBLOB z0w(7N(`^(ryFn}-5HN8KdibKs3EcANQtUcdtl|@!C6WkgGBgqi* z!?TBv&Qo2QUlhx*G~zJY3b{fn&gX3K5gUUK5>>Dv zqQ_I)o}QVXvnDVQ1lJ3j;ViWJz-SApgSVjCFn1XX_SWZk8`ct|VjoF;n3Q)HxwEi% zo=_s0wy*Ea^`6*v^X<73e!1vZ431eKLucpvtf95Wk@2wKZJ!jq-?dqzgS!uAPoCX) z<`3uhY1@ah4w$$YcbX6FU~aD5G=P1EaWI7+%`sV~q8yor82WhKcpa7lTE`WLY1o|= zA&Oerffc=r_3@abyEqo=5k*-+o;f^(BY@NW#%jAicgU_o!TALFAO0uyj%~eU?!fEn zP4Dg)yG)|*87;6PtOpq^YjAw7n10|O{EfSHWh}s(BgfBdoaz(frJoqxdTuP{3){=O z;2K_;cb}Mi0KY98LYkn><%_-=NxOE=2_Zlq#bW8+W8;4xnCm*WX}?&DE}Yw<`mE7S zb2V9XF*arr@{>t;W3KI~Iq%=h>xsFp*XLdO1|7aPS1wy~YTn~l(oX9J&EXZl8X2Kw zu*_|9ziSU=5@ZbQHI3xKSuZRCgmm@hS$2~{Iz4B6buK>>G%;E>fXhjY^&%Yi4>8; zEX%ixY}peWJr;vhiE*JusQTU6sV63f^YpCYM`KAKZ^xjUu2M{O-Q2Bv!E?5HeDtTY zZZWuNJm3AztUCV23ttn)UnmXVhHZnHT89s3S7_|(vvx2EuGVVt*y7H`T3TPc!ONRJ zd~c4uHwg6lIhr`=hB?~aymxk11>=HCbKTd^Z|@)e=MQ#&XZI(=O8>3h?+?ye;bMug&*j zXlV-;8UFfo*8P^*#XsEr7rXy*_YdYO9-W`zOFn}v%72IuaWEnmF)+(XYU~c#wLUV9 zB>L;QH{bnme)HbkEvXQvS#5lREE`MCE);h!429!isWG0kPE_iC9ihFpOMDs`b9K;~ zST8w!aAfhpSv70}%qC}Lr^Gj|xU4J$Lx#wEScB#qm@|d+Fo53KOt*~8lX}dzY%zN;+lfzr8*ut`S?qvUg&42g zWD{E{j=+aNdKey3BxX1ktrvfXD}f1IQ??>xK{gfxC0gSDZW_6e9}$CvFfpmOZ!#nDkKa1CtvpcTgsPNDJbTOS*1G$7vv$u2KEgz7|M-fE8hm;z`bIA z@i?oHH=^UOjb%SQ@3^WsWcqf|SQUB1UrxT}mxCc*o}a3^IKRbfJiW-{oB1XTS~T(I z$S8c_IEOdw76W+UmN3uwRubsyaT3>WJN(fc1LNwumx_u_)s?1lVS#0$C06j-(E=U+Ij81PTGWIh ztLJ_9CA$Xw9-kw#q`Zv%u(sF^zJ%STo#YOlB8PGLm(Axto=@7TH|KlRLCFo0A+mbK ztf)E#HA9ci`F}WnL()*?opa7>w%v(+k09>9U@&3?87TP|Bd(tkJC_vC0ChBe*;K8S+umU<+5DA( zrwMe%)sZt+jI4!EAtw8N%^aDe9@$n%BxxPtAm`%ktgl#;pDtqwU9k`B?G5ucPAt0w z1B$0v2bvCJh=Ik1Wmxy-U*Wd$i^Z^ILW-V!Q@%`294AMcy`V$)UB%JS3wA(kE-K+M z@&nH4+O4czu%>W4KV+Q5h!Qxcejyt!Pyy4;@@!2wAazDP`F~lD%agjn6_}!6S`tjnX#cZh^ z!s)3^sh){-B~8|kN0S4%{Xgk7yhfj8K0Y7Wd}Gr|-h$17pQ?6(ZgB%Ea|^F7FD*N{ zsw>JOLa1dotP{NP{>Xej;luf?+P$?3?7aLL ztIWP&n?aVBrRv@#Vb66-BYE&Dv4WQ5*kl- z%HmYFRs4-3IygA0xas^>!%!8*{d4DRsyrdv!*kPrzMJQeDY$py7!|2%F8O926~B6J z&PEoXC5ZUS(JfxDT3qosCK~_2K8YKutT{aUgD02eT?|t8o30$Y;E`dnVt!~on`X_= z&QJN6Jm*ChbQ}u`Uz5s($RI`BA6rh|NH0F0gpzC(iTpiODE}nOQ5B`A0xA|4h^OsB z(Kh6IdMp7x1oA&US48^An7Ho4c@Go6&xT;*Ng{8ZjSU&G5j+rU#^doram4)R&9m0f z$?YQ%Ryz!L=d6ktQUqx4#q(+h)b!xXS7w&9(0vFUrjuBYQCpV7Dt9T z!p?j$>w=e6wMI)~Jj6KVSmH$NGsz;Mu7W&TCsnX^?8f=+m$NRf&mQ1rt{Ulja9;Op zasmC~2&@_|i}%1?Re^zZ<6+@iHFWrSehh+@!MT0&Cijen`aJ36n`N@(3!tqS6PXV= znfxE`!KP%7`?ss$jmaOG%zM&f>uIlxA)zt)q^go$!Y7ADkJS07A-H(XFMC5T@ctM} zUQ#3|F1dQvPUVM~LVS4rc)_1;mEHHvvDBT5NL1j+Tv=iMkkw@8;Gu9ZO(Q`fH`cD~ zf2aY5w_eslrlMRr2B1ninRiGBSB=?sJ#74exkBFO>aj6z57z&isfK%Uye`|OqEgio zG?Qe;9P$KZAgU6^H$OcQ*_pYwo5xP@@%W7cBd=u|f_JZD&X@75YZ@x2)>NZ!?RamCa$K(ofj8D zgRo@9R?Y-F{(pG@R+$t&GWPIi^XJitd+(fG73 z9yWnR(|uN>>L1=-Hl+-sJBILCZ5ZaQkvdfg-ura!@a@gdkl=b2=xKS}A{czg7jq1E zt=bPiU>C&zYKdfI@Ry`ye@}`^>5FUme9ob!KsGatV#}>K4+}5bW%sT|28yOvxDI$x zlpRl^qNI8fRaey!#iU{x`&zVW;H;R{KRS2t_GZoUtL#{8IiD0) z5)0)RvRHDSxW#JXMCXTQKh(PDKZw=!P4=6&-5c+yn)I%bW`6Hyqp`3_l1(z$=&B=T z!MBy5o$Llw3kmQ+D*5Y|Vb{AKKl{%L+5_3ZIOQrju9>@xH*v4Gj;vw9pnq|aoT12v zrN42s?I*iG+5Oq>?+j?Q(jwMLy=&qw^~p z6WfY6vkH7utQuCd+O_f&c`CjR<0=!$;)$DLE6Vc0L3}b>{L-MHUk;P-ALq|6C-eKe zIp>M_z2BbNd}(YXY+7t#&yu{?<_x>JZkX@hS(QtN*H9sc(LcALZhMI>QR_*%(!~cy z|KzLgm=#mAP_-e9a%}YB;<4gYI>hlv z-XqE9=I5+GeAz0i&N(&j@8)>L5wbjdvnt%5&Ho>omAY!A83zed=&q{Lxd?&WUOd;Y zr{~!G9gCe`VzWe3yhHphKUxI|KO@{sn<|10&%E= z6|1lcN9J7^-TUOR+!p_aV_vm{WDH)9>xK|jYq6ZLg&5ST$A+nJfqAMAV=1%G?)DoFFq*#9|N2o?+TW zE~?-0vER&hWzE$Sy+7AW3bP;iDBggLb4Rc^zD&))`Pr=%y@k(i^G_0XKCWN$oFmYVk5``EPQP9_&=O|e|T2wrg=9k3@ws#h*(ca zSsZ>y=8XI;4xQGv8c-EHLK~nsF~4XKvkW8dwqwyyF_~kr!*nR04b3i}A?vS#1zU@! zv$p(l(K`<$?jXbd!|<`}c}IF47x~*Q+vXaes;bq*qOK8Y!t~j8g zh0=}Ne#tlD;9yZ~P_eeWn{UFDu&($NtF1dLw!W;fW2!My;aH8nXziW3KYdvAH6~UL zsR|Hz4jBpge(WE~DWm**yFZ}n9CH*88!iFB~ zo~n#~!bB$W-y<_pkB_X%ErTDwc=LjFn{y_sOb|J>H$XKkZ zmvJ{ZR?sx%uekd0U!q2y79h@Vq~ zeEHlbMvvr&HF>$Cqv<@C%%*zqD&nwI^39GQHf8_G(fRrQOIw@`RbhSLCiO3&2X-r5 zO(U%v{G^`B8WdOCKb3C>c6z@~&F`wD@;>IpJ;c<&G#J{~Hm!YUj=^%%9XNrm!=zO@ z;{enj)oD}~rOG7smTj?vRFPmkEwu%omp37^?oX;ADo{s zsPzqtKzIYSXX3O6#$MmN?X9{I5tJRz@2W>pwW9y<>#++}zQAahk8%j^m_$~sS`|of zMyxyL9SVjdpW9+*bpy*g>t20z(C&X2-21CpV>N9r&PzqsiTO_aITnaFRXs0CIlW!a z#hc8#E1D_7VTCa~BKWeH%NNG*m%%H}cBhaj9$960ecY>FNcJM`2(qvKNDavyVL6y+hQY>XX`eHr(OLmKW(QmHP z_vEHEb#3r9uv^u&d_Mnj!|W;!2X^0WWjmH4YwOGCzs!}&LMR#lQ3;d=bw1#tzA3x3oe zA;(#Fp0zA@Dw4rSkicYKm*(AbzvalRgx{!+Qh9#;Dr~) zKK*Ko#GaoOR%Zhp)Q=9KKC{WHnE!+MO;6h9I3cr zWa+-SZoFl^UE(zCmb#Wuj*5vgcsy+V2=Lm9i$q21zlC-odc3QA0$IcW;dQYgunSLl zX4d`Lv1)3G_>Xi>2{8lgo$jnRn0cAKPLF*7~kZZq|{? z@j`@f8QdXnC6a@@!m%Pb6GR}fdg$OWmFTWToDt)M$Kv7OXt+sjd-(vYnQjo7qnqbE z&>-8%r{B2k4hbdCRo?M3RRhVxmiad4SmP&I+FbSBU#zxbV436W*cf*mz+*1?rX5%s)9E;_O@#Rvn{$bneA(WjT2Ia+toycJtbu5dg~Fy@I-2{= z=o(&yXNw7{|AZB<+9Y0zl-3u-GxgaJ+N$9c6Ez73i)jBuiX_8o$T*xBt1O2@21H8M z1$tC_^zMA($Xrv^?D}Ti8BR|0T5k}{q~C{h>n35Vv5AmxY*w;@v*PJ6ShyAlu|5}F z=GZ5B2-b+~W=~m`B+1og$LMr6oNbChJh#ON@tErH+=UtiF~6LSItq1x&|BGrYv)c_ zavh}A{@CT$W-b0|@81lvdTOMQY^0k1EDkwfgI>SS}cj z58z4l-H1O#bom5z1lF2OXBXt3)Y*|+dECyPa%yho4O zsCr9T2oXaWU-?yD36|#dMSSIrtJ8?>XTz)IbDiNL9_h0=OMUVx<5$*L{Yaca6=l{z zM^bZ=vFG)q{BCby!56fL6$*^^J00d`T9!S}wlPdcfkUNaXlL zz4&_a9jjj-Y)q4i3dq*Ptry4dpO~}BvxMpLY%E(b1OyF5sOq6*G&;%B;Z?8rL&M(V zw(lA#x_ka^&c;LYlg>jZ2xr6Bvnl%#w)_SUgF95wgkyj&%M*5<16<2|v)bdTUz&PS z{+Q;-74WX{{FoIi6ZDq-7vozAnoVwH&GeheaqB4-$VphJMNLp`4Np6UT2b3Md?TWp9&K`a~ z>jT%yWvxoiw`SEamu72W#W9!c4KxVPotWQ|@bZw5S-D_$YERYk@QoNHtdnRHH{ecK zkgMhn)t2a@(~BvWf8*S#UBk~-CH~`?XZ3fd^Wou<2KWazVzu(LZ;syn=0bG-#wP1x zD4fEnxyD~k&i2=HSGvUOovHdd4$XD2LL#`;Q;Yc}yPaPIQTBwT5!>T+>gB^|h(O%^ zzUJ|wBYRzuFxuCKfTOyX0tp6t^WSQVOt9`Tv=XQ-d-`uv_YlWbUz&ys%-HHy4& z4rJB-LGNmbcv`u(-mEYmn7FGsM8s~QYm-y9Q~1r zOCBA`!?l+?5c7+mubwN_AANlOhPAOw{5!UQ{@}PE65L|_SGd>ep;f%SH#+&^*kx5l z)lJr)B07|N=S_7X$+9#+EEw!9w!LNkt=EWc$418wn^)OP)uc%I!XC<`p=@IGFr zJERx%$z&0A*gBw-qOQzdTU|1hw;^RPg7-B%)W>nHP@AJ4x`E>yGX+SS5}80*r5 z230Z2+QeMySGjleSHFHSXfY8)kC9v%R5Pp0YBaY{?*0DR)#X9>%tN!15KG4(apX-d zR7}mci<|ga{5qSKRG0n7G07_yZ__%=Ufl(n+MT3|jeUn%} z(rA{MnCY%rU5u8Tg(Iq?bKdwSS5cL)$Xhn2Zd2<-=CXA>6+6rdvy$ZmNl93%ieZN{7Y1>fsq@m*c=&V+>{MW4&pr%rU;O zu5~OXbjmkbS93xzG$dTa2j`11#XqVF^d$NYzPXwR)e4YNa}Hz)O%3xYea<|Fx({5T zJyfBjnv_3>&R7rKVQ-GCnH_CnMj54K9H&tRq0V;q0~5v;K{V>3t1<``L2@D)tHw$s z8D*BODvKD`OXfuU@nYF_-k=WI8$1~nNt0m(_Q}ae;wdH(VkC;zRlRd9@x0uzGc^^PnQC zCOnzP!J=3(*dMN^y_o8}tQzH_cAvt&RTC$IW?y9@LXIlqRaoN-WvfqaGGkTPCd_0A zsW?5)MXE9UuAPU1B={Lw7qet>J*)F88&v<1*h8j89g{V$BA_0Us(Nsr7(K_s;<*1X zs8|DvQg>C33j4$&V^G9J&?SlTcg(t&BeqBlJ3Vu)5QDsd`Z?1rR4kK2j8=blXVq4V zDf$G9sSCYXfX)1c4_%=u;d}sJDQCdL;x*|wTgXP}YCStw;CR)}c64k@R{N8Y$=^<< z_Q}}~Q^y>21ZKWN{$=i0j;IQc{TfGp3L_}q#7&mZDQ@KP%Sno9W$d87GGwCfhbH#c z9sBV7+w5AMlO*4|6oKX|7PrKfG>HmgVQb!~XKn~6(JxusM32}Ce@m{pGHI$-yzF_KMZmv|HQ zK*oR#4|f$k$}~A^lcJA~b}goH&2lLtL>K&#RfFdt$7BzJHu+bL6eP}Xcek=R>`NSx zdO!A8G?G7o2U*hie{&(ACpEpWrTnHIJ@PABR#A%gGNFMisl{+bRpzYOrS$;FyWBQc zrAH?}Qa;$M0KHafXxUM#&j;{Kw8u_W>#+C+k#cz=8WJDMGO`CEd>*fgfV{M>u}imm zP=l-Qs`*V;8`4|*8Y(4MP#es)au_Ga644fUPXC!wU`1kKXb=f+&Z%RH(N~22-JqMi z(od$==%*vuX04fj*=$R9>f3xWF00-k=h7=ce_533aIi3ZRCzAlUZ=*pm`Yc!9-2zJ zX$pR^$$|XPQ{!oHB642vB41=Rl1!fRv)NlU3uZQluUI@5gAbtHtfcqYhcFD?X7#XS zI0d{Kp7Fq3bI4ts&L8+AvdLCwt; zcXsB9i{m(qKipdy5`UWjkFW1DrYVAE`fXthi{qn54=>hgWrfN6WBEJRy7uV8` z5GxD6o|q7usl!V|ET5yM8gFI#lwQZW07cmGWEc&zhyHl?i-|h^-edqCo$rW>tT)El zv}J6(mw3vHuY)C^Do6r@C=zAqFwABogq)I+K8bJfbM+$m8rBaIic7C*4|f7ro!tDt zdO-8C$eepsiO@7vof$9BC+!x#UWczZ6#K3#PS+?rtd5&pi~N!gI$>{PxYX2Eb@ubE zEAE~P_7dJQy>zXC`)0R!t^2lBYOXyyAmXwA_zegF!nZE)m8vQ+sXCjq2&+_FvRKD< zgY@%pd^ZcsqOf^Y`?>S=6dOGC9BwoQuehv2Rm8>kRj*WQEuO=CE&Xb$1q?5~P)EeR z&|X}aYhoLq6qt;z!|-7h~$vtT$Fk-0MH+ot}yDU>k83 zMwK4N4vX8Xdvz9U9HgZ-L}djDR|i14<$B;G)vYS=JkOx)u)K);DVC!s1-@Px7?E`^ zbuci2I5OlVm#98cHFj$SmuD%;&Db-ZjHhu-7$nAxf8y7~AaG7`vDl0MFR!UaSnZUW zfIH`p7yec+P4ViD^Zl}%^`FQ}ktZ+rWo9~=V6CAuQy)cp{-48Bfsk8<-c&xDlzagFg(o_&8l09~K4!LaY3nPT@ert+IFe!G1NbC&qI=Kl_1wwc=tEzT&+(K2Jev_GKZS zR&|CLDgPDPYz1L$_CParm!RIha;-$-HcQ{qCc2*)3I1Bq1HgW*)+y*TTAe&hW~P;=kqTC%}SohnXd zoy%yG9`Zvw**{fF?#j%gDznPt#0q11MU(bg)F<~Mw+=Os)%f(L)~#rkjko$SI;&b& zWoO+fJ+UEggVllDn{cq^;^0M8GiJT3t$?g(9&CVNX-1!Z0TYIBmSsdt&7-%~8{%+B z{N_Il8kyot@ol|&Dgo>ESn2PUW}yX_yUn-SY^S-Z%nJZ)J6i^n@L=?=h4IcQAk`{fn{3 zs&&=Cv&mR(`T&_1Bc)GJo45-L3e~?jUgqEJ{hu?l{$I`CPt4A$4`8pVxwWey7*>X- zveU8kY+A^!iB9|;P6C>hf7T~xYFJzpOKbn!DZ6Lw^(??>re~__Qq_P%H5h6^-#&~${fEgpC4^D%4Sx!Dn54R|H9^nM%^gI20JxQkk{%shT_J3j2UT2<^bd)wV)Gn2e&eDk)?L zW9VcH_n+J1-_4T6-Koo5^$}HmVgU5a$SgMnGVcc2SlzmK$qFP>RaPjKyvHo70l@M# z)92^IRGU$1DkJMEdWT>i8&9Y!T-Pg^CAprBR4S3_FhlKO7+QG32w z6{PFACNw`>d0ISkEq?xB6+-ZN4H)ppp4iFX8&I?Rx!=kA#+S(mx`O;xTWX)p>k;^DC|_027yIKI zBo#x>e#O7@t9Q@t>TdhV{Ow7Q)%!p(F%ngcs3o^HqG6o7$cbl$D9SM4fZV6tJ{dH{ zw3$U>Se9Jfu<9cgSFVPAz^TWt(-BCsxymNNnQSQnEmte^!fJZ*uAP*}Z4M1YTdjLF zzgE{fFn1F5(#Qx2QKKiy#TDH=|ISK6RnQds*E2Yq*{;rmh0}EgYs;0?Z2<}LlC)`Y zi|(Um*g~vioo!`ZndmvSCUQ0hWp(k;Al;#&6g4K~K_00Z{P4RK_ijEg4Wy~8 zp>AyVEN@8T)vx?yW*+?UWCcCNiI$PKCNq>*t^OB!A&vFgHUIgpk#KRUJ{L$@G~@VQ z@Ug3dtVBEY3P6uC1L{IdeST&bBdd@{;cLBO$l^#@hUP=RI-iPX$K6zm0X0JA?3KGC z!~DDKp{f~{4d!bSrd(qD7#V1{s&V0c+=nP#Jw@`QHmxcZUaOp3UGTg}nRxb%W;-ur zON#w{VEz?+E<%sRR~RPO%%X>+<67&UG$DZ` zk(4sjq_Auj{ewfW)jVCj23?c*dY!ZUt@(6ZFr_u3k0gkR5z@JY;MZ4z4Fw=sR+JY^Qa_X7P6_ZB_WlHma)Q?O&bi6Fu^i zc1ccOz6K{n#^kSLzj+m&%gf(pMl?14snOb}=DJh>xMo$=A=vt+;8%8@P1jQ>p2qC5 zBm9MGwaZ4Ip#>EbqM~{suz=NW)c->sXt#S3A#qxZRl`Br(ro{;N4R0U=&h2c0g7<^bT%Ez>nHuBVLEp<0A9bH^?Hl8m3z^qP~1d=9I`EUEe z_letN_{^#Fqz-H)_EklN%yo4`>bCawu9@FFJ~kNcy>C`t4p20V>y=Lnr>M<}(R4P` z<$E$<69m}7Ra?tGsg{qguNs|Q!M<1DBp=-*z1}xTA#>SjS^+tftHzXIv)NrzN4{L` zMf3aHWl_K=lp@ z!wEoIG0oxv{IN(gA5dK&Ip}%Hm=+PUTDNi?O{u{-!(X@+FC3)IKjhGghA(km5dLC} zn~8-% zxNwvEP}$h*5p~-<7i2|3At2cvj4PyF#4FluqK#_m{64hRnX!=7g{Tx&39Mo(8(p;s z)GxZFQM5vgE(cL9v^cJK9Ud$mH}9)DDkx7rgcPJ1c1p%Io2kd`&au$xq>4zsk50t= z^+YfIFjxVxGsIQa+}$OGuwOHlF$FOd{0O`ak>Rsf^*GEID;L{HIzq*D&ameDPaeWU z#ps6ot&E9gD$|NR?2r1M_2gtzS$Jk_aa~bz*J2CVQ!_5vNxZM#bNx!97j<27|7lgLhT0QEf(X!dQ z*|Gb^mo`b~p7|W>C89epcZV6Xi$1A3#r~Mf0mGSc^zE$5$;~I3Vj)hzG~tu0)Ro~R z{dkMGZ#jWAZ$eG|Yx8|EvN?}(19}phu}`1Eab-*S#l9V{D+;LszsdzNqO$%wvD3UFzu0{3$d*LZ; z>~q(`%K78zPxlVCs{7*7kvTa6zEIb}dZw4IEOn`6G5Bp69KMN$_M~RK6r6&W&C0N@ z`jMB!G zi&IX6pA(z9CM-=kaLDy5~iN^6wms;xEBE}^B@?b+o!?zF-@RkwPd%{{XDF`IgA->U-s6drxo}>#Lw#r6bLPpIp|2n6 z>RCtAhD4)h=Nd7Rp7i|i{C(YAWwRGycGWfYJg6Ly<<}>pii2G(hi?DkH5S8B-HAzc zB*m-=I%S3j&8l13IdS@?6`KZJ|4)-IWh-TN*d1~Yn}pK$xo90aU(8OuFxFdj7qr2b zie##%(Ltcr44c$U=+yy7g7|B42Y0el*yk$TL$Z($tcInhGb~UUG`+XtFm(iw5NXq! zhbf?GxN2O%ZhoWo@Wwe)Q{+WGRs2Grki9=RRgt@0g;dnvt-8N@lHuV@;3E{fm|Gbt0uOJ!=;yCJW}}2zmahuSB(>7C8af->eHZlRqy? zs4A3ZI(5nH)3ti6=;QG4V#o^x8?p!j*v+*)lW=VuSqp5vVYhx zjHz?iKd^6~7pkb5D>erDW1*ogk>w4Ww65x7md|}xU#Z%rzHvRjxN|bYhO<#slNGbd z>9aC1G<+4C>=n~o##D_`RV?`_^67kP_4zxsCBDlxK_R$RTv72-Oe>zMCs4CPWKuti zSr4jX*y|5Q%RDPv{AWTUsTDn0|F|sjCW_y$MPw1&6F=%sXj?JKd~rVKs`%iQ0rxwx z1eRG(IdscL!-SZ!dTn%E$>+e(aa;TZt#&SPR-F?kXOHFC%9U67rh``fm}&+L61Jn9 znke2LiRu?etwvE)B@Qx^k>8gYkayts)Nx=y%m5JAi(qBXIzFz#BnuwR-j|&&W~hsW z|H3@RuOw+KeG`IQ4K%6~F)hUZ(g|8oPbLh3FT={g%O=E{cdokol z3i#ceRV*_pNn5db7;tulc9yMV%~zMtsv6;K+WW4DOyVol(TIHHWShSi>qX;>)#WmI zvTAaRU{w>zh*g8fYn5pxsWK#|xgVfqDPFiSd6ve4ox`)8p$7!u?dON8{NN_Dv-Fqsh{kD=G7K+3ZPqy)t?t z2o}e#;aH&%URHjsTzkH+zL)PV=mD=lJ4KJ!mMmqq66am#Q5_fZmae9p9`+SxAQx7c z1%+<+SDWWQJigEzGS8Y^&!NJa-7@!xQ7wZ)Tj_9>A~9Yk#!lh}#RI1AsY~L^aN_du z=H&Q2hNrm@>M0J*IX#OS2j_nHmRQKQN1N!Sn6Vmk*Gz+TU%xpLEW#_gPWQ!n?iaGD zUrppB6APU^cA@%U&D@58RZUp2>Xw@IwYrgUf%UhkhU6_Us=HbDYUg1lE6X;q{(Ln? zU;YNWziMw|6jqfTyXJGeD!isHXH84@O|}>NthVBwC1>bw@>&;RU`{t-_iRFMA_HAQlvx>oBWJi)P5E#OT`})``_G zs^V`jIIg42EXJa|H(X*~7+F&9MQ>x2eNt8vUTX?3eUk+gYqN_YRZJE?nB2NMJ5qMh z-LD#?CcRW!gk9??L|7PgwI(pTI=aoK<@saZ=~q{JvO#z2|e_d-Y59 zmISH5U^gH!UU_9FAQN~X)KMKnH8DL47>;j_CX}tlrq~*X2q{*(Bo~S+i?O9y7*hT| z|B=SQHf(kg09$(XVA>y!ZT>s+`u({l6&&zo-7a!BB!J$*7woQ_pw2aHg}8C~Lsd!m z1-i_#!XI9&tt-W3Rdw9FuYFvv5376}6oLWp1nQ^8_Pss(s?Mt1B)t%AR7C*8K&)yb zF(7e@)!#NdPCkRp#dNFY!{EEh=8C|CF(BmGs<09)5PV|&ScLK-NqM`}`#vLLVOQu| z-8JkKE{D{(e`_HYP#Mtd5q7M~6JDU41nGkD$Ui;6jI?SnI=hG=lb6Gs)_GqAOBE@3 ztFWIe5{qxzCcO@O@YXD+Yp6CSY|DqLz?Vg?w;hk-++hjpux9>{I!6!}UbNkFonfS$ ze(6b23x-*P`HODp5zHcXP?1yp0ts}_t0v9*l3n)0Z*&ykyT!{8hwnFALf&638n42S z$>QQ?Spj-deh8Y1)yKTm=Z8`A)C=89GRC)!T#2^DldK(&l&x}|5YVmjDS2h6w#>L| zWW&=3IXqt2>dEvT8tf}G7iR>klM5`j87=01!myu?eE)V{FU%F5+xpH|#|`dAp8!q? ziys!{O|b@a)f6O-3UQ>IQ_!3u?m47` zQ-0P;d97-AGRNE4T~>?Mb3^4N29-D`}(5sZoD>qGjBwGT&@f&ksQTIm2nf}%Y~ZS zn_jt6F|6p5M}|oFt}=n;x;+I*?_`zjB0rh@Y=Iq*WxRE+{i`{%Y22Ql_^ZKSAI$pD ztERo-e&XlUHo>oAoGRqm`|8uf@1$4ut)6YYz@8PYAKxdjnK*i$${aB@lw^{9X`(ci z6~hc6i$L`C(zTT_!dzL!?4ZgYRsx3ruQjV6_EOEMsD*xGUu8V>t*Lum&kbP{VM|f4 zjyAcXt4BUtPu9;Wdtsv3!PN<5o%w6rD=qYg&*GuV{=r%C=$_Z7lTj~dGZo=}HFDRC ztYGDr)veO3ogvAt=*CU1>@v+(?IrpYhsmI;(ueYjuIb6L@-bqo{(WV;%Z_6%tFvl~ zqSz4A%XX{Msk)!ti{~KUtesux^A5f`Xv)ZnY2d43MfZjpcJeKGV3-;Z%vc(5IK}=k}A}MSi+5d2^ z-D<&)D)xFRf!uMmS0Nd?i?xW8?|Ca?t-5~fvfZ`D&>jwyf0Xf)y^~RtTancubNt16 zRfp!MD(Kv0FEYlHg#h7pyn&i7u?>4*5)(8bx{u@HolSR_EhW{~-84zOiM_!vuiE0U zDs+Jp6C>8Q26M8w7)3SI;+xOrsLc~BhYuC8>bmV|zaH9y6UCe!9Tr2KoR_*;U4C{7 ze_#A$?uPtJ5u_cI^T|VyWj1xcdeO6*?5Ah;h>t>pq`Im-{4v%`gufz1m7gp7$!|br zumhiH=fpK4B6*utaShqA*^pKleBBv1)7C`H%-Z%0mb>S7@|toB#XvDdRZ%sA4H|<4 z*@9}d_NR%;F1S+`iTBNm^Fi{MyhOc->b$C#iG!D$Iz21V#2(quHNCe^U{?V{vo&6{ zEY?dTyre0V4X2b3sXBw#^Na$#6j^e$&BmeY=_^T5SKY)5R|AgFHpsHF+I;yOt-RXY(Nz`fVJ=$g_hmWa1^ zPL+acvq&);E4!!LM~1p7R(7KZkbXk1$HuFeM*P574DqN6L>|f1kRo&*7y5BtUUl{J z(PHcerW*EB>1T?y`o88^!z*w|ozcZ9G^=mw3l))9_ha^(7}I1I(V_}Ba_k(?+IqeO zn?WMv_R1Eq^{OWDg8Orl%aDmv^o6Sy(tGjbFjddZIan6+16{q<4qu63arCriKRT3e zBG1M65DGh=<=M~3sUl=|=n$?Mnq&LP_sXoToN7^U+QGLKokGz#1-ZO99rj85hn2BX zi)rn-7q}F-8P>E;B(AC#SdyQs&j%7AceIiZ7v;;esIbSL$YmsnBsH|vPOthYzPBki zaSXCSEB<7+lb}i(NYhHCtKVz68GTPp1L`kJgWZ`j`a;Y!=CEj zZobN`bB-7|JylhSia1tZDrQ4(4^I~MuC~!C)iEZY+Kg0kg|(>8pc%?_PxUkmyiPrF zO~>TjAq^Ozjy-<0{)5;i92Y;H?qaE+VRoU86MkD2vzXIfge*jaRb10Dn5uXR8qie` z#&B#J;hdzWt_0s~J}2BL7Q|xGkoZZOwK{d<16CEN9<-RQRnKdW;fORM_B0Nwn3w0` zm!N;Bhz~WP7dn)Q5{=h;rKa6vT)8BbDEKXN&(v-;)kb$!42McFYzTCqGKpt}^I|#u zO*=_78*qBGmVJ3;&VI>w+~7J@kwMTsH5l*T&ae`&3O;(j zyM(oa(9~|PZZ4eA>UfG(V+F)<&4gxEX(-?2KG=ZR6L}`KD$W2$%?D-s$_=v_sz_8m z$`-=CaUU!}+Fh-U9dC+nxouhB>JRmp;@rfTG<(&>X7M3bl{Y=d1MA2`;BTR5SAjnf zYw={dImL=6=T-J{<;p~(CO5cOmb;F`P$EPDk@|$ZCPW2+emBQbS@h!ESzXOEf5inV z5m<>3pxhnFk2hiGaNURJxK#w}(6D-D_SNm9$48$#%uEKL6|$#8Ubiy)$Uc#TYKx&( z62lY6;FwltLIS(*T;;S)_jNbA{8UP<>=FLT8mTIMdSc{%I~fplHu%}{JBxM1rL6fT z^_D?B@H2Uc;}$uyNouLHm~g!JR6E}?S8k>jonQ~thhk7w9YJ6^`AHHz$NG8NWDJQ!VDLN1CeQaL%e$+N@OtWq&tdBF zIJ3}Ltd%2?<SAi>wMBOfbHLK8fU6qBx5%mwn}V;{S`V;Uqobbxl=SNG6IC zMNu+BRlQgx%qA{nZejj|lUv{BWLGafC!MSNbYu`4Wg3RA;b(^Td}0uztVca1Y!izr z%eIi6dsuTlp53}-U!8SwH!>{r>e-PQv)t51(HB06t*i>1A1POL<;dK_lkfWDnU40z z1!Tm^@=)-It}*^5dnZ0H-;kX0R4bQ`XRS)#USe~^uO=E{5%9gLxO>()3!y6nui!kGv&_f)VoYow0BCPjTR zSJHm0d96H)>?f(H^rq-;TF1 z8#CC&tK5U^-u) z|3i6@DjaNgtLgEqSL`*0U%raYt8-P!?5qA~c+QxsGrLWE^r$hY_tV#IxvX~S&6xBN?( ztNG~GwVZl5lZ6*~Letp4IBW5>?_%KC@oVO)Kb`N1dF`AhF^Pio1H_H7>7g$A4`r?z zQPI1ouzCnHFw4J}eV2i+p0_-AUJLi52A9mSDPqoSc(o;Z2=JOLU{97_aTP3E)K#T# z(T=_LBA?C=5%VCTa4)vMJ_)v1h2=Y=8GLoUosfkZ5-7KfzV)#}yo}@YOk=%np77PI ztGkAk$Aa{fD|um_gf3yL>q;d#b(OHA{^PIgY;z9vg6YVqO3!Lwg~aou(MvxF&VP04 z>sjI7V2V75J9%TyD;mV<=*cNVO`cRi!JW9ri*(L(?j8dYH*jHdo(D#%POY#y4rkYqgE=E`H_!@X%) zY!^GO%89)v`<)+mE$3P^tb(mMFIYm@7=l>UvDp@0%6h;&u^iz`(KpKn5z!^N6}oiM z=H+^J*q5U@{H8vIs-^1+XdV)8A$P_KW*f>`vyY+|5`jar+U*%@Mjt~T5PK`dAK+bB zPHc+K)N*$u3E$XsA8`{8RULm7Vc~XXGxY!_#ge~2djWr|k7e277sZAo64xg(U-@tU zf*sT@$XzsXry0#;teBE5jmM8A<27+u-7i^JrBN++Q@Lr9%3dgmb#cWQ5Y`2TG^+{& zt}>Y3#2&F<%>=+Vsx{54&=XddRp(=?NAyJ5_?3mY(i8eCvMg?oiMJD^NrsE&B)qisHkQf##fiYD_}ZB<0K_1x9@C$jB}meY6WN+G%3r&BlBxvZ23+WnTN=> zS>M(;Mk{7mWKbt*&r4MofQ8hDW7du;!zu<=k77@9H#70R@rV!1@zrzUQEOyg9>s(<|t8>LSub-^4sH%Cb5QY8*aW@}pA9%%{mLro(&+0PK zr75P5RiG&%ApTZ8ijDzwUg~4Bw(?MP1p323_f&Em^s^H$>mNKdS5cI1uW5R`j%YT{ z9!khF&{P(?Dh;d3I%6uVlso24yF#>%M0it1X5|X~yGq#nR1*LeZ@r>h^_KZI zo*Jr49!>91qpBlT^};oChuDwRAy@@YHJG@B_La|-?l0-esBtZsI zo(UtO10=rBEJfCf9po#jY_3LHt^q$K;@AJ+Gpq~5TYVAssC*D_xt=McvJ0h2-<$@oubE-PZOIW295Fxxt|&IT#ve zw>nm}N+AMBp*bMDSrzU4p!}iF$pMtJz!X9%tULLjd06A3yej{pEb*H>QJ*H=RS%0G zR1khTcK7W$>XEtk9}eU4wS>SWE_Ju~l`sq*l61QVj!Nqa7O zQxU2Dp{yTER7NDej7Ns6n*!%4J)YkB+I%DZ!g;{>_RNAFK;pln-#S5xYdM<&wRuP!$HJWLza6N~sYo*C!^;|g~&en8V@j_Nf zos~?3caqGWn;@<{I%mb%6l2p?Oo%A5yi8d~xI@22PaiN>k>@SGz+K|(U=R^%^Szsl zzH0eNJ0`JgN+j#YWF zkD1}@{n)!1QWyx<3KA0Mu@?|P-VtUzKiBZ;L^e;39#z!?hqM2*o>i*8j%Bpc{HOQC z_lrkhYgL0)uPpwo!l76O0>5jsWH2DKu(CmS&x)_99brXxmnCz>q^NthI_lU&XnZ64 zArEG)RUlNGVu!1z)|DckQ+|e*jbVTZuAOUvG*%a->OS=mG+k@}L-Vxi5O8=5Q^xyi`M>;n!R;!$%DsDAYp4EZxhor^H zNg4lxO(TVID&f+Ep*7KnGHS0`Q}yTZxlfgwCSiRzyZ7ui zd0&5$Xu4iK7=*Qy6OAE*jGKFfr-q?*m*EB-Po-^7EUoIS9$jp%d7d&{an`I5$rAtT zVj?pTF_dYqnuW?FRGrNtt#Od<;Y zrq$D9X5U!zWnT_VJ=0qwUphcND?z0u+}ZSTs8cKok-*>bxgiG;CRAJ2jZV^3T2eI* zi6K*%G?Sgp6F2YQ=dwd}U?fYpzdT&{i%*kv$E~y2_y-nLH)k0O{zl#&+JpnK$#Axu zIUN!eLWF!HFS4qx91+4-FLm$y!BWR>W}n0p9nJljm&zJeOKIAHngQ~pu7LL{%5#;j zjLh2a74KC20|&c%-XSR~&g9|ZoXYiyi_1t=$;9g~>q)}xf|_URP=+TQ*|fVVCNN#9 z%&Z@)%Z{r^gqT^%W%IEJm`KkF(|Ibd0ArF>pJ!R+S5_R417mM-dTOVhpFgU)WVvY@ z4v^##6B{6gCHIX3IYrWU1?!y(C4OO+R84S9i{mBKe;!g)aqcXhw;%&N5M z+MDH)omM|){)Qd^88;c0*XDTj*OF_oHTh zW(gH%Ev&0~W;;ou^El!u5*6|Ws zh1HYe&{u#LU>%Ci><}!*TggK8lved{bv?nE06PC$<2Gvt_M8wN&+gLZW5wlJqK()BUeTp4nnqXUs(WHG zjz_k9%`Ak5#A~Lcik>_T`q)T~r%^n(+3jWwspDbip}O`%?ytUFXP{BAxE;xQu9-kM z9}XQ8;eDwKi2I(Wi2fd>*V=ZVgJs>Q|w!kAjCI zlWb&hBcufRdSP*CKvLV>2&e2l9XI;ffVt_A(a9zASOH+FMtUtYKIdRcie=Vs<(M} zsG_6QJ(&LsiJd*q)~OC3R$uY53zd-1Iw^s0`o9eZyKtG;OOX>{DPc!SwJ!h zUGeB}74M5nP!-x7f6pxuF{n^rpQ~erELoS8zoKdQM(7ADBDz@&Up(g*n-5cKswbt% zC}BCrWGh+8`YK5Qr25*16P_Bppk{!54w0E_W6rCo&*lZn%UJp9sf`KFVU z*X) zz*EL`s)mJu<8Q@>Y*ZG(lR9K)RCCAxvEFPqybSyDz3c~R`+VN3*O2V%+^hD^`o{rf z<7H#SZ0>C3N7EA;3UOIIS)i~gKOl=NgJ_Lb{jaAiG*wnTp&BY|kLdsuN`|WO%Bi4&nPgwnmkI^K|SD)W;6#CBTNj zHCD+E<|Xk;P0hf5nMojGqP=C@v)`tAl{aKnd5x+v@xbMQ3J$(~*5H~KfM*`wF!_IkYE77b?NRz)KiS{tQ30Je?9CuoUSr*$~k$oI6 zpUAuMm*$6h{>TG!-RAD_Jo((>Et;ZkxSmq|j*d~BA8K`0-kWcOU)Ur*Jyank)1@L~ zLl$F^XpShkHOCd9Eu^`vnqzgpwupvrl;RCNLD ztG-MwS)D5zydS}f&-68lvvhQsN};2__%*LqwCvjG2diB^6rS@OFZC#9Yw9mDwI?gE zxO|_D_pY0Nahg|*7KqMN+p7(Pu+&9|(U(4(X7ItRk{;^c4Vw0}d;J1+*Sku%nH{TF z308%8>Kug8iw}yiNCr$mTJmFcIe41pp;=EzQ=g^UZF`yJE_-V_5QYVo@0b`5OeiGU zoIbfDAvue7ULI8zMxBx)V2a`iVQF|vW(#M73y9UjATG~_4)SO?z^{aH5&`#uKE=yl4LuNv$3HVqqlP2n9OwisG>&ieV; zSy?vM09iqzo}*+|m8+qn7Q`O9~Z=ej{e&Uhg!uHF_}FAH7oL6zFRRXs`*e#syf zO>QhnmQ(bSGjp}r=`wS6j7LdVLv$=B7HSvhm%b&^UX{26l@*&Vn-3!et%89&Z39(1HZ^V z`$Y`82672>G|2RiShC@q*%du#D^-?$gJ7` zaZ_F43#ste>ZD?N@NXhx=OHung1*5d_JN&(Wy_4JzTt;u>3KaBXt=ZL3hkawgB4Nm z!{XWIki4~VZB2HFwUU(-3y_Yg=&TwBwp!W60+zdXB&fbT7`>=whVR7lt1#e`9E&!r z3Trq^HO0X9P<^Dl*vGRgax6MtOjRsj7uVqms+Oxyh$g8I zfUD^U%U55L3cn)as=e7mljYhY*ImR*?}|^$NxEP6&3j`s>hp$H>J@`2oQ1?Ujkr02 z)&UcyZZr;n)xvd=Xq-g#)+AG36}#4Y&EDedMLYPyL=WX*Dm9U<<%Pz~9Sj%|eHIE10 ztS?Zl`U9h%rXJ&B%SPfH{97(oZ}^FkC(oqAvTFRfsoY5Be9IivwcEFbaz&!SX>HkW=1eNvx<> zEG5pvPvO)YJFY#uUxkWn)4^G}=34MqJw?zHX8v$yn*G6e+=s{akbZsQxT8FhUOaeT z1&lm4W>ZxV2_-%JnRt^{k^1R)&c&AJ(0&ySIO_l9*U-LNHOv8u4UZi zmH7R;2iyE)oBa8E^S38siJvhCF~Dq6RYQCNs|t~k+-%_fVP_iWX%r*$8(*CL}T!pbzj zc-3FR?jk965-w0%t|HEJ1E6G+!JitW{_L!Z`(yw0jhK$%+1V_Wsl8T_LaG!UrluJN_9m#mKy8H9Zp5bQ>)|uHW(#cM{_CI zaQ>{ykE#|`-tf}J`LK3)ySxAfgAL_dTdQhttd|$v&X31ILjqz~d3N)m%!T(PISiz_ zb&O~10mPkU;Dtm%;Yj&ye58v0>I~TYo+e){ISJNl3md76gBe($?!e#Hd2v-LFX1kp zu1PY^2OFtaQioD4c(vpB?lN2}k3nC_JnY~a;bv?TeN>U(#OGw&m8+FuJ7jsPU8%nS zza#>!PX_PQGcCmn;+}9+tZ@FS&SX&{n*|+-W8o{zC|9JhhauH8>6tebcP1VHN1r7A@)J zuUI&hBt0KR?oK3xjjrmNFCrx}k>)$O?*84sNJe;`XS!#+(PQ)CAL=BmCm%Y2HL!o> z18`>iYPkgrSUEx#Uv~fGyi@?P&GN?0J?AHArT_S5c0IpU6&Fm+p6SFF^~>+tOPb4m z@boyqyl-{Tp32_SfyEXqGXJpZb1)Gx+U~n&B#BL8qMA<3zBRj3w1u55)>N5LwEx-Q z5lF3Lu-Et_%rYEgmX5kmNa2Hdr-~eN0@zQrKNwT-r?{90WmmF_G!*j&vB#H)tHf}$ zKqdzNDLU4}(K9Y|>3hnB7+G~*)sbX4zCQdxn`2%uTKGgB2y5G%fvOvzx@y0QaK)-U zk3}rHAye6 zum2Wub;re5s%O=e$%@;1vI7s+4<%dNeU?#Fk7Wm|1}r+!IU_z_l>#h_$bfx-%*sN> z4a-N`Q~Zk+g=O^I$+|Z01J1ylg~a&{)>3`ks(iM$O(HitLq8v!P5NZ5S=e&(dMfO0 zJr(%A{T|h76=P1DJp}LaVsgdhBOsb*N9uH%WHIF+Rg0-s))5gFa1MTsggJkRJ-?`W z`t(Q<6sz~uOdt7@szK;{Rlu;$opU$lPO*R@dG?X)S_6z1d7*D4M}3E!FqQ)oa>M*a z1&gc$4wb)mKXftg?g=V5Y4}5AxN587>PQQ_r*7Q7VHd=K_#R%943h-06Q0U6fWI32 z^xOHj2{5r!{9BT2)njCfW^ns*a39P{Rr{;{@{#ceETQPG9Ej>XlBdQ@^&PEI-R)`K zKOXG~5RqsDB9gV{ zsbx8E6LH#ghqya3`T2N=r>5KbKhAnQH9P(B>~1?IGE=WD11JYasyl{w{nELshsG0_ zeT{{Msxez+SY(E!*v)%Ye5k$4Gpe`eLmrrQ!rym>o}C*L)pOdLL|oSm?U8v3Ww|$g zdigdLvGz+;=d3IPKT>sttH<=|p62WO?k)Ad)$MetNvCZ5rG7Iwvrvt;}jy@Y$h zJ1lwJ24=fFdrwqhyRb4aWUFc#f+~)%81}(zR7Zlps?(=$X10oFWzKP@&KOE@1!eDg zc2kj;*&(i`x*qF#)f~5K7XBHowEFx8lmk;`9cd4l2n(rN7Awj*sXnB(|-*~%f99*}(ODiF4Hig9S6s9t&JrMQUKXn)J_%TTQuo;f} z(9LTVRl_W7Yz#-yS9yHAU%f*jU#y}(aFOWIoQI|!dQOfRP|%+J=f>|k^gvd|GQSx-+hmU6;UL3FTo57`?I*+}B-Q-9}lKIt`LP$n@()?(;gRL@) z`?k@A$HrznIM;~%W*=zBk2gyy-YqAL{l}Y`TI+MHW;6Hnkz%D{%CKbk(O9wiE#YAJ z0xqozgtmS(vKE)@Idp0}s$OGRVh~kJeYJ5A@Pys6RuEfNH0l$~zmnDa_2`U<7KW(r z$Fp^N+6rXgJ7h~8JxgGfUGN z4-8xPC%ZqI|Nm%K3=UFBfFmUh@z>#3RwhZ4S%IFfoKK1qvSMry{jEX^N{WTUaI?Vg zkInq;-oM}bH?sn-%#I$MGw9Q}Wp+oWrS*-w6F-u89>#xgELL|t&(Ne5T-vIB;w2$V zT&EZ?K3V5SGpeD=W|~3p)k)z}nlmtByVHxgn+v z+vj*zR;Ri>{I=Mp%sgvgwQw;oLp&Q!k;l_FS+%&DyK3I#O6mu!ui}c)inm6u{(A5K z+WX)3{^z~_b?;y9{p(rH7eJFZ^2>erpU2#xoIhN=aP zpR)4%5l~E1Gt=0RP_q0pzKYz)%)C8X{o%BS0_ni7V>{h;*{~%-dA$O0FB|ma?;%f5H zk}gpRPfJhv8djzHHaim5ty>q0tEVx31_Hog_kEv+(zihUs#nyBJ9rlH@>QCbP*b!u@jFkg1iaFI1P7`NDE} z>F@cu$|fE7jY>!|mfa#jFkf>F#lhu-t(EoRh3daiE#@lS8B~IQuu7|=r`ilUt77o+ zVLpGdd8PZuuCh5;b{3j7sB2o4p?ZhKDydAveOD)-$ELaA{$-xIx;JYA(a2fhBCBDO z{o=*SjGDSgbF1B3NJ)&jI>@S-bPs3dvqxt|Jr%-)oByY&yZyPmy2>~{r6}}?QV|(^ z8p;6Ev4FI;#P~-4W?yJbOti1G6-&{SP@*%or5(pMg_cAj4UE_4eA&6%I}kc^?sI-; z@4eQ#*0rv+_S5?)dlQH3i7A7@ZYm_!x1yL=%E+mT2xL&&SRPR_;Ss)D<Uf1-s6OJdp71~Sbm z&3HpI&CC{4&4jX9I}1^J!ghK!Ov7tn(yFZ1$!`bxah77jd{dkwtBob1K(4mt-Z=WA zCPC58L)PWjp=+E@y&tMha$X7t6{1)6&sX;Qn49pAKq1MsT-oalt;h- zLpi>O)245v8+4t5oBMyzK}wp`w<6nlwf>B_a@jDekek_Od00v*dx;g|Ys3~S2m|9< zMIZRmAty2mG*v0oejJZFpf(QpR zM^47#-TDr(9ncEjR-V%iq zRl&qHOFixeerPUD)4!Y}`un=C;EB44cs|iyB~b>QQc`_iWPy7jc3pQTu0l$bFm5`G z#bB-S{q~O%Kn9VvEL~knveb?$hd6e;f1SA3FE-rN6ev*E7}s>AKcmh|TM6IA7u2g8 zMuZu#QBcR3icbM?PKes6)6lx|jdoj9lKog0d0Q1JT5VnndQDIMsr`1fro;H+$*y$e zCg7OtYHmZi*)(N7fxfzV?J2}zYB-Df=6Lw>`ufvScXR@v{pJ)wembO6g7Uq5jwpv8 zGz;*~vOoU9T|rn*wPN@M7PDfaoBWz;ur6`lj>qx0>K<|*I5|6&QOG^nOd5RNLVYFv zpVf=pVH7nbk;Lw?9o#VsO(_UPsj8@Bd1koU>gw@SEuxd5rDnIWW+_Tdk*zyR6+lGf z3GoT$jaCE1rRiDz@?MKS@yZm)zMTn-xZ3 zvKlLOrs-i`oS4`m`X;Z!p@k<|6fSjtG+zQG+mUuF4oN1V*I7->%&TT|iPfr_YLR** z_}x?c7a?P*o0-X%Lo4!f9YcPcvihU>QYZ3wVoZL>=h!}$32Ug{T%EeRINw^tJNSaN zIn`d{jQSrOibZDKtkP$APyh28c4{B-dnpYZ zePEqg!4vxg%9!fwI{amZvFou)P#iV4InSn9r0;^{eWRvz@D9z8Y>I6imv$XD6>C7v zLWKcY*4qf1#6q`+R@!Ot^f94$Z;04;ef`2Nrn>g$Vg<~CZ)aidX`!-uW3PMrf^w}) zoPyKhcdB$Wf6#d<#JFgfkAj9KlOUzOjQm_Rd%35V&99_65Q$em5-BCX@N+9oSD z&0c(`Zv3CU5C2%VHLje+hp4;Dlb7Ln<#F9s@Gr}T^qBv6&jY#eo@QsC`wh&6z-gxa zfsD#x>wxYPVD;FfA|IqGqt%fZtC;@3+PpK)FY&~1NSTP6P@C}Qg!@kVm1H&UxYH9v zNrNq-ZEOOES{!y-kAvPt(b3)AR{zXn6&cuy_?IHNsYtpn;op#6op%rx571r5>dGvQ zk4T4#k)yQz{QiWpM&3*n>|QCJtUkT`w=5d-rVa>kbSD9ojM=hKvAuwvu-b4{l`bn; z#K(-tGoXG^$+V~6y3_$uox4*7*Zqa_B=F z>JBjs>&@dit=Kh@L7&VEvllh^kM>SwG45`7Xn&@{j0aYA$MUK9{=qQOpDr$#o5m+V zZ`}-IhxL%u(G$NYBJzwp7)}uTpL+NHp5|~ls7yBFeoRcVNUzHJ+~pg*yzlGkk zzr7AuY;KwgD84ggusiOHDwK{*pu z*%@|{B9Tq1VdH81DevN`uo&HF4z<8NcKj$Ppmx>5*k>qKZvCmt9*S?hwyYe_bYril z&!o_*6GRnDe=)2{Ga!<&PCJAT@D0Rt@5J{(l5l06!*N$MA9}uI#Xg(b2uEc6U*I{IT*$_qS1X}zwzi!XMGH+FA#7M09(!G@(b7v=pIt^ zH`TwZO8YMAe;5n7uUrk9@D41VwiNsO z_5HYoi=T`Cly6e2)fFk{JG0T`M_3zC0cUPDMtVqgM6aRm2TS4(@+L~i?92^P`l#(*Wjgn18XLNwyJpUvi#R~7s0ot zj(Kh0{pVY;FKo5t8Tl>@m78x(mUE|2{U*wo`~)P&zsbaKZV;xN^`=i0Kxh7=XO61Pg5r}Z*OACpDcc=17cXs2g2lt z^!%b&i;at|>y`}J$?t5Z@kuZYjYK}P?hPKoYGQhy++N$ybmepx^b}9;*VMlQSFMoY@%?r|H*YydT>q=rL_D0l89nQ<9Q-IZRdAJld2V;uW)TSyl zvddoSOz~e36NN6Hco-)vJO!a?a@crS7bhQXhPS;(x*F_5$jf`n;#APPAKPa`6wVsn z8RKH5}VcYF3(HPog?SpQOj-p=(Vpkqy7IZzLy> zwWc}d&-Cz!W~x1AZoc*jR#f*fzYTg%sVGO4jX@6>s_LY&W+)dg&VJ>fW%V&oaw<9# zI^BFvr`7)P0iNM#kkc`BGSxH=`fb*tdE&Uv&_s8oxY>c;RG#XIQldgXsRY=WoR)Wh zRVXN`ah{bDDJk%%65PF{F04Lu{eok37##nDZK~H6>nML=txZ9zN+a{E=L}DX^-fi! zj)zmW?ryPw*Z6P|#(SxX^8)xnYF#xQ{zyD>T79asYbUHxoIo9hs*U_HjBTHq1X$-p zH`GIHkRc|^ZhFEPt9ryR#ZIGKzF7uEPb-wVLljZ1O~GxpzM8kJ7-Bn}jc!Z*(Y)ui zi}j0+=?k21Jz8=|(ZrrNheYj|ZQ#LFdflldI}z#N#e4hjx5m-vgKK&e@5LIs-{aiA z1T#W4S99_YbBA}tvxxU}oR|#Ay!vQ=1HY?ibz>&xhE-Neus@%^%waYq!u(DrMAcaQ zP`_z9*vG4o^U;4ayMsULVKGUPPqcEl6MJfA8deRj{M;vJLSF>_8^WuPjqkxU;K=Pe zwNtg5bifcOq=Jo&8GtX};M*~D@&x<cd+hnKR`| zJ@nWu=oj*3C;R2i@YX}u{1F}(-$LPQMdYF~ei{Q75ufdLrR#e}EH_-vYeV(#&%gft z{40cuqZh69(A?c?uvIZ+PKv46ct>kV-B>1J7tXv~Srm>WWl>zYy@T&lg@nj338_>> zRJHl;5Rp&ti1s*DUOBbg6k_2~up&HyY*SqS^85hBlAKBu;S-!PEUgHoB9#6%E)@6Y z{Lp^DZFWRF)k9$4RX>{mgb9#!`xIIVe4e@?+Y_r(jmtS`0ql66^VH6I(>tEoYCN*1 zfDUNz@9e#uhc7Pbyu5#?!?7#8y=pFfkqRv=@%~nsO8CR&cW|g@bR(CihHmAydTemU zdLq?_{`Udy<@fg9f3dUi!fxVwZs$(zTW6m96stmo=#0qG9@!H>;V;id+3D?l*LuvI z6n5m()b4m!o|JXqg&DmfZ4f3w9)a_Ebf0Lt3vPJr%oro=3?uXS47$9LN%>M`U--DDAxYMb17P|L|7L{aPmJ|Nh<=N`wk!uj*Us z1fm?ThJT=QF$c0bx5-v<3!((14za-6xJUZgcuy-?y&C@~j}+s1A1q9qky%PkCJlxk zRbng{l$(yc`DnW7el?rMaftjFNdA?7;`QvPZmK&MG($na7I2L0K@5kWyY;TF1AYFg zRoC|(@Qf$I$nm41DK8D3QhPbsA~y|;m8MGdnvaHS*jb$l>JT69x5QXA5O;mS@@$@F zQ{;ns`R3RpY?t-RH{hZCK#=TL9%98{7uo@R7A8BxYt{lMNe7^gAbzngDzzVcg4Vx# zsZhBQ)94GCs`+;B% zc&ZGKPo;*=uZVo7gMnvJeT72OFUAOaR_Bsl1n$u788%iOym!g=Ay0lre{tGPsIY#7 zCX(WvR6=EiFd08^>vFQcxu|?|He_v_o~P&6UtLT$73|slfBcx5@X;5aNr*lNuPm?e z-10&QB|X206boABd1pIk_2ePpSTROEQeTa^^Ysnzpzwok0%+27efS+x!<59@s7F9H z-QFFi?%c$bsB+Th@fJ=rtPGFVv0Ft%RAxuNSrNh?uo2aI-azG6JndEtN)tU(*qqcT zJQp3BY)>SYJK>eetncqMy>&TL>I~u{KW>*<;^}*YvDhseqG4#_-dj6|A8ZA%gnqlcxERzRTm|- zlP~9~OPVG?{+0HUt=IJ{x1_L$35Q5{XTL)eMWJII%X6w^iQvv#+E(gyuM#I7Bn+J>=A?N9QO%k8^rSBI8u;f!)faHgl2O=q`a9E z;55N;vgEIBwM4={-ud$Vad7&ZW24|sp1es%so9`jnTF4$U4!BH5_xZY-jx=c9a-ZO zzeNhGFITCGZ-(k;w#K*j6t7DX6I9;N|dq84yfvHlC{kk zgqxP3K0d68hnQ}tsvZf-3f0DRV@`~&8hMNO$DcLVEF9_i)rg&&@ZsTOWvu5%EuTUF z9xRW)yY(=O48o=l#<@Bfb_pL6GBGb*we-C`&6j2YuMBs+v~Q{6?=<^?3{nzb+dI)u zcDoj?sH!M#62Bs|HACVTv+>{EyWyPFz+#o{3RRR?2z`2X$Q(PVZo%vMrZBYk7SUB& z*wJUV_P1vbV&v`ZBgVpSrCZ>CpgL$3?x5so3L-C8kB@pu8av$rhcP(yWpN!s=7+rt zT_I0nQVB&;7FNf&)9-nC1O86#S_L*uXeSTr&IjUY%-ekP!so$LW=>Js;$!J8d{6v< zTtm)+n>_c^iBwzK*)|4-&H%>;$x`I8_*NiAh^!!uuewEgpl*(k%c+9a0YkaK;$^Kg zfvG@b#1K)cw2v?A4iVzc?Jy6DSBmrh{GP$QhnrhzaiuvR`ZL9>`Zh%=sHoNA_r06w zqaQ1jLK{M7b$=@v3{=?*K~S`!4%6M&a+(K{=c|y z@Y2qL(_oemofzX!AX=HsWWiUI0oF6 zJ~!)u4WoI+t>EeNtq>ne!0|LSSbilhFc(gbkY~)wr~zdBrixl~Xj8TyZcjCoDu9xR zpNRXFy~nt)Mfl75*K4L9uqfkO%1*LV9L`S9%O|0R51$X;w_43 zSUf%#wu7IVdM9eul@ZU9hSmHWsQfECjn7|VkE$&TEc5KX!ZQQOdE!~2C#&q|>O_j~ z{C-dI?yOhm3`FltTXp_D4)Irer=p6yi7Epwl?P$Tst!7n{G{p~W{%zdY^U?wTdXTa z?17*20J_ZUji`nUyRj721hpNOl9r+hmnXuY)gg?VGL=AXQVf+-VB_>OiXC>rT-L1k z8$+C5TSVZ6#A=Akw9hjuo2Q7U6o+5{r@!8kaJ*=(iX{K_DY($Quw0CO+X==!9?c)S zllRLNyQQF57n+qnS__@C>Al&Zrx%I6K2NJQR7XKvy9%bPG@g;V2(A&k#ZZ(v!vVSl(#594WT1Oeokq@CPXECkaNH{sF|v z>AZ;Jo&&?AHiTh1dT%Tv-GGWo%ptA}i;Q7?a}|m2OsV_tvuYUr^-bIP=l%2Akd5vj zJ-{lZ{jdVrvt75(G21E)q7_6V8l+ar&p@W4n_m2?s3s*;EoS+?BM-@|iXC-gr%JvRfT42-cP5rpF->^$E zKv672i2JJ3+^51j_(7j|RLj^9C|!2zX5F+II5)A#6jK@|$losdJV zEG3UA0#Fe{A#xb?*Lt>eOs80dM)|+0AlL_pi+6R};TiXVSP>kxdK26xKm7TgPu`rm zSM+DWy>mR1=f`OCO5FtvKd6~DkI|GEXT4a9J?5#^bYToWGbLd++RCo-FzUJS)ZOFg zb!u~vh4WS|TBRm@TYr{s$ddR!%4_?OhWyqABbn)|b6tJD?jtHnTyFQv=bdG1vK3E# zZlaolgp>0vMyIT*EX<}ZT zk79(XiCwYMP$A2}Hm7}d8k|8fGPV#}`Az+YXNlj~FK^|FA8=(HfqINA>xX-q`aWpQ z@?X?LR4r^r{$UCap3uLCHK$i3CFGkXgsvH@0ZVnVSdwz|I4RuD5Sap2a1$i{Ps>86!^;i z{fAq@RQ3P4s>#33kNoV%mF}3o+8(=a0NjO^KhPH}Q05Vgr0uC-v#BXL+JR z(@RamNWWD_hx{RS!)b+voE~wcu3Ql;eFhHSbNKf5mtCd134y~R>K4t!(BUF;H(Lj~ zRGHGHM4yp@t!zRJv^M-iJdnxBbwO9Du5wS4uBwhja8lf$NMme%geoWGOVP&TLhtpd zvL;-E+$p>RucQ7R9}voYM(_QL%x##$x>HbgRco?)i&-ramaMC0SM(8jk9m z2Nig`B2H7IQnkYm>c3P5o{ZKflvw{YZxaVn_0sE|WR-{%-Z5#=LwO06R!q389H#VY z2u0lGx6};7Ir1<*$1}ycblcVwdpghc(0a_?8M^ST+?FekY|ZdfP>1?07R8;P-`*sr ze_TD|Cp!nKLWi{$U&KGEkrZ*M(!AULVta#I5gloi)n1&ScpzM!I#{TfVl)&XLL7EC zWas-s*w5@oeHZGp7T$+%lnIHuS9jcqOwNJI2^|{D0-3Au@*QQL^`Jqrv=FdTYEmdp ztyyM*MRxjmY8kKmfb~Eo^|||Ip1@O5N8*y9JK1FC>-3hTm~!GzH58U}TH8DJ1)X|& zk(I5>gxFr)qjk&5ZnGQTJNC*Rhe1N})hnS0npfGo=L+v{;rBn@2L5wC!p*#4x7Ve- zVindLOCzqrp8OyCRV~(giUleLV_H=`U`(nVYLV*3a)Ebta`6qU?!&Dd9nTy4_q}~O n8+3~FS&4AwT0OkqzcnuG)kP4U>^JwBRyCe0