h$/      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                       : None  Safe-Inferred None  http2Encoding integer with a temporary buffer whose size is 4096. No prefix is set. BS.unpack <$> encodeInteger 5 10[10]"BS.unpack <$> encodeInteger 5 1337 [31,154,10] BS.unpack <$> encodeInteger 8 42[42] http2%Integer encoding with a write buffer. http24Integer decoding. The first argument is N of prefix.decodeInteger 5 10 $ BS.empty10%decodeInteger 5 31 $ BS.pack [154,10]1337decodeInteger 8 42 $ BS.empty42 http2Integer decoding with a read buffer. The first argument is N of prefix. http2N+http2Target http2Setting prefixhttp2N+http2Target http2N+http2;The head of encoded integer whose prefix is already droppedhttp2The tail of encoded integer http2N+http2;The head of encoded integer whose prefix is already dropped None http2 Bit stream.http2Data type for Bit.http2Zerohttp2Onehttp2From  of length 8 to .fromBits [T,F,T,F,T,F,T,F]170fromBits [F,T,F,T,F,T,F,T]85Nonehttp2&let bs = BS.pack [0x12,0x34,0xf3,0xab]unpack4bits bs[1,2,3,4,15,3,10,11]unpack4bits $ BS.tail bs[3,4,15,3,10,11] Safe-InferredNoneNone#$ http2Huffman encoding.http2Is this token ix for a header not defined in the static table?hhttp2;Is this token for a header not defined in the static table?ihttp2!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"} !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiiabcdfegh !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL`MNOPQRSTUVWXYZ[\]^_None3lhttp2Errors for decoder.mhttp2Index is out of rangenhttp2+Eos appears in the middle of huffman stringohttp2,Non-eos appears in the end of huffman stringphttp2)Eos of huffman string is more than 7 bitsqhttp2.A peer set the dynamic table size less than 32rhttp2Type for table entry. Size includes the 32 bytes magic number.http2Size in bytes.http2From  to .http2Getting the size of .http2Getting .http2Getting .http2Getting .http2Getting .http2Dummy  to initialize a dynamic table.http22How many entries can be stored in a dynamic table?None http2The size of static table.http2Get  from the static table.toStaticEntry 1Entry 42 (Token {tokenIx = 0, shouldBeIndexed = True, isPseudo = True, tokenKey = ":authority"}) ""toStaticEntry 8Entry 42 (Token {tokenIx = 4, shouldBeIndexed = True, isPseudo = True, tokenKey = ":status"}) "200"toStaticEntry 50Entry 37 (Token {tokenIx = 40, shouldBeIndexed = True, isPseudo = False, tokenKey = "Range"}) ""None #$None !6http2Huffman decoding.http2Huffman decoding.http2-Low devel Huffman decoding in a write buffer.http2http2Default dynamic table size. The value is 4,096 bytes: an array has 128 entries.defaultDynamicTableSize40962lmnopqrstuvwxyz{}|~2{}|~wxyzlmnopqrstuv  Safe-Inferred#$6 !None9http2&Making a position read and its closer.http2Manipulating a file resource.http2Closing a file resource. Its refresher is automatiaclly generated by the internal timer.http2Refreshing a file resource while reading. Closing the file must be done by its own timer or something.http2Position read for files.http2How many bytes to readhttp2Offset for file.http2Position read based on ."None; http20Manager to manage the thread pool and the timer.http2$Action to be spawned by the manager.http2Starting a thread pool manager. Its action is initially set to 'return ()' and should be set by . This allows that the action can include the manager itself.http2!Setting the action to be spawned.http2Stopping the manager.http2Spawning the action.http28Adding my thread id to the kill-thread list on stopping.http2The type for weight in priority. Its values are from 1 to 256.http2The type for window size.http2Cooked version of settings. This is suitable to be stored in a HTTP/2 context.http2Association list of SETTINGS.http2 The type for raw SETTINGS value.http2The type for SETTINGS key.http2)The connection error or the stream error.http2The type for error code. See  -https://tools.ietf.org/html/rfc7540#section-7.http2The type for raw error code.http2"The length of HTTP/2 frame header.frameHeaderLength9http2 Converting  to .fromErrorCodeId NoError0"fromErrorCodeId InadequateSecurity12http2 Converting  to .toErrorCodeId 0NoErrortoErrorCodeId 0xcInadequateSecuritytoErrorCodeId 0xeUnknownErrorCode 14http2 Obtaining  from .http2 Converting  to raw value.)fromSettingsKeyId SettingsHeaderTableSize1,fromSettingsKeyId SettingsMaxHeaderBlockSize6http2Converting raw value to .toSettingsKeyId 0NothingtoSettingsKeyId 1Just SettingsHeaderTableSizetoSettingsKeyId 6Just SettingsMaxHeaderBlockSizetoSettingsKeyId 7Nothinghttp2 Checking  and reporting an error if any.*checkSettingsList [(SettingsEnablePush,2)]Just (ConnectionError ProtocolError "enable push must be 0 or 1")http2The default settings.defaultSettingsSettings {headerTableSize = 4096, enablePush = True, maxConcurrentStreams = Nothing, initialWindowSize = 65535, maxFrameSize = 16384, maxHeaderBlockSize = Nothing}http2Updating settings.updateSettings defaultSettings [(SettingsEnablePush,0),(SettingsMaxHeaderBlockSize,200)]Settings {headerTableSize = 4096, enablePush = False, maxConcurrentStreams = Nothing, initialWindowSize = 65535, maxFrameSize = 16384, maxHeaderBlockSize = Just 200}http2 The default initial window size.defaultInitialWindowSize65535http2The maximum window size. maxWindowSize 2147483647http2:Checking if a window size exceeds the maximum window size.isWindowOverflow 10FalseisWindowOverflow maxWindowSizeFalse$isWindowOverflow (maxWindowSize + 1)Truehttp2Default concurrency.recommendedConcurrency100http2Default weight. defaultWeight16http2+Default priority which depends on stream 0.defaultPriority?Priority {exclusive = False, streamDependency = 0, weight = 16}http2+Highest priority which depends on stream 0.highestPriorityPriority {exclusive = False, streamDependency = 0, weight = 256}http2 Converting  to .fromFrameTypeId FrameData0!fromFrameTypeId FrameContinuation9!fromFrameTypeId (FrameUnknown 10)10http2 Converting  to .toFrameTypeId 0 FrameDatatoFrameTypeId 9FrameContinuationtoFrameTypeId 10FrameUnknown 10http2%The maximum length of HTTP/2 payload.maxPayloadLength16384http2-The initial value of flags. No flags are set. defaultFlags0http2Checking if the END_STREAM flag is set. >>> testEndStream 0x1 Truehttp27Checking if the ACK flag is set. >>> testAck 0x1 Truehttp2(Checking if the END_HEADERS flag is set.testEndHeader 0x4Truehttp2#Checking if the PADDED flag is set.testPadded 0x8Truehttp2%Checking if the PRIORITY flag is set.testPriority 0x20Truehttp2Setting the END_STREAM flag.setEndStream 01http2Setting the ACK flag.setAck 01http2Setting the END_HEADERS flag.setEndHeader 04http2Setting the PADDED flag. setPadded 08http2Setting the PRIORITY flag. setPriority 032http2.Checking if the stream identifier for control. isControl 0True isControl 1Falsehttp23Checking if the stream identifier is from a client.isClientInitiated 0FalseisClientInitiated 1Truehttp23Checking if the stream identifier is from a server.isServerInitiated 0FalseisServerInitiated 2Truehttp2.Checking if the stream identifier for request. isRequest 0False isRequest 1Truehttp2/Checking if the stream identifier for response. isResponse 0False isResponse 2Truehttp2&Checking if the exclusive flag is set.http2Setting the exclusive flag.http2Clearing the exclusive flag.http2Getting  from .,framePayloadToFrameTypeId (DataFrame "body") FrameDatahttp22Checking if padding is defined in this frame type.isPaddingDefined $ DataFrame ""TrueisPaddingDefined $ PingFrame ""False(None#$W http2)Auxiliary information for frame encoding.http2!Flags to be set in a frame headerhttp2%Stream id to be set in a frame headerhttp2Padding if any. In the case where this value is set but the priority flag is not set, this value gets preference over the priority flag. So, if this value is set, the priority flag is also set.http2A smart builder of .encodeInfo setAck 0EncodeInfo {encodeFlags = 1, encodeStreamId = 0, encodePadding = Nothing}http2Encoding an HTTP/2 frame to . This function is not efficient enough for high performace program because of the concatenation of .0encodeFrame (encodeInfo id 1) (DataFrame "body")*"\NUL\NUL\EOT\NUL\NUL\NUL\NUL\NUL\SOHbody"http2Encoding an HTTP/2 frame to [$]. This is suitable for sendMany.http2Encoding an HTTP/2 frame header. The frame header must be completed.http2Writing an encoded HTTP/2 frame header to the buffer. The length of the buffer must be larger than or equal to 9 bytes.http2Encoding an HTTP/2 frame payload. This returns a complete frame header and chunks of payload.http2stream identifier )None #$\http2#The type for frame payload decoder.http2Decoding an HTTP/2 frame to . The second argument must be include the entire of frame. So, this function is not useful for real applications but useful for testing.http28Decoding an HTTP/2 frame header. Must supply 9 bytes.http26Checking a frame header and reporting an error if any.checkFrameHeader defaultSettings (FrameData,(FrameHeader 100 0 0))Left (ConnectionError ProtocolError "cannot used in control stream")http2Decoding an HTTP/2 frame payload. This function is considered to return a frame payload decoder according to a frame type.http2%Frame payload decoder for DATA frame.http2(Frame payload decoder for HEADERS frame.http2)Frame payload decoder for PRIORITY frame.http2+Frame payload decoder for RST_STREAM frame.http2)Frame payload decoder for SETTINGS frame.http2-Frame payload decoder for PUSH_PROMISE frame.http2%Frame payload decoder for PING frame.http2'Frame payload decoder for GOAWAY frame.http2.Frame payload decoder for WINDOW_UPDATE frame.http2-Frame payload decoder for CONTINUATION frame.http2HTTP/2 settingshttp2Input byte-streamhttp2 Decoded frameNone ]http2The preface of HTTP/2.connectionPreface""PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"http2Length of the preface.connectionPrefaceLength24*None fhttp2File specification.http21Either the next trailers maker or final trailers.http2Trailers 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 makerhttp2 Output objecthttp2Accessor for header.http2Accessor for outObj body.http2Accessor for trailers maker.http2 Input objecthttp2Accessor for headers.http26Accessor for body length specified in content-length:.http2Accessor for body.http2Accessor for trailers.http27Streaming body takes a write action and a flush action.http2Path.http2For so-called "Host:" header.http2"http" or "https".http2#TrailersMake to create no trailers.+None#$g,None%g -Noneg.None%ihttp2"The context for HTTP/2 connection.http2RFC 7540 says "Other frames (from any stream) MUST NOT occur between the HEADERS frame and any CONTINUATION frames that might follow". This field is used to implement this requirement.-/None #$i0None #$%jhttp2Running trailers-maker. *bufferIO buf siz $ \bs -> tlrmkr (Just bs)1None #$%jO2Nonejw3Nonelvhttp2Response from server.http2Request from client.http2 Client type.Nonel4None #$mhttp2Client configurationhttp2 https or httphttp2 Server namehttp24How many pushed responses are contained in the cachehttp2Running HTTP/2 client.None o http2Creating request without body.http2Creating request with file.http2Creating request with builder.http2 Creating request with streaming.http2Setting  to .http2!Getting the status of a response.http2$Getting the headers from a response.http2&Getting the body size from a response.http22Reading a chunk of the response body. An empty  returned when finished.http2Reading response trailers. This function must be called after  returns an empty.115NonepNoner#//6 Safe-Inferred#$shttp2Internal representation of priority in priority queues. The precedence of a dequeued entry should be specified to enqueue when the entry is enqueued again.http2 For test only Safe-Inferredt%7 Safe-Inferredt  Nonew http2&Abstract data type for priority trees.http2Default precedence.http2 Converting  to . When an entry is enqueued at the first time, this function should be used.http2Creating a new priority tree.http2Bringing up the structure of the priority tree. This must be used for Priority frame.http2Enqueuing an entry to the priority tree. This must be used for Header frame.http2'Checking if the priority tree is empty.http2'Checking if the priority tree is empty.http2*Dequeuing an entry from the priority tree.http2*Dequeuing an entry from the priority tree.http2$Deleting the entry corresponding to .  and 5 are used to change the priority of a live stream.  8None{r http2Additional information.http2Time handle for the worker processing this request and response.http2HTTP/2 push promise or sever push. Pseudo REQUEST headers in push promise is automatically generated. Then, a server push is sent according to .http2Accessor for a URL path in a push promise (a virtual request from a server). E.g. "/style/default.css".http24Accessor for response actually pushed from a server.http2Accessor for response weight.http2Response from server.http2Request from client.http2Server 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.  None{9None #$%|http2Worker for server applications. :None #$|whttp2Running HTTP/2 server. None http2"Getting the method from a request.http2 Getting the path from a request.http2%Getting the authority from a request.http2"Getting the scheme from a request.http2#Getting the headers from a request.http2%Getting the body size from a request.http21Reading a chunk of the request body. An empty  returned when finished.http2Reading request trailers. This function must be called after  returns an empty.http2Creating response without body.http2Creating response with file.http2Creating response with builder.http2!Creating response with streaming.http2Getter for response body size. This value is available for file body.http2Setting  to .http2Creating push promise. The third argument is traditional, not used.77;<=;<>;<?@ABCDECDFCDGCDG HIJKLMNOOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!!!!!!!!$%%%%%%%%%%''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''((((((((((()))))))))))))))***********************************0000333334444446666666666666666666           888888888888:                               """"""""""###&&''**********************************************+++,,,,,,,,,,,,,-----.............................................//////01114477777789999999999:"http2-3.0.2-BIBssYF5IA66eOaQXrDH9p Network.HPACKNetwork.HTTP2.ClientNetwork.HPACK.InternalNetwork.HPACK.TokenNetwork.HTTP2.FrameNetwork.HTTP2.InternalNetwork.HTTP2.Client.InternalNetwork.HTTP2.Priority.InternalNetwork.HTTP2.PriorityNetwork.HTTP2.Server.InternalNetwork.HTTP2.ServerImportsNetwork.HPACK.Builder!Network.HPACK.HeaderBlock.IntegerNetwork.HPACK.Huffman.Bit Network.HPACK.Huffman.ByteStringNetwork.HPACK.Huffman.ParamsNetwork.HPACK.Huffman.TableNetwork.HPACK.Huffman.EncodeNetwork.HPACK.Huffman.TreeNetwork.HPACK.TypesNetwork.HPACK.Table.EntryNetwork.HPACK.Table.StaticNetwork.HPACK.Table.RevIndexNetwork.HPACK.Huffman.DecodeNetwork.HPACK.HuffmanNetwork.HPACK.Table.DynamicNetwork.HPACK.Table Network.HPACK.HeaderBlock.Encode Network.HPACK.HeaderBlock.DecodeNetwork.HPACK.HeaderBlockNetwork.HTTP2.Arch.CacheNetwork.HTTP2.Arch.FileNetwork.HTTP2.Arch.ManagerNetwork.HTTP2.Arch.RateNetwork.HTTP2.Arch.ReadNNetwork.HTTP2.Arch.ConfigNetwork.HTTP2.Arch.StatusNetwork.HTTP2.Frame.TypesNetwork.HTTP2.Frame.EncodeNetwork.HTTP2.Frame.DecodeNetwork.HTTP2.Arch.TypesNetwork.HTTP2.Arch.QueueNetwork.HTTP2.Arch.StreamNetwork.HTTP2.Arch.EncodeFrameNetwork.HTTP2.Arch.ContextNetwork.HTTP2.Arch.HPACKNetwork.HTTP2.Arch.SenderNetwork.HTTP2.Arch.ReceiverNetwork.HTTP2.ArchNetwork.HTTP2.Client.TypesNetwork.HTTP2.Client.Run Network.HTTP2Network.HTTP2.Priority.PSQNetwork.HTTP2.Priority.QueueNetwork.HTTP2.Server.TypesNetwork.HTTP2.Server.WorkerNetwork.HTTP2.Server.Run/case-insensitive-1.2.1.0-4xEBl8iMGMs8QKiskWVBH4Data.CaseInsensitive.Internalmk foldedCaseoriginal(http-types-0.12.3-4GNA9TDzoeBAsbUUnfJUjtNetwork.HTTP.Types.MethodMethod/network-byte-order-0.1.6-3sHuH4W0kbnGhB4zuCldriNetwork.ByteOrderBuffer BufferSize BufferOverrunGCBuffer encodeIntegerencodeI decodeIntegerdecodeIencodeH encodeHuffmanTokentokenIxshouldBeIndexedisPseudotokenKey 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 isStaticTokentoToken $fEqToken $fShowToken DecodeError IndexOverrunEosInTheMiddle IllegalEos TooLongEosTooSmallTableSizeTooLargeTableSizeIllegalTableSizeUpdateHeaderBlockTruncatedIllegalHeaderNameTooLargeHeaderEncodeStrategycompressionAlgo useHuffmanCompressionAlgoNaiveStaticLinearIndexTokenHeaderList TokenHeader HeaderListHeader HeaderValue HeaderNamedefaultEncodeStrategyEntrySizetoEntry toEntryToken entrySizeentryTokenHeader entryTokenentryHeaderNameentryHeaderValue dummyEntry maxNumbersHuffmanDecoderdecodeHdecH decodeHuffman DynamicTablesetLimitForEncodingnewDynamicTableForEncodingnewDynamicTableForDecodingwithDynamicTableForEncodingwithDynamicTableForDecoding encodeHeaderencodeTokenHeaderencodeS encodeString HeaderTable ValueTablegetHeaderValue decodeHeaderdecodeTokenHeader decodeSimpledecodeSophisticated decodeStringdecodeS toHeaderTabledefaultDynamicTableSizePositionReadMakerSentinelCloser Refresher PositionRead ByteCount FileOffsetdefaultPositionReadMaker defaultReadNConfigconfWriteBufferconfBufferSize confSendAll confReadNconfPositionReadMakerconfTimeoutManagerallocSimpleConfigfreeSimpleConfig FramePayload DataFrame HeadersFrame PriorityFrameRSTStreamFrame SettingsFramePushPromiseFrame PingFrame GoAwayFrameWindowUpdateFrameContinuationFrame UnknownFrame FrameHeader payloadLengthflagsstreamIdFrame frameHeader framePayloadPaddingHeaderBlockFragmentStreamId FrameFlags FrameTypeId FrameData FrameHeaders FramePriorityFrameRSTStream FrameSettingsFramePushPromise FramePing FrameGoAwayFrameWindowUpdateFrameContinuation FrameUnknown FrameTypePriority exclusivestreamDependencyweightWeight WindowSizeSettingsheaderTableSize enablePushmaxConcurrentStreamsinitialWindowSize maxFrameSizemaxHeaderBlockSize SettingsList SettingsValue SettingsKeyIdSettingsHeaderTableSizeSettingsEnablePushSettingsMaxConcurrentStreamsSettingsInitialWindowSizeSettingsMaxFrameSizeSettingsMaxHeaderBlockSize HTTP2ErrorConnectionError StreamError ErrorCodeIdNoError ProtocolError InternalErrorFlowControlErrorSettingsTimeout StreamClosedFrameSizeError RefusedStreamCancelCompressionError ConnectErrorEnhanceYourCalmInadequateSecurityHTTP11RequiredUnknownErrorCode ErrorCodeframeHeaderLengthfromErrorCodeId toErrorCodeId errorCodeIdfromSettingsKeyIdtoSettingsKeyIdcheckSettingsListdefaultSettingsupdateSettingsdefaultInitialWindowSize maxWindowSizeisWindowOverflowrecommendedConcurrency defaultWeightdefaultPriorityhighestPriorityfromFrameTypeId toFrameTypeIdmaxPayloadLength defaultFlags testEndStreamtestAck testEndHeader testPadded testPriority setEndStreamsetAck setEndHeader setPadded setPriority isControlisClientInitiatedisServerInitiated isRequest isResponse testExclusive setExclusiveclearExclusiveframePayloadToFrameTypeIdisPaddingDefined EncodeInfo encodeFlagsencodeStreamId encodePadding encodeInfo encodeFrameencodeFrameChunksencodeFrameHeaderencodeFrameHeaderBufencodeFramePayloadFramePayloadDecoder decodeFramedecodeFrameHeadercheckFrameHeaderdecodeFramePayloaddecodeDataFramedecodeHeadersFramedecodePriorityFramedecoderstStreamFramedecodeSettingsFramedecodePushPromiseFramedecodePingFramedecodeGoAwayFramedecodeWindowUpdateFramedecodeContinuationFrameconnectionPrefaceconnectionPrefaceLengthStreamingChunkStreamingFinishedStreamingFlushStreamingBuilderNext BytesFilledDynaNextFileSpecNextTrailersMakerTrailers TrailersMakerOutObj outObjHeaders outObjBodyoutObjTrailersInpObj inpObjHeadersinpObjBodySize inpObjBodyinpObjTrailersOutBody OutBodyNoneOutBodyStreamingOutBodyBuilder OutBodyFileInpBodyPath AuthoritySchemedefaultTrailersMakerrunTrailersMakerfillBuilderBodyGetNextfillFileBodyGetNextfillStreamBodyGetNextResponseRequestClient ClientConfigscheme authority cacheLimitrun requestNoBody requestFilerequestBuilderrequestStreamingsetRequestTrailersMakerresponseStatusresponseHeadersresponseBodySizegetResponseBodyChunkgetResponseTrailers PriorityQueue baseDeficitqueueHeap Precedencedeficit dependencyDeficitKey newPrecedenceemptyisEmptyenqueuedequeuedelete PriorityTreedefaultPrecedence toPrecedencenewPriorityTreeprepare isEmptySTM dequeueSTMAux auxTimeHandle PushPromisepromiseRequestPathpromiseResponse promiseWeightServer requestMethod requestPathrequestAuthority requestSchemerequestHeadersrequestBodySizegetRequestBodyChunkgetRequestTrailersresponseNoBody responseFileresponseBuilderresponseStreamingsetResponseTrailersMaker pushPromisebaseGHC.Base++GHC.Listfilterzipmap Control.Monadguardjoin GHC.FloatFloatinglog1mexplog1pexpexpm1log1patanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtlogpiexpMonadreturn>>=>>Functor<$fmapghc-prim GHC.ClassesOrd<<=>maxmin>=compareControl.Monad.Fail MonadFailfail Applicative<*liftA2*>pure<*> Data.FoldableFoldablefoldr'foldMap'foldfoldMaptoListelemminimummaximumfoldr1productsumfoldl1foldl'foldllengthfoldrnullData.TraversablemapMsequence<>Monoidmconcatmemptymappend GHC.TypesIntGHC.IntInt8Int16Int32Int64 GHC.MaybeMaybeNothingJustOrderingGTLTEQWordGHC.WordWord8Word16Word32Word64mfilter<$!>unless replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMforever<=<>=>filterM Data.ListisSubsequenceOf mapAccumR mapAccumLforMControl.Applicativeoptional WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListForeign.ForeignPtr.ImpwithForeignPtrGHC.ForeignPtrmallocPlainForeignPtrBytesData.Functor.ConstConstgetConstfindnotElem minimumBy maximumByallanyorand concatMapconcatmsumasum sequence_ sequenceA_forM_mapM_for_ traverse_foldlMfoldrM Data.MonoidFirstgetFirstLastgetLastApgetApData.Semigroup.InternalDualgetDualEndoappEndoAllgetAllAnygetAnySumgetSumProduct getProductAltgetAlt Data.OldListunwordswordsunlineslinesunfoldrsortOnsortBysort permutations subsequencestailsinitsgroupBygroupdeleteFirstsByunzip7unzip6unzip5unzip4zipWith7zipWith6zipWith5zipWith4zip7zip6zip5zip4genericReplicate genericIndexgenericSplitAt genericDrop genericTake genericLengthinsertByinsert partition transpose intercalate intersperse intersectBy intersectunionByunion\\deleteBynubBynub isInfixOf isSuffixOf isPrefixOf findIndices findIndex elemIndices elemIndex stripPrefix dropWhileEndData.Ord comparingDowngetDownNumericshowOctshowHex showIntAtBase showHFloat showGFloatAlt showFFloatAlt showGFloat showFFloat showEFloatshowInt readSigned readFloatreadHexreadDecreadOctreadIntGHC.Read lexDigitsfromRat floatToDigits showFloat bitReverse64 bitReverse32 bitReverse16 bitReverse8 byteSwap64 byteSwap32 byteSwap16 Data.BitstoIntegralSizedpopCountDefaulttestBitDefault bitDefaultpopCountrotateRrotateL unsafeShiftRshiftR unsafeShiftLshiftLisSignedbitSize bitSizeMaybetestBit complementBitclearBitsetBitbitzeroBitsrotateshift complementxor.&..|. FiniteBitscountTrailingZeros finiteBitSizecountLeadingZerosGHC.Real showSignedunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiterate'iteratescanr1scanrscanl'scanl1scanlfoldl1'initlasttailunconshead Data.MaybemapMaybe catMaybes listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybe Data.Functorvoid<$>apliftM5liftM4liftM3liftM2liftMwhen=<<liftA3liftA<**> Alternativemanysome<|> MonadPlusmzeromplusbytestring-0.10.10.0Data.ByteString.Internal ByteStringPSBuilder<< singletonBitsBFTfromBits unpack4bitscopyidxEos huffmanTable huffmanTable'HTreetoHTreeBinTipeosInfoshowTree printTreeflattenHIndexSIndexDIndexstaticTableSize toStaticEntrystaticTableListRevIndex newRevIndex renewRevIndexlookupRevIndexlookupRevIndex'insertRevIndexdeleteRevIndexList circularTableoffset numOfEntriesmaxNumOfEntriesdynamicTableSizemaxDynamicTableSizeprintDynamicTablerenewDynamicTable insertEntryTableSizeActionIgnoreKeepChangecodeInfoCodeInfo DecodeInfotoIndexedEntryfromHIndexToIndexhuffmanDecoderisDynamicTableEmptyisSuitableSizeneedChangeTableSizeresetLimitForEncodingtoDynamicEntry getRevIndexTrueFalseCachecQueuecTickcSizecLimit emptyCacheGHC.IO.Handle.TypesHandleManagerActionstart setActionstop spawnActionaddMyId deleteMyIdtimeoutKillThread timeoutCloseRatenewRategetRate getStatus setStatus minFrameType maxFrameTypeControl CSettings0 CSettingsCFrameCGoawayCFinish OutputTypeONextOPushOWaitOObjOutputoutputSentinel outputStrmQ outputType outputObject outputStreamInput StreamTableStream streamInput streamWindow streamState streamNumber StreamStateReservedClosedHalfClosedLocalHalfClosedRemoteOpenIdle ClosedCode ResetByMeResetKilledFinished OpenStateBodyHasBodyNoBody Continued JustOpenedforkAndEnqueueWhenReady enqueueOutputenqueueControlisIdleisOpenisHalfClosedRemoteisHalfClosedLocalisClosed newStream newPushStreamreadStreamStatenewStreamTableremovesearchupdateAllStreamWindow goawayFrame resetFrame settingsFrame pingFramewindowUpdateFrameContext continuedemptyFrameRate settingsRatepingRateconnectionWindowdecodeDynamicTableencodeDynamicTablecontrolQoutputQ peerStreamId myStreamId concurrency streamTable firstSettings http2settingsroleInforoleRoleInfo ClientInfo ServerInfocacheinputQRole newServerInfo newClientInfo insertCache lookupCache newContextisClientisServergetMyNewStreamIdgetPeerStreamIDsetPeerStreamIDsetStreamStateopenedhalfClosedRemotehalfClosedLocalclosed openStream fixHeadershpackEncodeHeaderhpackEncodeHeaderLoophpackDecodeHeaderhpackDecodeTrailerjust frameSendermaxConcurrency initialFrame frameReceiver sendRequestexchangeSettingsTPriorityQueuenewworker WorkerConf readInputQ writeOutputQ workerCleanup isPushable insertStreammakePushStream fromContextgoaway