!㑵      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneFSXL snap-serverSparks off a new thread using \ to run the given IO computation, but first labels the thread with the given label (using  labelThreadBs).The implementation makes sure that asynchronous exceptions are masked until the given computation is executed. This ensures the thread will always be labeled which guarantees you can always easily find it in the GHC event log.Like , the given computation is given a function to unmask asynchronous exceptions. See the documentation of that function for the motivation. Returns the  of the newly created thread. snap-serverLike N, but lets you specify on which capability (think CPU) the thread should run. snap-serverLabel the current thread. snap-serverLatin-1 encoded label snap-serverLatin-1 encoded label snap-server CapabilitySafe None2  None2Mq SafeNone2XYr snap-serverArguments passed to K. snap-server;A record type which represents partial configurations (for  httpServe&) by wrapping all of its fields in a 7. Values of this type are usually constructed via its " instance by doing something like: setPort 1234 mempty(Any fields which are unspecified in the  passed to  httpServe@ (and this is the norm) are filled in with default values from #. snap-server<Data type representing the configuration of a logging target snap-server no logging snap-serverlog to text file snap-serverlog custom IO handler snap-serverFIXME/Note: this type changed in snap-server 1.0.0.0." snap-serverReturns a completely empty . Equivalent to  from Config's  instance.# snap-server,These are the default values for the options$ snap-serverLThe hostname of the HTTP server. This field has the same format as an HTTP Host header; if a Hostr header came in with the request, we use that, otherwise we default to this value specified in the configuration.% snap-serverPath to the access log& snap-serverPath to the error log' snap-serverCGets the locale to use. Locales are used on Unix only, to set the LANG/LC_ALLD/etc. environment variable. For instance if you set the locale to "en_US5", we'll set the relevant environment variables to " en_US.UTF-8".( snap-server(Returns the port to listen on (for http)) snap-server)Returns the address to bind to (for http)* snap-server)Returns the port to listen on (for https)+ snap-server*Returns the address to bind to (for https), snap-server Path to the SSL certificate file- snap-server Path to the SSL certificate file. snap-serverPath to the SSL key file/ snap-serverPFile path to unix socket. Must be absolute path, but allows for symbolic links.0 snap-server)Access mode for unix socket, by default is system specific. This should only be used to grant additional permissions to created socket file, and not to remove permissions set by default. The only portable way to limit access to socket is creating it in a directory with proper permissions set.;Most BSD systems ignore access permissions on unix sockets.Note: This uses umask. There is a race condition if process creates other files at the same time as opening a unix socket with this option set.1 snap-server@If set and set to True, compression is turned on when applicable2 snap-server0Whether to write server status updates to stderr3 snap-server'A MonadSnap action to handle 500 errors7 snap-server|A startup hook is run after the server initializes but before user request processing begins. The server passes, through a R object, the startup hook a list of the sockets it is listening on and the final 1 object completed after command-line processing.M snap-serverThe *s opened by the server. There will be two *s for SSL connections, and one otherwise.R snap-serverNReturns a description of the snap command line options suitable for use with System.Console.GetOpt.S snap-server Returns a E obtained from parsing command-line options, using the default Snap  set.-On Unix systems, the locale is read from the LANG environment variable.T snap-server Returns a E obtained from parsing command-line options, using the default Snap b set as well as a list of user OptDescrs. User OptDescrs use the "other" field (accessible using 5 and Im) to store additional command-line option state. These are combined using a user-defined combining function.-On Unix systems, the locale is read from the LANG environment variable.R snap-serverthe configuration defaults.S snap-server.default configuration. This is combined with #v to obtain default values to use if the given parameter is specified on the command line. Usually it is fine to use " here.T snap-server7Full list of command line options (combine yours with R* to extend Snap's default set of options) snap-server[State for multiple invoked user command-line options will be combined using this function. snap-server5default configuration. This is combined with Snap's #w to obtain default values to use if the given parameter is specified on the command line. Usually it is fine to use " here.V  ! "#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV  ! "#STQRU%)143&$'5(6+,-.*27/09=EHG:8;I<J?@AB>FCDKMNLOPNonec\ snap-server-Configure Snap in direct / non-proxying mode.] snap-serverAssert that Snap is running behind an HTTP proxy, and that the proxied connection information will be stored in the "X-Forwarded-For" or "Forwarded-For" HTTP headers.^ snap-serverNAssert that Snap is running behind a proxy running the HaProxy protocol (see  9http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txtM). In this mode connections that don't obey the proxy protocol are rejected.;"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNQRSTU\]^;"#STQRU%)143&$'5(6+,.-*27/09=EHG:8;I<J?@BA>FCDKMN\]^ Nonee  Trustworthy2FSXi snap-server:an internal version of the headers part of an HTTP request snap-serverTA version of elemIndex that doesn't allocate a Maybe. (It returns -1 on not found.)NoneSXl snap-server thread label snap-server capability snap-server0user thread action, taking a restore function snap-server thread label snap-server0user thread action, taking a restore functionNoneSXz7 snap-serverGiven a d value and the current time, apply the given modification function to the amount of time remaining. snap-serverCreate a new TimeoutManager. snap-serverStop a TimeoutManager. snap-server.Register a new thread with the TimeoutManager. snap-serverTickle the timeout on a connection to be at least N seconds into the future. If the existing timeout is set for M seconds from now, where M > N, then the timeout is unaffected. snap-server@Set the timeout on a connection to be N seconds into the future. snap-server+Modify the timeout with the given function. snap-serverCancel a timeout. snap-serverdefault timeout snap-server poll interval snap-serverfunction to get current time snap-servermanager to register with snap-server thread label snap-serverthread action to run NoneSX_ snap-serverzEither the server should start listening on the given interface / port combination, or the server should start up with a  that has already had bind() and listen() called on it.b snap-serverA bC is called if the user handler requests that a file be sent using  sendfile(); on systems that support it (Linux, Mac OSX, and FreeBSD).c snap-serverfThis function, provided to the web server internals from the outside, is responsible for producing a ! once the server has parsed the .g snap-serverCAll of the things a session needs to service a single HTTP request.i snap-server|If the bool stored in this IORef becomes true, the server will close the connection after the current request is processed.j snap-server3An IO action to modify the current request timeout.k snap-serverThe value stored in this IORef is True if this request is the first on a new connection, and False if it is a subsequent keep-alive request.l snap-server(The function called when we want to use  sendfile().m snap-server'The server's idea of its local address.n snap-serverThe listening port number.o snap-serverThe address of the remote user.p snap-serverThe remote user's port.q snap-server&The read end of the socket connection.r snap-server'The write end of the socket connection.s snap-server8Data and services that all HTTP response handlers share.} snap-serverwill be overridden by a Host header if it appears. snap-server Number of accept loops to spawn. snap-serverThe N is called if the user handler escapes the HTTP session, e.g. for websockets. snap-serverThe  is called if an exception reaches the toplevel of the server, i.e. if an exception leaks out of the user handler or if an exception is raised during the sending of the HTTP response data. snap-serverThe Q is called once the server has finished sending the HTTP response to the client. snap-serverThe  is called once the user handler has finished running, but before the data for the HTTP response starts being sent to the client. snap-serverThe m is called after the HTTP Request has been parsed by the server, but before the user handler starts running. snap-serverThe  is called once processing for an HTTP request begins, i.e. after the connection has been accepted and we know that there's data available to read from the socket. The IORef passed to the hook initially contains a bottom value that will throw an exception if evaluated.b snap-serverbuilder buffer snap-serverstatus line and headers snap-server file to send snap-server start offset snap-servernumber of bytesc snap-serverglobal server config snap-serverper-connection data snap-serverHTTP request object(_`abcdefghkmnopjilqrst~uvwxyz{|}(st~uvwxyz{|}ghkmnopjilqrbcdef_`aNone2XrNone2SX  snap-serverFor each cpu, we store: * An accept thread * A TimeoutManager * An mvar to signal when the timeout thread is shutdown  snap-serverThe main Snap webserver loop. Given a server handler, configuration, and a function to accept new connections, runs an HTTP loop forever over N threads, until a ThreadKilled exception is received.  snap-serverConvert   into   for output.  snap-serverserver handler snap-server server config snap-serveraccept function  4None-_`abcdgs-sgbcd_`aNoneSX  snap-serverHolds the state for a logger. snap-serverCreates a new logger, logging to the given file. If the file argument is "-", then log to stdout; if it's "stderr" then we log to stderr, otherwise we log to a regular file in append mode. The file is closed and re-opened every 15 minutes to facilitate external log rotation. snap-serverLike , but uses a custom error action if the logger needs to print an error message of its own (for instance, if it can't open the output file.) snap-serverbCreates a Logger and passes it into the given function, cleaning up with "stopLogger" afterwards. snap-serverCreates a Logger with "newLoggerWithCustomErrorFunction" and passes it into the given function, cleaning up with "stopLogger" afterwards. snap-server/Prepares a log message with the time prepended. snap-server,Prepares a log message in "combined" format. snap-serverSends out a log message verbatim with a newline appended. Note: if you want a fancy log message you'll have to format it yourself (or use ). snap-serverPKills a logger thread, causing any unwritten contents to be flushed out to disk snap-serverlog file to use snap-server=logger uses this action to log any error messages of its own snap-serverlog file to use snap-serverlog file to use snap-server=logger uses this action to log any error messages of its own snap-serverlog file to use snap-server remote host snap-server remote user snap-serverArequest line (up to you to ensure there are no quotes in here) snap-server status code snap-servernum bytes sent snap-server<referer (up to you to ensure there are no quotes in here) snap-server?user agent (up to you to ensure there are no quotes in here) SafȇNone snap-serverout fd (i.e. the socket) snap-serverin fd (i.e. the file) snap-serveroffset in bytes snap-servercount in bytesNoneSX snap-servermock setSocketOption snap-server bindSocket snap-serverlisten snap-server bound socket  snap-server bound socket! snap-server bound socket"# !$NoneXq snap-server1A short string describing the Snap server version snap-serverStarts serving HTTP requests using the given handler. This function never returns; to shut down the HTTP server, kill the controlling thread.This function is like N except it doesn't setup compression, reverse proxy address translation (via %9), or the error handler; this allows it to be used from &. snap-serverNStarts serving HTTP requests using the given handler, with settings from the d passed in. This function never returns; to shut down the HTTP server, kill the controlling thread. snap-serverStarts serving HTTP using the given handler. The configuration is read from the options given on the command-line, as returned by SZ. This function never returns; to shut down the HTTP server, kill the controlling thread. snap-serverbGiven a string like "en_US", this sets the locale to "en_US.UTF-8". This doesn't work on Windows. snap-serverserver handler snap-server server config snap-serverlistening server backendsA"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKMNQRSTU\]^' !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwwxyyz{|}~G[                     !"#$%&&''(()*+,-.,./0123456789:;*snap-server-1.1.1.2-6aP0MsjipsPGRLpIatKm9t Snap.Internal.Http.Server.ConfigSnap.Http.Server.ConfigSnap.Internal.Http.Server.TypesSnap.Http.Server.TypesSystem.FastLoggerSnap.Http.ServerControl.Concurrent.ExtendedPaths_snap_server!Snap.Internal.Http.Server.AddressSnap.Internal.Http.Server.Clock Snap.Internal.Http.Server.CommonSnap.Internal.Http.Server.Date Snap.Internal.Http.Server.Parser Snap.Internal.Http.Server.Thread(Snap.Internal.Http.Server.TimeoutManagerSnap.Internal.Http.Server.TLS!Snap.Internal.Http.Server.SessionSystem.SendFile.LinuxSystem.SendFile Snap.Internal.Http.Server.Socket StartupInfostartupHookConfigstartupHookSocketsConfighostname accessLogerrorLoglocaleportbindsslportsslbindsslcert sslchaincertsslkey unixsocketunixaccessmode compressionverbose errorHandlerdefaultTimeoutother proxyType startupHook ConfigLog ConfigNoLog ConfigFileLog ConfigIoLog ProxyTypeNoProxyHaProxyX_Forwarded_For emptyConfig defaultConfig getHostname getAccessLog getErrorLog getLocalegetPortgetBind getSSLPort getSSLBind getSSLCertgetSSLChainCert getSSLKey getUnixSocketgetUnixSocketAccessModegetCompression getVerbosegetErrorHandlergetDefaultTimeoutgetOther getProxyTypegetStartupHook setHostname setAccessLog setErrorLog setLocalesetPortsetBind setSSLPort setSSLBind setSSLCertsetSSLChainCert setSSLKey setUnixSocketsetUnixSocketAccessModesetCompression setVerbosesetErrorHandlersetDefaultTimeoutsetOther setProxyTypesetStartupHookemptyStartupInfogetStartupSocketsgetStartupConfigsetStartupSocketssetStartupConfigcompleteConfig optDescrscommandLineConfigextendedCommandLineConfigfmapOpt$fShowConfigLog$fMonoidConfig$fSemigroupConfig $fShowConfig$fShowProxyType $fEqProxyTypenoProxy xForwardedForhaProxy SocketConfigStartListeningPreBoundSendFileHandler ServerHandler AcceptFunc runAcceptFuncPerSessionData_forceConnectionClose_twiddleTimeout_isNewConnection_sendfileHandler _localAddress _localPort_remoteAddress _remotePort_readEnd _writeEnd ServerConfig _logAccess _logError _onNewRequest_onParse_onUserHandlerFinished_onDataFinished _onException _onEscape_localHostname_defaultTimeout _isSecure_numAcceptLoopsEscapeSnapHook ExceptionHookDataFinishedHookUserHandlerFinishedHook ParseHookNewRequestHookemptyServerConfig getLogAccess getLogErrorgetOnNewRequest getOnParsegetOnUserHandlerFinishedgetOnDataFinishedgetOnException getOnEscapegetLocalHostname getIsSecuregetNumAcceptLoops setLogAccess setLogErrorsetOnNewRequest setOnParsesetOnUserHandlerFinishedsetOnDataFinishedsetOnException setOnEscapesetLocalHostname setIsSecuresetNumAcceptLoopsgetTwiddleTimeoutisNewConnectiongetLocalAddress getLocalPortgetRemoteAddress getRemotePortLogger newLogger newLoggerWithCustomErrorFunction withLogger!withLoggerWithCustomErrorFunctiontimestampedLogEntrycombinedLogEntrylogMsg stopLoggersnapServerVersion rawHttpServesimpleHttpServe httpServequickHttpServesetUnicodeLocaleforkIOLabeledWithUnmaskBsbase GHC.Conc.SyncforkIOWithUnmaskThreadIdforkOnLabeledWithUnmaskBslabelMeversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameAddressNotSupportedException getHostAddrgetHostAddrImpl getAddressgetAddressImpl getSockAddrgetSockAddrImpl ClockTimesleepFor sleepSecs getClockTimefromSecstoSecs Data.IORefatomicModifyIORef' eatException GHC.MaybeMaybeGHC.BaseMonoidmempty&network-3.1.1.1-Izwsyk64OoDBVuRysfRa9DNetwork.Socket.TypesSocketSystem.Console.GetOptOptDescr getDateStringgetLogDateStringIRequest elemIndex)io-streams-1.5.1.0-2GGdVKs8weUCXXGjZlizAy'System.IO.Streams.Attoparsec.ByteStringparseFromStream(snap-core-1.0.4.1-BGAyHSDtUpP7iB593qeNyISnap.Internal.Parsing parseCookieparseUrlEncodedHttpParseExceptioniMethod iRequestUri iHttpVersioniRequestHeaders iStdHeadersgetStdContentLength getStdHostgetStdTransferEncoding getStdCookiegetStdContentTypegetStdConnection parseRequestreadChunkedTransferEncodingwriteChunkedTransferEncodingforkOnfork SnapThreadcancelwait cancelAndWait isFinishedsmapState initializestopregisterticklesetmodifyTimeoutManager TimeoutThreadSnap.Internal.Http.TypesResponseRequest TLSExceptionwithTLS bindHttpshttpsAcceptFunc sendFileFunc EventLoopCpuhttpAcceptLoop cookieToBSCookiebytestring-0.10.8.2Data.ByteString.Internal ByteStringLengthRequiredExceptionBadRequestExceptionTerminateSessionExceptionsnapToServerHandler httpSession<+>sendFile sendFileImpl sendFileMode sendHeaderssendHeadersImplbindSocketImplacceptAndInitializehaProxyAcceptFunchttpAcceptFunc bindSocketbindUnixSocketSnap.Util.Proxy behindProxySnap.Internal.Core MonadSnap