h*=i8^      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.2.1 Safe-Inferredhttp-semanticsReading n bytes.http-semanticsNaive implementation for readN.NOTE: This function is intended to be used by a single thread only. (It is probably quite rare anyway to want concurrent reads from the same network socket.)  Safe-Inferred" Uhttp-semantics(Internal representation for header keys.http-semanticsIndex for value tablehttp-semanticsshould be indexed in HPACKhttp-semanticsis this a pseudo header key?http-semanticsCase insensitive header key http-semantics6Extracting a case insensitive header key from a token. http-semantics,Extracting a folded header key from a token.?http-semanticsA place holder to hold header keys not defined in the static table. | For WarpAhttp-semantics For QPACKUhttp-semanticsMinimum token index.Vhttp-semantics0Maximun token index defined in the static table.Whttp-semanticsMaximum token index.Xhttp-semanticsToken index for !.Yhttp-semanticsIs this token ix for Cookie?Zhttp-semantics0Is this token ix to be held in the place holder?[http-semantics>Is this token ix for a header not defined in the static table?\http-semantics;Is this token for a header not defined in the static table?]http-semantics!Making a token from a header key.&toToken ":authority" == tokenAuthorityTrue toToken "foo"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = False, tokenKey = "foo"}toToken ":bar"Token {tokenIx = 73, shouldBeIndexed = True, isPseudo = True, tokenKey = ":bar"} ]UVWXZY[\  !"#$%&'()*+,-./0123456789:;<=>?@TABCDEFGHIJKLMNOPQRS  Safe-Inferred ^http-semanticsTokenBased header list._http-semanticsTokenBased header.`http-semantics%A pair of token list and value table.ahttp-semantics%A pair of token list and value table.bhttp-semanticsAn array to get d quickly. f+ should be used. Internally, the key is .chttp-semantics Header value.dhttp-semantics Field value.ehttp-semantics Field name. Internal usage only.fhttp-semantics Accessing d with .ghttp-semantics Accessing d with . ed_^`bgacf  Safe-Inferredhhttp-semantics1Either the next trailers maker or final trailers.khttp-semanticsTrailers maker. A chunks of the response body is passed with 5. The maker should update internal state with the  and return the next trailers maker. When response body reaches its end,  is passed and the maker should generate trailers. An example: {-# LANGUAGE BangPatterns #-} import Data.ByteString (ByteString) import qualified Data.ByteString.Char8 as C8 import Crypto.Hash (Context, SHA1) -- cryptonite import qualified Crypto.Hash as CH -- Strictness is important for Context. trailersMaker :: Context SHA1 -> Maybe ByteString -> IO NextTrailersMaker trailersMaker ctx Nothing = return $ Trailers [("X-SHA1", sha1)] where !sha1 = C8.pack $ show $ CH.hashFinalize ctx trailersMaker ctx (Just bs) = return $ NextTrailersMaker $ trailersMaker ctx' where !ctx' = CH.hashUpdate ctx bsUsage example: let h2rsp = responseFile ... maker = trailersMaker (CH.hashInit :: Context SHA1) h2rsp' = setResponseTrailersMaker h2rsp makerlhttp-semantics#TrailersMake to create no trailers.mhttp-semanticsRunning trailers-maker. *bufferIO buf siz $ \bs -> tlrmkr (Just bs)hjiklm  Safe-Inferred=nhttp-semanticsFile specification.phttp-semanticsHow many bytes to readqhttp-semanticsOffset for file.rhttp-semantics Output objectthttp-semanticsAccessor for header.uhttp-semanticsAccessor for outObj body.vhttp-semanticsAccessor for trailers maker.whttp-semantics Input objectyhttp-semanticsAccessor for headers.zhttp-semantics6Accessor for body length specified in content-length:.{http-semanticsAccessor for body.|http-semanticsAccessor for trailers.http-semantics to the peer. If cancelling as the result of an exception, a  should be provided which specifies the exception which will be stored locally as the reason for cancelling the stream; in this case, the error code sent with the  RST_STREAM will be INTERNAL_ERROR (see  7https://datatracker.ietf.org/doc/html/rfc7540#section-7). If # is given, the error code will be CANCEL.$If there is a partially constructed DATA frame at the time of cancellation, this frame is discarded. If this is undesirable, you should call  prior to cancelling.http-semanticsFlushThis can be used to emit a DATA frame with the data collected so far (using ), even if that DATA frame has not yet reached the maximum frame size. Calling  unnecessarily can therefore result in excessive overhead from frame headers.1If no data is available to send, this is a no-op.http-semantics7Streaming body takes a write action and a flush action.http-semanticsGeneralization of .http-semanticsPath.http-semantics Authority.http-semantics"http" or "https".%wxyz{|rstuv}~klhijqpno Safe-Inferredhttp-semanticsAdditional information.http-semanticsTime handle for the worker processing this request and response.http-semantics!Local socket address copied from Config.http-semantics"Remove socket address copied from Config.http-semanticsResponse from server.http-semanticsRequest from client.   Safe-Inferred http-semanticsAdditional information.http-semantics1How many streams can be created without blocking.http-semanticsResponse from server.http-semanticsRequest from client. Safe-Inferred \qp}~khijnowxyz{|rstuvled_^`bacgf ]UVWXZY[\  !"#$%&'()*+,-./0123456789:;<=>?@TABCDEFGHIJKLMNOPQRSwxyz{|rstuv}~klhijqpnoed_^`bgacf ]UVWXZY[\  !"#$%&'()*+,-./0123456789:;<=>?@TABCDEFGHIJKLMNOPQRS  Safe-Inferred"! Safe-Inferred#zhttp-semanticsClosing a file resource. Its refresher is automatiaclly generated by the internal timer.http-semanticsRefreshing a file resource while reading. Closing the file must be done by its own timer or something.http-semantics&Making a position read and its closer.http-semanticsPosition read for files.http-semanticsPosition read based on . Safe-Inferred"*http-semanticsHTTP/2 push promise or sever push. Pseudo REQUEST headers in push promise is automatically generated. Then, a server push is sent according to .http-semanticsAccessor for a URL path in a push promise (a virtual request from a server). E.g. "/style/default.css".http-semantics4Accessor for response actually pushed from a server.http-semanticsServer type. Server takes a HTTP request, should generate a HTTP response and push promises, then should give them to the sending function. The sending function would throw exceptions so that they can be logged..The sending function must only be called once.http-semantics"Getting the method from a request.http-semantics Getting the path from a request.http-semantics%Getting the authority from a request.http-semantics"Getting the scheme from a request.http-semantics#Getting the headers from a request.http-semantics%Getting the body size from a request.http-semantics1Reading a chunk of the request body. An empty  returned when finished.http-semanticsGeneralization of  which also returns if the  is the final onehttp-semanticsReading request trailers. This function must be called after  returns an empty.http-semanticsCreating response without body.http-semanticsCreating response with file.http-semanticsCreating response with builder.http-semantics!Creating response with streaming.http-semanticsGeneralization of .http-semanticsGetter for response body size. This value is available for file body.http-semanticsSetting k to .http-semanticsCreating push promise. The third argument is traditional, not used.7}~khijlnoqp7}~khijlnoqp Safe-Inferred"/http-semantics Client type.http-semantics(Send a request and receive its response.http-semanticsCreating request without body.http-semanticsCreating request with file.http-semanticsCreating request with builder.http-semantics Creating request with streaming.http-semanticsLike +, but run the action with exceptions maskedhttp-semanticsGeneralized version of ,http-semanticsSetting k to .http-semantics!Getting the status of a response.http-semantics$Getting the headers from a response.http-semantics&Getting the body size from a response.http-semantics2Reading a chunk of the response body. An empty  returned when finished.http-semanticsGeneralization of  which also returns if the  is the final onehttp-semanticsReading response trailers. This function must be called after  returns an empty./}~khijlnoqp/}~khijlnoqp Safe-Inferred"%&'7 http-semanticsLike =, but with additional argument indicating total bytes writtenSince http2 uses DynaNext to construct a single DATA frame, the "total number of bytes written" refers to the current size of the payload of that DATA frame.http-semantics The stream is not yet terminatedhttp-semanticsThe stream is terminatedIn addition to indicating that the stream is terminated, we can also specify an optional Cleanup handler to be run.http-semantics-Action to run prior to terminating the streamhttp-semantics$Indicate that the stream is finishedhttp-semantics%Indicate that the stream is cancelledhttp-semanticsFlush the streamThis will cause the write buffer to be written to the network socket, without waiting for more data.http-semantics9Construct a DATA frame, optionally terminating the streamhttp-semantics6Write part of a streaming response to the write bufferIn http2/ this will be used to construct a single HTTP2 DATA? frame (see discussion of the maximum number of bytes, below).http-semanticsRun the chunk, then continue as specified, unless streaming is finishedhttp-semanticsRun - until completion, then continue as specifiedhttp-semantics Write bufferhttp-semantics/Maximum number of bytes we are allowed to writeIn http2, this maximum will be set to the space left in the write buffer. Implicitly this also means that this maximum cannot exceed the maximum size of a HTTP2 frame, since in http23 the size of the write buffer is also used to set SETTINGS_MAX_FRAME_SIZE (see confBufferSize).http-semanticsInformation on the data written, and on how to continue if not all data was written Safe-Inferred7khijlmklhjim             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y y z { | } ~ ~                                +http-semantics-0.2.1-At6qnnuEIP21p6OY3GlN7kNetwork.HTTP.Semantics.ClientNetwork.HTTP.Semantics.ServerNetwork.HTTP.SemanticsNetwork.HTTP.Semantics.IO&Network.HTTP.Semantics.Server.Internal&Network.HTTP.Semantics.Client.Internalhttp-semanticsNetwork.HTTP.Semantics.ReadNNetwork.HTTP.Semantics.TokenNetwork.HTTP.Semantics.HeaderNetwork.HTTP.Semantics.TrailerNetwork.HTTP.Semantics.TypesNetwork.HTTP.Semantics.StatusNetwork.HTTP.Semantics.FileNetwork.HTTP.Semantics.FillBuf(http-types-0.12.4-9gtavp8KoLGJbmEnFA2HrGNetwork.HTTP.Types.MethodMethodReadN defaultReadNTokentokenIxshouldBeIndexedisPseudotokenKey tokenCIKeytokenFoldedKeytokenAuthority tokenMethod tokenPath tokenScheme tokenStatustokenAcceptCharsettokenAcceptEncodingtokenAcceptLanguagetokenAcceptRanges tokenAccepttokenAccessControlAllowOrigintokenAge tokenAllowtokenAuthorizationtokenCacheControltokenContentDispositiontokenContentEncodingtokenContentLanguagetokenContentLengthtokenContentLocationtokenContentRangetokenContentType tokenCookie tokenDate tokenEtag tokenExpect tokenExpires tokenFrom tokenHost tokenIfMatchtokenIfModifiedSincetokenIfNoneMatch tokenIfRangetokenIfUnmodifiedSincetokenLastModified tokenLink tokenLocationtokenMaxForwardstokenProxyAuthenticatetokenProxyAuthorization tokenRange tokenReferer tokenRefreshtokenRetryAfter tokenServertokenSetCookietokenStrictTransportSecuritytokenTransferEncodingtokenUserAgent tokenVarytokenViatokenWwwAuthenticatetokenConnectiontokenTE"tokenAccessControlAllowCredentialstokenAccessControlAllowHeaderstokenAccessControlAllowMethodstokenAccessControlExposeHeaders tokenAccessControlRequestHeaderstokenAccessControlRequestMethod tokenAltSvctokenContentSecurityPolicytokenEarlyData tokenExpectCttokenForwarded tokenOrigin tokenPurposetokenTimingAllowOrigintokenUpgradeInsecureRequeststokenXContentTypeOptionstokenXForwardedFortokenXFrameOptionstokenXXssProtectiontokenMax minTokenIxmaxStaticTokenIx maxTokenIx cookieTokenIxisCookieTokenIx isMaxTokenIxisStaticTokenIx isStaticTokentoTokenTokenHeaderList TokenHeaderTokenHeaderTable HeaderTable ValueTable HeaderValue FieldValue FieldNamegetHeaderValue getFieldValueNextTrailersMakerTrailers TrailersMakerdefaultTrailersMakerrunTrailersMakerFileSpec ByteCount FileOffsetOutObj outObjHeaders outObjBodyoutObjTrailersInpObj inpObjHeadersinpObjBodySize inpObjBodyinpObjTrailers OutBodyIface outBodyUnmask outBodyPushoutBodyPushFinal outBodyCancel outBodyFlushOutBody OutBodyNoneOutBodyStreamingOutBodyStreamingIfaceOutBodyBuilder OutBodyFileInpBodyPath AuthoritySchemeAux auxTimeHandle auxMySockAddrauxPeerSockAddrResponseRequest$fShowResponse $fShowRequestauxPossibleClientStreamsSentinelCloser RefresherPositionReadMaker PositionReaddefaultPositionReadMaker PushPromisepromiseRequestPathpromiseResponseServer requestMethod requestPathrequestAuthority requestSchemerequestHeadersrequestBodySizegetRequestBodyChunkgetRequestBodyChunk'getRequestTrailersresponseNoBody responseFileresponseBuilderresponseStreamingresponseStreamingIfaceresponseBodySizesetResponseTrailersMaker pushPromiseClient SendRequest requestNoBody requestFilerequestBuilderrequestStreamingrequestStreamingUnmaskrequestStreamingIfacesetRequestTrailersMakerresponseStatusresponseHeadersgetResponseBodyChunkgetResponseBodyChunk'getResponseTrailers IsEndOfStreamNotEndOfStream EndOfStream CleanupStreamStreamingChunkStreamingFinishedStreamingCancelledStreamingFlushStreamingBuilderNext CancelNext BytesFilledDynaNextfillBuilderBodyGetNextfillFileBodyGetNextfillStreamBodyGetNextbase GHC.MaybeJustbytestring-0.11.5.2Data.ByteString.Internal.Type ByteStringNothing getStatus setStatusGHC.IO.Handle.TypesHandle NextWithTotalrunStreamingChunkrunStreamingBuilder Data.ByteString.Builder.InternalBuilder