>bRZ慰'r9B#̙Qu@~~W189@O#Ms=vlCF9 CTcE+֠{'w%*һP"1`U5RJ? asPS;Ѳx{6Q7)Gq&FE|-Y7;L<-&cH~/pG|=]@H}]2lk8DX90*@x2*V 4Vc3 bށEIa}ٟdA <&p_Ư3?窜vPh wX]x2QZOyp/ A M/aa2+P/fRk?cgh/_=AƜx>I¨0].Y?/!#v.g1>*,ǎޱ:UG r]t9vaPcT1h6"4Eّ+;6rٹ{syT>u*٘o/bAK8`G+nL(W6dzIWg5y` o\M'7)\X m/zoLtt2Ӹ\j97y (fծ;ϺX# vT6\Ccgaf\{ -h[9` oH,yv ݲ<:ElZ"tm㏙VLL*XF/`熥*Nv*a&UIjDmL***z"/iڅ0jV'cI}u01(܏[1W[΢V$~`}F2,"{ƿVZ0puL0k#WZ7H ҝNQaN`b!*"xM2,p*X9fmwͻ.luuh# a@S}ؒ O#Ħ>BrBNDH(׵k8nAÉAt[pM2dުD縷{C!ީC;vxrWܲT*\xzc9Nž>xS p6%F]3wV:{ר?F;Xu{)z%kmPlgx88gUZGs8~Մ7m+̺~U}ԚxO ;4 ۖQPI#tLH?ٖÞJ(mAtm׋AXҥω흻~HT]F}sphr%E.Jூ٦U)>@EʒFwË_wdOC jRrL{A*vr?+ȴU0Ze -,"W83v[)5ߢ[@*hǕ 4]6:d 7L? 3._LhB.#3km=vúr ?~cJ+~&LFfPD|V9c_$wW,N}tj/٪P_Yj V; 0q*OR᪲JYNUe_DteynK&#\gY% E,- PiLP|d}(KT~m!YJ$g-˖!:N\ֳ Ԧ8jQR8g!Q)Rw)fu̡+#o(~﮹/Q:5\k{gwбD3?0:Jk~\GUis%y, s2zpyImu発ڎ|r WU}y/ƠDIʘ<t0ArJLeLnل6TӺ_7®"9miڤCM|PNho5@\S`uc]Ϛi2jA+N]랋"qFsқon |D}Br?>f(ҫc֟0K{eZ`B.Ik tw0-Hò>ޯ%gM8D\W[ a~KRovK!ˋD8սi_YGBz%CFxY @./ۮ]l@ uKCL⮎ 4B~&1pw/1+4 -'fJ"3df{9$ZrąOP\NDž>#?89Uͣ!ߕsz6u ,'c悚I>8I#e>"e4*R | y߀EmN{(# ˖ \GeCc^c} Bh;#%VdyJоm8)pPA k'XXE WG0Ckϧw"}p˭TP,xzL]C$bw !L=>KHhoD@*MZ6B=WjXTca{ jqJ}KUWiƔ 9 E ԧ-\c̤ 1+D pm;FyA]pI1k$ 8*̅k`>Tp|8`e<3 w;bw|Lqxzmhxj~x_ᣩZod!Fz=)wt^uQm7IvPAh,dO$}="(p5KwnHX_P\9|EE!5K;P(dX2-H={WWTř^k $ ߢ2ERWۢ~Wv ?. |'|tlJui<].)ݫٷ=J^XfyN+{w@P?d}oM1H5]mGZҝ|Tq-QϞX][=tix˷N F_5]6"KJuFwl`Ԭ7o>[;;V$W8ZX o<㍯og !6P 6߅Qeg28`0\)_R41h1= ~q7k{y)L`pJ{=7l|cg4Cr?>%}}i&`O E'X "93Z9$Wk -̏tULK>t8gmNIy 0,K:fN ~FWu=坻drZ5P>q!נwviZ PWRx{.; jЮRw .XS+G}JR7lُ r0]( (KO lFׄ)7AKH关tKŰ}z3me9#^3ԋEnT?3*[~[BA.urnSB4ۍ̂!v gUg:6Ø6]|9zKխոI"n?D1E2;$)&`Y< ބHԵ_+wa*SXmYyT8amq:<WJۺzH`ŲŇ ]YM& %?WcCcFY@t#J'vX$~"ayׅ5]mGZҝY1Yh̞2 ATaH:bp1{nM袜Ømfg3m8ns\8h`i)Ze$1eVOOy;8 XfN e k/Qq } public function eof(): bool { return $this->stream->eof() && $this->remoteStream->eof(); } /** * Close both the remote stream and buffer stream */ public function close(): void { $this->remoteStream->close(); $this->stream->close(); } private function cacheEntireStream(): int { $target = new FnStream(['write' => 'strlen']); Utils::copyToStream($this, $target); return $this->tell(); } }