"tY      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX Ertugrul Soeylemez <es@ertes.de>BA widget is essentially a full HTML page splitted into the actual ; HTML markup and its dependencies like CSS and JavaScript.  HTML body. CSS source code to add. JavaScript source code to add. CSS links to add. JavaScript links to add. Page title parts. #Widget with an HTML body fragment. DWidget with an inline CSS stylesheet rendered by Cassius or Lucius. "Widget with an external CSS link. &Widget with an inline CSS stylesheet. /Widget with an HTML body fragment from Hamlet. )Widget with an external JavaScript link. Widget with inline JavaScript. 2Widget with inline JavaScript rendered by Julius. Widget with a title segment. YBA widget can be converted into HTML with a default page template. * This should suffice for simple websites. Z;The empty widget is an HTML page with an empty body and no C dependencies. The sum of two widgets is the concatenation of the C individual HTML markups and the union of their dependencies, such G that external stylesheets or JavaScript files are only included once.      Ertugrul Soeylemez <es@ertes.de>Web request handling wires. 9Various output types. The boolean argument taken by the B constructors specifies whether a Content-length header should be F sent. If true, the string will be fully built, before being sent to  the client. UTF-8-encoded string. UTF-8-encoded HTML. Generic data output @A web exception is an HTTP status code possibly with additional  data. >Redirection exception. The second argument specifies the URI  to redirect to. =Generic web exception. This can be an internal server error ) (5xx) or document error (4xx), which don't need additional data. !Runtime configuration of a wire. Received cookies. Current path. POST parameters.  POST files. Query parameters. Current request. !Request path. "Site' s root path. # Cookies to add to the response. $ Headers to add to the response. %User site argument. &Default rendering widget. 'Wire type for simple sites. (ATypes of redirection. For temporary redirections, especially in 3 response to handling a form, you will want to use *. )Temporary redirection (307). *See other (303). +Permanently moved (301).  !"#$%&'()*+(+*)' !"#$%&  !"#$%& !"#$%&'(+*))*+ Ertugrul Soeylemez <es@ertes.de>,*Add an additional header to the response. -?Retrieves the given cookie from the request. Inhibits, if the  cookie doesn' t exist. .?Retrieve the given query parameter. Inhibits with 404, if the  parameter does not exist. /Inhibits with a 404 error. 0Sets the given cookie. 1CSets the given cookie for the root path of the current domain with E the given validity duration. If no duration is given, it becomes a  session cookie. ,-./01.,-01/,-./01 Ertugrul Soeylemez <es@ertes.de> 2Session identifiers. 3Session configuration. 45*Validity duration of the session cookies. 69Threshold of saved sessions, after which sessions can be  deleted. 7.Minimum validitity time. Younger sessions won't be killed on  the server side. 8Default session configuration. [,Generate a new session id at every instant. 99Get the current session id. Inhibits, if the client didn't have  one. :DReactive session handling. The given wire is evolved for each user  session individually. ;AGenerate a new session id and sends a cookie to the client. The 3 input signal specifies the validity duration. If \ , then the ; session is valid for the duration of the browser session. 23456789:; 3456728:9; 234567456789:; Ertugrul Soeylemez <es@ertes.de><@Remove the root request segment and add it to the current path. : Inhibits with a 404 error, if the request path is empty. =@Remove the current tail segment and add it to the request path. : Inhibits with a 404 error, if the current path is empty. >;Output the current path segment, if there is one. Outputs  \<, if there are no further path segments. In particular, if 6 the root path is requested, this wire always returns \. ?-Output the current rest of the path segment. @AIf the request root segment is the given directory, then removes F the root segment and adds it to the current path for the given wire. ADIf the request root segment is the given file and there are no more D segments, then removes the last segment and adds it to the current  path for the given wire. B=Construct the full URI to the given path from the root path. C@Construct the full URI to the given path from the current path. D:Redirect to the input URI. Inhibits with the appropriate  exception. E:Redirect to the input URI. Inhibits with the appropriate  exception. F@Output the root request path segment, if there is one. Outputs  \<, if there are no further path segments. In particular, if 6 the root path is requested, this wire always returns \. G-Output the rest of the request path segment. H:Run the given wire, if the current request path is empty.  Otherwise inhibit with 404. IOutput the current root path. JConvenience interface to D for the very common 303  redirection. KConvenience interface to D for the very common 303  redirection. LDSet the current root path. This wire also resets the current path. <=>?@ABCDEFGHIJKL@AHDEJK<=>?BCFGIL<=>?@ABCDEFGHIJKL Ertugrul Soeylemez <es@ertes.de>MBThis class represents renderable types. Each renderable type can F support rendering to several target representations like HTML, JSON,  XML, etc. AFor simple applications the predefined instances should suffice. N<Render the input value as the most appropriate output type. O8Render the input value as some appropriate output type. P Render the input value as HTML. Q&Render the input value as plain text. R4Add the input widget to the current default widget. S=Render the given renderable value as a response to the user. TRender the default widget. U3Render the given output as a response to the user. ]/Widgets render to HTML in the way specified in WebWire.Widget. ^_, strings render to fixed length plain text. `.Strings render to variable length plain text. abc) values render to a JavaScript resource. dHTML is rendered as text/&html with an assumed character set of  UTF-8. ef$ values render to a CSS stylesheet. gh7 strings render to fixed length plain text. Note that  UTF-8 encoding is assumed. MNOPQRSTU MNOPQSURT MNOPQNOPQRSTU Ertugrul Soeylemez <es@ertes.de>VAPresent a very simple plaintext error page for the given status. WCRun a simple webwire. This wire type is for simple sites (usually / just test sites or temporary sites), which don't need a custom  WebSite instance. X7Run a webwire application using the given WAI handler. WAI handler to use. Site configuration. Webwire application to run. Result of the WAI handler. VWXXWVVWX Ertugrul Soeylemez <es@ertes.de>ijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWX       !"#$%&'()*+,-./01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkljklmnopqrstuvwxyz{yz|yz}yz~yzvwvvv       webwire-0.1.0WebWire.Widget WebWire.Types WebWire.ToolsWebWire.SessionWebWire.RoutingWebWire.Render WebWire.CoreWebWireWidgetwgtBody wgtHeadCSS wgtHeadJS wgtLinkCSS wgtLinkJSwgtTitlebodyWcassiusWcssLinkWcssWhamletWjsLinkWjsWjuliusWtitleW WebOutput TextOutput HtmlOutput GenOutput WebException WebRedirect WebConfig wcCookies wcCurrentPath wcPostParams wcPostFiles wcQueryParams wcRequest wcRequestPath wcRootPath wcSetCookies wcSetHeaderswcSitewcWidget SimpleWire RedirectTypeRedirectTemporaryRedirectSeeOtherRedirectPermanent addHeader getCookie getQueryParamnotFound setCookiesetCookieSimple WebSession SessionCfg sessDuration sessThreshold sessTimeLimit defSessionCfg getSessIdsession setNewSessIdcdIncdOut currentDir currentPath directoryfilepathAbspathRelredirect redirectRaw requestDir requestPathrootDirrootPathseeOther seeOtherRawsetRoot Renderable toWebOutputtoWebOutputGentoWebOutputHtmltoWebOutputPlain addWidgetrender renderDef respondOutput simpleError simpleWirewebWire$fToHtmlWidget$fMonoidWidget genSessIdbase Data.MaybeNothing$fRenderableWidget$fRenderableText text-0.11.1.5Data.Text.InternalText$fRenderable[]$fRenderableJavascriptshakespeare-js-0.10.1 Text.Julius Javascript$fRenderableHtmlM$fRenderable[]0shakespeare-css-0.10.1Text.CssCss$fRenderableByteStringbytestring-0.9.2.0Data.ByteString.Internal ByteStringtransformers-0.2.2.0Control.Monad.IO.ClassMonadIOmonad-control-0.2.0.3Control.Monad.IO.Control liftIOOp_liftIOOp controlIO liftControlIOMonadControlIOliftIOData.Functor.IdentityIdentity runIdentity netwire-1.2.5FRP.NetWire.AnalyzepeakBylowPeaklastSeenhighPeakdiffcollectavgFpsavgAllavgFRP.NetWire.CalculusintegralderivativeFrom derivativeFRP.NetWire.Concurrent~+~~&~~*~FRP.NetWire.EventtakeFor takeEventsrepeatedlyList repeatedlyoncenotYetnevereventedgeJustedgeByedgedropFor dropEventsdelayEventsSafe delayEventsdam afterEachafterFRP.NetWire.IOliftWireexecuteFRP.NetWire.Random wackelkontakt pureNoiseR pureNoisenoiseRnoiseGennoise1noiseFRP.NetWire.Request identifiercontextLimitedInt_contextLimitedIntcontextLimited_contextLimited contextInt_ contextIntcontext_contextFRP.NetWire.SwitchswitchrSwitch rpSwitchBrpSwitchparBpardSwitchdrSwitch drpSwitchB drpSwitchFRP.NetWire.ToolstimeFromtimeswapswallowsamplerequire_requiremapAkeep injectMaybeinjectinhibit_inhibitidentityholdfreezeforbid_forbidfmodexhibitdupdiscretedelayconstantaccum>=--=>>---->FRP.NetWire.Pure stepWirePurestepSFFRP.NetWire.SessionwithWire stepWireTime stepWireDeltastepWireSessionFRP.NetWire.WirenoEvent inhibitExInhibitExceptionOutputSFTimeWire wai-0.4.2 Network.Wai responseLBSresponseEnumerator queryStringpathInfo remoteHostisSecurerequestHeaders serverPort serverNamerawQueryString rawPathInfo httpVersion requestMethodRequest ResponseFileResponseBuilderResponseEnumeratorResponsefilePartByteCountfilePartOffsetFilePart Application Middleware