!R      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~   !!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""" " " " " """"""""""""""""""" "!"""#"$"%"&"'"(")"*"+","-"."/"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'z'{'|'}'~()****+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-------------------------------------- - - - - ------------------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-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/S0T1U2V3W4X5Y6Z7[8\8]8^8_8`8a9b9c:d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;z;{;|;}<~<<<<<<<<==>?@ABBBBCDEFGGGGGGHIJKKLMNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOXP*Dynamically generated configuration moduleSafeANglircCTransitive dependencies for this package computed at configure-timeglircpackage name, version numberBinding to ecdsatool(c) Eric Mertens, 2016ISCemertens@gmail.comNoneJ>glircRIdentifier for SASL ECDSA challenge response authentication using curve NIST256P. ECDSA-NIST256P-CHALLENGEglirc;Encode a username as specified in this authentication mode.glirc5Compute the response for a given challenge using the  ecdsatool( executable which must be available in PATH.glircauthorization identity glircauthentication identity glirc!private key file glirc!challenge string glirc!error message or response string Marshaling support for C API(c) Eric Mertens, 2016ISCemertens@gmail.comNone"#v-glircPointer to UTF-8 encoded string and as string length. Strings are null-terminated. The null-terminator is not counted in the length.glircUsed to pass arguments from /extension EXT_NAME# client command into an extension.glircRChat message data containing the source network, window target, and message body. glirc struct glirc_messageglircarrayglirc array lengthglircarrayglircarrayglirc array lengthglirc@Information describing an extension's entry-points and metadata.glircOptional startup callbackglircOptional shutdown callbackglirc"Optional message received callbackglircOptional message send callbackglirc Optional client command callback glircNull-terminated name!glircextension version"glircextension version#glirceType of dynamic function pointer wrappers. These convert C function-pointers into Haskell functions.$glirc%Callback function when timer triggers%glircInteger type of timer IDs&glirc Jtypedef void process_chat(void *glirc, void *S, const struct glirc_chat *)'glirc Ptypedef void process_command(void *glirc, void *S, const struct glirc_command *)(glirc _typedef enum process_result process_message(void *glirc, void *S, const struct glirc_message *))glirc 'typedef void stop(void *glirc, void *S)*glirc 2typedef void *start(void *glirc, const char *path)+glircIResult used to determine what to do after processing a message with the ( callback.| enum process_result-glircLTag for describing the kind of message to display in the client as used in  glirc_print. See 5 and 6. enum message_code;/glirc!Dynamic import for timer callback0glircDynamic import for &.1glircDynamic import for '.2glircDynamic import for (.3glircDynamic import for ).4glircDynamic import for *.5glirc]Normal client message. Unread counter increments, but no client bell or error status update.6glirc[Important client message. Unread counter increments, bell rings, and error status updates.7glirc6Allow the message to proceed through the client logic.8glirc)Drop the message from further processing.9glircLike  except it doesn't write to NULL:glirc7Marshal a text as a malloced null-terminated CStringLen;glirc8Marshal a text as a temporary null-terminated CStringLen<glirc struct glirc_string=glirc struct glirc_command>glirc struct glirc_message@glirc struct glirc_extension$glirctimer state glirctimer ID &glircextension state glircchat info 'glircextension state glirccommand (glircextention state glircmessage to send )glircextension state *glircapi token glircpath to extension glircarray of arguments glircnumber of arguments glircinitialized extension state 9  !"#$%&'()*+,-./0123456789:;9 !"*)('&$%  #43210/-.56+,78;:93Argument specifications used within client commands(c) Eric Mertens, 2017ISCemertens@gmail.comSafe&'H{4Rglircrequired names glircoptional names CFDEGHIJKLMNOPQRJOLMRPQNKGHICFDE-Interpret argument specifications as a parser(c) Eric Mertens, 2017ISCemertens@gmail.comSafe&'}gSS Implementation of slash commands(c) Eric Mertens, 2016ISCemertens@gmail.comNone4 Xglirc Settings for /exec command.RWhen no network or channel are specified the output is sent to the client window.YWhen only a network is specified the output is sent as raw IRC commands to that network.mWhen only a channel is specified the output is sent as messages on the current network to the given channel.uWhen the network and channel are specified the output is sent as messages to the given channel on the given network.Zglircoutput network[glircoutput channel\glirccommand filename]glirc stdin source^glirccommand argumentsglircDefault values for /exec to be overridden by flags.hglircParse the arguments to /exec> looking for various flags and the command and its arguments.iglircCExecute the requested command synchronously and return the output.glircPower words is similar to ? except that when it encounters a word formatted as a Haskell B literal it parses it as such. Only space is used as a delimiter.hglircexec arguments glircerror or parsed command iglircexec configuration glircerror lines or output lines TUVWXYZ[\]^fghiXYZ[\]^TUVWgfhi9Parser and evaluator for string interpolation in commands(c) Eric Mertens, 2016ISCemertens@gmail.comSafe&'SXpglirc%Parsed chunk of an expandable commandqglirc regular textrglircinline variable $x or ${x y}sglircinline variable $1 or ${1}tglirc bracketed variable with default ${x|lit}uglirc2Specification used when unspecified, no arguments.wglircParse a / searching for the expansions as specified in p. $$ is used to escape a single $.xglircAttempt to expand all of the elements in the given list using the two expansion functions. If the expansion of any chunk fails the whole expansion fails.xglircvariable resolution glircargument index resolution glircchunks glircconcatenated, expanded chunks jklmnopqrstuvwxpqrstwxlmnojkvuTrie for recognizing commands(c) Dan Doel, 2016ISCemertens@gmail.comSafe41|glirc%Possible results of recognizing text.}glirc.text matched exactly, yielding the given value~glirc8text would be recognized if joined to the given suffixesglirc%text could not possibly be recognizedglirc A map from  values to au values that is capable of yielding more detailed information when looking up keys that are not actually in the map.glircTMatch common prefixes of two strings in a more convenient form than available from QRglirc*Attempt to recognize a string, yielding a | result.glircCreate a singleton  associating the given  and value.glirc Union two  RecognizersR. The stored values in the result are biased to the left if there is key overlap.glircUnion an arbitrary number of  Recognizers as with .glirc Create a _ from an association list. If a key appears twice, the earliest associated value will be used.glircAdd a key-value pair to a >. This will override the value already present if one exists.glirc1Compute all strings that will be recognized by a .glircAuxiliary function for . |~} |~}*Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.comNone0glircAParse a text attribute. This value should be a sections with the fg and/or bg attributes. Otherwise it should be a color entry that will be used for the foreground color. An empty sections value will result in glirc#Parse a color. Support formats are:Number between 0-255 Name of colorRGB values of color as a listglirc4Match integers between 0 and 255 as Terminal colors.glirckConfiguration section that matches 3 integers in the range 0-255 representing red, green, and blue values. Configuration schema for macros(c) Eric Mertens, 2017ISCemertens@gmail.comNone0 STS policy configuration(c) Eric Mertens, 2019ISCemertens@gmail.comNone0 Programmable keyboard actions(c) Eric Mertens, 2016ISCemertens@gmail.comNoneSX6glircCLookup table for keyboard events to actions. Use with keyToAction.glirc/Actions that can be invoked using the keyboard.glirc/Names and default key bindings for each action.bNote that Jump, Insert and Ignored are excluded. These will be computed on demand by keyToAction.glirc%Render action as human-readable text.glircCLookup the action to perform in response to a particular key event.glirc&Bind a keypress event to a new action.glirc(Unbind the action associated with a key.glircDefault key bindingsglircactions glircjump modifier glircwindow names glircactual modifier glirckey glircaction glirc modifiers glirc key glirc action glirc actions glirc modifiers glirc key glirc actions 22 -Human-readable versions of connection failure(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircBCompute the message message text to be used for a connection errorglircnetwork error glircclient lines glircnetwork error glircclient lines  'Hooks into the operation of the client.(c) Dan Doel, 2016ISCdan.doel@gmail.comNoneیglircIdentifying name for the hookglirc0Whether the remapping should affect client stateglirc"(Partial) message remapping actionglircThe possible results of a 2 action. A hook can decline to handle a message (), filter out a message (9), or change a message into an arbitrary other message ().glirccontinue processingglirc stop processing and drop messageglirc&stop processing and return new messageglirc$Apply the given message hooks to an A. The hooks are tried in order until one handles the message. A 9 result means the message was filtered out by a hook. A  result contains the actual  to be processed. %Hook to remap znc buffextras messages(c) Dan Doel, 2016ISCdan.doel@gmail.comNonewglircMap ZNC's buffextras messages to native client messages. Set debugging to pass through buffextras messages that the hook doesn't understand.glirc arguments glircenable debugging Packed vty Image type(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircPacked, strict version of & used for long-term storage of images.glirc"Width in terms of terminal columnsglirc image width *Parser for mIRC's text formatting encoding(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircEParse mIRC encoded format characters and hide the control characters.glircParse mIRC encoded format characters and render the control characters explicitly. This view is useful when inputting control characters to make it clear where they are in the text.glirc"Safely render a control character.glirc Render a  with default attributes and replacing all of the control characters with reverse-video letters corresponding to caret notation.Chat message view(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircTrailing space with default attributes deals with bug in VTY where the formatting will continue past the end of chat messages. This adds an extra space if a line doesn't end on the terminal edge.glircCThis version of line wrap wraps without regard for word boundaries.glircXList of image widths suitable for breaking the image on that correspond to word breaks.glirc%Drop the leading spaces from an imageglircterminal width glircunwrapped image glircwrapped image glircterminal width glircunwrapped image glircwrapped image glircterminal width glircprefix image glircunwrapped image glircwrapped image glircfirst line length glircimage glircsplits glircfirst line length glircimage glircsplits 'Palette of colors used to render the UI(c) Eric Mertens, 2016ISCemertens@gmail.comNone  sglirc.Color palette used for rendering the client UIglirchighlighting nicknamesglircown nickname(s)glircown nickname(s) in mentionsglircmessage timestampsglirccoalesced metadataglircsigils (e.g. @+)glircinformation labelsglirc ping latencyglirc window nameglircerror messagesglirctextbox markersglircwindow name with activityglircwindow name with mentionglirc known commandglirc%known command with complete arguments glircprefix of known command glircunknown command glirccommand argument placeholder glircDivider between split windows glirc$Divider between new and old messagesglircchannel mode attributesglircuser mode attributesglircsnotice mask attributes)glircBDefault UI colors that look nice in my dark solarized color schemeglircSDefault nick highlighting colors that look nice in my dark solarized color scheme.*glircTList of palette entry names and lenses for accessing that component of the palette.2      !"#$%&'()*2      !%"($'&#*)6Interpretation of argument specification as a renderer(c) Eric Mertens, 2017ISCemertens@gmail.comNone&'!+glircpalette glircenvironment glircrender placeholders glircspecification glircuser input ++None x-glirc4Compile a list of masks down to a single, reuseable ,% value suitable for being used with ..7Masks can match zero-to-many arbitrary characters with *.-Masks can match one arbitrary character with ?.Literal * ? and |$ can be matched with a preceding @@.ZMissing host or username components of a mask will automatically be treated as wildcards..glircDetermine if a given , matches a given glirccParse a mask into the nick, user, and hostname components while replacing omitted components with "*".glircLTranslate from the languge of masks to the language of regular expressions.Masks support the * (many) and ?! (one) wildcards. Wildcards and *@ can be escaped by preceding them with a G@. All other uses of @@ are treated as matching the literal backslash.glircGreturns True iff the charactr is a regular expression meta character: ^$\.|*?+()[]{}-glircmasks ,-.,.-IRC channel session state(c) Eric Mertens, 2016ISCemertens@gmail.comNone)!7glirc5Dynamic information about the state of an IRC channel9glirc topic text:glircauthor and timestamp for topic;glirc channel URL<glircuser list and sigils=glircchannel settings and parameters>glircmode, mask, setter, set time?glirccreation time of channel@glircdelayed op messagesPglircConstruct an empty 7QglircAdd a user to the user listRglirc Remove a user from the user listSglircRename a user in the user listTglircSet the channel topic#/0123456789:;<=>?@DEFGHIJKLMNOPQRST#789:;<=>?@HIJKFEDG/012NO3456LMPTQRSCTCP DCC transfer handling(c) Ruben Astudillo, 2019ISCruben.astud@gmail.comNoneXkB_glircWStructure with information of a download accepted via "/dcc accept" or "/dcc resume"aglirc1If Nothing, the thread was killed and stopped.bglircPercentage of progresscglirc"Status of a connection at certain Keyjglirc3All the necessary information to start the downloadnglirc!String of the IPv4 representationpglircGuaranteed to be just the nameqglirc=Size of the whole file, per protocol restricted to 32-bitsrglirc'Byte from where the transmission startsglirc$Smart constructor for new DCCOffers.glircALaunch a supervisor thread for downloading the offer referred by Key( and return the DCCState accordingly.glircglircsending the current size to the fileserver. As an independent acknowledgement stream, it doesn't match the protocol, but matches what other clients and servers do in practice.glirc Generate  PercentUpdate for each percent of download.glirc)This function can only be called after a cancel0 has been issued on the supervisor thread at KeyglircParse a "DCC SEND" command.glircParse a "DCC RESUME" command.glircAssuming little-endianglirc"Check the status of a download at Key" by checking the invariants at DCCStateglircKCraft a CTCP message indicating we want to resume a download at the offset.glirc Modify the DCCState following the corresponding  DCCUpdateglircCheck if the payload of a DCC CTCP message is SENDglircoffset glircoffer glirc(target, txt) 7UWVXYZ[\]^_`abcdefghijklmnopqrsz{|}~7[\]^jklmnopqrs}|{z~_`abcdefghiUWVXYZMessages to be added to buffers(c) Eric Mertens, 2016ISCemertens@gmail.comNoneGglircChghost commandglircAccount commandglirc7Compute a searchable text representation of the message9Types for representing the current window being displayed(c) Eric Mertens, 2016ISCemertens@gmail.comNoneXglircCurrently focused windowglirc No networkglircNetworkglircNetwork Channel/NickglircFilter argument for glirc no filterglirconly network windowsglirconly channel windowsglirconly user windowsglirc Subfocus viewglirc Show messagesglircShow channel metadataglircShow channel user listglircShow DCC offers listglirc%Show channel mask list for given modeglircShow client windowsglircShow current paletteglircShow all mentionsglircShow all digraphsglircShow key bindingsglirc&Show help window with optional commandglircShow GHC RTS statisticsglircShow ignored masksglircShow rendered certificateglirc4Return the network associated with the current focusglircUnfocused first, followed by focuses sorted by network. Within the same network the network focus comes first and then the channels are ordered by channel identifierglircnetwork 2Types and operations for managing message buffers.(c) Eric Mertens, 2016ISCemertens@gmail.comNone@AqVglirc;Flag for the important of a message being added to a windowglircDon't update unread countglircIncrement unread countglirc-Increment unread count and set important flagglircA J tracks all of the messages and metadata for a particular message buffer.glirc!Messages to display, newest firstglirc1Location of line drawn to indicate newer messagesglirc'Messages added since buffer was visibleglircMessages in bufferglirc&Indicates an important event is unreadglircHide metadata messagesglircA single message to be displayed in a window. The normal message line consists of the image prefix and the image. This allows line wrapping to be applied separately to the image and prefix so that wrapped messages can fall to the right side of the prefix.glirc Summary valueglircNormal rendered image prefixglircNormal rendered imageglircDetailed rendered imageglircImportance of messageglircA window with no messagesglirc~Adds a given line to a window as the newest message. Window's unread count will be updated according to the given importance.glirc?Update the window clearing the unread count and important flag.glirc8Update the window when it first becomes active. If only boringE messages have been added since last time the marker will be hidden.glirciUpdate the window when it becomes inactive. This resets the activity marker to the bottom of the window.--(Type for tracking user, host and account(c) Eric Mertens, 2019ISCemertens@gmail.comNonevy glircKPair of username and hostname. Empty strings represent missing information. glircusername glirchostnameglircservices account        3View current palette and to see all terminal colors(c) Eric Mertens, 2016ISCemertens@gmail.comNonezglircGenerate lines used for /palettet. These lines show all the colors used in the current palette as well as the colors available for use in palettes.SSafe}zglirccontext before glirccontext after glircpredicate glircinputs glircmatches with context T/Template Haskell quasi-quoter for digraph table(c) Eric Mertens, 2017ISCemertens@gmail.comSafe"UCharacter mnemonics(c) Eric Mertens, 2016ISCemertens@gmail.comSafeglirc+States for the digraph lookup state machineglirc!ready to match two-character nameglirc)first character matched, ready for secondglirc(both characters matched, return the nextglircskip the next two charactersglircskip the next characterglirc[Find the entry in the digraph table give a two-character key and return the matched value.$Multiline text container with cursor(c) Eric Mertens, 2016ISCemertens@gmail.comNoneiglirc0Zipper-ish view of the multi-line content of an EditBox . Lines $ the  are stored in reverse order.&glircDefault  value'glirc Single line .(glirc!Shifts the first line off of the =, yielding the text of the line and the rest of the content.)glirclWhen at beginning of line, jump to beginning of previous line. Otherwise jump to beginning of current line.*glircVWhen at end of line, jump to end of next line. Otherwise jump to end of current line.+glirc0Move the cursor left, across lines if necessary.,glirc1Move the cursor right, across lines if necessary.-glirc3Move the cursor left to the previous word boundary..glirc0Move the cursor right to the next word boundary./glirc'Delete the character before the cursor.0glirc,Delete the character after/under the cursor.1glirc/Insert character at cursor, cursor is advanced.2glircSmarter version of 3 that removes spurious newlines.3glircOInsert string at cursor, cursor is advanced to the end of the inserted string.glirc)Advance to the beginning of the next lineglirc'Retreat to the end of the previous line5glircmUse the two characters preceeding the cursor as a digraph and replace them with the corresponding character. $%&'()*+,-./01234567$%'&(76 +,-.)*0/23145Console-mode text box(c) Eric Mertens, 2016ISCemertens@gmail.comNoneO DglircDefault = valueglircDSets the given string to the yank buffer unless the string is empty.EglircIndicate that the contents of the text box were successfully used by the program. This clears the first line of the contents and updates the history.FglircAUpdate the editbox to reflect the earlier element in the history.Gglirc?Update the editbox to reflect the later element in the history.Hglirc.Jump the cursor to the beginning of the input.Iglirc(Jump the cursor to the end of the input.JglircLDelete all text from the cursor to the end and store it in the yank buffer.KglircRDelete all text from the cursor to the beginning and store it in the yank buffer.Lglirc%Insert the yank buffer at the cursor.MglircKKill the content from the cursor back to the previous word boundary. When yank( is set the yank buffer will be updated.NglircJKill the content from the curser forward to the next word boundary. When yank' is set the yank buffer will be updatedOglirc8Insert a character at the cursor and advance the cursor.Mglircyank Nglircyank ) $%'(+,-./0349:;<=BCDEFGHIJKLMNOPQ)=DBC' ($%0/HIKJMNL4+,-.OP3FGEQ9:;<Tab-completion logic(c) Eric Mertens, 2016ISCemertens@gmail.comNone Sglirc'Class for types that are isomorphic to > and which can support a total order and a prefix predicate. VW ( x) == x  (VW x) == x VX x y ==> x  y TglircDCheck if the first argument is a lexicographic prefix of the second.Uglirc Convert to a .Vglirc!Word completion prefix and suffix\glirc3Word completion without adding any prefix or suffix]glirc>Word completion adding a ": " suffix at the beginning of lines^glirc+Word completion using a "@" prefix intended_glirc&Perform word completion on a text box.The leading update operation is applied to the result of tab-completion when tab completing from the beginning of the text box. This is useful when auto-completing a nick and including a trailing colon.The reversed parameter indicates that tab-completion should return the previous entry. When starting a fresh tab completion the priority completions will be considered in order before resorting to the set of possible completions.glircFind the word preceeding the cursor skipping over any characters that can be found in the prefix and suffix for the current completion mode.glircRFind the next entry in a list of possible choices using an alphabetical ordering._glircleading update operation glirc reversed glircpriority completions glircpossible completions glircreversed glircsearch prefix glircprevious result glircposibilities SUTVWXYZ[\]^_ SUT_VWXYZ[\]^)Settings for an individual IRC connection(c) Eric Mertens, 2016ISCemertens@gmail.comNone06cglirc1Fingerprint used to validate server certificates.dglircSHA-1 fingerprinteglircSHA-2 256-bit fingerprintfglircSHA-2 512-bit fingerprintgglirc'Security setting for network connectionhglircTLS connectioniglirc+TLS connection without certificate checkingjglircPlain connectionkglirc%Hook name and configuration argumentsmglircGRegular expression matched with original source to help with debugging.oglirc'SASL mechanisms and configuration data.pglirc-SASL PLAIN RFC4616 - authzid authcid passwordqglirc SASL NIST -  $https://github.com/kaniini/ecdsatool - authzid keypathrglircSASL EXTERNAL RFC4422 - authzidtglirc Constant textuglircCommand to generate textzglircStatic server-level settings|glircconnection nicknames}glircconnection username~glircconnection realname / GECOSglircserver passwordglircSASL mechanismglircserver hostnameglirc server portglircuse TLS to connectglircverify TLS hostnameglircpath to client TLS certificateglircpath to client TLS keyglircclient key PEM passwordglirc0additional CA certificates for validating serverglircOpenSSL cipher suiteglirc*optional acceptable public key fingerprintglirc+optional acceptable certificate fingerprintglircHonor STS policies when trueglirc.commands to execute upon successful connectionglirchostname of SOCKS proxyglircport of SOCKS proxyglirc"Channels with chanserv permissionsglircFlood limiter penalty (seconds)glirc!Flood limited threshold (seconds)glircInitial message hooksglirc+The name referencing the server in commandsglirc1The number of reconnect attempts to make on errorglirc<Regular expression for ERROR messages that trigger reconnectglirc)Connect to this network on server startupglirc$Nick completion mode for this serverglircDirectory to save logs of chatglircLocal bind hostglircRender account namesglirc-Extra capabilities to unconditionally requestglirc!The defaults for server settings.glirc{Match fingerprints in plain hex or colon-delimited bytes. SHA-1 is 20 bytes. SHA-2-256 is 32 bytes. SHA-2-512 is 64 bytes. 00112233aaFF 00:11:22:33:aa:FF glirc[Run the secret commands in a server configuration replacing them with secret text. Throws glircKRun a command if found and replace it with the first line of stdout result.ecdefghijklmnopqrstuvwxyz{|}~ez{|}~klopqrstughijcdefvwxymn #Interface to the connection package(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglirc Create a new 6 which will be closed when the continuation finishes.!Event-based network IO(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglirc-Exceptions used to kill connections manually.glircsent when ping timer expiresglirc*sent when client commands force disconnectglirc2sent when the client disconnects due to sts policyglirc,STARTTLS was expected by server had an errorglircThe sum of incoming events from a network connection. All events are annotated with a network ID matching that given when the connection was created as well as the time at which the message was recieved.glirc;Event for successful connection to host (certificate lines)glirc!Event indicating TLS is in effectglirc/Event for a new recieved line (newline removed)glirc?Report an error on network connection network connection failedglirc8Final message indicating the network connection finishedglircHandle for a network connectionglircnSignals that the server is ready to initiate the TLS handshake. This is a no-op when not in a starttls state.glircSchedule a message to be transmitted on the network connection. These messages are sent unmodified. The message should contain a newline terminator.glirc(Force the given connection to terminate.glirc9Initiate a new network connection according to the given zR. All events on this connection will be added to the given queue. The resulting ^ value can be used for sending outgoing messages and for early termination of the connection.glircdelay in seconds "*Client configuration format and operations(c) Eric Mertens, 2016ISCemertens@gmail.comNone "#0SX?r2glircJConfiguration information for run-time loaded dynamic library extensions.glircpath to shared objectglircdynamic linker flagsglirc%arguments to the extension on startupglirc0Failure cases when loading a configuration file.glirc-Error message from reading configuration fileglirc"Error message from parser or lexerglirc/Error message from loading parsed configurationglirc/Vertically stack all windows in a single columnglirc1Vertically stack extra windows in a second columnglirc*Setting for how to pad the message prefix.glirc.Whitespace add to the left side of chat prefixglirc/Whitespace add to the right side of chat prefixglircNo whitespace addedglirc\Top-level client configuration information. When connecting to a server configuration from $ is used where possible, otherwise  is used.glircDefault connection settingsglircHost-specific settingsglircUser-customized color paletteglirc(Names of windows, used when alt-jumping)glircExtra highlight nicks/termsglircPadding of nicks in messagesglirc(Directory for downloads, default to HOMEglirccommand macrosglircextensions to loadglircpaths to url opening executableglircinitial ignore mask list glirc(initially visibility of the activity bar glircnotify terminal on mention glirc+default setting for hidemeta on new windows glirckeyboard bindings glircDefault layout on startupglircvisibility of ping timeglirc!Modifier used for jumping windowsglircdefault instance glircThe default client behavior for naming windows is to use the first two rows of a QWERTY keyboard followed by the first two rows combined with SHIFT.,glircUses     to find ~.config glirc/config-glirc*Load the configuration file defaulting to ~.glircconfig.UGiven configuration path is optional and actual path used will be returns on success glircIResolve all the potentially relative file paths in the configuration file glirc Check if the `download-dir`` is actually a directory and writeable, throw a ConfigurationMalformed exception if it isn't.glirc<The default nick padding side if padding is going to be usedglirc5Either full or abbreviated nick-padding configuration nick-padding: 10 'nick-padding: side: right width: 16glirc Full nick padding specification: &nick-padding: side: left width: 15glirc@Parse either a single modifier key or a list of modifier keys: meta, alt, ctrlglirc Parse either  one-column or  two-column and return the corresponding  value.glirckParse a single key binding. This can be an action binding, command binding, or an unbinding specification.glircYParse a single action key binding. Action bindings are a map specifying a binding using  and an action: $bind: "M-a" action: jump-to-activityglircCCustom configuration specification for emacs-style key descriptionsglircDefault dynamic linker flags:  RTLD_LOCAL and RTLD_NOWglirc[Given only a filepath build an extension configuration that loads the extension using the  and no arguments.glircFull extension configuration allows the RTLD flags to be manually specified. This can be useful if the extension defines symbols that need to be visible to libraries that the extension is linked against.-glircpath to configuration file glirc defaults /glircconfiguration file path ?      !"#$%&'()*+,-./0?     $#'"!& %*+)-,.(/0#Renderer for message lines(c) Eric Mertens, 2016ISCemertens@gmail.comNonexv"2glircAn identifier in a PRIVMSG3glircAn identifier somewhere else4glirc%Level of detail to use when rendering5glirconly render nicknames6glircrender full user info7glirc'Parameters used when rendering messages9glircrestricted message sigils:glirc sender sigils;glircnicknames to highlight<glircnicknames to highlight in red=glircnick color palette?glircDefault 7& with no sigils or nicknames specified@glircWConstruct a message given the time the message was received and its render parameters.glirc+Render the sigils for a restricted message.glirc Render a ; given the sender's sigils and the nicknames to highlight.glirc Render a ; given the sender's sigils and the nicknames to highlight.Cglirc Render a  as time using quiet attributes 23:15 glirc Render a A as full date and time user quiet attributes. Excludes the year. 07-24 23:15:10 DglircOptionally add padding to an input image according to the specified mode. If the input image is already wider than the specified padding mode, the image is returned unmodified.glircQRender the sender of a message in normal mode. This is typically something like  @nickname: glircRender a chat message given a rendering mode, the sigils of the user who sent the message, and a list of nicknames to highlight.!glircRender a chat message given a rendering mode, the sigils of the user who sent the message, and a list of nicknames to highlight."glircProcess list of } as individual IRC formatted words separated by a special separator to distinguish parameters from words within parameters.#glircProcess list of " as individual IRC formatted words$glircETransform string representing seconds in POSIX time to pretty format.%glircJRender string representing seconds into days, hours, minutes, and seconds.Eglirc*Render a nickname in its hash-based color.FglircRender an a full user. In normal mode only the nickname will be rendered. If detailed mode the full user info including the username and hostname parts will be rendered. The nickname will be colored.GglircGRender an identifier without using colors. This is useful for metadata.HglircParse message text to construct an image. If the text has formatting control characters in it then the text will be rendered according to the formatting codes. Otherwise the nicknames in the message are highlighted.&glircGiven a list of nicknames and a chat message, this will generate an image where all of the occurrences of those nicknames are colored.IglircKReturns image and identifier to be used when collapsing metadata messages.Jglirc:Image used when treating ignored chat messages as metadataKglircARender the normal view of a chat message line padded and wrapped.@glirctime of message glircrender parameters glircmessage body glircprefix, image, full glircsigils Dglirc padding mode glirc input image glirc padded image Eglirccolor palette glircdraw mode glircmy nicknames glircidentifier to draw Fglirccolor palette glircmode glircmy nicks glircuserinfo to drawHglirc palette glirc my nicks glirc other nicks glircexplicit controls rendering glirc input text glirc colored text &glirc my nicks glirc other nicks Kglircpalette glircdraw columns glircnick padding glircwindow line glircwrapped lines 132456789:;<=>?@ABCDEFGHIJK789:;<=>456132?@IJGFEBADCKH$(Line renderers for ignore mask list view(c) Eric Mertens, 2016ISCemertens@gmail.comNone~ Lglirc-Render the lines used in a channel mask list.'glirc7Render a summary describing the number of ignore masks.Lglirc ignore masks glirc palette 'glirc ignore masks glirc palette LL%Support for logging IRC traffic(c) Eric Mertens, 2016ISCemertens@gmail.comNoneMglirc:Log entry queued in client to be written by the event loopOglirc"log directory from server settingsPglirc localtime dayQglircchannel or nicknameRglircformatted log message textSglirc,Write the given log entry to the filesystem.Tglirc Ignore all IOErrorsUglirc Construct a M for the given < when appropriate. Only chat messages result in a log line.Sglirc log line Uglircmessage glirclog directory glirctarget MNRQPOSTU MNRQPOSTU& Dynamically loaded extension API(c) Eric Mertens, 2016ISCemertens@gmail.comNone"#MSXF(glirc.Continuation-passing style bracked IO actions.VglircInformation about a loaded extension including the handle to the loaded shared object, and state value returned by the startup callback, and the loaded extension record.Xglirc$Struct of callback function pointersYglirc&Handle of dynamically linked extensionZglirc'State value generated by start callback`glirc3The symbol that is loaded from an extension object."Extensions are expected to export: "struct galua_extension extension; aglirc:Find the earliest timer ready to run if any are available.bglirc2Schedue a new timer event for the given extension.cglirc&Remove a timer from the schedule by IDdglircLoad the extension from the given path and call the start callback. The result of the start callback is saved to be passed to any subsequent calls into the extension.fglircWCall the stop callback of the extension if it is defined and unload the shared object.gglircCall all of the process chat callbacks in the list of extensions. This operation marshals the IRC message once and shares that across all of the callbacks.Returns )< to pass message to client. Returns 'False to drop message.hglircCall all of the process message callbacks in the list of extensions. This operation marshals the IRC message once and shares that across all of the callbacks.Returns )< to pass message to client. Returns 'False to drop message.iglircBNotify an extension of a client command with the given parameters.jglirc Marshal a * into a  ; which will be valid for the remainder of the computation.lglircReturn the bracket IO action.+glircIWrap up a bracketing IO operation where the continuation takes 1 argument,glircIWrap up a bracketing IO operation where the continuation takes 2 argument aglirc extension glirc:earlier time, callback, callback state, updated extension bglircactivation time glirccallback function glirccallback state glircextension cglirc timer ID glirc extension dglircextension configuration eglircclient stable pointer glircextension configuration glircactive extension glircextension state gglircextension glircserialized chat message glircallow message hglircextension glircserialized IRC message glircallow message iglirccommand glircextension to command jglirc network glirc message kglircnetwork glirctarget glircmessage -glirccommand VWXYZ[\]^_`abcdefghijklVWXYZ[\]^_`defhigabclkjYSafe<./012345'"Processing of command-line options(c) Eric Mertens, 2016ISCemertens@gmail.comNone` qglircCommand-line optionssglircconfiguration file pathtglircinitial networksuglircdisable autoconnectvglircshow help messagewglircshow version messagexglirc+show version of ALL transitive dependenciesyglircshow configuration file format6glircDefault values for q7glircOption descriptions}glircuLoad command line options. This action will terminate early in the case of the version flag, help flag, or an error.8glircReturns  "-SOMEHASH" when in a git repository, "" otherwise.9glircReturns "-dirty"! when in a dirty git repository, "" otherwise. qrstuvwxyz{|} qrstuvwxyz{|}Z.Human readable interface to GHC RTS statistics(c) Eric Mertens, 2017ISCemertens@gmail.comSafe:;<(View current GHC RTS statistics(c) Eric Mertens, 2017ISCemertens@gmail.comNone~glircGenerate lines used for  /rtsstats.~~[1Template Haskell quasi-quoter for string literals(c) Eric Mertens, 2017ISCemertens@gmail.comSafe=)<Hook for sorting some service notices into separate windows.(c) Eric Mertens 2019ISCemertens@gmail.comNoneã*(Hook for interpreting FreFrelay messages(c) Eric Mertens 2019ISCemertens@gmail.comNone>glircThe class allows n-ary functions of the form `Text -> Text -> ... -> IrcMsg` to be used to exhaustively consume the matched elements of a regular expression.glirc[Hook for mapping frerelay messages in #dronebl on freenode to appear like native messages.?glircNRemap messages from frerelay on #dronebl that match one of the rewrite rules.@glircwGenerate a replacement message for a chat message from frerelay when the message matches one of the replacement rules.AglircrMatch the message against the regular expression and use the given consume to consume all of the captured groups.Bglirc;Compile a regular expression for using in message matching.CglircCConstruct dummy user info when we don't know the user or host part. @glircchannel glircmessage Aglirccapture consumer glircregular expression glircmessage Bglircregular expression glircerror or compiled expression Dglirc channel glirc nickname glirc message Eglirc channel glirc nickname glirc message Fglirc channel glirc server glirc nickname glirc username glirc hostname Gglircchannel glircserver glircnickname glircreason wrapper glircreason Hglirc server glirc nickname glirc quit message Iglirc server glirc old nick glirc new nick Jglirc channel glirc server glirc kickee nick glirc kicker nick glirc reason Kglirc channel glirc server glirc nickname glirc modes Cglirc nickname +Available hooks(c) Dan Doel, 2016ISCdan.doel@gmail.comNoneߗglirc All the available message hooks.\Strict unit type(c) Eric Mertens, 2016ISCemertens@gmail.comSafewLglircUnit data type with a strict M and N instances.OglircP is strictQglircR is strict, S is O(1)LT]Lens utility functions(c) Eric Mertens, 2016ISCemertens@gmail.comNoneUglircModify the target of a Vd with a function. The result is strict in the results of applying the function. Strict version of WXglirc9Set a value strictly in the set value. Strict version of Y.Zglirc[ to the \ component of a ]glirc[" to the 'TimeOfDay component of a \.^glirc[" to the 'TimeOfDay component of a \.UXZ]^,IRC network session state(c) Eric Mertens, 2016ISCemertens@gmail.comNone*,8glircTimer-based eventsglirc'terminate the connection due to timeoutglirctransmit a ping to the serverglirc#erase latency (when it is outdated)glircno message restrictionglircSTARTTLS hasn't finishedglirc$No messages allowed until TLS startsglircStatus of the ping timerglirc)ping sent at given time, waiting for pongglircnot waiting for a pongglirc.number of attempts, last known connection timeglirc'State of the authentication transactionglircno active transactionglircPLAIN mode initiatedglircECDSA-NIST mode initiatedglirc*ECDSA-NIST user sent waiting for challengeglircEXTERNAL mode initiatedglirc%State tracked for each IRC connectionglircjoined channelsglircnetwork socketglircchannel mode meaningsglircuser mode meaningsglircchannel identifier prefixesglirc!state for multi-message sequencesglircmodes for the connected userglirc*server notice modes for the connected userglirc)modes that prefix statusmsg channel namesglirc!settings used for this connectionglirc/usermask used by the server for this connectionglirc!user and hostname for other nicksglirc%maximum mode changes per MODE commandglircname of network connectionglirc2names of message hooks to apply to this connectionglirctime for next ping eventglirc%latency calculated from previous pongglircstate of ping timerglirctime of last message receivedglirc Transmit a *; on the connection associated with the given network. For PRIVMSG and NOTICEF overlong commands are detected and transmitted as multiple messages.glircqConstruct a new network state using the given settings and default values as specified by the IRC specification._glircUsed for updates to a  that require no reply.`glirc Restrict A to only users are in a channel that the client is connected to.aglirc001 b is the first message received when transitioning from the initial handshake to a connected state. At this point we know what nickname the server is using for our connection, and we can start scheduling PINGs.cglircHandle d errors when connecting.eglirc8Pick a random nickname now that we've run out of choicesfglirc'Add an entry to a mode list transactiongglircKSave a completed ban, quiet, invex, or exempt list into the channel state.hglirc[These replies are interpreted by the client and should only be shown in the detailed view.glircReturn ) for messages that should be hidden outside of full detail view. These messages are interpreted by the client so the user shouldn't need to see them directly to get the relevant information.glirc>Predicate to test if the connection has op in a given channel.iglirc7Process a CHGHOST command, updating a users informationjglircProcess a list of WHO repliesglirc:Compute the earliest timed action for a connection, if anykglircCompute the timed action for forgetting the ping latency. The client will wait for a multiple of the current latency for the next pong response in order to reduce jitter in the rendered latency when everything is fine.lglirc9Compute the next action needed for the client ping logic.glircApply the given  to a connection state.glircUsed to send commands that require ops to perform. If this channel is one that the user has chanserv access and ops are needed then ops are requested and the commands are queued, otherwise send them directly. glircnetwork name glircserver settings glircactive network connection glircinitial ping status glircinitial random seed glircnew network state aglircmessage received glircmy nickname cglirc bad nickname fglircmask glircset by glirc set time gglircmode glircchannel mglirctime of message glircsender glircchannel glircmode flags glircmode parameters nglircnetwork state glircserver caps glirccaps to enable oglirc  "key=value"iglirc nickname glirc new username glirc new hostname glircchannel glirccommands glircnetwork state glircchannel glircnetwork state glircchanserv available glircchannel glirctopic glircnetwork state WW-/Primary client state type and update operations(c) Eric Mertens, 2016ISCemertens@gmail.comNoneUpglirc.ID of active extension and stored client stateglircState of the extension API including loaded extensions and the mechanism used to support reentry into the Haskell runtime from the C API.oWhen executing inside an extension the mvar will contain the client state and the ID of the running extension.qglircactive extensionsrglircs used to with  clientParktglircu used with  clientParkglirc(All state information for the IRC clientglircclient message buffersglircpreviously focused bufferglirc"focus prior to jumping to activityglirccurrently focused bufferglirccurrent view modeglircextra messages windows to viewglircstate of active connectionsglircincoming network event queueglirc DCC subsystemglircDCC update eventsglircclient configurationglircclient configuration file pathglircprimary text boxglirc"size to crop from left of text boxglirccurrent terminal widthglirccurrent terminal heightglircbuffer scroll linesglircuse detailed rendering modeglircvisible activity barglircvisible ping timeglircoptional persistent filterglirclayout mode for split screenglircsound a bell next drawglirc ignored masksglirc,precomputed ignore regular expression (lazy)glircstate of loaded extensionsglirclog lines ready to writeglirctransient error box textglircmost recent GHC RTS statsglircSTS policy entriesvglircSelection function used in w%glircx for finding the I associated with a given network if that connection is currently active.&glirc-The full top-most line that would be executed'glirc*The line under the cursor in the edit box.(glircConstruct an initial  using default values.)glircTForcefully terminate the connection currently associated with a given network name.+glirc;Add a message to the window associated with a given channelyglirc5Extract the status mode sigils from a message target.zglircbCompute the importance of a message to be used when computing change notifications in the client.{glircTPredicate for messages that should be ignored based on the configurable ignore list,glircCPredicate for nicknames to determine if messages should be ignored.-glircARecord a message in the windows corresponding to the given target|glirc2Compute the sigils of the user who sent a message.}glirc&Compute sigils for a user on a channel~glircDetect error messages and add the message text to the transient error display. The transient message will not be generated if the user is focused on the window where the message is going to be rendered, anyway..glirc$Record a message on a network windowglircFRecord window line at the given focus creating the window if necessaryglirc& but with mostly defaulted parameters.0glirc2Function applied to the client state every redraw.glircAMark the messages on the current window (and any splits) as seen.1glirc@Add the textbox input to the edit history and clear the textbox.2glircCReturns the current network's channels and current channel's users.3glirc Returns the V% associated with the current network.glirc9Returns the current filtering predicate if one is active.8glirc;Compute the command and arguments currently in the textbox.9glirc=Regular expression for matching HTTP/HTTPS URLs in chat text.:glircFind all the URL matches using 9 in a given ) suitable for being opened. Surrounding < and > are removed.;glircRemove a network connection and unlink it from the network map. This operation assumes that the network connection exists and should only be applied once per connection.<glirc<Start a new connection. The delay is used for reconnections.>glircgQueue a DCC transfer when the message is correct. Await for user confirmation to start the download.glircWhen a nick change happens and there is an open query window for that nick and there isn't an open query window for the new nick, rename the window.?glirc0Scroll the current buffer to show newer messages@glirc1List of extra focuses to display as split windowsAglircJump the focus of the client to a buffer that has unread activity. Some events like errors or chat messages mentioning keywords are considered important and will be jumped to first.BglircBJump the focus directly to a window based on its zero-based index.CglircChange the window focus to the given value, reset the subfocus to message view, reset the scroll, remember the previous focus if it changed.DglirciUnified logic for assigning to the extra focuses field that activates and deactivates windows as needed.EglircNChange the subfocus to the given value, preserve the focus, reset the scroll.Fglirc$Return to previously focused window.GglircVStep focus to the next window when on message view. Otherwise switch to message view.HglircZStep focus to the previous window when on message view. Otherwise switch to message view.IglircVStep focus to the next window when on message view. Otherwise switch to message view.wglircStep focus to the next window when on message view. Otherwise switch to message view. Reverse the step order when argument is ).JglircbCompute the set of extra identifiers that should be highlighted given a particular network state.Kglirc\Compute the set of extra identifiers that should be highlighted given a particular network.Lglirc;Produce the list of window names configured for the client.Mglirc;Produce the list of window names configured for the client.Nglirc@Returns the list of network names that requested autoconnection.Oglirc Toggle the  hide metadata setting for the focused window.vglircwindows before current window glircwindows after current window glircwindow to focus %glircnetwork 'glircline number, line content )glircnetwork +glircnetwork glircchannel glirc message glirc target glirc client state yglircpossible modes glirctarget glircactual modes, actual target ,glirc target user glirc client state glirc is ignored -glircnetwork |glircnetwork glircchannel glircsigils }glircnetwork glircchannel glircuser glircsigils /glircnow glircnetwork glircerror message glircclient state glircnetwork glirc channels 4glircnetwork glircchannel glircnicks glircclient state glircoptional predicate 8glirc!client state glirc!command name and argument string <glircattempts glircoptional disconnect time glircSTS upgrade port glircnetwork name =glirctimestamp glircmessage received glircnetwork name glircnetwork connection state glircclient state glirc&response , DCC updates, updated state glircnetwork Bglirczero-based window index Cglirc new focus glirc client state Eglirc new subfocus glirc client state wglircselection function glircclient state Jglircnetwork state glircclient state glircextra highlight identifiers Kglircnetwork glircclient state glircextra highlight identifiers m      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOm!     % (567OK412,&')<;0>=JLMN8@3+./-*CEFGIHABD?"#$9:. View of the list of open windows(c) Eric Mertens, 2016ISCemertens@gmail.comNonePglirc)Draw the image lines associated with the /windows command.PP/)Line renderers for channel user list view(c) Eric Mertens, 2016ISCemertens@gmail.comNonejQglircRender the lines used by the /users command in normal mode. These lines show the count of users having each channel mode in addition to the nicknames of the users.RglircRender lines for the /usersu command in detailed view. Each user will be rendered on a separate line with username and host visible when known.Qglircnetwork glircchannel Rglircnetwork glircchannel QRQR0URL selection module(c) Eric Mertens, 2016ISCemertens@gmail.comNoneSglirc1Generate the lines used for the view when typing /urlglircRender one line of the url listSglircrender width glircwindow to search glircargument to command glircclient state glircimage lines glircrendered width glircmy nick glircpalette glircnick render padding glircselected index glircurl index glircsender and url text glircrendered lines SS1Chat message view(c) Eric Mertens, 2016ISCemertens@gmail.comNoneˆglirc-Classify window lines for metadata coalesenceglirc current nick glirc metadata glirc palette glircclient state glircdraw width glirchide metadata glircwindow lines glircimage lines glircmetadata image glircpossible nick transition glircimage accumulator glircpossible nick transition glircmetadata entries are reversedglirc;Image, incoming identifier, outgoing identifier if changed TT2)Line renderers for channel mask list view(c) Eric Mertens, 2016ISCemertens@gmail.comNone.Uglirc,Render the lines used in a channel mask listUglirc Mask mode glirc network glirc channel glirc draw width UU3List of the current key map(c) Eric Mertens, 2017ISCemertens@gmail.comNoneVglircShow the client keybindingsVglirc client state glirc output lines VV4Character mnemonics(c) Eric Mertens, 2016ISCemertens@gmail.comNoneWglircHRender the lines of a table showing all of the available digraph entriesWglirc draw width glirc client state glirc output lines glirc3-character entry WW5$View of the DCC offers and transfers(c) Ruben Astudillo, 2019ISCruben.astud@gmail.comNone_bXX6Channel information renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNone(Yglirc,Render the lines used in a channel mask listYglircnetwork glircchannel YY7Network certificate renderer(c) Eric Mertens, 2019ISCemertens@gmail.comNone]Zglirc,Render the lines used in a channel mask listZZ86Integration between the client and external extensions(c) Eric Mertens, 2018ISCemertens@gmail.comNone [glirc9Start extensions after ensuring existing ones are stoppedglircVStart a single extension and register it with the client or record the error message.\glircUnload all active extensions.]glircCDispatch chat messages through extensions before sending to server.^glirc0Dispatch incoming IRC message through extensions_glirc Dispatch  /extension( command to correct extension. Returns ) when no matching extension is available.glirc=Prepare the client to support reentry from the extension API.glirc;Get the pointer used by C extensions to reenter the client.`glirc=Run the next available timer event on a particular extension. [glirc!client state glirc!client state with new extensions \glirc&client state glirc&client state with extensions unloaded ]glircnetwork glirctarget glircmessage glircclient state, allow message glircserialized chat message glircclient state glircextensions needing callback glircnew state and allow ^glircnetwork glircincoming message glircclient state glircdrop message when false glircserialized IRC message glircclient state glircextensions needing callback glircnew state and allow _glircextension name glirccommand glircclient state glircnew client state on success glirc4extension ID glirc4client state glirc4continuation using the stable pointer to the client `glirc extension ID glirc client state [\]^_`]_[^\`9Renderer for status line(c) Eric Mertens, 2016ISCemertens@gmail.comNone aglirc9Renders the status line between messages and the textbox.bglirc1The minor status line is used when rendering the /splits and  /mentions* views to show the associated window name.glircGIndicate when the client is scrolling and old messages are being shown.glircYIndicate when the client is potentially showing a subset of the available chat messages.glircIndicate the current connection health. This will either indicate that the connection is being established or that a ping has been sent or long the previous ping round-trip was.glircTWrap some text in parentheses to make it suitable for inclusion in the status line.glirc#Indicate that the client is in the detailed view.glirc=Indicate that the client isn't showing the metadata lines in normal view.glirc.Image for little box with active window names: -[15p]glirc-Multi-line activity information enabled by F3glirc+Pack a list of images into a single image spanning possibly many lines. The images will stack upward with the first element of the list being in the bottom left corner of the image. Each line will have at least one of the component images in it, which might truncate that image in extreme cases.aglirc draw width glirc client state glirc status bar glirc  error-messageglirc %[error: error-message]bglircwindow name glircsubfocus glircdraw width glircshow hidemeta status glirc client state glircwindow width glirccomponents to pack abab: Mentions view(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircmessage timestamp for sortingglircwindow names shortcutglircassociated windowglircwrapped rendered linescglircGenerate the list of message lines marked important ordered by time. Each run of lines from the same channel will be grouped together. Messages are headed by their window, network, and channel.glircDInsert channel name markers between messages from different channelsglirc]Merge a list of sorted lists of mention lines into a single sorted list in descending order.glirc"draw width glirc"client state glirc"list of mentions in time order glirc"mention images and channel labels glircfilter glircpalette glircdraw columns glircnick padding glircdetailed view glircwindow name glircwindow focus glircwindow cc;'Types used to implement client commands(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNoneEX2dglircuA command section is a logical grouping of commands. This allows for showing more structure in the help menu system.hglircA command is a list of aliases, an argument specification, implementation, and documentation. The arguments and implementation must match so that the parsed arguments will match what the implementation expects.jglirc>Names of this command, first in the list is the "primary" namekglirc-Specification of the arguments of the commandlglirc5Multi-line IRC-formatted documentation text used for /helpmglircCImplementation of the command for both execution and tab completionnglircPair of implementations for executing a command and tab completing one. The tab-completion logic is extended with a Bool indicating that tab completion should be reversedoglircno requirementspglircrequires an active networkqglircrequires an active chat windowrglirc!requires an active channel windowsglirc=Type of commands that require an active channel to be focusedtglirc=Type of commands that require an active network to be focuseduglirc!Type of commands that always workvglirc%Possible results of running a commandwglircDContinue running the client, consume input if command was from inputxglirc,Continue running the client, report an erroryglircClient should closezglirc8Consider the text entry successful and resume the client{glirc7Consider the text entry a failure and resume the client|glirc>Command failure with an error message printed to client windowsglircfocused channel tglirccurrent network uglirc arguments degfhimlkjnqrpostuvyxwz{|vyxwutsnqrpohimlkjdegfz{|<Common tab-completion logic(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNone>}glirc.Provides no tab completion for client commands~glirc/Provides no tab completion for network commandsglirc/Provides no tab completion for channel commandsglirc:Provides nickname based tab completion for client commandsglirc;Provides nickname based tab completion for network commandsglirc;Provides nickname based tab completion for channel commandsglircsComplete the nickname at the current cursor position using the userlist for the currently focused channel (if any)glircword completion mode glirchints glircall completions glircreversed order glircclient state glirc reversed }~ }~=Window command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNone]IglircImplementation of /grepglircImplementation of /windows" command. Set subfocus to Windows.glircImplementation of  /mentions# command. Set subfocus to Mentions.glircsComplete the nickname at the current cursor position using the userlist for the currently focused channel (if any)glircImplementation of /splitsglircImplementation of /splits+B. When no focuses are provided the current focus is used instead.glircImplementation of /splits-B. When no focuses are provided the current focus is used instead.glirc3Parses a single focus name given a default network.glircTab completion for /splits-J. This completes only from the list of active entries in the splits list.glircWhen used on a channel that the user is currently joined to this command will clear the messages but preserve the window. When used on a window that the user is not joined to this command will delete the window.glircTab completion for  /splits[+]. When given no arguments this populates the current list of splits, otherwise it tab completes all of the currently available windows.glirc6Render a entry from splits back to the textual format.glirc\When tab completing the first parameter of the focus command the current networks are used.glirc/channel` command. Takes a channel or nickname and switches focus to that target on the current network.glircTab completion for /channel,. Tab completion uses pre-existing windows.glircSReturn the list of identifiers for open channel windows on the given network name.glircImplementation of /dumpD. Writes detailed contents of focused buffer to the given filename.glirc reversed glircdefault network glirc [network:]targetglircreversed order glircnetwork glircclient state glircopen channel windows >%View modality command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNone^?Query command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNone`o@ Operator command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNoneaA"Connection command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNonefglircReconnect to the currently focused network. It's possible that we're not currently connected to a network, so this is implemented as a client command.glirc/connect! tab completes known server namesBCommon user IRC commands(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNonetl glirc/query` command. Takes a channel or nickname and switches focus to that target on the current network.glircImplementation of /ctcpglircImplementation of /noticeglircImplementation of /msgglircCommon logic for /msg and /noticeglircCommon logic for /msg and /notice returning the client stateglircImplementation of /quoteJ. Parses arguments as a raw IRC command and sends to the current network.glircyThis command is equivalent to chatting without a command. The primary use at the moment is to be able to send a leading / to chat easily.glircImplementation of /meglirc;Treat the current text input as a chat message and send it.glirctarget glirctarget glircchat message glircclient state glirccommand result CDCC command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNonevglirc6Implementation of @/dcc [(cancel|accept|resume)] [key]DCertificate management commands(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNonexxEZNC command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNoneyF*Channel management command implementations(c) Eric Mertens, 2016-2020ISCemertens@gmail.comNoneglircwThis function computes the list of required and optional parameters corresponding to the flags that have been entered.glircIUse the *!*@host masks of users for channel lists when setting list modes.Use the channel's mask list for removing modesUse the nick list otherwiseglirc=Predicate for mode commands that can be performed without opsglirc reversed glirc&network's mode behaviors glirc&polarity mode-letter unused-parameter glirc&required-names optional-names glirc&required-names optional-names glircmode polarity glircmode glircchannel glirc(hint, complete) G Implementation of slash commands(c) Eric Mertens, 2016ISCemertens@gmail.comNoneEXglirc5Interpret the given chat message or command. Leading / indicates a command. Otherwise if a channel or user query is focused a chat message will be sent. Leading spaces before the /) are ignored when checking for commands.glirc?Execute command provided by user, resolve aliases if necessary.The last disconnection time is stored in text form and is available for substitutions in macros. It is only provided when running startup commands during a reconnect event.glirc?Compute the replacement value for the given expansion variable.glircRespond to the TAB key being pressed. This can dispatch to a command specific completion mode when relevant. Otherwise this will complete input based on the users of the channel related to the current buffer.glircParse and execute the given command. When the first argument is Nothing the command is executed, otherwise the first argument is the cursor position for tab-completionglirc@Expands each alias to have its own copy of the command callbacksglirciMap of built-in client commands to their implementations, tab completion logic, and argument structures.glirc+Raw list of commands in the order used for /helpglircImplementation of /exit command.glircImplementation of /palette" command. Set subfocus to Palette.glircImplementation of  /digraphs# command. Set subfocus to Digraphs.glircImplementation of /keymap! command. Set subfocus to Keymap.glircImplementation of  /rtsstatsM command. Set subfocus to RtsStats. Update cached rts stats in client state.glircImplementation of /help command. Set subfocus to Help.glircImplementation of /reload(Attempt to reload the configuration fileglircSSupport file name tab completion when providing an alternative configuration file.NOT IMPLEMENTEDglircImplementation of /exec command.glircchat or command glircclient state glirccommand result glircdisconnection time glirccommand glircclient state glirccommand result glircdisconnect time glircclient state glircexpansion variable glircexpansion value glircreversed glircclient state glirccommand result glirctab-completion direction glirccommand glircclient state glirccommand result glirc reversed defghijklmnoprqvwxyvwxydefghijklmnoprqHRenderer for help lines(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircGenerate either the list of all commands and their arguments, or when given a command name generate the detailed help text for that command.glircAGenerate detailed help lines for the command with the given name.glirc]Generate an explanation of the context where the given command implementation will be valid.glirc<Generate the lines for the help window showing all commands.glircdGenerate the help line for the given command and its specification for use in the list of commands.glircclient state glircoptional command name glircpalette glirchelp lines glirc client state glirc command name glirc palette glirc lines glirccommand implementation glirchelp line glircclient state glircpalette glirchelp lines glircclient state glircpalette glirccommand section glirchelp lines glircclient state glircpalette glirccommand name and aliases glircargument specification glircsummary help line IView selection module(c) Eric Mertens, 2016ISCemertens@gmail.comNoneJTextbox renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircCompute the UI image for the text input box. This computes the logical cursor position on the screen to compensate for VTY's cursor placement behavior.glirc5Renders the whole, uncropped text box as well as the  corresponding to the rendered image which can be used for computing the logical cursor position of the cropped version of the text box.glirc}Render the active text box line using command highlighting and placeholders, and WYSIWYG mIRC formatting control characters.glirc cursor column, new offset, imageglirc&client state glirc&my nicknames glirc&other nicknames glirc&macro completions glirc&palette glirc&content glirc&left-of-cursor width, image rendering glirc commands glirc focused glirc input text glirc output image K'Layout code for the multi-window splits(c) Eric Mertens, 2016ISCemertens@gmail.comNoneuglirc?Compute the combined image for all the visible message windows.glirc4Layout algorithm for all windows in a single column.glirc4Layout algorithm for all windows in a single column.glirc#Draw one of the extra windows from /splitsglircGenerate an image corresponding to the image lines of the given focus and subfocus. Returns the number of lines overscrolled to assist in clamping scroll to the lines available in the window.glircConstructs a list of numbers with the length of the divisor and that sums to the dividend. Each element will be within one of the quotient.glirc@Compute the number of lines in a page at the current window size glirc1client state glirc1overscroll, cursor pos, next offset, final image glircclient state glircextra windows glircoverscroll and final image glirc,client state glirc,extra windows glirc,overscroll, cursor pos, offset, final image glircdraw width glircdraw height glircscroll amount glircclient state glircclient state glircdraw width glircdraw height glircfocus glircsubfocus glircimage lines glircrendered window glircclient width glircavailable rows glirccurrent scroll glircfocused window glircoverscroll, rendered messages glirc"screen rows to fill glirc"number of extra windows glirc"list of heights for each division glirc dividend glirc divisor glircclient state glircscroll amount L UI renderer(c) Eric Mertens, 2016ISCemertens@gmail.comNonezglirc Generate a u for the current client state. The resulting client state is updated for render specific information like scrolling.glircPrimary UI render logicglirc client state glirc/text box cursor position, image, updated state M>Event handlers for network messages affecting the client state(c) Eric Mertens, 2016ISCemertens@gmail.comNoneglircqClient-level responses to specific IRC messages. This is in contrast to the connection state tracking logic in Client.NetworkStateglircSTS parameter string glircnetwork state glircclient state glircmessage time glircchallenge glircnetwork state glircclient state glircnow glirccurrent network glircclient state glirccommand NEvent loop for IRC client(c) Eric Mertens, 2016ISCemertens@gmail.comNone\"hglirc;Sum of the five possible event types the event loop handlesglircKey presses and resizingglircIncoming network eventsglirc'Timed action and the applicable networkglirc extension IDglircEvent on any transferglircBlock waiting for the next V. This function will compute an appropriate timeout based on the current connections.glirc:Compute the earliest scheduled timed action for the clientglirc"Apply this function to an initial  to launch the client.glirc1Apply a single network event to the client state.glirc*Sound the terminal bell assuming that the BEL control code is supported.glirc8Respond to a network connection successfully connecting.glirc,Update the TLS certificates for a connectionglirc1Respond to a network connection closing normally.glirc3Respond to a network connection closing abnormally.glircRespond to an IRC protocol line. This will parse the message, updated the relevant connection state and update the UI buffers.glirc!Find the ZNC provided server timeglirc6Parses the time format used by ZNC for buffer playbackglirc6Update the height and width fields of the client stateglircRespond to a VTY event.glirc,Map keyboard inputs to actions in the clientglircProcess v and update the 0 textbox and error state. When quitting return .glirc*Actions to be run when exiting the client.glirc9Execute the the command on the first line of the text boxglircRespond to a timer event. glirc vty handle glirc client state glirc network name glirc event time glirc client state glircnetwork name glirccertificate lines glirc network name glirc event time glirc client state glircfailed network glirccurrent time glirctermination reason glircclient state glircthread failure reason glircfailed network glircclient state glirc!Network name glirc!current time glirc!Raw IRC message without newlines glirc!client state glircvty handle glircvty event glircclient state glircnothing when finished glircvty handle glircaction glircclient state glircclear on success glirccommand result glirc client state glircNetwork related to event glircAction to perform glircclient state O9Foreign exports which expose functionality for extensions(c) Eric Mertens, 2016ISCemertens@gmail.comNone"#1glircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-pointglircType of  extension entry-point.glircType of  extension entry-pointglircType of  extension entry-pointglirc<Dereference the stable pointer passed to extension callbacksglirc Import a   into an *glircPeek a  as UTF-8 encoded bytes.glircfEntry-point into the client when an extern extension wants send an IRC command to a connected server.glircJEntry-point for extensions to append a message to the client buffer. The  message_codeq can be used to render the message normally or to cause the client to draw attention to the message as an error.glircAdd a message to a chat window as if it was received directly from the IRC server. This is useful when implementing extensions that intercept incoming chat messages and transform them before showing the user.glirckThis extension entry-point allocates a list of all the identifiers for the active networks on the client. NULLU returned on failure. The caller is responsible for freeing successful result with glirc_free_strings.glircCase insensitive comparison suitable for use on channels and nicknames. Returns -1 if the first identifier is less than the second Returns 0 if the first identifier is equal to the second Returns 1 if the first identifier is greater than the secondglircTGenerate a list of connected channels for the network identified in the arguments. NULLP returned on failure. Caller is responsible for freeing successful result with glirc_free_strings.glirckGenerate a list of IRC nicknames currently connected to the identified channel on the identified network. NULLQ returned on failure. Caller is responsible for freeing successful result with glirc_free_strings.glircdReturn the IRC nickname associated with the active network connection identified in the arguments. NULLQ returned on failure. Caller is responsible for freeing successful result with glirc_free_string.glircReturn the services account name associated with a nickname on a server as tracked by the client. Caller is responsible for freeing successful result with glirc_free_string. If no account is known, NULL is returned.glircReturn the sigils associated with a nickname on a particular channel. Caller is responsible for freeing successful result with glirc_free_stringc. If user is on channel without any sigils an empty string is returned. If user is not on channel NULL is returned.glircReturn all of the modes of a given channel. The first letter of each string returned is the mode. Any remaining characters are the mode argument. Caller is responsible for freeing successful result with glirc_free_strings". If the user is not on a channel NULL is returned. The modes might not be known to the client for a particular channel which can result in an empty list of modes being returned.glircReturn all of the modes of a given channel. The first letter of each string returned is the mode. Any remaining characters are the mode argument. Caller is responsible for freeing successful result with glirc_free_strings". If the user is not on a channel NULL is returned. The modes might not be known to the client for a particular channel which can result in an empty list of modes being returned.glircMark a window as being seen, clearing the new message counter. To specify the client window send an empty network name. To specify a network window send an empty channel name.glircClear contents of a specified window. To specify the client window send an empty network name. To specify a network window send an empty channel name.glircgFree one of the heap allocated strings found as a return value from the extension API. If argument is NULL, nothing happens.glirchFree an array of heap allocated strings found as a return value from the extension API. If argument is NULL, nothing happens.glircUFind the network and target identifier associated with the currently focused window. Free the allocated strings with glirc_free_string.Strings set to NULL6 if there is no current network or no current target.glirc#Assign window focus to a new value.)Set to client window if network is empty.*Set to network window if channel is empty.Set to chat window otherwise.glircReturns 1R when the given target on the given network is a channel name, otherwise returns 0.:If the given network is not currently active this returns 0.glircReturns 1M when the given target on the given network shares a channel with the user, 0 otherwise.:If the given network is not currently active this returns 0.glirc;Resolve the given string to an absolute path. This expands ~P for the home directory and computes paths relative to the configuration file.Free the allocated string with glirc_free_string.glircRegister a function to be called after a given number of milliseconds of delay. The returned timer ID can be used to cancel the timer.glircRegister a function to be called after a given number of milliseconds of delay. The returned timer ID can be used to cancel the timer.glircapi token glirctimer ID glircreturns held callback state glircapi token glircmilliseconds delay glircfunction glirccallback state glirctimer ID glircapi token glircpath glircpath length glircresolved path glircapi token glircnetwork name glircnetwork length glirctarget name glirctarget length glircboolean glircapi token glircnetwork name glircnetwork length glirctarget name glirctarget length glircboolean glircapi token glircnetwork glircnetwork length glirctarget glirctarget length glirc$api token glirc$OUT: newly allocated network string glirc$OUT: network length glirc$OUT: newly allocated target string glirc$OUT: target length glirc)glirc allocated strings, null-terminated glircglirc allocated string glircapi token glircnetwork name glircnetwork name length glircchannel name glircchannel name length glircapi token glircnetwork name glircnetwork name length glircchannel name glircchannel name length glircapi token glircnetwork name glircnetwork name length glircchannel glircchannel length glircmode glircapi token glircnetwork name glircnetwork name length glircchannel glircchannel length glircapi token glircnetwork name glircnetwork name length glircchannel glircchannel length glircnickname glircnickname length glircapi token glircnetwork name glircnetwork name length glircnickname glircnickname length glircapi token glircnetwork name glircnetwork name length glirc api token glirc network glirc network len glirc channel glirc channel len glirc1null terminated array of null terminated strings glirc api token glirc network glirc network len glirc1null terminated array of null terminated strings glircidentifier 1 glircidentifier 1 len glircidentifier 2 glircidentifier 2 len glirc1api token glirc1null terminated array of null terminated strings  glircapi token glircnetwork glircnetwork length glircsource glircsource length glirctarget glirctarget length glircmessage glircmessage length glirc0 on success glircapi token glircenum message_code glircmessage glircmessage length glirc0 on success glircapi token glircpointer to message glirc0 on success ..^_`aabbcddefghhijklmnopqrsstuvwxyz{|}~V                                                          ! " # # $ % & ' ( ) * + , - . / 0123456789:;<=>?@ABCDEFGHIIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !!"#$%&'()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQRSTUVWXYZ[[\]^_`abcdefghijklmnopqrstuvwxyz{|}~VXW        !!!!!!!!!!!!!!! !!!"!#!$!%!&!'"("(")"*"+","-"."/"0"1"2"3"4"5"6"7"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#q#r#s#t#u#v#w#x#y#z#{#|#}#~######$%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''()****+,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, , , , , ,,,,,,,,,----------- -!-"-#-$-%-&-'-(-)-*-+-,---.-/-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-z-{-|-}-~----.//0123456788888899:;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<==>?@ABBBBCDEFGGGGGGHIJKKLMNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOP  R      !"#$%&'()*+,-S.T/U0U1U2U3U4U5U6U789:;<=>?@ABCDEFG"HIJKILM"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>mnop&q&r&sYtYuYvYwYxYyYzY{'|'}'~'ZZZ[**************\\\\\\]]]_]],,,,,,,,,,,,,,,--------------------01111114888889999999999:::::::================AABBBBBBBCF F F F G GGGGGGGGGGHHHHHJJKK K!K"K#K$K%&'L(M)M*M+N,N-N.N/N0NN1N2N3N4N5N6N7N8N9N:N;N<N=N>N?N@NANBOCODOEF!glirc-2.37-1BMbPbYfPMi9rVZqsHWUk0Client.Authentication.EcdsaClient.CApi.TypesClient.Commands.Arguments.Spec Client.Commands.Arguments.ParserClient.Commands.ExecClient.Commands.InterpolationClient.Commands.RecognizerClient.Configuration.ColorsClient.Configuration.MacrosClient.Configuration.StsClient.EventLoop.ActionsClient.EventLoop.Errors Client.HookClient.Hook.Znc.BuffextrasClient.Image.PackedImageClient.Image.MircFormattingClient.Image.LineWrapClient.Image.Palette"Client.Commands.Arguments.Renderer Client.MaskClient.State.ChannelClient.State.DCCClient.MessageClient.State.FocusClient.State.WindowClient.UserHostClient.View.PaletteClient.State.EditBox.ContentClient.State.EditBoxClient.Commands.WordCompletion#Client.Configuration.ServerSettingsClient.Network.ConnectClient.Network.AsyncClient.ConfigurationClient.Image.MessageClient.View.IgnoreList Client.Log Client.CApiClient.OptionsClient.View.RtsStatsClient.Hook.SnoticeClient.Hook.FreRelay Client.HooksClient.State.Network Client.StateClient.View.WindowsClient.View.UserListClient.View.UrlSelectionClient.View.MessagesClient.View.MaskListClient.View.KeyMapClient.View.DigraphsClient.View.DCCListClient.View.ChannelInfoClient.View.CertClient.State.ExtensionsClient.Image.StatusLineClient.View.MentionsClient.Commands.TypesClient.Commands.TabCompletionClient.Commands.WindowClient.Commands.TogglesClient.Commands.QueriesClient.Commands.OperatorClient.Commands.ConnectionClient.Commands.ChatClient.Commands.DCCClient.Commands.CertificateClient.Commands.ZNCClient.Commands.ChannelClient.CommandsClient.View.Help Client.ViewClient.Image.TextboxClient.Image.Layout Client.ImageClient.EventLoop.NetworkClient.EventLoopClient.CApi.Exports Build_glircDataText ContextFilter DigraphQuoteDigraphsPrefixtoStringisPrefix Paths_glircRtsStatsStrQuote StrictUnit LensUtilsauthenticationModeencodeAuthenticationcomputeResponse FgnStringLenFgnCmd fcCommandFgnChat fhNetworkfhTarget fhMessageFgnMsg fmNetwork fmPrefixNick fmPrefixUser fmPrefixHost fmCommandfmParamsfmParamN fmTagKeys fmTagValsfmTagN FgnExtensionfgnStartfgnStop fgnMessagefgnChat fgnCommandfgnNamefgnMajorVersionfgnMinorVersionDynamic TimerCallbackTimerId ProcessChatProcessCommandProcessMessage StopExtensionStartExtension ProcessResult MessageCoderunTimerCallbackrunProcessChatrunProcessCommandrunProcessMessagerunStopExtensionrunStartExtension normalMessage errorMessage passMessage dropMessagepoke' exportText withText0$fStorableFgnStringLen$fStorableFgnCmd$fStorableFgnChat$fStorableFgnMsg$fStorableFgnExtension$fEqMessageCode$fEqProcessResultArgArgumentOptional Extension ArgumentShape TokenArgumentRemainingArgumentArgstokenArg remainingArg optionalArg extensionArg simpleToken numberArgoptionalNumberArg tokenListparseTarget UnspecifiedCurrent SpecifiedExecCmd_execOutputNetwork_execOutputChannel _execCommand _execStdIn_execArguments $fShowTarget $fReadTarget $fEqTarget $fOrdTarget$fFunctorTarget $fReadExecCmd $fShowExecCmdexecOutputChannelexecOutputNetwork parseExecCmd runExecCmd MacroSpecMacro macroSpec macroCommandsExpansionChunk LiteralChunk VariableChunk IntegerChunk DefaultChunknoMacroArgumentsparseMacroSpecsparseExpansionresolveMacroExpansions$fShowMacroSpec$fShowExpansionChunk $fShowMacro RecognitionExactInvalid Recognizer recognize fromCommands addCommandkeys$fSemigroupRecognizer$fMonoidRecognizer$fShowRecognizer$fFunctorRecognizer$fShowRecognition$fFunctorRecognitionattrSpec colorSpec macroMapSpecmacroCommandSpec StsPolicy_stsExpiration_stsPort$fShowStsPolicy stsExpirationstsPortreadPolicyFilesavePolicyFileKeyMapAction ActBackspace ActDeleteActLeftActRightActHomeActEnd ActOlderLine ActNewerLine ActScrollUp ActScrollDown ActBackWordActForwardWordActYank ActKillHome ActKillEndActKillWordBackActKillWordForward ActToggleActBoldActColor ActItalic ActUnderlineActReverseVideoActClearFormatActInsertEnter ActDigraphActRetreatFocusActAdvanceFocusActAdvanceNetworkActJumpToActivityActJumpPreviousActJumpActTabCompleteActTabCompleteBackActEnterActReset ActRefresh ActCommand ActInsert ActIgnored keyMapEntries actionName keyToAction addKeyBindingremoveKeyBinding initialKeyMapparseKeyprettyModifierKey$fHasSpecAction $fEqAction $fOrdAction $fReadAction $fShowAction $fShowKeyMapexceptionToLines MessageHook_messageHookName_messageHookStateful_messageHookAction MessageResult PassMessage OmitMessage RemapMessage$fMonoidMessageResult$fSemigroupMessageResultmessageHookActionmessageHookNamemessageHookStatefulapplyMessageHooksbuffextrasHookImage' unpackImagetext'charstring splitImage imageWidth imageText resizeImage$fIsStringImage'$fSemigroupImage'$fMonoidImage' $fShowImage' parseIrcText parseIrcText' mircColor mircColors controlImage plainText terminate fullLineWraplineWrapPrefixlineWrapPalette _palNicks_palSelf_palSelfHighlight_palTime_palMeta _palSigil _palLabel _palLatency_palWindowName _palError _palTextBox _palActivity _palMention _palCommand_palCommandReady_palCommandPrefix_palCommandError_palCommandPlaceholder_palWindowDivider_palLineMarker _palCModes _palUModes _palSnomask $fShowPalette palActivity palCModes palCommandpalCommandErrorpalCommandPlaceholderpalCommandPrefixpalCommandReadypalErrorpalLabel palLatency palLineMarker palMentionpalMetapalNickspalSelfpalSelfHighlightpalSigil palSnomask palTextBoxpalTime palUModespalWindowDivider palWindowNamedefaultPalette paletteMaprenderMask buildMask matchMask MaskListEntry_maskListSetter _maskListTimeTopicProvenance _topicAuthor _topicTime ChannelState _chanTopic_chanTopicProvenance_chanUrl _chanUsers _chanModes _chanLists _chanCreation_chanQueuedModeration$fShowTopicProvenance$fShowMaskListEntry$fShowChannelState chanCreation chanLists chanModeschanQueuedModeration chanTopicchanTopicProvenancechanUrl chanUsers topicAuthor topicTimemaskListSetter maskListTime newChannel joinChannel partChannel nickChangesetTopic DCCUpdate PercentUpdateFinishedSocketInterruptedUserInterruptedAcceptDCCState _dsOffers _dsTransfers DCCTransfer _dtThread _dtProgressConnectionStatusCorrectlyFinished UserKilledLostConnection DownloadingPendingNotExistDCCOffer _dccNetwork _dccFromInfo _dccFromIP_dccPort _dccFileName_dccSize _dccOffset _dccStatus$fEqConnectionStatus$fShowConnectionStatus$fShowDCCOffer $fEqDCCOffer$fShowDCCUpdate $fEqDCCUpdate dccFileName dccFromIP dccFromInfo dccNetwork dccOffsetdccPortdccSize dccStatus dtProgressdtThreaddsOffers dsTransfers emptyDCCStatesupervisedDownloadreportStopWithStatus parseSEND parseACCEPT getFileOffsetinsertAsNewMax ctcpToTuple statusAtKey resumeMsg acceptUpdateisSend MessageBodyIrcBody ErrorBody NormalBody ClientMessage _msgNetwork_msgBody_msgTime_IrcBody _ErrorBody _NormalBody IrcSummary JoinSummary QuitSummary PartSummary NickSummary ReplySummary ChatSummary CtcpSummaryDccSendSummary ChngSummary AcctSummary NoSummarymsgBody msgNetworkmsgTimemsgText msgSummary$fEqIrcSummary$fShowIrcSummaryFocus Unfocused NetworkFocus ChannelFocus $fEqFocus $fShowFocus WindowsFilter AllWindowsNetworkWindowsChannelWindows UserWindowsSubfocus FocusMessages FocusInfo FocusUsersFocusDCC FocusMasks FocusWindows FocusPalette FocusMentions FocusDigraphs FocusKeyMap FocusHelp FocusRtsStatsFocusIgnoreList FocusCert _Unfocused _NetworkFocus _ChannelFocus focusNetwork $fOrdFocus$fEqWindowsFilter$fShowWindowsFilter $fEqSubfocus$fShowSubfocusWindowLineImportanceWLBoringWLNormal WLImportantWindow _winMessages _winMarker _winUnread _winTotal _winMention _winHideMeta WindowLines:-Nil PackedTime WindowLine _wlSummary _wlPrefix_wlImage _wlFullImage _wlImportance _wlTimestamp$fEqActivityLevel$fOrdActivityLevel$fReadActivityLevel$fShowActivityLevel$fEqWindowLineImportance$fOrdWindowLineImportance$fShowWindowLineImportance$fReadWindowLineImportance winHideMeta winMarker winMention winMessageswinTotal winUnread wlFullImagewlImage wlImportancewlPrefix wlSummary wlTimestampwlText emptyWindow addToWindow windowSeenwindowActivatewindowDeactivate packZonedTimeunpackTimeOfDay unpackUTCTime0$fEachWindowLinesWindowLinesWindowLineWindowLine UserAndHost_uhUser_uhHost _uhAccount$fReadUserAndHost$fShowUserAndHost uhAccountuhHostuhUserpaletteViewLinesLine_pos_text $fReadLine $fShowLineContentHasLinelinepostextendLine $fHasLineLine $fReadContent $fShowContentabovebelow noContent singleLineshiftjumpLeft jumpRightleftrightleftWord rightWord backspacedelete insertCharinsertPastedString insertStringtoggledigraph fromStrings toStrings$fHasLineContent LastOperation TabOperation KillOperationOtherOperationEditBox$fReadLastOperation$fShowLastOperation $fReadEditBox $fShowEditBoxcontent lastOperationdefaultEditBoxsuccessearlierlaterhomeendkillEndkillHomeyankkillWordBackwardkillWordForwardinsert insertPaste insertDigraph$fHasLineEditBoxWordCompletionModewcmStartPrefixwcmStartSuffixwcmMiddlePrefixwcmMiddleSuffixplainWordCompleteModedefaultNickWordCompleteModeslackNickWordCompleteMode wordComplete $fPrefixText$fPrefixIdentifier$fShowWordCompletionMode FingerprintFingerprintSha1FingerprintSha256FingerprintSha512UseTlsUseInsecureTls UseInsecure HookConfig KnownRegex SaslMechanism SaslPlain SaslEcdsa SaslExternalSecret SecretText SecretCommandTlsModeTlsYesTlsNoTlsStartServerSettings_ssNicks_ssUser_ssReal _ssPassword_ssSaslMechanism _ssHostName_ssPort_ssTls _ssTlsVerify_ssTlsClientCert_ssTlsClientKey_ssTlsClientKeyPassword_ssTlsServerCert _ssTlsCiphers_ssTlsPubkeyFingerprint_ssTlsCertFingerprint_ssSts_ssConnectCmds _ssSocksHost _ssSocksPort_ssChanservChannels_ssFloodPenalty_ssFloodThreshold_ssMessageHooks_ssName_ssReconnectAttempts_ssReconnectError_ssAutoconnect_ssNickCompletion _ssLogDir_ssBindHostName_ssShowAccounts_ssCapabilitiesgetRegex$fShowKnownRegex $fShowTlsMode $fShowSecret$fShowSaslMechanism$fShowHookConfig $fShowUseTls$fShowFingerprint$fShowServerSettings ssAutoconnectssBindHostNamessCapabilitiesssChanservChannels ssConnectCmdsssFloodPenaltyssFloodThreshold ssHostNamessLogDirssMessageHooksssNamessNickCompletionssNicks ssPasswordssPortssRealssReconnectAttemptsssReconnectErrorssSaslMechanismssShowAccounts ssSocksHost ssSocksPortssStsssTlsssTlsCertFingerprint ssTlsCiphersssTlsClientCertssTlsClientKeyssTlsClientKeyPasswordssTlsPubkeyFingerprintssTlsServerCert ssTlsVerifyssUserSecretException _SaslPlain _SaslEcdsa _SaslExternaldefaultServerSettings serverSpecidentifierSpec loadSecrets$fHasSpecSecret$fExceptionSecretException$fShowSecretException tlsParamsircPortwithConnectionTerminationReason PingTimeoutForcedDisconnect StsUpgradeStartTLSFailedBadCertFingerprintBadPubkeyFingerprint NetworkEvent NetworkOpen NetworkTLS NetworkLine NetworkError NetworkCloseNetworkConnectionupgradesendrecvabortConnectioncreateConnection$fShowNetworkConnection$fExceptionTerminationReason$fShowTerminationReasonExtensionConfiguration_extensionPath_extensionRtldFlags_extensionArgsConfigurationFailureConfigurationReadFailedConfigurationParseFailedConfigurationMalformed LayoutMode OneColumn TwoColumn PaddingMode LeftPadding RightPadding NoPadding Configuration_configDefaults_configServers_configPalette_configWindowNames_configExtraHighlights_configNickPadding_configDownloadDir _configMacros_configExtensions_configUrlOpener_configIgnores_configActivityBar_configBellOnMention_configHideMeta _configKeyMap _configLayout_configShowPing_configJumpModifier$fExceptionConfigurationFailure$fShowPaddingMode$fShowLayoutMode$fShowConfigurationFailure$fShowExtensionConfiguration$fShowConfigurationconfigActivityBarconfigBellOnMentionconfigDefaultsconfigDownloadDirconfigExtensionsconfigExtraHighlightsconfigHideMeta configIgnoresconfigJumpModifier configKeyMap configLayout configMacrosconfigNickPadding configPalette configServersconfigShowPingconfigUrlOpenerconfigWindowNamesFilePathContext extensionArgs extensionPathextensionRtldFlags getConfigPathloadConfigurationconfigurationSpecnewFilePathContextresolveFilePathIdentifierColorModePrivmsgIdentifierNormalIdentifier RenderMode NormalRenderDetailedRenderMessageRendererParams rendStatusMsgrendUserSigils rendNicks rendMyNicks rendPalette rendAccountsdefaultRenderParamsmsgImage cleanChar cleanText timeImagenickPadcoloredIdentifiercoloredUserInfoquietIdentifierparseIrcTextWithNicks metadataImg ignoreImagedrawWindowLineignoreListLinesLogLine logBaseDirlogDay logTargetlogLine writeLogLineignoreProblems renderLogLineActiveExtensionaeFgnaeDL aeSessionaeNameaeMajorVersionaeMinorVersionaeTimers aeNextTimerextensionSymbolpopTimer pushTimer cancelTimer openExtensionstartExtensiondeactivateExtension chatExtensionnotifyExtensioncommandExtension withRawIrcMsgwithChat evalNestedIO$fFunctorNestedIO$fApplicativeNestedIO$fMonadNestedIO$fMonadIONestedIOOptions_optConfigFile_optInitialNetworks _optNoConnect _optShowHelp_optShowVersion_optShowFullVersion_optShowConfigFormat optConfigFileoptInitialNetworks optNoConnect getOptions rtsStatsLines snoticeHook freRelayHook $fRuleIrcMsg $fRuleArgText$fRule-> messageHooks Transaction NoTransactionNamesTransactionBanTransactionWhoTransactionCapLsTransaction TimedActionTimedDisconnect TimedSendPingTimedForgetLatencyConnectRestriction NoRestrictionStartTLSRestrictionWaitTLSRestriction PingStatusPingSentPingNonePingConnectingAuthenticateStateAS_NoneAS_PlainStartedAS_EcdsaStartedAS_EcdsaWaitChallengeAS_ExternalStarted NetworkState _csChannels _csSocket _csModeTypes _csUmodeTypes_csChannelTypes_csTransaction_csModes _csSnomask _csStatusMsg _csSettings _csUserInfo_csUsers _csModeCount _csNetwork_csMessageHooks_csAuthenticationState_csNextPingTime _csLatency _csPingStatus_csLastReceived_csCertificate_csSeed$fShowAuthenticateState$fShowConnectRestriction$fShowPingStatus$fEqTimedAction$fOrdTimedAction$fShowTimedAction$fShowTransactioncsAuthenticationState csCertificatecsChannelTypes csChannelscsLastReceived csLatencycsMessageHooks csModeCount csModeTypescsModes csNetworkcsNextPingTime csPingStatuscsSeed csSettings csSnomaskcsSocket csStatusMsg csTransaction csUserInfocsUsers_PingConnectingApplycsNicksendMsgnewNetworkState hideMessage applyMessage squelchIrcMsgiHaveOpinitialMessagesisChannelIdentifiercsUsernextTimedActionapplyTimedActionsendModeration useChanServ sendTopicExtensionState ClientState_clientWindows_clientPrevFocus_clientActivityReturn _clientFocus_clientSubfocus_clientExtraFocus_clientConnections _clientEvents _clientDCC_clientDCCUpdates _clientConfig_clientConfigPath_clientTextBox_clientTextBoxOffset _clientWidth _clientHeight _clientScroll_clientDetailView_clientActivityBar_clientShowPing _clientRegex _clientLayout _clientBell_clientIgnores_clientIgnoreMask_clientExtensions_clientLogQueue_clientErrorMsg_clientRtsStats_clientStsPolicyclientActivityBarclientActivityReturn clientBell clientConfigclientConfigPathclientConnections clientDCCclientDCCUpdatesclientDetailViewclientErrorMsg clientEventsclientExtensionsclientExtraFocus clientFocus clientHeightclientIgnoreMask clientIgnores clientLayoutclientLogQueueclientPrevFocus clientRegexclientRtsStats clientScrollclientShowPingclientStsPolicyclientSubfocus clientTextBoxclientTextBoxOffset clientWidth clientWindowsesActiveesMVar esStablePtrclientConnectionclientFirstLine clientLinewithClientState abortNetwork recordSuccessrecordChannelMessage identIgnoredrecordIrcMessagerecordNetworkMessage recordError clientTick consumeInputcurrentCompletionListcurrentNickCompletionModechannelUserListclientIsFiltered clientFilter buildMatcherclientActiveCommand urlPattern urlMatches removeNetwork addConnectionapplyMessageToClientStatequeueDCCTransfer scrollClientclientExtraFocusesjumpToActivity jumpFocus changeFocus setExtraFocuschangeSubfocus returnFocus advanceFocus retreatFocusadvanceNetworkFocusclientHighlightsclientHighlightsNetworkclientWindowNames clientPaletteclientAutoconnectsclientToggleHideMeta windowsImagesuserListImagesuserInfoImagesurlSelectionViewchatMessageImagesmaskListImages keyMapLines digraphLines dccImageschannelInfoImages certViewLinesclientStartExtensionsclientStopExtensionsclientChatExtensionclientNotifyExtensionsclientCommandExtensionclientExtTimerstatusLineImageminorStatusLineImagementionsViewLinesCommandSectioncmdSectionNamecmdSectionCmdsCommandcmdNamescmdArgumentSpeccmdDocumentationcmdImplementation CommandImpl ClientCommandNetworkCommand ChatCommandChannelCommand CommandResultCommandSuccessCommandFailure CommandQuitcommandSuccesscommandFailurecommandFailureMsg noClientTab noNetworkTab noChannelTabsimpleClientTabsimpleNetworkTabsimpleChannelTabsimpleTabCompletionnickTabCompletion activeNickswindowCommands parseFocustogglesCommands queryCommandsoperatorCommandsconnectionCommands chatCommandscmdCtcp chatCommand' executeChat dccCommandsnewCertificateCommand zncCommandschannelCommandsexecuteexecuteUserCommandcommandExpansion tabCompletioncommands commandsListhelpImageLines viewLines textboxImage drawLayout scrollAmount clientPictureclientResponse eventLoopupdateTerminalSizeGlirc_cancel_timerGlirc_set_timerGlirc_resolve_pathGlirc_is_logged_onGlirc_is_channelGlirc_set_focusGlirc_current_focusGlirc_free_stringsGlirc_free_stringGlirc_clear_windowGlirc_mark_seenGlirc_channel_masksGlirc_channel_modesGlirc_user_channel_modesGlirc_user_account Glirc_my_nickGlirc_list_channel_usersGlirc_list_channelsGlirc_identifier_cmpGlirc_list_networksGlirc_inject_chat Glirc_printGlirc_send_messageglirc_send_message glirc_printglirc_inject_chatglirc_list_networksglirc_identifier_cmpglirc_list_channelsglirc_list_channel_users glirc_my_nickglirc_user_accountglirc_user_channel_modesglirc_channel_modesglirc_channel_masksglirc_mark_seenglirc_clear_windowglirc_free_stringglirc_free_stringsglirc_current_focusglirc_set_focusglirc_is_channelglirc_is_logged_onglirc_resolve_pathglirc_set_timerglirc_cancel_timerdepsbaseForeign.Storablepoke emptyExecCmd powerWords Data.OldListwordsGHC.BaseString text-1.2.3.1Data.Text.Internal splitCommonsinglebothall childKeysvty-5.30-3VUx6MP6IU9EzaL9xknup3Graphics.Vty.AttributesdefAttrcolorNumberSpecrgbSpec actionInfosexceptionToLines'#irc-core-2.9-IYybwLBRa0XKg4ZQEszy9U Irc.MessageIrcMsg GHC.MaybeNothingJustremapGraphics.Vty.Image.InternalImage splitOptions dropSpaces lineWrap'defaultNickColorPalette Irc.UserInfoUserInfoparseMaskComponents translate isMetaChardccOffer startDownload sendStreamreport ipv4Dotted filterContext digraphTableStReadyMatchFoundSkip2Skip1 lookupDigraphdigraphs currentLine forwardLine backwardLineupdateYankBuffer Data.String fromStringghc-prim GHC.Classes<= currentWord tabSearchfingerprintSpec loadSecret!hookup-0.5-84ZGnwkFqGY5OXDGsOD1JxHookup ConnectiondefaultWindowNamesdirectory-1.3.3.0System.DirectorygetXdgDirectory System.Directory.Internal.Common XdgConfig resolvePathsvalidateDirectoriesdefaultPaddingSidenickPaddingSpecfullNickPaddingSpec modifierSpec layoutSpeckeyBindingSpecactBindingSpeckeySpecdefaultRtldFlagssimpleExtensionSpecfullExtensionSpecbuildServerMapstatusMsgImage prefixImage bodyImage time-1.8.0.2&Data.Time.LocalTime.Internal.ZonedTime ZonedTime datetimeImage ircLinePrefix ircLineImagefullIrcLineImageseparatedParamsircWordsprettyUnixTime prettyTimehighlightNicks summaryLineNestedIO GHC.TypesTrue Irc.RawIrcMsg RawIrcMsgnest1nest2 withCommandversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNamedefaultOptionsoptions gitHashTxt gitDirtyTxtStatsgetStatsstatsToEntriesstrRulerulesrulecompReuserInfochatMsg actionMsgjoinMsgpartMsgquitMsgnickMsgkickMsgmodeMsg SemigroupMonoid$fMonoidStrictUnitmappend$fSemigroupStrictUnit<>stimes overStrict"lens-4.19.2-KXfjtCwCOd3KUikLJUQm86Control.Lens.TypeSetterControl.Lens.Setterover setStrictsetzonedTimeLocalTimeLens&Data.Time.LocalTime.Internal.LocalTime LocalTimelocalTimeTimeOfDay localTimeDaynoReply pruneUsers doWelcome Irc.Codes RPL_WELCOME doBadNickERR_NICKNAMEINUSE doRandomNickrecordListEntrysaveList squelchReplyupdateUserInfomassRegistrationnextForgetActionnextPingActiondoMode selectCapsisupport ParkState _esActive_esMVarGHC.MVarMVar _esStablePtr GHC.Stable StablePtr FocusSelector stepFocus TraversalsplitStatusMsgModes msgImportance ircIgnorablecomputeMsgLineSigilscomputeUserSigilsupdateTransientErrorrecordWindowLine toWindowLine' toWindowLinemarkSeen clientMatcherapplyWindowRenames recordLogLinenetworkChannelListdrawmetadataWindowLine MetadataStatewindowLinesToImages startMetadatatransitionMetadatagatherMetadataLines drawEntrystart1 clientPark clientTokenchat1message1 scrollImage filterImage latencyImage infoBubble detailImage nometaImageactivitySummaryactivityBarImages makeLinestransientErrorImage mlTimestamp mlWindowNamemlFocusmlImage addMarkersmerge windowEntriescmdGrep cmdWindows cmdMentions tabIgnore cmdSplits cmdSplitsAdd cmdSplitsDeltabActiveSplitscmdClear tabSplitsrenderSplitFocustabFocus cmdChannel tabChannelchannelWindowsOnNetworkcmdDump cmdReconnect tabConnectcmdQuery cmdNoticecmdMsg chatCommandcmdQuotecmdSaycmdMecmdDcc countFlagscomputeModeCompletionisPublicChannelModetabTopicexecuteCommand expandAliasescmdExit cmdPalette cmdDigraphs cmdKeyMap cmdRtsStatscmdHelp cmdReload tabReloadcmdExeccommandHelpLinesexplainContextlistAllCommandscommandSummarylistCommandSection renderContent renderLine drawLayoutOne drawLayoutTwo drawExtra messagePane divisionsdrawMain splitHeightsGraphics.Vty.PicturePicture clientImage processStsprocessSaslEcdsaprocessConnectCmd ClientEventVtyEvent NetworkEvents TimerEvent ExtTimerEventgetEvent earliestEventdoNetworkEventbeep doNetworkOpen doNetworkTLSdoNetworkClosedoNetworkError doNetworkLinecomputeEffectiveTime parseZncTime doVtyEventdoActiondoCommandResultclientShutdown executeInput doTimerEventreconnectLogicOnFailure derefToken peekFgnMsgpeekFgnStringLen