úÎ!D@€:      !"#$%&'()*+,-./0123456789None"#QV?T engine-io>The application to run for the duration of a connected socket. engine-io˜An IO action to run for the duration of the socket's lifetime. If this action terminates, the connection will be closed. You will likely want to loop : and block as appropriate with . engine-io>An action to execute when the connection is closed, either by + terminating, or the client disconnecting. engine-io:An opaque data type representing an open Engine.IO server. engine-io[A dictionary of functions that Engine.IO needs in order to provide communication channels. engine-io Retrieve the ;G of query parameters in the request path to their zero-or-more values. engine-io—Send a response with the given status code, content type and body. This should also terminate the web request entirely, such that further actions in m have no effect.  engine-ioRun a < against the request body.  engine-iovGet the request method of the current request. The request method should be in uppercase for standard methods (e.g., GET).  engine-io9Upgrade the current connection to run a WebSocket action.  engine-ioA connected Engine.IO session. engine-io]The type of unique Engine.IO sessions. This is currently a base64-encoded random identifier. engine-io4The possible types of transports Engine.IO supports. engine-ioXHR long polling. engine-ioHTML 5 websockets. engine-ioA  is a stream of 0-or-more s. engine-ioThe contents attached to a packet. Engine.IO makes a clear distinction between binary data and text data. Clients will receive binary data as a Javascript  ArrayBuffer , where as %s will be received as UTF-8 strings. engine-ioA single Engine.IO packet. engine-io0The possible packet types, as mentioned in the 0https://github.com/Automattic/engine.io-protocol Engine.IO protocol documentation engine-ioParse bytes as an ; assuming the packet contents extends to the end-of-input.= engine-ioParse a 3, nested another parser for the body of the packet. engine-io Encode a  to a >s. The first argument determines whether or not binary is supported - if not, binary data will be base 64 encoded. engine-ioParse a stream of bytes into a . engine-io Encode a  to a > . As with Q, the first argument determines whether or not binary transmission is supported. engine-ioAttempt to parse a ! from its textual representation. engine-ioCReceive data from the client, blocking if the input queue is empty.  engine-io:Send a packet to the client. This is a non-blocking write.! engine-io!P initializes a new Engine.IO server. You can later serve this session by using #." engine-ioRetrieve a list of all# currently open Engine.IO sessions.# engine-ioxBuild the necessary handler for Engine.IO. The result of this function is a computation that you should serve under the  engine.io path.#o takes a function as an argument that is called every time a new session is created. This function runs in the m™ monad, so you have access to initial web request, which may be useful for performing authentication or collecting cookies. This function then returns a L, describing the main loop and an action to perform on socket disconnection.$ engine-io Create a new ?ÿP action to read the socket's raw incoming communications. The result of this call is iteslf an STM action, which when called will return the next unread incoming packet (or block). This provides you with a separate channel to monitor incoming communications. It may be useful to monitor this to determine if the socket has activity.sThis is a fairly low level operation, so you will receive *all* packets - including pings and other control codes. engine-ioOIf true, all bytes can be used. Otherwise, the packet will be base 64 encoded. engine-ioOIf true, all bytes can be used. Otherwise, the packet will be base 64 encoded.%  !"#$%!#    "$@      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGH'engine-io-1.2.22-AZU6Xa1o5HuKmFwyFmkoEENetwork.EngineIO SocketAppsaAppsaOnDisconnectEngineIO ServerAPIsrvGetQueryParamssrvTerminateWithResponsesrvParseRequestBodysrvGetRequestMethodsrvRunWebSocketSocketsocketIdSocketId TransportTypePolling WebsocketPayload PacketContent BinaryPacket TextPacketPacket PacketType parsePacket encodePacket parsePayload encodePayloadparseTransportTypereceivesend initializegetOpenSocketshandler dupRawReader$fToJSONTransportType $fOrdSocket $fEqSocket$fToJSONOpenMessage$fBoundedPacketType$fEnumPacketType$fEqPacketType$fReadPacketType$fShowPacketType$fEqPacketContent$fShowPacketContent $fEqPacket $fShowPacket $fEqPayload $fShowPayload$fEqTransportType$fShowTransportType$fBoundedEngineIOError$fEnumEngineIOError$fEqEngineIOError$fShowEngineIOErrorbase Control.Monadforever3unordered-containers-0.2.9.0-HQtYJEH7265DslRAJ09vVDData.HashMap.BaseHashMap*attoparsec-0.13.2.2-4Z8uH7Qwf3h4Q3UbkfAfXs#Data.Attoparsec.ByteString.InternalParser parsePacket'bytestring-0.10.8.2 Data.ByteString.Builder.InternalBuilderghc-prim GHC.TypesIO