From 6f3d2a73461067c557bdf42349b469ad92c0bc20 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Mon, 16 Apr 2018 22:03:10 +0200 Subject: [PATCH 1/5] http2: fix responses to long payload reqs When a request with a long payload is received, http2 does not allow a response that does not process all the incoming payload. Add a conditional Http2Stream.close call that runs only if the user hasn't attempted to read the stream. --- lib/internal/http2/core.js | 176 ++++++++++-------- src/node_http2.cc | 68 +++++-- src/node_http2.h | 10 +- test/fixtures/person-large.jpg | Bin 0 -> 139837 bytes ...t-http2-client-rststream-before-connect.js | 12 +- .../test-http2-client-upload-reject.js | 48 +++++ test/parallel/test-http2-client-upload.js | 2 +- test/parallel/test-http2-large-write-close.js | 44 +++++ test/parallel/test-http2-perf_hooks.js | 2 +- 9 files changed, 259 insertions(+), 103 deletions(-) create mode 100644 test/fixtures/person-large.jpg create mode 100644 test/parallel/test-http2-client-upload-reject.js create mode 100644 test/parallel/test-http2-large-write-close.js diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 495fa60ba39ce3..1a1fd0dd1754f2 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -206,6 +206,7 @@ const STREAM_FLAGS_CLOSED = 0x2; const STREAM_FLAGS_HEADERS_SENT = 0x4; const STREAM_FLAGS_HEAD_REQUEST = 0x8; const STREAM_FLAGS_ABORTED = 0x10; +const STREAM_FLAGS_HAS_TRAILERS = 0x20; const SESSION_FLAGS_PENDING = 0x0; const SESSION_FLAGS_READY = 0x1; @@ -330,26 +331,13 @@ function onStreamClose(code) { if (stream.destroyed) return; - const state = stream[kState]; - debug(`Http2Stream ${stream[kID]} [Http2Session ` + `${sessionName(stream[kSession][kType])}]: closed with code ${code}`); - if (!stream.closed) { - // Clear timeout and remove timeout listeners - stream.setTimeout(0); - stream.removeAllListeners('timeout'); + if (!stream.closed) + closeStream(stream, code); - // Set the state flags - state.flags |= STREAM_FLAGS_CLOSED; - state.rstCode = code; - - // Close the writable side of the stream - abort(stream); - stream.end(); - } - - state.fd = -1; + stream[kState].fd = -1; // Defer destroy we actually emit end. if (stream._readableState.endEmitted || code !== NGHTTP2_NO_ERROR) { // If errored or ended, we can destroy immediately. @@ -1412,6 +1400,9 @@ class ClientHttp2Session extends Http2Session { if (options.endStream) stream.end(); + if (options.waitForTrailers) + stream[kState].flags |= STREAM_FLAGS_HAS_TRAILERS; + const onConnect = requestOnConnect.bind(stream, headersList, options); if (this.connecting) { this.on('connect', onConnect); @@ -1445,8 +1436,11 @@ function afterDoStreamWrite(status, handle) { } function streamOnResume() { - if (!this.destroyed && !this.pending) + if (!this.destroyed && !this.pending) { + if (!this[kState].didRead) + this[kState].didRead = true; this[kHandle].readStart(); + } } function streamOnPause() { @@ -1454,16 +1448,6 @@ function streamOnPause() { this[kHandle].readStop(); } -// If the writable side of the Http2Stream is still open, emit the -// 'aborted' event and set the aborted flag. -function abort(stream) { - if (!stream.aborted && - !(stream._writableState.ended || stream._writableState.ending)) { - stream[kState].flags |= STREAM_FLAGS_ABORTED; - stream.emit('aborted'); - } -} - function afterShutdown() { this.callback(); const stream = this.handle[kOwner]; @@ -1471,6 +1455,50 @@ function afterShutdown() { stream[kMaybeDestroy](); } +function closeStream(stream, code, cb) { + const state = stream[kState]; + state.flags |= STREAM_FLAGS_CLOSED; + state.rstCode = code; + + // Clear timeout and remove timeout listeners + stream.setTimeout(0); + stream.removeAllListeners('timeout'); + + const { ending, finished } = stream._writableState; + + if (!ending) { + // If the writable side of the Http2Stream is still open, emit the + // 'aborted' event and set the aborted flag. + if (!stream.aborted) { + state.flags |= STREAM_FLAGS_ABORTED; + stream.emit('aborted'); + } + + // Close writable side. + stream.end(); + } + + if (cb !== undefined) { + if (ending && !finished) + stream.on('finish', cb); + else + cb(); + } +} + +function finishCloseStream(code) { + const rstStreamFn = submitRstStream.bind(this, code); + // If the handle has not yet been assigned, queue up the request to + // ensure that the RST_STREAM frame is sent after the stream ID has + // been determined. + if (this.pending) { + this.push(null); + this.once('ready', rstStreamFn); + return; + } + rstStreamFn(); +} + // An Http2Stream is a Duplex stream that is backed by a // node::http2::Http2Stream handle implementing StreamBase. class Http2Stream extends Duplex { @@ -1490,6 +1518,7 @@ class Http2Stream extends Duplex { this[kTimeout] = null; this[kState] = { + didRead: false, flags: STREAM_FLAGS_PENDING, rstCode: NGHTTP2_NO_ERROR, writeQueueSize: 0, @@ -1756,6 +1785,8 @@ class Http2Stream extends Duplex { throw headersList; this[kSentTrailers] = headers; + this[kState].flags &= ~STREAM_FLAGS_HAS_TRAILERS; + const ret = this[kHandle].trailers(headersList); if (ret < 0) this.destroy(new NghttpError(ret)); @@ -1786,38 +1817,13 @@ class Http2Stream extends Duplex { if (callback !== undefined && typeof callback !== 'function') throw new ERR_INVALID_CALLBACK(); - // Clear timeout and remove timeout listeners - this.setTimeout(0); - this.removeAllListeners('timeout'); - - // Close the writable - abort(this); - this.end(); - if (this.closed) return; - const state = this[kState]; - state.flags |= STREAM_FLAGS_CLOSED; - state.rstCode = code; - - if (callback !== undefined) { + if (callback !== undefined) this.once('close', callback); - } - - if (this[kHandle] === undefined) - return; - const rstStreamFn = submitRstStream.bind(this, code); - // If the handle has not yet been assigned, queue up the request to - // ensure that the RST_STREAM frame is sent after the stream ID has - // been determined. - if (this.pending) { - this.push(null); - this.once('ready', rstStreamFn); - return; - } - rstStreamFn(); + closeStream(this, code, finishCloseStream.bind(this, code)); } // Called by this.destroy(). @@ -1832,26 +1838,19 @@ class Http2Stream extends Duplex { debug(`Http2Stream ${this[kID] || ''} [Http2Session ` + `${sessionName(session[kType])}]: destroying stream`); const state = this[kState]; - const code = state.rstCode = - err != null ? - NGHTTP2_INTERNAL_ERROR : - state.rstCode || NGHTTP2_NO_ERROR; + const code = err != null ? + NGHTTP2_INTERNAL_ERROR : (state.rstCode || NGHTTP2_NO_ERROR); + + if (!this.closed) { + closeStream(this, code); + finishCloseStream.call(this, code); + } + this.push(null); + if (handle !== undefined) { - // If the handle exists, we need to close, then destroy the handle - this.close(code); - if (!this._readableState.ended && !this._readableState.ending) - this.push(null); handle.destroy(); session[kState].streams.delete(id); } else { - // Clear timeout and remove timeout listeners - this.setTimeout(0); - this.removeAllListeners('timeout'); - - state.flags |= STREAM_FLAGS_CLOSED; - abort(this); - this.end(); - this.push(null); session[kState].pendingStreams.delete(this); } @@ -1884,13 +1883,23 @@ class Http2Stream extends Duplex { } // TODO(mcollina): remove usage of _*State properties - if (this._readableState.ended && - this._writableState.ended && - this._writableState.pendingcb === 0 && - this.closed) { - this.destroy(); - // This should return, but eslint complains. - // return + if (this._writableState.ended && this._writableState.pendingcb === 0) { + if (this._readableState.ended && this.closed) { + this.destroy(); + return; + } + + // We've submitted a response from our server session, have not attempted + // to process any incoming data, and have no trailers. This means we can + // attempt to gracefully close the session. + const state = this[kState]; + if (this.headersSent && + this[kSession][kType] === NGHTTP2_SESSION_SERVER && + !(state.flags & STREAM_FLAGS_HAS_TRAILERS) && + !state.didRead && + !this._readableState.resumeScheduled) { + this.close(); + } } } } @@ -2095,7 +2104,6 @@ function afterOpen(session, options, headers, streamOptions, err, fd) { } if (this.destroyed || this.closed) { tryClose(fd); - abort(this); return; } state.fd = fd; @@ -2224,8 +2232,10 @@ class ServerHttp2Stream extends Http2Stream { if (options.endStream) streamOptions |= STREAM_OPTION_EMPTY_PAYLOAD; - if (options.waitForTrailers) + if (options.waitForTrailers) { streamOptions |= STREAM_OPTION_GET_TRAILERS; + state.flags |= STREAM_FLAGS_HAS_TRAILERS; + } headers = processHeaders(headers); const statusCode = headers[HTTP2_HEADER_STATUS] |= 0; @@ -2285,8 +2295,10 @@ class ServerHttp2Stream extends Http2Stream { } let streamOptions = 0; - if (options.waitForTrailers) + if (options.waitForTrailers) { streamOptions |= STREAM_OPTION_GET_TRAILERS; + this[kState].flags |= STREAM_FLAGS_HAS_TRAILERS; + } if (typeof fd !== 'number') throw new ERR_INVALID_ARG_TYPE('fd', 'number', fd); @@ -2346,8 +2358,10 @@ class ServerHttp2Stream extends Http2Stream { } let streamOptions = 0; - if (options.waitForTrailers) + if (options.waitForTrailers) { streamOptions |= STREAM_OPTION_GET_TRAILERS; + this[kState].flags |= STREAM_FLAGS_HAS_TRAILERS; + } const session = this[kSession]; debug(`Http2Stream ${this[kID]} [Http2Session ` + diff --git a/src/node_http2.cc b/src/node_http2.cc index 1c5c68f09471f3..4b1fc3582f227a 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -1364,16 +1364,34 @@ void Http2Session::MaybeScheduleWrite() { // storage for data and metadata that was associated with these writes. void Http2Session::ClearOutgoing(int status) { CHECK_NE(flags_ & SESSION_STATE_SENDING, 0); - flags_ &= ~SESSION_STATE_SENDING; - for (const nghttp2_stream_write& wr : outgoing_buffers_) { - WriteWrap* wrap = wr.req_wrap; - if (wrap != nullptr) - wrap->Done(status); + if (outgoing_buffers_.size() > 0) { + for (const nghttp2_stream_write& wr : outgoing_buffers_) { + WriteWrap* wrap = wr.req_wrap; + if (wrap != nullptr) + wrap->Done(status); + } + + outgoing_buffers_.clear(); + outgoing_storage_.clear(); } - outgoing_buffers_.clear(); - outgoing_storage_.clear(); + flags_ &= ~SESSION_STATE_SENDING; + + // Now that we've finished sending queued data, if there are any pending + // RstStreams we should try sending again and then flush them one by one. + if (pending_rst_streams_.size() > 0) { + std::vector current_pending_rst_streams; + pending_rst_streams_.swap(current_pending_rst_streams); + + SendPendingData(); + + for (int32_t stream_id : current_pending_rst_streams) { + Http2Stream* stream = FindStream(stream_id); + if (stream != nullptr) + stream->FlushRstStream(); + } + } } // Queue a given block of data for sending. This always creates a copy, @@ -1397,18 +1415,19 @@ void Http2Session::CopyDataIntoOutgoing(const uint8_t* src, size_t src_length) { // chunk out to the i/o socket to be sent. This is a particularly hot method // that will generally be called at least twice be event loop iteration. // This is a potential performance optimization target later. -void Http2Session::SendPendingData() { +// Returns non-zero value if a write is already in progress. +uint8_t Http2Session::SendPendingData() { DEBUG_HTTP2SESSION(this, "sending pending data"); // Do not attempt to send data on the socket if the destroying flag has // been set. That means everything is shutting down and the socket // will not be usable. if (IsDestroyed()) - return; + return 0; flags_ &= ~SESSION_STATE_WRITE_SCHEDULED; // SendPendingData should not be called recursively. if (flags_ & SESSION_STATE_SENDING) - return; + return 1; // This is cleared by ClearOutgoing(). flags_ |= SESSION_STATE_SENDING; @@ -1432,15 +1451,15 @@ void Http2Session::SendPendingData() { // does take care of things like closing the individual streams after // a socket has been torn down, so we still need to call it. ClearOutgoing(UV_ECANCELED); - return; + return 0; } // Part Two: Pass Data to the underlying stream size_t count = outgoing_buffers_.size(); if (count == 0) { - flags_ &= ~SESSION_STATE_SENDING; - return; + ClearOutgoing(0); + return 0; } MaybeStackBuffer bufs; bufs.AllocateSufficientStorage(count); @@ -1471,6 +1490,8 @@ void Http2Session::SendPendingData() { DEBUG_HTTP2SESSION2(this, "wants data in return? %d", nghttp2_session_want_read(session_)); + + return 0; } @@ -1830,12 +1851,25 @@ int Http2Stream::SubmitPriority(nghttp2_priority_spec* prispec, // peer. void Http2Stream::SubmitRstStream(const uint32_t code) { CHECK(!this->IsDestroyed()); + code_ = code; + // If possible, force a purge of any currently pending data here to make sure + // it is sent before closing the stream. If it returns non-zero then we need + // to wait until the current write finishes and try again to avoid nghttp2 + // behaviour where it prioritizes RstStream over everything else. + if (session_->SendPendingData() != 0) { + session_->AddPendingRstStream(id_); + return; + } + + FlushRstStream(); +} + +void Http2Stream::FlushRstStream() { + if (IsDestroyed()) + return; Http2Scope h2scope(this); - // Force a purge of any currently pending data here to make sure - // it is sent before closing the stream. - session_->SendPendingData(); CHECK_EQ(nghttp2_submit_rst_stream(**session_, NGHTTP2_FLAG_NONE, - id_, code), 0); + id_, code_), 0); } diff --git a/src/node_http2.h b/src/node_http2.h index 87c929cdea12f9..da404841450f27 100644 --- a/src/node_http2.h +++ b/src/node_http2.h @@ -591,6 +591,8 @@ class Http2Stream : public AsyncWrap, // Submits an RST_STREAM frame using the given code void SubmitRstStream(const uint32_t code); + void FlushRstStream(); + // Submits a PUSH_PROMISE frame with this stream as the parent. Http2Stream* SubmitPushPromise( nghttp2_nv* nva, @@ -797,7 +799,7 @@ class Http2Session : public AsyncWrap, public StreamListener { bool Ping(v8::Local function); - void SendPendingData(); + uint8_t SendPendingData(); // Submits a new request. If the request is a success, assigned // will be a pointer to the Http2Stream instance assigned. @@ -845,6 +847,11 @@ class Http2Session : public AsyncWrap, public StreamListener { size_t self_size() const override { return sizeof(*this); } + // Schedule an RstStream for after the current write finishes. + inline void AddPendingRstStream(int32_t stream_id) { + pending_rst_streams_.emplace_back(stream_id); + } + // Handle reads/writes from the underlying network transport. void OnStreamRead(ssize_t nread, const uv_buf_t& buf) override; void OnStreamAfterWrite(WriteWrap* w, int status) override; @@ -1049,6 +1056,7 @@ class Http2Session : public AsyncWrap, public StreamListener { std::vector outgoing_buffers_; std::vector outgoing_storage_; + std::vector pending_rst_streams_; void CopyDataIntoOutgoing(const uint8_t* src, size_t src_length); void ClearOutgoing(int status); diff --git a/test/fixtures/person-large.jpg b/test/fixtures/person-large.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d0d0af42375c3e696731294deea165f132a5797 GIT binary patch literal 139837 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

00jHv6S|N{HyjWGAVepgZhO<Q%=L+F4!0 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%0D{5QF)fKDd}br z>4_^RsvI2@+Pa#oj&^Yp0&6>+n{G)ba)xc(9%V;`R^?3BK_soBw60A1*||fa%b_TN z9nQ4M zwmUx;jHG*&4a3YWWaSE=BL)qi0TH~3GiZ@G?hdw|i>gO6v%AY9+GR52s*XpHs}iY$ zFba{(a&__5@1I6ovzX_PC6PMlC$ECZQr2?LnmX&QM!Ty%d67G0;b8XrcN5~ZcjH_s zdq2fxGbOh36{YHwBu2Ztw=7* znx=xD3|RyL205_^OD}$bR~lvJm0SobF_ZV$N2LK}-6V8HQDB@prvNi$MnU28CL?zv zMS@Y3z=_eiDbSFKOPu34vnK&2yR|#mV30EB(@j@U<2$pB1F_t+$PFi zCnIkd!WJD65O+>ng2T&?xe1R}t2<@}HXODR3oKP1aB^Y=Oaj+-cfN|9*2pPq|!mXz$g(^djCu;=8L?$9*5UY(= z!0wWk+8RigmBeCS85n`8&2l}OOih)Aef8$Hh}D$pIb&pYN-3)_>W*@F`>?08Y0)ls zPh%LJ7ekf?HdD@V0F_sr!q6agGp!YrWQ!vS^#o6&E9^G5pHWcr_*>&AtR}IovlQ&K zvn#E!1UkUHy38%pqGomxpi-=tz3LjK1Ow`#^@k|Bzfo05!<8no>NIw{1tJ;^602oe z87?HmDLA&gf`ebj+E`b(q>)L@v1QinoC-Il!G;qpv2=Kbm*O^=+Z<>p&qCKa)9a-b|Oki zlLZ>dc_0fcOt?`UO0XQgMk7_20&^^n+cA?8fHW6#HI9MQVa$j5Q`|opkCcBs+PmW{}@~tTC{wRMCNjx7G zKZqp)lxEK|2k@XdxBeBS{>8JZoi-z)vgL5-$0yl6Je6D| zcIvZhCsw@G4v3`4fucCg5sQ~drXZscbfXj_q6tYh4vFgIkiei0(uAN}YY@>Y3gZ)4 z1xrlCm98}QutUcIhgoB`jk9!OZWt+3t8_OM-4UtFu6xzngVFk%_0v=D!W!CSkt$@K zzUu2bCXQSRE1||j{{ZS}Z>m@nA{%K%3qF=x$KsGJ1gVr$UPx&y{wwxhq0w)-q3UYB zNi}zb>42;jWd}34a&imB%4aKz#I9~+%Eyo6`1wcGAXlSQ)l{E9W}e5?&0Wps@6Z(O z9L9S&1#G{waYO=0{{RG=xZW%u0-^Ns`FoW+hQr$EB*U*E}s6{AVh*d z%8oGF5ImmX$@9qNr3HpOs>Tl@pz=J8lX%p0P%?6*XF{2+$$1niq!PgsDQjTWFL@z? zO@$O0I6&Nqk(5i7BOfS+38{iYVT=k*3a$+mHtqq+bn2+_vLq$}IxEb1!pQtoc{Wy* z0X8fW$S@nusWaF#1*PDh%p?Vm$=0h#h#SDoGv87}Dq1`0wsOqZu&Pu#)F7IAI?rWGb7GM(9gvhLh`KiI@B zJJ{I7-U}|#h&Ez?yx+0@RFT!OL^1jx0M#x>Y0))Y{1X0U(9(*W?=7}2CvrsW+oB>& zbVOn#9ICTx`U;EPEJ^k1nzDOCBb2u26l{rYhVrr5Z{tk68&y?%p9qJWXsi;bZ?sGj z>HOTWWXxSu+iuqYuWSBi(^@O?Y+mbR@_zT&d+pY*+fg@4Ru=F~-4R|nB|SlMNmbm= zP>nK-S9PxPa#c@046h?`vi+l7RmT-bh>1QbhM1dj1dp24Q5}`U#Y(E=x5N+I8CG`# zqOQryl%6VVuJ;bYp=D!;gC$bu^d@0os>qo!RW_HAaIB^brL`vPQLxB)DA~bOivr|al#n$`jC68{^-<3yittI3Bk)L>NCxL5 z%Mz6?sUWgIKTK1zt4B;m#^|1n+A&RFAR#T9DG>r;)MC;uj96o!PC^GKXSP`ZE$Je^ zb5e}Q+vte_N79Zq6jAl{N;R@_5Cd$23F^%)>LJiXju9Nv6K1w5Q-YF0kQ;`H&>SY& zJp{zYrWpvI1t7o_%%ilRKsC;N5q%&(ICSNA2=!06T+koBdTsOwv+l{g0WzO zN67#&i^^tGd`Wf-amROF$~M^`?6K0K5{vk#a;niLjEg1*N3XdkwqgX0RnVfm+IK*X zj=1YzT*ZQCMWo?-rda3Nwt93@>QXd0H4J-B;NT_GbS3hJQ?aLq$y4qUHx*lzNX4~Sca!m+~ZyTpER6;L%5k(*ZOQ{_^R$(g^jOmKj4oi z4C4Vf6+es5uD~g~Ukz2(&?{8T7=0`@NNS>(O38XwyPV@;WIf7<#bs)rvvG}{3r@+I ztOp!vM^c@D@F{j>S0K?*y~%FTLvS@#%LrK-^-jltO zS}l1_dQk>6AK0_kXJllb)G9n9I|(GZa1FX9*eZ*N178#g)fniKdZaNyC?q;DEl>id z(KEHv#JEZDKnaYaT1=0+eJG__nM$rAxdKoGta)VPhpdpEmoLaR(;~qT$d1NQXJ=MG zhb7GBjW-l=e_*k2lXNP4@D;1t1ql|-18SmGyeC`%}jwbREiG~)vq`8k&p zw3QzpFOjc6O0%v|Z%}knAWK1_UFQRe@`%&q`9L(0O%6wsne|Ai7F-65iZ%vzM3T_n z?3+W(l+^b_s*rLUMp10Dc|Zs@Nz|I|n2RQ3Sn8!$P-F~Zd#5c?X%yxE0H&eu-dO@4 ziHwe^a)<*(9gKBKjjy3h1xy{TnyyE3Uj4k|3#byrai>x8VeN~SE!rRPRA#gh%sYs;D4g$M*u0oiI9i)d|o9yn|F$kfKdQ`CLqC8Y&}A08Y~}l6R~H zQM$|HGb5>6&K@LFuDT_9S7( z(!rwaTJl`2#}cU-X`xOx3yCo9g&WdQJ=BY&;j1K{ees*Zfm@T>1`;)v! z3NVjQ6h1Q!9DXo~ix%pkav4CzLvq>h%y~_f7v&OJL!6%a{{Rr9Uw`U#@lL?*wy(r2 z_IPHxp9fs*DuI+w!F77SqRX204PKa*@LejcAVTvj`)xY*@PmXCfU;CslXEOrPyYa8 z4^ZaERMhQY!6s8Z5_XfRS?$?~E{QdeGlL?kIb6+<+6tGQnF=eAeO5m^E>}pg@m`Po zzoReb-N%VIe(%|9`!wgs#kR^;lADkxQk||Y9HiW00}iX%vsV3&HadReUiQ#HR6MPu z#zd=WMnTEwvRuw#_a$6P&cz^LHMWS4HLkB5*GMw*S>D{mB#UM=>a|%`#MC1X1XPf{lIVV``Ob459H+>cyO<uM0Py9@y-)FZ81LU+v97G2TC){?zjp8MW z!q${+Rg)FZWbTxrJk>Q-ZURL=d7bu1^$v`BAl@sI{GF8GYG-bN2#3`I9ROKK!;sNO zu%{Hh$1c_0XNhB~JtJVKBu1txG}!4NTrCqSHu5&4smt+gl` z#EO_=2wUWxh~L!^$6=yLvNbp*kAkFv2W1azI8f})+Dvx3a}u6Ikh^6OG7sRor)vGJ z$mMFT?3$VSx|Z@%rM&QRcu|v*H$nxz2rpA&eXGI6tV3i8ZF(S-vbxjM^BiQJX9^r9 zT}p(3WpF@7DB@W-VhT>wgdX%nZ%JghovEP>N}>?~Af#>u7yzaNaVNzrl(ApIEL0E# zQf%<(fFsAMow6*+nNTEB0fV+dieh+e>VVZsokAtkm01C#lYo%;{$DQ$h-Y-ue*;Z2-XzFZ=Oxwb%Z1o3Z4D6~(&xW$AaYpS+B<9fpCyLHtkF+tW zp=MlKeHDI1GsL%a72YJH2(bzWBWw(rCdS;NPCit!DcL_ImF97cc1loJ^c}Eps`(3J zIS^Kw)S0rE2D>air&m?t#e=4?;|RgPQY*7`fLZLcI68IL2(kKD%Ne89mJ^)BomY}w zmq5mt4HIZK7@1sSToLLsS5ubV=Q-AWI@|6aeASI%`=JiV4Zb*+A$oTGE z3fr-(U?3B4$;T(;3X>tX=wOc($sU`L{{Uv>q(6yt1Cxvo$P?A&;_K)iu~54|Lz|pS zvA?YU0GdXfLc8uOp))Okl?7+evV5Id{{R#_)d@fl$Uy@wQZ1psWCH2Ypg^4v1@u6Y z4lg2>VYE6S>D3>&BpD@=7Fm+K|wejmA0{1#q7 z<6c2q9y`^;KQ+VGvR2eJM{I?w-8(Ky2%mC0f=9V#?W#Do$_a#nDOAof8;?~` zjFY{2L$D-30v~`y4TmvVsUuFSna>yviUWU zS=u#Z{{U|AnLNf+YY>#6;US%ivHO#dBh@I!#Zs%8vWcqh3# zt;qF6=(SjebJ_c#wZJjD=!o=nyyNTk>I2}gJ-1xVkTMIR)1*N7EFGs~M^9L+f^O+B z19rVrvMM$&PO9I$PY5R4|=v$=Jx|beHC!KV+O<&~`RV@0l%H-Vgm@7-+rRry^Dhk^y^*QrXu;sq` zhr}wY&#Ob?ta#G*)A)q0y`|}X=DiO4*j0~iC*ZmaLqx0}VgCS5Kj~ZM8%pxEDcfVO zYvcL|-jgj+HmS(Oo~xmMFVM@>Y**r=XXQs4w|!KMyXvNy6DA>HxlU4dTe1>x>wl&7 zK5O>337CD4vGG&&d(yd6loM$H0Z6c|f!LQk{w6Zce+n9!h+)s`147~Pa+dOFtUUUrze&CckH417{< zSj(<3#<~O})mTOnA>^TOxbm6bA)>m<5R3$4)ij8Fkf8xNZBqV}R~^Y%bZfYUCni;j zWaWradw4XWDfujsMH~E=G3R*$m3*MI{lmzXHAYJrZA97bOI4HL*>XS_!VxFUL!5nV ztnQfT6bqUFWYaoaKNgJyt*9dNg-o?EyqrbUYkN0oZ16@eKl z%zV9`g<(s{q_f>qZ5Hs$D&$X2s^^NX$v*L+^Hi0eXnTjEm5t2}!nhq&X>iB6LKEEm zyY*C=)&u+(HO=F%!k*cJ%e2##UC|M@p;i2^0g0XoghR64#uQO9atPfKp-YXhC1`mL z)Ut_AP>F8^Lw_BSNAMLT3I}k}B-bR!vf9fSr5vfB;Xn(JZmB!s%$k+ck<=$4QIK>1 zb&(S2T=VFYw1UZdzzk3VYM7@|lV!&H0PsqcM$JN1bnTFSr~_Nu*!Yl!>9ecp<<|)8 zgEGcqM(BruV5}>$-2{p-CfT5l%etfX>xzR-gbt}T-yn1-lp@Gi2_?d)0##*sGVv(o zm_zEEflu5Kh%#kGNIO-}Bf9cWRa+PsXv;ftbkX}n{Haj@>WaX8k_4nY63J3JKt&O% zD7=u7Fx43e9G^{8LuT10qa$vJOBgbwjJ8?vBX(N}!MszLSbOEUGc0LGRdvS*hzC}P zLQS&48>7`u!sMr!A8vj=YO|8C62UQpajwA1b|uxvC4GB3?^D5H%5hO6bb6gt1mQX- zwDb#YNBfA4!P7Y$Br+U`>aeF}hI$`k>T0@s731`iDIA)cUa8u$BKj$LeYGS8MlNv3;?^hj|7*>Q_FQEHJoDHee-sY$L8 ziU35S+NZ0V#fomzS zNqe@N_0dDWj@;%dEf(1hrCHOL76L^`x2N+lqp<13T}B)9STh{r4E>T*?!RIS6};m+tH%2kN|$Gk8$=BmL_#wbGG^EVq=Jh zRaKI0d_mIlE0xqnxeki6ClWN$=b~31%GZ}jm6K%yo8>Cm?NwkW@mfqtlC0XR^)LHq zS7nhATXx#ausxL-n9mG<3ADD$qRR3* z85pbnTGC|UW%4fdNJ%%zpAA6($n}!7;^YoRE#?(X-l(`%TqH@#rToHMQ~2B!MK+I9 z(Or!eq9^>Ta0wuVkL-%SLOp3XXT1Go0#&MM+FV$GI-OR2wg{%cUvns*y#zhS0s; zTGpy6EFMWhI<|85w?`HFey!?T*+TRex_|8*be&>2SYNze8WgLNsFhSs?GW&w_M7*Bzsx zOf1-S3aa9*vRcnnPN4fyVyL;C^IT^bsn_K&(5%lVY^*YURtY=Xw}ft@mFoFsTRLX> z86P!Ue&~i*HdY^13nsX+OK0dh6c(PPLb_&JD;$V3s@qr<%F)wNmk~@%xkAYoMbs#< zLP~@N$pCsJ0@6#YKU9f=C!oOi(B1J1 z(CR!_U4X9=nAIMU3<4}{S}T@D#0Scls2+O)JTks4WgQC2@|S1wS3VPOtY@;&^lvu$u|Mwmk5` zPDaK}B664$BX9`ikQqYUQYB$dK$APt1?AHMPL;J1GDy65rEiRsDG3CTIfQ_lwfZBJ zb_XgwcY1&-MY9ryhypyU644?7r0KZCnUv`pL!bk^?jQwq#6ZVYQAK|A;_FR?jw*mD zF_I^7W=VyQp-G&g7s~k0mJhsMh65*Hr>!$!BjY=|FA| z=Bny_+N&Dp=>c5`V2x1|a;`C@6A%?Vgt~<{2*{DDdsLv;Xt8s2chX`!lukE}m%qAQ z9ZZCn2TS_6)AEJORSfCer)rOW^9g6rg0jk z@;DlDVDX4iEU>`5PelD3q^lmOAVzyLv?nVGjC4%@0O59QeXC;*UWpO7>ZaG7k1)=F zIc8^R<;0(EJrx#47G4=5z(5PT)ATk2y|q-G$=ldhVan>6`k-eYtiN8UN|{PwlbKW+ zGd-cu6>UZ=2n2)y5}G9#YM7qkV!wtwPJvcu(kh#v33zim89HQQT}I=iCK=VR!`~M~ z0Uo@G9UVR+D+8t1f+Bh;)lm=`5F)t3QBBG+D%y0!q{kX4fGWi<7^dfh<-)a|Ho7Il z91z7Q4$*>!SZ-M_`(fJbucLqusTNSKn%U6>cV=Q$MxsGc?Gc#KJ((jrPST@BGVw$Y zxGRRj;Ue6FyJ~s1q(dLwut~I3OUWk^soETk6uALRSSP6V>aTA?pk-V`qzG>*rya^J zD13+yif-(gZRnrlfwJfwz9{DaoH;r#4}%jxm%%^%I}AWf@wo=71bztp-PRJPtOHwT zw`_V7MK#_w${|L`?TRxT#vu=OW92G-4ou=k;5)yL=9Lif%9C~v^fG{TuiiE%XtV!AOZ;?b7|WR_By`quGdlMOeQiP zg0AMXp^Jkuda`pG^I(*TT;sm`hIrAH5uTkEmDulSMoU_&&w~%#oRqTp0wPN~uZ#=> zpA^x&T`_SEN^;B0pv=p9;O4a2^Whb|l%lfPL>b9n@+L)Q?|ssAGT6-IHZr*2Vop^j z;uS6}bI7-5(nGDk6UB;UOvr6QowkZHwf<@j?b%+Oc)#+6t&sN}mRqyo{@N}4t5-*) z$=8{oX4A_$cPajZ9(+bHOcZ9WG5syvpEq}od(yACj@%1T92jyr-?Un$A7B^Z^S>pNXmyc%n&t$SON zmp0wDZ5eRZQ9bxY`F+3%dQ2~yt@p+RQE`^)pOaM z6hutB0~J$kfR!gM(!?s_Nh_Z0=twyS)gXB#5{L)YW--7#QTu`@heVSSQ-B>35wc;?NhlfZW5epl(_o(44n^DndY5q;%m6YZ?W7R~b8b*7hrrjvV z)gsBL=2TADkV?|kPX<+2<#FmhBNzmo)udZ8W1&^kwqjjVrDFzG*_Mg(yhP}Ngb9|U zpttIvhDZ)hZJLL6S}Yv9O(v5#eMASOm&lF&0Br3nm7;0fN!F zCcLv@hY^!880xN111Z*I0?hW_X4`<8=ym5pG&vzds$7(;-zFO~i^-wo5Oh`0%*e-< z+Y1HJfyK&>**2<|mhJj)b4b_Vli+oh@=!-F-2ejR0t~b&74SS{tEoGqNYt#@?kLt7)I7fB-aRPDL9?rp$Aj*ZGOp!&q8`!5tiOW7+skCzKSS!J zVbeS1y3m>d(?Q9%-y`Cu#BGStJ6%zPSS5;`0wc!587Lfpov|bZZyaYjrw$Y(7^DVE z3U}3W7iU{cJK|`I^-*QTQUigia+)Pxo(Z-D%Ps?=Y+h1j0#U}Kqy>wKDfrAXW82j^ z5Wx}zfhe}AsZVM6CS+s|of4-pv*MVc6Kl$>R9~vf^L&d)h?Y|<$dm+v&hjr|au7H` zqaaMVDR$Ta(Nzl#XF#0#r|J+WETK5e2UZkLisR~KL0&<90Z(kmw@8A5uvz3}z@O78 zsAJoZegzf>6@8L>0b0yXHWk7z)dbm@`Z!73CXiQ{oFsALB*E3BG2;zFcnM2H(K5zk zNdrW1kOZ4DA#;OR)kB{RMp@PaRI4lz=!!X(M0!eag(Yrx zW>H`!5DPJv*%FA6j8^VEjjqxrXzQOu^6PTT`l{s@n#Cf^|$?nN`Pf7Ua$ltSxm_h*7$FNtREw zXOCU2V>t6#T^6zuTMFSBUHa&P-c)0!g-ORZNi#p2^)iy#BCMe`t>h@BEZ?2dQg_W_z9A*Z{7WAy%6_UG>fR?_cp4@A9ehvP$TiBnW z+xspgV+ZnDTOvW0)l1rN5XKGst3bdR6XLivLQei)g7(?1jKcHPPEwI7uM)V+(;&1x z!?mPB${fFBhF?eY?CqsWIM|_VQ8+teFNOS>cI8NvW8)aH=L#@KoHNEnYO*470IS&jsATlnIKc&%b00N|nTA z{bU_h^M_>i0o7#QO%jZ<1r&>I5*}+!i<1m!098L3g(DGR(L0?vR5b8S-YeF*8n174 zu?3a6Ui68HRGHA6q(k*WjNuJrr)`d0cZBs;6uwEln{nt=)rGKclB(q92$W;sue0v< zA?=Qd+M5PJ#ExCGM(k0$ zT6`MB-eMN5Jwny0-4-=MQIy)PUAwx_`ThC*asEH&I@kL-&$*xHzF(2YYa@Ca-@FRF zvx#w}-^9$`-=*N`r@!woxD9hB3Qc)D3wZjf(Mcd_>GJu*x99&%c_d|I;lg_4enTv_ z{ZwGz!?9T043R~781D2$MSK2FuInRS6i0|t(Wr<#jVSo1^!|MZVm6U2mPD;T5s|wI z!%C%nH`VojytXOJ6F=MlcZ|c0%vBxGfRy*ytfZ|jOox)g#X%xaU0k&-w3?YhcwLQ_ zIeT0OfP0+K8^x>s=GWx#)%yW{IY4~>5dyj<%j#;fP+3^aU!BiH`HuO}0*y%prGeOT z4u>R@jHETMdqi~6zIgIQJW<~--?WdAP4^`;nwV45&-OOpdS{Ulo9zc$$N%We zJCi!|AUVU~`-L4UsLvgFu%ha$_Kn1kaRm}#{|!;;F&nctXir!?1;~lH(NHtRnvEtQ zdt+uA7E5i_$uNu4O@{vg2|ff}+ZnuE?nyiRH;du(YV(Os7f1{8E0SBH&)rYcra*WQ%@OAqG`1=hpY|yw#g^Qsish=PqWxQPkzk zEU2`jf1Z7?>}YY<(1y=IZvKZcYwRID*Tg+TwWsOkM#*{WWXbCFRuTELEPatCV`(3K zRnUZ3&0nQ!OLcT#HlhBR?@dRSTu^3vu6u1Uv+F-lnEr?mP1c-2_sI(?5q|lMP$o{5 z-78Ro{g4^Ewz+6dA@1+cEyGGv+4LBFUE&8GG$~4`1t3 zJZ}vRQSd9vmfE&y8`x-=%sl!ZFyh<&n3bLb_I{fEkL}9bKW+Vgb2CpG75|7o;}n43 z;;;7%arA)EQ<~=#OCW%K_K1hl7AgNV*4h2}s}vf@Wcuo^d*N;S=vt=$!t;>!xDuIm zvt$QyRIaws+JEK(Pm0UJRiAa1@*OOH^2)XL&X;nqpA8aBwxAX@J*E(sec4Stt5hmy zNYL4B^KcGjen3+f)R5$I<{R$^ zx4rFE01efRjkMXJ^q1H>x6d~hx!?Y=<#c`+iu=v(&{~yIb=B$>(t4hL%AIN+jskXmS<5re~0)3?1)#6azUTo z^@06%&C&an^66%z3z1oyzz0pW|E)EQ&maGgDJ^a)k)8;_q*8Z=+g=Ry!Y7`<-LSJE z>sJEro(Q+n^R&ujL2e0FDXsA!aXDI~FOhjajo?q-3e(lc0_g)rYrBYE78)16n&I|HE<6hUlMuPu-0Ftaa1%kXU`>))4afvC=bY z=czZu>Ez&jvzVJ3*V(lK-V8m?y^|L@1t-WE~J07CKT7UsEP*@NPY78ZA!JkB)=Ag?0@sZX`1+SMp%)c}0(mFaSgKK44-7*p6KYu-8A#=uN=Z zLK}tZAf_T}=hfWmd)_6aR_GHvZ#HO=mHB|9m~{c&j;?Q$!Sj|8lV@t(3x%ZHt|ky# z)_%e1X@dZ|Q?^uvi9{N5hqDbjZ^-e8)S+JbFft1!zxP_u;zQ>uS$^%&j8>KNvbp(F z=`QRVDvl8+7krd9p`$y#7u+JG`k6<{Txh*B1BRK}3t99;=bDkKVg08}CtZ@^*317S zW!z)tI965uSQ#W2=BQUcd2qW(L)^b!n9F9-&~*8E5nFQbPa+dY*D26NeYioKu31+& z#kh?*I~*E$vDg&LknH4;Vq@v>OYoyVw6Mi+#PF|fjJ5Gw^={SpU*+m-$%4kEKQVe!3^b;spOxdBqDC?(Q6Y<9m19IU*}y3_7(83y-n= ztlkf@)_0SkjziG-Te6xhCEj9UO(Y$;N}6LEGCJn9qzW_EIJQ5sFvW@tF*V3=qy|5( zXpEHlAMheVX)YxQ+k7e#Fh9AaLM zwRqU7JoRqj^l;`ba7!w7BR*6+Wz0NqY8Di(n#CG|bq)028H*U_I(Pm>yV*wN%8jh) zT&35ne-8?3i{XBntD%;P%*H^l)r5~P&wb^k^ zJAykV#eI1eu)Cb}gje!j@a%*5jvft#%ib!#@BFq8SZhD@FJzrK`!6nwwe8V9*E7(v zc_^5Q&g*RGxyKM)uE};Vq!u|mSXLOiJ2+6wR{9aKV#gd<1fI;!T7@!;vC_(W zA-I{{3UnwXkxFK$TW9xQPHxlYKLz(y^vi^2d2o_MzCraNC>XKdwa@Qc<=U)G`p z&u)6j>XbL6_wU{s$SpJHr58o6Nj>;yv1x-#*O7)bxfb%332$Y7(B_~9@h<|YYQd^M z9|6jw)B)#(|hAh0Y%#AoQ`6iXleUzpk7H$v8{oCY@64_0+Z6q zx@}e9pSbb}&C7b1;Xs$_^fh&|3kMG8`?fNNpU7`zBFO2WS!&|Q*Lry+s26sBE*8{Z zf`^H5XR%AcibAD@usH(Ap@BnHSO%+A`4cSf!0d~Y+qbbjU9!%1c-VJc1M}9}z7_J9 z21%`bA|1YHUE4Zzwd!kZL|TD13gwb9r|NA+>?Sd&wI2Ky};o^ zg?l<@VOnx`#r^Ek*mNkAM}2N69;Fv4S{3HX0g{2+{-d=t6!ePIo(;^U<#c_=;~|q^ z#!OKEVZHVYCedtZ+R-LaCt}!56I0$4zMzz7tTX9pFr~BLCF+wmvA68w<;*-=9ATV( z2TSa-!^p32NmZKaT|gAgQ1nWs2CZ5c%fjd7NJ_bu7PFxnoTdZ3)wRE);N#UM>8Lgi zPFi`&HzHneMWfb4>IN-ocuBQ(jl^F#UWi*WmoOkzd|lpw$(bXuT!?%;y5FtaO-8=T z6%=78?EC(9Bk%3*M#xX6+`dTE9zJ~jhRHbr6}i%RP=4Fv zWnotDgKSL;8?j`sY!$dXI?SxcY!g+9g5r@N2n!ovqyx1;(xKvL0Hy}3{ap1rhan(~ zA8I5gQ!1E>8mpP1{KS4EqSHdnp6k}*%~NJ63~|E!cU815Kx)2?uSV`y#CJMc*B8*1 z^BrPWQS&%{RUEe*%@u-!N9=ce13OtB!plO+L4DMHgt%J&8v=-GkOe|#O0h|?xYAgd z4Knprgw1;2xc~3a+zU4t=8eY|dI+10Ir;s`01cJm7fBMuwn^J(f3YM>Ra^Pr9gV+_ zum@(5$VnsPLwu^@4rrFzDCg>N_`(89XnpY2EJ8?tkRuorW z0Ug!?LXiV;G?sX@V6QN(x&;%Shp7O3dzi)r&m+i{dKGI0qhO(#2{Xg9LAy@Slu~*j zR5Hry5%RQh)%YA2ITLP}fxOvh>_)|cYmD{MEdUvx&m*EQJU{4fVr_J%)0^jd1_QrH zFs>UnkZ9n+{T+?+gjAgT6t}DoHx%S5rwZLPD( z_P^R5CSu-jsx0L(7>mEKYQRi>=j0z>BwG9ACFx(wJ`sGPcE>(qQ9t42)Yd@PQ$Jkh z<0l~xM+CoXL$7_EgMs{t|K@o5AVX?;(GF2)>-qYdF}pIOQVMjFGoPmiC(Vh5^SyTu z8>YIY)}V|#^?!mhlQ}-JTvJ=iRHPx8>reDZt(B(j$&`JNynF z=QiyrNQ>h{h>_L8Mw(9Zyqm#`O9>;BTUo(mky=nO{h+uzno1 zyQHjP=!7cVUCoAv(LF01&D4(?trqQBj7B2lC?J7Jyi`4j|40%K#wEI@zGey4YFyUv+L_NQUJFPWv|J zoG?oP8la)mdQ$!!GU~DGbS>o?{0VgShITw}`m&ru81VGi zDsGAu%TvxQ81>v-*PqQr$&9H&7BOUi#p1o|zZ;GiWlL99n`CgsIcsqrGh}Ovp;>2d zv8aQU-;e113eIvVjh<_`0_b5yR7QqiSif$`-2lrJTL&P8Bm*8~EYGj(g#TAw@t)3B zC@xlP)fPFTqw6r^i2-q&=m2@-Qo(K*C0s9r2@kd~(wPGVCg&9*%YpqlO9BJdh-NMh zB3LXVkE7EG1I|jS)ay6$j&XQUs)#W{Ua#B*l}Ayvf~OG`(rSRg<%9u~<{3*T5S=tG zMI6D(h8C8cNfs6 z0kO1J7WIZ`vAuF12W2%^09KCuY75AT38ney_mz<|uzgaf>e2+F4LKV>H93|4ILX5y z$J1#G^~9#Vi;jgDU}Bs}csqetTQB`jzdb^1jMe*)ZhvOGA^AN>B$7Q+2PCTbZ`Nm@ zPW5b2pu9PrL4DBu+L@U-v|JHy3=91qaAJ#}#8wP0!*|%bxLQPa%*O;;6yvDe+*iK^ zR~9l|U%n<>Lw=bmDT1VOIG(=U@YWxLpqni9B#sTrG?i2_KBj#gCj9J?r&U_F3C-eS zcQIS)HnW3~e0m4UCz&ahoEwpp>W}-#TGbXIbxc@dgvOHpY7#27j6R>T$q9Y>X5>mwwOrq5^qE>nF>}aOgjK(Dso=fx z1Sf>DIA161HB`13%dn5_O(?`ncCHzqzQQ1$ZEfhLvOvC%3+r4I2e*9Xf=t43h0V(9l z64Sf+s5zLjX3hJLxd~mdTsJz>p!VNOn=qPdxtEkhYz4><~Bz6STe}Q z4*HAW{{i3sOg=o1aJuz^i4;h^ZY=irr*qv_pSTCBs8)x_bl;Pu#|Ny<$gH^A)E-fC z_p{qeZ>+EJJ=&%Zfc(MCTYg+~ZcC4u8QXd?aTp0TjM9~)E2irY(Q$_}FsuWw28jQ8#K*=6-Yrg|frsXy{Rv*C2s^qhH| zc3XRA_04uv{$w%B?4s7E-<97qgd(Ly4-36^Y8r&#t`dTs(9@aG3e zIQSrxxLHNaFU7w6Bz~?06gcB+eG-p=%LX7L`HLIllSiDeOPSWgRkTE(RE}Hk(*&5r zWIf~Qb3cg94yhxHT__pfE|{f%P3&LuO!K9`70W4eyLZF&y$YV-wfj=fL)La0PecCB z%7#B_Y%t0z+PjzqXSw_4)?C4F2ehcqOzS}3+2k^VsRJ#piks-tyN_eG+MxS&nFXtZ zm(TS7zU(ljYWWB9(c>pf@79;(YuP&J1>Dl!WKm8)!w}E0p{X3a&vWUdJEJ^eb?kB9 z>dk2K3^cG+DzhQ{6;N`j^>$S?>JkR*4~a8kEAed1!Yn8}qd2n;fcRmCs-3X508dw_ z%+#sFg$$954h@v{!99#}l+H2@lW+r+1?8Bi)qBr|)?fJ*Q$BA0jI}5_Q84Q11}XB` zBd9tI62}^EJpjr3ZVUm*6bE3pRXa)b_Rd=UT{cF8vZjw;KpWqY;^Y|~Z=67bUUag=;_I%|^A#-dBP=mMZ)(b*XxjCqG^oE(h z&_?*!N~TyO49MU?Y=nrhF%&Bs!<10KivyihKVK$YFtt76yBHz&S2eI+DecTyKY*mm zOc|qX$%9*fOJT?ORJ+c7P<@tFLtOC6h(ZfWq#8%Zl>&gn%>5DGm3D9@lC=!rOHhOO zWiN=K!Q&qzsHCb)G)o1`cZj^`{XBWJdVQilE4JlQ7;w@Xo=H0Jpgygjq$=8lS8UytDHr)wk0J#KE} zdj>Ml>>7^7@)dVa>k7{DTCN~l1|mg;P#&CNLsTP=jcyi$&|>8vkt!c!~*DZVb2OBiHILog5D$s>-)DvrCBI=&ZBkV z!dum&!4%frqY7uJF>cnz`$9IZO}Wp@UQO!p4H!>(elj{>PVEhW>m+-q%$?T7W7ee< zUY$9O@#gs@tU5do?;jlAXcO$!xc>FF%XZs+x>^QL-PNGAy%^wbch*$Mi}&w;J&zBs z?b94wy|I}Bw@?4TK>GP|X>zyqZ^}>ks_mB>Hfc0Nt01Aq{Cf!(^jV#A{w)E2Y@~nn zZ|2->e6HGT`Dyyw@0h~Z9*z-xPPyE;FWvj=4k51S7S=Yd^*VnE=PQxy3VAD&( z2keIUetAPRX5?3Ju^s_ zGJ2E+1{o81d-BhKv+u-1A=>JHK(O~4`FKm`omRkCB)A!?xCR^i8nyp!h#A z7EbVME|xE5>!K#s$^|@-AMq${S+U7ZL)-&GITr$Rs||zUe1-alc!5z(BZQNObkx7f zSk@3ew3K_2GgHl^y5{MgzU>(Gf8OrHVpCv8>_brOb(V%pr*DtDx!uDJ|FJ#F%I11{ z<}hyIp+@}GMn`I{ZoKXFYwnMYhsg+od*Us5V|8gG1CQq@-5mUWA+rev{X2dOeTA zmAnN9GBq@b2}SqjO^|m6mMushFRv%iyfiU5EPa|3Zsl?)i=FhX5SG8>jr0G@S$3V8)>iZ8c>Q5Xu;=VUO0tFg;lkJR&a z%+m2(0T|8D&JC;FG~cTD&Op3k_3!Ru&3wu)N|TM5>Te?$FtHQ1f?CWJ7TQT@QEQvR zIIS8$rsW_cGljiC{D4^(@bdG`=e`umVJOM69tg1rTaFhsS!UMA&87^MnFvsdDziqv zp9|M+@Xt(rCtPv3BXnK2XpKSD?MQvLDN8EJvjg zop(=`D7CED=fGPjI+so7BF$xFKnG9?OS8ftVVJd8nqp>ftU)rw14fhQn5~lwDAeG| zTjTQLnfmHROv!BB

zJgs3&We8BV$KKeUaSd5bvA_5yGwia0~^X7p>*J$YRmiO3l zF+fourSOH=m$d?saS%+0qS8bfgJ1)Kiw*m$2@fEQbo13kY_~TkrA*iW{8iW)En*yI z?}opguPgWt%9IzP;+@koBiNwNF@HddfI*nEb;7<0oqx0*g9|Y-L%`#&%W<=@!g5r| zZ1nlC6QLChEzSjZDacQ_m_&0}i4-kEX>2%x^NZC|EvTrD{kn<|i)wH5EmIV_`JL5hK5A!n#&=0{XwQEzXE$KHyM>nz&dB*mjFZnT zRG^n$WiC9?eOV7i+~&U`btdU1%s>V59aNXO_wmwFt1hz&TtE&g^CLFw2MyQSU-ic+ z6CrRK+Arxc@saiIL;3P+nX}0Zmp5epHeRLBwifVtaW+vFl8zd0aN0($O?4!e8d(OO zYz{~~6Rxq~`V{^MNHkQ)0Cmc{h0UTKJ1>7xT673Kv$~WSo7xRbud^=xlXrZ1;PBG) zaAo5jMf&*8=&u?PEtcIcYf1b!EOSrG+L!H}JlR9~0VLC5(kr>h$;e`BH{-C`5Wmi+ z1%HA9{!J~oeETFyEc6V6nIs4GJzQyU*)~x2Xpx?8HYa*uCrhl4!=xVbeH2cj8ct8z z=yS^_5kmY|qck69pPC(S9Srn7Iu03DPJ5&Eu}C3QR5fhPsz>v)N;bMLDCO|9;k0G) zNhsF#+usf{COWy+Q5^Vza(}_=Q-=b1z~Hh7sB)13`t9E zwPE6!B$#)w-gt+~~=l8*b25>83Xdd_O(b1>qa{S4LCV$_s*{k<20EaBtfLSXAHn zYTHXS8JiQvVosu=$XtGHPtg|d$(a8#&GfFcahRpbYq2Z;yq(~ZXPwhlvaT2DL(q$w zzaOUh&{p?94DsC-@A(A*O>HTcVRuDo+A2=$-FFBE_;P?5Wf8`p$PHuw!n1vqV&zV4 zfTK|C4`Jp(WknhM^`gjnVw!Kw@F~Nim(pw?l|&+%5Iq@AsWSY~q9M8olvYlcYL;Go z{JlO$15M{oKLQvQR#&lxH42f$URwiPdBL=owse+_feizUQ6ffUtXnBzTc9Coa6h~H z>UFu#d)n8DS3M}Ufww*4c8^6#$mP&mW)LYDTj_;)YdApmn;sa-ozmPlb0*>1;%$($ znnk%BU_``H$r}$TE`~v3ED3mqBviG&8c;@!f)(IV)G4!G19W zN##inH(EJB$|HFNdvbc=`~V|4;EMsQbS0aHvIE0YDTnkfqQm7vuTXp$^~oTy0;2#j zDA)}u0!^x6?L~u|II$G?9DubPGGJVZ$ouZIR>p?Uo~6d6m@k6W8+5w~TujNJHbs-^ zE-a1F3LefgX*tX;HNaf51P1&e$~9FW@YT&!F|sg12}>e?(g@rlFqsu@)tdRJ7J{Xd z<2-zlr+dTa7mSM0rFIvo1f2)vw0Vy% zOF1wjFL1H_lhKqCs7_2){Z>4O!L<%=9A`$ECBCl0&`UjE6_PE|xP z!^lzR9WzDxkfDC&>LK;*Q`EWKmRudqO_6Ccn4Xqn(s-cl$Gx@RzFf)%*lX=|JN;FU zQEdUM?}Be>&T-<8eq{}7Dx!r@q!=Y?Bcb3~7^{=n$pcYo9`C#_EUpVe4`Y#x!$0fX zr7Kig-w?d2U_P&N?RfuPh*>;Np z-uI&#j*Z9NUxQOyjx!&&2F5Nm_pH8nF}4{0c|s^uz4_E^E>TRaBS|aFf%e`*LHuP- zOzX_ybKkt3@vc7hjn!{@9E#|xw1r0@@BgbZtjxa~gxdup9@KM8IyUt-oqy=E=;!ra zoE?O|@C4Zg4JpKv=9E`x?DB3?GM+hoCh8L5&jP(Rh|ZJTYK7A8*?DAztp70F?1{znS~RY|CMz?!CHmz+D`z5@2uY zXs34i@_#^M4u`wVI}2{N(7q(%PTEITiEh2%bX44=pTWK*)wt_Ci^DT@_|wMN(3J|pRXXp|8bLDy3`r&8QW7s&SDIwVRC&WP0- z=Wt`zY0Z}Xv&z0Vdc=ICqQ?Ch9MwYmewIS+Jy5^!bm2MMo{=U`tElMVSFw$7D<(> zi=_bxf(yv002)IprjArSPJ3WniDZg9aI^}>tQAq&Bl;?ZXYqKdMU=sC3yo2+fEWNq zuqZdQyN6*2U2OP#Yko}^IPrF@$ao%_i5|dQ=z4Z@3qPVkdq>Ex5lZ3B2+=Ez8&uD! zUgyD;+>1=(XIbXvYC$rN2Fv5VG%;5U^%w+Nlc#1Fu87|T>(&MGM(0H4rT9vve7I7Z z0%X8VR@-Rb@F($ka@+`g{51@coAk7qsUe>G^m`JGRSHq<=2;`i!@lJ&mhXNoMD?9K z--raet+73~;pAz$I$Uo|zj#+;wEZvi`bG*LkN?^q6N$+xY2C3<=MTy!&88de#nGn* zCe?^z8|&@QPb@I@R~vwPH^|*(yQvSj<+6Qzt;O7j)XUA@Rboet%iN}rmI?o+(!fW<+!~FC3(NtxLp~y~vEG zoCdTjZJp(3NXv=THG?+x4OD_DM$>KROnk*n@VG}B*)bE6KAm#q z$dVXM2oe5n5&Y$4{Yh5pe2`Y7O)hIk*bUO?k3|KljtJ57t6t@>iiu6H=mW>6A|MYHmOeaSfz5 zMj*rf-}-UuBSGm)iUAe8vZez>QlxJ+71JkU<}06*E}F<@t4Xo1c}oU3b`*LnHewN6VTvWS%sd zTQM$L&L^Z0(KZWD)qnA@<%FUPm)5^mJD$Q>Sj>gl1y z4O?-SDSEh?Qt$%PHz!(uI#f>PUW>IpYhg0F)C}{l3L9;-99rN3+-E&ozrJnlyed5j z7a{^ies_C#UqO#VE()#3eZUw$@ojemchSf_9de=!TwceZa|jogQ|i51;+Ys)xQEp$ zal2>o-$L!^wu_O4n(qh<-`&SQ-C|2$0Zit4y{g1LNWF(9(4ZN@jpZToMmJ`eAutMq z6bRsbHQ0avsB|`9g9kAwl%ng*42FkeL6%9@#~9$Q&>r1I8f<24+``Ez!DsZt6a>Vp z-Of8%f+CkB_>5z}C|LjSgENCpWeBAeuo13(JSQ!nWM-fa=M|B7$bZ*ocMK4-(lNmHy)v@05S{pAA8- zJakiv0WWSG<(+9~FtiCGc_*{fiyMvGRn@Baj^jI6AU;4~#vC(}J`7cz#|$8aa8O`C z2f`1C&!A}spnL$N8=sxd24QM3HRJ6S<`!Ng0a?e;vIG$cG_EtKh%s&uafq#fLb0HU z9k|urQd>IQlDI*jXnowU;Uw1LVqHX*cVWe2w`Idj&2;Eq=K(ihzTm5n@z_T3DpRsZL`2ZClJu{@SnVOT4=q|R zubOn&k(#=`9Dym-ya%R;!Nl&r=d~{88m?uW!@cbh=eK~PP7G+WEq636SYa?qlcG1e zweN7I0Wu^YJ7bE*zG9)bg6}^b9?V_Z4BcY( zzUug}o^SL=-*9@bwZGt1dYVJZ3ff_&5zdQ#`QXiVTZoxO?!aLdf$VAWQ$IOnXlc<`x&m9is zCa5C#v4k{1Pmq;l_Q?Rsb);%qlx>xhje)TZCYYS_TYX#hfz*#u4=UbOGC|e8vT%A7 zNS$54zU`UzAS!d*?IiD4mQvhCOCpXCH~%K7=$WBQZ@9|F_6K65Ag*`^JsDYHE*K$% zGWQc7s&}_Ka>z87ukZo+cs3UB9C&7Qat7N17yc37#GBo_&yJs#@^h+R+%0`&y3An` zSmy6MAN{vw;z4fcZDSuBz5}!Hk#)7`UB1LDJD&BhW>4PM=?s%>lYtHi^nYa&*0o(9-& zdK;XgdJ{#@k{9)!hyFS&`^lQUi0z7=T^&2QKGC{{tKt>yvFX-}&U`0sd62t&W;Zae z`Cb988=)BezA&D!ZLdwU@Uu$m&5Dz!J>wO3>g`NU^rLlb6KwEaX^5TKl!Z}itPa|! zq_&k)Qf-m$FWe{@b0w;Iku1bgdCI{>VSB=fDyT>VXfO4tOxpc&`ac80=~ut}I<`cK ze;;inquD6}O0&VW;i&z@nz>Yfi6uoIjakaRX6H!?PzYYIm7_g8St;UVNzOhj_w z4>~NWlL&v~qYmfbz-eX27_krfW#MottfYLtW!o5GufNNS2Xv;&fj_eoM4qtb4m}()50Ej|uXJI&9DcC8@NRxby1LEt-;OykLlsETej6ATjKpANYy8Z`RSane{L+^BS%99vP3`M~{h2$!&~ zROu`n8<-577h)wcQy$gQE@0BP$b5`T0BwQHlfwF%p_Y|uiYumxzr6VJVspx`a$wzw#QV+=eMI|K9<#~XAJ^& z$Q&pS@gxs-0TEP>mBdyyRb&ZhzbvUou>Kay>$tKcsL%#pL8OGL4_jrE`;Wch-;!{Z zFq4#?Ei%Nj!g}jJ>&?nlb$y@4?W4RRd@Yj{N|g==d*k+{i(8G-SGAevXbE`GptwzQ zDLH*zrl0#ox$J_Zy=Q#F?-)-LSKJ%$8@-3VuEBCqp0pm0H@iDF-TccLX9ei#r(#AY zcVt$a3@fd%JIzZH8b|VvPTNSD*DGIdWA54BAHb~$R&k+gKC^}N`h z(hBl8tuw6#t9Ii^M6YP-rLIM@FxF;tcMpwzZ@$yVc$M?@wW)>w5qs#^IpRyBMmZm( z)6&5t?ze1jbqFT1-fjD|jlsdXtN?esTGd>*_Q$m7$0RTy#pYYv==A3e|D#`)H?2&i z`;^B+rk-UEYcS2dp`Hp+nCcl1I=m>!=o%hnnn-LGdA~0Fc2U&ajbEoIyBe?Ux*#*@ zfMnUJFkg?o6gi`ZO|*q%r>INc^wIwcYYUap`*G{vyYxg8&AgX%nZ%JI82qgv8qG?u(zQi`m>=OZ;LuFPS76;wGNhy@(FAC*q zJ*AuODNTE(UjO~XhlwBh9hZm;?0~^e3m(8h+-OLZ4g_Ek(gC0#aB?`3DKohmzaNXF z#W3W?ms7H(c69tF9=xD@;$BXFSvIdSh{Z9sORRE49eFsHQE;mRZt4Vn_88_|fPzHi zzzqZDBgFt)C6vKDE>hkeD5ohmdKbH_)p4~qOGT*8Q##D@gNG%Gp@d~=d9&B>dXHdI zLZ}>)QDy^U)&sK|#?=Ri5xmZj8{Y+D{7-blkdA?i1t=Amvmxg&_15|9G=0#zB{fru zpDC9YWnB?9UcxNREbl_5ckXe_xkD?A z%SxYz8Cm$9U!`qB1NH9e=O<}M52()s|D4|e5aGsctPLUxXJ)Bghp7_}Q?*$0rsCO# znUj;Os|07@ZDwI;COjXk&0x-~LH9PT5rf&Bx*)fa_$(w5P3WI3LGM4JMxl}p@d$&l z!%W+pSrsbW)s_u~g1maokers4C<-!wgl5htS{@gl8C_f-;iZL9b(wjXRC+QT)DIhy ztl}&vx>nG$a;9_C))(a&R;LxE3nZc6M($;2}RR{uBHv}uQ z;?AdlCR5NCW(A^>OR^88x>JiM!*4}NB#WX(o_Eh6s6v06qGVGI&(VEtGX@Rd<1)7u zeP*hlpy&SsB%C5sxBp1|(S10PJaii!n^%=ye>Ha!L(_=zP?Q^pC1cNpmWo(nT9}urAI*+F#ey{jNp~eSEd=L}lcTO8eVh7Y zH5iOc8Hi>k8JUNBO*s-v`9-9t2jZ6(cqMTibgy#icF%&j@Pxw+ebGB{UJ9yFo-k6R z{dr&x1~T5gxLf?MxmDtBm+7OTBuo7>7?62y6f|fWWRm4z!JV9!f&f<- z=eK9q{V-^>d%mu>30|1ZKJ09aQ4XhhrU>d3C)yLzV-Jfv<+aP(Js95#up;UUT4r`Fi8Gl;KX$+Kyx+_m=DbiHYZBeQo2VM z`}N@ihD0}7OKn!4<^3n|bV&S6qbR0r_f8P&1st$mdoF)|0W|elUI3Pj-wYgIfiFa= zPN@wf3GQF83Sli`5e}6nUOXG9J)N2I%4v@ow3j5AtgN4hrV>Nuh8s#Vr6r#-ArXXU zn@0Q=;5d1#GX$^50>d*x&@dnwmJXxLOlAX90#G9i$^uBirG$r7)6C?7JVuP~uULkh zt&$8`M7nGwi!%4Y%#>OWC75;*9BFKNB*4j-?M#>$%u^SJ102(8QVLA}-%`-UR!^>E zFY3^={VYRNQ^TZNG4J@B83b05 z<;9F|*Mp<&Yk0P-AMEj?KXMr5B}tNG%H)#i1YhJb8GS?2bvil`Y&@qsW*>jQy;=+D z3E`Ii$a&0p|{W>W}%>UY6d(3m*PR4bPIz%i@LPPez)yIap zN=}QlMMTIN59P%;8CRoE_mf%KfG@NiM88VbknAxfTnd!6JP}=-3W(V|=herS=7eLrzl)Kd1sr&$KhbGhXrK)ZY&S_9Z=z}`rSqW} zIdp(^A4Q}{O4tU~iz0Z2T#Qv8mY@rRVA%1GWMj=SZ8xuif8!bcp4l|8_K8UVtao~2#QG)yc}IFP6Qoru3? z{txZu{`o%b&Hq>HceMV67(6kiiC)eS>e^^m`5L_@EJkY-_u*{q32zR8GB<@7St~EG zwd=XzP8waUyQ&LquZD*=m>jd)1AZqzWPdtx5*?G>x%8{w*(rEtTVg(dZfI>%h`&+? z(HB)qt+FMrl9Ui{qAa^#C=qmU-xd&;i4`i6 z6}eTq&``R~Oc}~HBg-X5xmL_IIvolT3gzT_x~Vh5p;MhM>ij<6-+!Oanj29tw<173wU)KtB*Ea5;vhjTetKr<(! zHy9Gpl8JHhwrg-|G%3kc$}{v#bNDJb=A;Vb9jI0@3fPg8wBlbcS+iqYe(`h+uh<~I zAq{gT)%Yf~>%Nap*PCLB9<3M{jPZxmPTfxLS!qsK$*EcwilGozzFPJ6YL0t0|Lybm z@8F3z+}qVa28YWbFT*MRS7zBU>SI9JEYpX-F|)o}v;_+_ZI#QNu+g zOagKeic?p$DCZ}g1Jf`nG+q+5uN6P#Cc&%jJVu5)1r))&CgAw>GT<-^wqY|VaM8GZ zq4H>s8`a9l)@N^6W#!TFXJzhy>*W|k;9LY+ky>L$mAqv9~TR3v%Ol_3I9pR$=D~v0ivA<(WU{48uqZ21m+D2rBG4!|mw0dO)sUmJYf` z?VA+mH8VOAtumIsc-V)4oO2+w@2K-5?xAn+8n_WU$kpz<__M5 zpFrlf^etMr#1I1Y*K~vBuPUE9zFj>X>1S*o%vqLoSGFlB_OGb{w9K(hD?!0O+iG_o z*HK=>r4pX~%(lP|e_j0LYxk?*XKgFXRj1 z_4ShbA&-bxZw+)nMiY-r*->5?A=9S66%QlEojsByGhVJZ-Tski$t5&2`=}9$XIJ zY0^ZDJGlR=S@HEYVbl9dUn#e9U;(&)lsOXlOo{+ojm&Zse`_P6V#dF z`GQl75Z-!#>iH7KV`Cnd?rX|(%|2z3AkBdsc3qC#ctM^aXo`DNjI3@yh;-UrL{FWr zQ8Ewd)mIn6CCumDi3S$DU(eK+vNO&Z?a-k*H5E=6!QyT>jyq1jnys9q)rspG_Ou1 zC1uhyd{YF|cLS_u7K3whmqPmd?CRnjlym%-)4ti#fE;tjh7Z_GLsH_F;)fan!QU#o zWXU*X!_PFNIvqCi*^9u-{`$%Hs1mRtR+dPxj(aqKIljYI2g}X|LU+3_(#eY>3Xv&H?^eAp)veG2ao- z&-pIr@1L_GikA?XqOeIaC`%lErgm`%|5@bmX_s-mYO6N8wi8i_4LxW9J|@SBpJx0O-&1Tdw|n=iAJ%z?&or&>e+alM&sGw<99=L6cicGK5(oG&k>(rxjYsL4^XOY=AxrS zJ8ct-J=hg{lj40>4D44>l3$)$4K$pGyGQ=uL;VY^^W!CRXYL$R^z|A^!+nx>TjgHX z%QLUC`qM6u!8Ov=Dp)qJ2@UG0&W&OzZva(1Fo6;QtEN*2}6?V zm?uxs^k!w8ANZ_H4!e9{?9Ckg)U;-BXlc-E3S_DsFPb0So!DfU5j00q+S!iWx9^DT zOT41QKRIbQG3`rOT=Th#JPt`;5Lf#9N2r4MHs(V~j(cgokCAH2(3z0IaGk)uNsHww zWJ7%b4LS0O<~AL17WtKLX=JOh*_JLxmAO)3bYl?SRPg*^GqH4TmWKp$U`l3pd%@ z9qli7kx$utSymcLcAc$PE=_uP#4(sgAZ zvX9aQP>JzS67WGxz_|00uqZ#Z?4aa3?`(s2aPkcU91F2}a@6z@nj>_qibV~9s78^o z<}o(Yaw0&~3R+Wbmf8Ym%6@9sq<%O3vMsPHMn{TY>GC^!`BnLG z1_}l6F2pKYH?Z)k?~iwrJ1j|i%TU3#>Ey9$d7j}=eKh&)x*DW*pL{-2UAr?5YqotO zny>D=m&s`S=h(V%4Hxf06oP^7E+=J**`l*q{p)3A#~6X{2J0OI`JH?&eYhsgJAlX z!zXkl&L;Yj%t!zIH~HqMZIpYQ3WH-V=*xODyLG}2TQ_J9$KL&(9Nv0;C0vF3HhSXdT(fh#7IpYJ5 zKGj_r&bX*pR?J_!e3~^$y!mS7NFO}GZ~r%?3#(0D!Yj$_S<`h;fU8B1Ul~;F5?XnO5nJSkR6ku2XSDy!2C_pURhNrMb0qu(q zWr?^MJL;tc(Z^3zctYfBvrdNR^UriV9LU?WM}+E0VpZTBP5zC!Xth}4!Y=LZmk?|G zW&eDWWYVn+jV-sD%>fGmDKYncvkp@B=-$3ptez*qFFR%A2esoAtEWG_J0KuR9702{ zOcI}y1v3U?Lc5T)LgD(X{Ec+AjVF6!X%}YINXE)NACq9??w$GdoXx~oqRr?w^MU@u z68?Jg^X$9c@SyswwG-b{Zzlx@iFWYX-+Vj0-rke4Da^ClWW1I`v*Gu(1(P;uw==qq zilbWB&FT8VI?S9hQ+(;K5F|J*a?HR7#L;noh^!PQy!X*ZihR6VK&M3*?klN6>_XFF$0?u zh11Ua*=SW88F*=w@%#~O1b5CKfyG3YVsQ&a60Upu6#;jy2EoekR)g|!{Z`%+>S|?5 zb8cH?2ZCRViKj(T)x$gn!MpKul39C~d)C3(6NQpR63rI#Z=oRlv zZ||Fmu`xz_K9k^l^!hySPN-&@x+y_`3qd7en#p|mn7MVp^N059(KYbQ=T;zf7E{D#21|GqWMY(M#N^mX^^tYf)!3!}{zMDR0ZS%%dvmtQWsm&AzF{P@1s?3|CZj@qKZ64kb+>&64Uovt2? zHFT>HL}|4&peP%33Wq#{&OWCRbMgzpBg7 z?nGh0%K9<^5~T!f{m2|V9RufSa9shoz>omIA^#v#2Jje5B*2-B<{qgYEA6ECT>G;0?7Gl?6D+2Sfx403_BC z1@paPJx(Nh^a5TrnO;&DO)q|Q^UE2WzM?^+=4I-Zaux|MHn-pspM2BE&`!MR6aet- z==PXKm_D<_$>n;C~=OJ^AKNyN1g&Y1w@e%uC5O-siM`z|7-pv1vu%TW{ADU%F%5Elf{%*{D0Ns7C8V zlJB^8l#!K;R6{<-j%F!|R3Eq*VnrTH{Z&0UDZ=0~+rupCx*-wDdYJgbO#Ow5%EQ>K ze~EDY`hL>I-`JP;y2TA-fhz7>Yi+cQu;a13Q(U(LmT1l#(?r*G5-^uk57;l~W4HtW zMePCR8<-)Yqb!7tG?zBfEVT|73mk8DL%17LNbP3aLWid3|ErAdNd7n|%tOMC#p-*w zRTQ=O1Vt2%>s)j}s|UW<%rcJf@42#+3OT3SudxuKX4-a2oi%b$Y2(sRsGa{bNeoDa zYZxVErz%=UBIbjh+01Z>>oXm-%g=oFcil*NbY&I;o8Iz^g01HkNdyG~#XtoFjEVru zasCsoVuwd#5};%;U|XuNu}1_~z;yatotFVzp>?jc5lV%aEGX%bq+8<3A%UZ}Lfp26 zV(V^-zU1XtDKEdMiqDD5lmL^S#a<3xCcU~V94dd8k1Dz6#})o3M-u47LKsY+ zlYg+QY37~{dPvFlFfDa;;j+>;+POM=?3a zG6u}#qSz;xiy7z-Aa~2kyYEL=SWPO`HHFuo`6u3w)W`^$~s7B_(HXiIneJL5@! z1uwyp@l@p;d{hKLM&9Z|3fXEM0EOq9SN zVyfqf0cTYok70*sZJ>Q}W2XL@%PsC;o~)r;VE!u({`S(+^*XsdBd)D5?A!*9{nB{8 zo>u=)^Me?jIh(iQeV*kSPrA1NjB_4`+ge{Vkoc-SUTl9q;BxJ^JP6 zQC!hPkoIo(4%0)$FM~i49!B-lIKc0Cl5<^NWoY_36s12bN)&=_l8D;%ZY;cwwjh{! zm3&A>JHU(}auzJ|RV!~k`HhvM4@P-X`4^*2M=FN2xim4F0(p;B=h#uzG2uYvk3Eiu z6Q&?J8B*YihKMYu8fOvO&_qDrnDT5-1+q*@IIr{|k*JgQ9dwHf-(rVx+jCG|!jok3 z8A{Jhzv%g%B5Xg0LEIm)nw=|~%{P44Y!vv9vxIS-DDK=mGd#JumkFFAmO^qk#cL%*v zTbQX%c&~Q)magvpwh$%9dl{vwgN?sRm) z7H(&5`B(nnFdr9uu%)j*R#$VccsykDq83M6n%RN&WCi;_uPu$3DC7O}VPJk~jj5^K zG>X*ie}5KD=c&@yV1_7D5QHR##5@#;KnbB^Yy=VmkRQ=7RMe{13Ix;;jcflp!9&5P zwdVe}ZlEi&f|VPHp(@#`K&_N>pmq5F=ijn^kc->jt$UvgaTSG0maDOc->F%C5*Ba+B#G)Xs9?>1$Uc zH+RkRZ)gu5aknGQ@KE||>yOn)TbD4dR%+?;@OTBt-O%zyQMUI5Gzj>57u3?!6v#v3 zt2lM`r=WMj)|IM@NV75&;j7`sU+dVB{a|H0#dO4#jlsQcLE;YZ_Y5>+sOl3%J3^5- zn6cOc>gN$>s(f}Fy0vnTg}#dV;dv)*bMxNoZ$s?T5?f%7w1bWFQ^?I`Gf87O$NUHR9^P(|uTtVdxpK;=jrN E15V*r*Z=?k literal 0 HcmV?d00001 diff --git a/test/parallel/test-http2-client-rststream-before-connect.js b/test/parallel/test-http2-client-rststream-before-connect.js index 7bace941d1a0af..470a3d69a43375 100644 --- a/test/parallel/test-http2-client-rststream-before-connect.js +++ b/test/parallel/test-http2-client-rststream-before-connect.js @@ -9,6 +9,11 @@ const h2 = require('http2'); const server = h2.createServer(); server.on('stream', (stream) => { stream.on('close', common.mustCall()); + stream.on('error', common.expectsError({ + code: 'ERR_HTTP2_STREAM_ERROR', + type: Error, + message: 'Stream closed with error code NGHTTP2_PROTOCOL_ERROR' + })); stream.respond(); stream.end('ok'); }); @@ -63,8 +68,11 @@ server.listen(0, common.mustCall(() => { message: 'Stream closed with error code NGHTTP2_PROTOCOL_ERROR' })); - req.on('response', common.mustCall()); + // These events should not fire as the server should receive the RST_STREAM + // frame before it ever has a chance to reply. + req.on('response', common.mustNotCall()); + req.on('end', common.mustNotCall()); + req.resume(); - req.on('end', common.mustCall()); req.end(); })); diff --git a/test/parallel/test-http2-client-upload-reject.js b/test/parallel/test-http2-client-upload-reject.js new file mode 100644 index 00000000000000..ece7cbdf233f1f --- /dev/null +++ b/test/parallel/test-http2-client-upload-reject.js @@ -0,0 +1,48 @@ +'use strict'; + +// Verifies that uploading data from a client works + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const http2 = require('http2'); +const fs = require('fs'); +const fixtures = require('../common/fixtures'); + +const loc = fixtures.path('person-large.jpg'); + +assert(fs.existsSync(loc)); + +fs.readFile(loc, common.mustCall((err, data) => { + assert.ifError(err); + + const server = http2.createServer(); + + server.on('stream', common.mustCall((stream) => { + stream.on('close', common.mustCall(() => { + assert.strictEqual(stream.rstCode, 0); + })); + + stream.respond({ ':status': 400 }); + stream.end(); + })); + + server.listen(0, common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + + const req = client.request({ ':method': 'POST' }); + req.on('response', common.mustCall((headers) => { + assert.strictEqual(headers[':status'], 400); + })); + + req.resume(); + req.on('end', common.mustCall(() => { + server.close(); + client.close(); + })); + + const str = fs.createReadStream(loc); + str.pipe(req); + })); +})); diff --git a/test/parallel/test-http2-client-upload.js b/test/parallel/test-http2-client-upload.js index 70a8ff3ced01c6..78c6d47cbb4f44 100644 --- a/test/parallel/test-http2-client-upload.js +++ b/test/parallel/test-http2-client-upload.js @@ -11,7 +11,7 @@ const fs = require('fs'); const fixtures = require('../common/fixtures'); const Countdown = require('../common/countdown'); -const loc = fixtures.path('person.jpg'); +const loc = fixtures.path('person-large.jpg'); let fileData; assert(fs.existsSync(loc)); diff --git a/test/parallel/test-http2-large-write-close.js b/test/parallel/test-http2-large-write-close.js new file mode 100644 index 00000000000000..f9dee357d6da7b --- /dev/null +++ b/test/parallel/test-http2-large-write-close.js @@ -0,0 +1,44 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const fixtures = require('../common/fixtures'); +const http2 = require('http2'); + +const content = Buffer.alloc(1e5, 0x44); + +const server = http2.createSecureServer({ + key: fixtures.readKey('agent1-key.pem'), + cert: fixtures.readKey('agent1-cert.pem') +}); +server.on('stream', common.mustCall((stream) => { + stream.respond({ + 'Content-Type': 'application/octet-stream', + 'Content-Length': (content.length.toString() * 2), + 'Vary': 'Accept-Encoding' + }); + + stream.write(content); + stream.write(content); + stream.end(); + stream.close(); +})); + +server.listen(0, common.mustCall(() => { + const client = http2.connect(`https://localhost:${server.address().port}`, + { rejectUnauthorized: false }); + + const req = client.request({ ':path': '/' }); + req.end(); + + let receivedBufferLength = 0; + req.on('data', common.mustCallAtLeast((buf) => { + receivedBufferLength += buf.length; + }, 1)); + req.on('close', common.mustCall(() => { + assert.strictEqual(receivedBufferLength, content.length * 2); + client.close(); + server.close(); + })); +})); diff --git a/test/parallel/test-http2-perf_hooks.js b/test/parallel/test-http2-perf_hooks.js index 07d9c55ed7e0d2..5dd8ad0f6d883b 100644 --- a/test/parallel/test-http2-perf_hooks.js +++ b/test/parallel/test-http2-perf_hooks.js @@ -26,7 +26,7 @@ const obs = new PerformanceObserver(common.mustCall((items) => { switch (entry.type) { case 'server': assert.strictEqual(entry.streamCount, 1); - assert.strictEqual(entry.framesReceived, 5); + assert(entry.framesReceived >= 3); break; case 'client': assert.strictEqual(entry.streamCount, 1); From d444e5087a02269fa088343e9fb9664f17b92291 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Mon, 23 Apr 2018 17:34:42 +0200 Subject: [PATCH 2/5] fixup: further refine the close logic --- lib/internal/http2/core.js | 21 +++++++++---------- ...t-http2-client-rststream-before-connect.js | 9 +++++--- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 1a1fd0dd1754f2..345cb82e50103c 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -335,7 +335,7 @@ function onStreamClose(code) { `${sessionName(stream[kSession][kType])}]: closed with code ${code}`); if (!stream.closed) - closeStream(stream, code); + closeStream(stream, code, false); stream[kState].fd = -1; // Defer destroy we actually emit end. @@ -1455,7 +1455,7 @@ function afterShutdown() { stream[kMaybeDestroy](); } -function closeStream(stream, code, cb) { +function closeStream(stream, code, shouldSubmitRstStream = true) { const state = stream[kState]; state.flags |= STREAM_FLAGS_CLOSED; state.rstCode = code; @@ -1474,15 +1474,16 @@ function closeStream(stream, code, cb) { stream.emit('aborted'); } - // Close writable side. + // Close the writable side. stream.end(); } - if (cb !== undefined) { - if (ending && !finished) - stream.on('finish', cb); + if (shouldSubmitRstStream) { + const finishFn = finishCloseStream.bind(stream, code); + if (!ending || finished || code !== NGHTTP2_NO_ERROR) + finishFn(); else - cb(); + stream.once('finish', finishFn); } } @@ -1823,7 +1824,7 @@ class Http2Stream extends Duplex { if (callback !== undefined) this.once('close', callback); - closeStream(this, code, finishCloseStream.bind(this, code)); + closeStream(this, code); } // Called by this.destroy(). @@ -1841,10 +1842,8 @@ class Http2Stream extends Duplex { const code = err != null ? NGHTTP2_INTERNAL_ERROR : (state.rstCode || NGHTTP2_NO_ERROR); - if (!this.closed) { + if (!this.closed) closeStream(this, code); - finishCloseStream.call(this, code); - } this.push(null); if (handle !== undefined) { diff --git a/test/parallel/test-http2-client-rststream-before-connect.js b/test/parallel/test-http2-client-rststream-before-connect.js index 470a3d69a43375..823c19f4ccd40c 100644 --- a/test/parallel/test-http2-client-rststream-before-connect.js +++ b/test/parallel/test-http2-client-rststream-before-connect.js @@ -68,10 +68,13 @@ server.listen(0, common.mustCall(() => { message: 'Stream closed with error code NGHTTP2_PROTOCOL_ERROR' })); - // These events should not fire as the server should receive the RST_STREAM - // frame before it ever has a chance to reply. + // The `response` event should not fire as the server should receive the + // RST_STREAM frame before it ever has a chance to reply. req.on('response', common.mustNotCall()); - req.on('end', common.mustNotCall()); + + // The `end` event should still fire as we close the readable stream by + // pushing a `null` chunk. + req.on('end', common.mustCall()); req.resume(); req.end(); From 08fa98cd04d9507a73b30444a44b815e4ef7abd5 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Mon, 23 Apr 2018 18:03:50 +0200 Subject: [PATCH 3/5] fixup: account for destroy before connect --- lib/internal/http2/core.js | 8 +++++--- test/parallel/test-http2-client-destroy.js | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/internal/http2/core.js b/lib/internal/http2/core.js index 345cb82e50103c..be5d08a0b0a1f5 100644 --- a/lib/internal/http2/core.js +++ b/lib/internal/http2/core.js @@ -492,7 +492,7 @@ function requestOnConnect(headers, options) { // At this point, the stream should have already been destroyed during // the session.destroy() method. Do nothing else. - if (session.destroyed) + if (session === undefined || session.destroyed) return; // If the session was closed while waiting for the connect, destroy @@ -1842,11 +1842,13 @@ class Http2Stream extends Duplex { const code = err != null ? NGHTTP2_INTERNAL_ERROR : (state.rstCode || NGHTTP2_NO_ERROR); + const hasHandle = handle !== undefined; + if (!this.closed) - closeStream(this, code); + closeStream(this, code, hasHandle); this.push(null); - if (handle !== undefined) { + if (hasHandle) { handle.destroy(); session[kState].streams.delete(id); } else { diff --git a/test/parallel/test-http2-client-destroy.js b/test/parallel/test-http2-client-destroy.js index 09ca011c736c96..e641335e751287 100644 --- a/test/parallel/test-http2-client-destroy.js +++ b/test/parallel/test-http2-client-destroy.js @@ -124,3 +124,21 @@ const Countdown = require('../common/countdown'); req.on('error', () => {}); })); } + +// test destroy before connect +{ + const server = h2.createServer(); + server.on('stream', common.mustNotCall()); + + server.listen(0, common.mustCall(() => { + const client = h2.connect(`http://localhost:${server.address().port}`); + + server.on('connection', common.mustCall(() => { + server.close(); + client.close(); + })); + + const req = client.request(); + req.destroy(); + })); +} From 51adabe2a11b680ae6e493a2c1bb134dbe631471 Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Mon, 23 Apr 2018 18:08:37 +0200 Subject: [PATCH 4/5] fixup: make test less brittle --- test/parallel/test-http2-client-rststream-before-connect.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/test/parallel/test-http2-client-rststream-before-connect.js b/test/parallel/test-http2-client-rststream-before-connect.js index 823c19f4ccd40c..33e22130aad19b 100644 --- a/test/parallel/test-http2-client-rststream-before-connect.js +++ b/test/parallel/test-http2-client-rststream-before-connect.js @@ -9,11 +9,6 @@ const h2 = require('http2'); const server = h2.createServer(); server.on('stream', (stream) => { stream.on('close', common.mustCall()); - stream.on('error', common.expectsError({ - code: 'ERR_HTTP2_STREAM_ERROR', - type: Error, - message: 'Stream closed with error code NGHTTP2_PROTOCOL_ERROR' - })); stream.respond(); stream.end('ok'); }); From 21f0e82e77052e5416d0c435385f0dbc18f3109c Mon Sep 17 00:00:00 2001 From: Anatoli Papirovski Date: Sat, 28 Apr 2018 08:17:16 +0200 Subject: [PATCH 5/5] fixup: clear storage early --- src/node_http2.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/node_http2.cc b/src/node_http2.cc index 4b1fc3582f227a..05d9243ee30ec0 100644 --- a/src/node_http2.cc +++ b/src/node_http2.cc @@ -1366,6 +1366,8 @@ void Http2Session::ClearOutgoing(int status) { CHECK_NE(flags_ & SESSION_STATE_SENDING, 0); if (outgoing_buffers_.size() > 0) { + outgoing_storage_.clear(); + for (const nghttp2_stream_write& wr : outgoing_buffers_) { WriteWrap* wrap = wr.req_wrap; if (wrap != nullptr) @@ -1373,7 +1375,6 @@ void Http2Session::ClearOutgoing(int status) { } outgoing_buffers_.clear(); - outgoing_storage_.clear(); } flags_ &= ~SESSION_STATE_SENDING;