diff --git a/README b/README index fdd5c32ef..b7d376601 100644 --- a/README +++ b/README @@ -109,7 +109,7 @@ SYSTEM PRE-REQUISITES Eggdrop also requires openssl (and its development headers) in order to enable SSL/TLS protection of network data. The header files are often called something similar to 'libssl-dev'. While not advised, - this requirement can be removed by compilling using + this requirement can be removed by compiling using ./configure --disable-tls, but you will not be able to connect to TLS-protected IRC servers nor utilize secure botnet communication. diff --git a/UPGRADING b/UPGRADING index ef9464e16..d714aecfd 100644 --- a/UPGRADING +++ b/UPGRADING @@ -2,9 +2,11 @@ Upgrading Eggdrop It is easy to upgrade Eggdrop to a new version! To have a full picture of the changes made since your last upgrade, we recommend reading the - NEWS file. Upgrades from the 1.6 and 1.8 lines of Eggdrop should take - place with little to no issues. The config file, user files, and - channel files can all be reused. + NEWS file. Upgrades from the 1.8 and 1.9 lines of Eggdrop should take + place with little to no issues. While the config file, user files, and + channel files can all be reused, it is recommended to review the NEWS + files for each release to identify new configuration settings that + have been added. For support, feel free to visit us on Libera #eggdrop. diff --git a/doc/html/_static/basic.css b/doc/html/_static/basic.css index 6d4176051..bf515ee8a 100644 --- a/doc/html/_static/basic.css +++ b/doc/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/doc/html/_static/doctools.js b/doc/html/_static/doctools.js index d06a71d75..4d67807d1 100644 --- a/doc/html/_static/doctools.js +++ b/doc/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/doc/html/_static/documentation_options.js b/doc/html/_static/documentation_options.js index 693055604..9ed430ffa 100644 --- a/doc/html/_static/documentation_options.js +++ b/doc/html/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.10.0rc1', + VERSION: '1.10.0rc2', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/doc/html/_static/language_data.js b/doc/html/_static/language_data.js index 250f5665f..367b8ed81 100644 --- a/doc/html/_static/language_data.js +++ b/doc/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/doc/html/_static/searchtools.js b/doc/html/_static/searchtools.js index 7918c3fab..b08d58c9b 100644 --- a/doc/html/_static/searchtools.js +++ b/doc/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,21 +304,38 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", null, - score, + score + boost, filenames[file], ]); } @@ -308,46 +345,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +399,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +509,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +543,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +595,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/doc/html/about/about.html b/doc/html/about/about.html index e589e343e..d77af25c6 100644 --- a/doc/html/about/about.html +++ b/doc/html/about/about.html @@ -5,11 +5,11 @@ -
Before you can compile Eggdrop, Tcl must be installed on your system. Many systems have Tcl installed on them by default (you can check by trying the command “tclsh”; if you are given a ‘%’ for a prompt, it is, and you can type ‘exit’ to exit the Tcl shell. However, Eggdrop also requires the Tcl development header files to be installed. They can often be installed via an OS package manager, usually called something similar to ‘tcl-dev’ for the package name. You can also download Tcl source from https://www.tcl.tk/software/tcltk/download.html.
-Eggdrop also requires openssl (and its development headers) in order to enable SSL/TLS protection of network data. The header files are often called something similar to ‘libssl-dev’. While not advised, this requirement can be removed by compilling using
+./configure --disable-tls
, but you will not be able to connect to TLS-protected IRC servers nor utilize secure botnet communication.Eggdrop also requires openssl (and its development headers) in order to enable SSL/TLS protection of network data. The header files are often called something similar to ‘libssl-dev’. While not advised, this requirement can be removed by compiling using
./configure --disable-tls
, but you will not be able to connect to TLS-protected IRC servers nor utilize secure botnet communication.
-diff --git a/doc/html/install/upgrading.html b/doc/html/install/upgrading.html index 767dbd518..4a2139323 100644 --- a/doc/html/install/upgrading.html +++ b/doc/html/install/upgrading.html @@ -5,11 +5,11 @@ -Please see the Install file after you finish reading this file.
+Please see the Install file after you finish reading this file.
Upgrading¶
-The upgrade process for Eggdrop is very simple, simply download the new source code and repeat the compile process. You will want to read the NEWS for any new configuration file settings you want to add. Please see Upgrading for full details.
+The upgrade process for Eggdrop is very simple, simply download the new source code and repeat the compile process. You will want to read the NEWS for any new configuration file settings you want to add. Please see Upgrading for full details.
@@ -365,8 +365,8 @@ Obtaining Help © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Upgrading Eggdrop — Eggdrop 1.10.0rc1 documentation +Upgrading Eggdrop — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -105,7 +105,7 @@diff --git a/doc/html/modules/included.html b/doc/html/modules/included.html index 035e2f887..5f8e807b5 100644 --- a/doc/html/modules/included.html +++ b/doc/html/modules/included.html @@ -5,11 +5,11 @@ -Search
Upgrading Eggdrop¶
-It is easy to upgrade Eggdrop to a new version! To have a full picture of the changes made since your last upgrade, we recommend reading the NEWS file. Upgrades from the 1.6 and 1.8 lines of Eggdrop should take place with little to no issues. The config file, user files, and channel files can all be reused.
+It is easy to upgrade Eggdrop to a new version! To have a full picture of the changes made since your last upgrade, we recommend reading the NEWS file. Upgrades from the 1.8 and 1.9 lines of Eggdrop should take place with little to no issues. While the config file, user files, and channel files can all be reused, it is recommended to review the NEWS files for each release to identify new configuration settings that have been added.
For support, feel free to visit us on Libera #eggdrop.
@@ -189,8 +189,8 @@ Documentation © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Modules included with Eggdrop — Eggdrop 1.10.0rc1 documentation +Modules included with Eggdrop — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/modules/index.html b/doc/html/modules/index.html index f32bc75ae..d01e9ed1d 100644 --- a/doc/html/modules/index.html +++ b/doc/html/modules/index.html @@ -5,11 +5,11 @@ -+ href="../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -301,8 +301,8 @@Modules included with Eggdrop © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Eggdrop Module Information — Eggdrop 1.10.0rc1 documentation +Eggdrop Module Information — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/modules/internals.html b/doc/html/modules/internals.html index 1c3079b91..5e37c292e 100644 --- a/doc/html/modules/internals.html +++ b/doc/html/modules/internals.html @@ -5,11 +5,11 @@ -+ href="../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -169,8 +169,8 @@Do I still need to ‘loadmodule’ modules? © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Eggdrop Bind Internals — Eggdrop 1.10.0rc1 documentation +Eggdrop Bind Internals — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../index.html">Eggdrop 1.10.0rc2 documentationdiff --git a/doc/html/modules/mod/assoc.html b/doc/html/modules/mod/assoc.html index 572c30f97..0c89ea5c3 100644 --- a/doc/html/modules/mod/assoc.html +++ b/doc/html/modules/mod/assoc.html @@ -5,11 +5,11 @@ -Assoc Module — Eggdrop 1.10.0rc1 documentation +Assoc Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -160,8 +160,8 @@diff --git a/doc/html/modules/mod/blowfish.html b/doc/html/modules/mod/blowfish.html index d54a34cfd..b0827c60c 100644 --- a/doc/html/modules/mod/blowfish.html +++ b/doc/html/modules/mod/blowfish.html @@ -5,11 +5,11 @@ -Search
Blowfish Module — Eggdrop 1.10.0rc1 documentation +Blowfish Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -165,8 +165,8 @@diff --git a/doc/html/modules/mod/channels.html b/doc/html/modules/mod/channels.html index 83e755c72..13df069fc 100644 --- a/doc/html/modules/mod/channels.html +++ b/doc/html/modules/mod/channels.html @@ -5,11 +5,11 @@ -Search
Channels Module — Eggdrop 1.10.0rc1 documentation +Channels Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/modules/mod/compress.html b/doc/html/modules/mod/compress.html index 4c6c4600a..d1d271845 100644 --- a/doc/html/modules/mod/compress.html +++ b/doc/html/modules/mod/compress.html @@ -5,11 +5,11 @@ -+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -537,8 +537,8 @@Default Channel Values © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Compress Module — Eggdrop 1.10.0rc1 documentation +Compress Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -173,8 +173,8 @@diff --git a/doc/html/modules/mod/console.html b/doc/html/modules/mod/console.html index e3384fd8a..372522040 100644 --- a/doc/html/modules/mod/console.html +++ b/doc/html/modules/mod/console.html @@ -5,11 +5,11 @@ -Search
Console Module — Eggdrop 1.10.0rc1 documentation +Console Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -175,8 +175,8 @@diff --git a/doc/html/modules/mod/ctcp.html b/doc/html/modules/mod/ctcp.html index 080858d56..6b84ecc3f 100644 --- a/doc/html/modules/mod/ctcp.html +++ b/doc/html/modules/mod/ctcp.html @@ -5,11 +5,11 @@ -Search
CTCP Module — Eggdrop 1.10.0rc1 documentation +CTCP Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -187,8 +187,8 @@diff --git a/doc/html/modules/mod/dns.html b/doc/html/modules/mod/dns.html index 6c88060a4..142697d1c 100644 --- a/doc/html/modules/mod/dns.html +++ b/doc/html/modules/mod/dns.html @@ -5,11 +5,11 @@ -Search
DNS Module — Eggdrop 1.10.0rc1 documentation +DNS Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -188,8 +188,8 @@diff --git a/doc/html/modules/mod/filesys.html b/doc/html/modules/mod/filesys.html index 998535419..993b742fe 100644 --- a/doc/html/modules/mod/filesys.html +++ b/doc/html/modules/mod/filesys.html @@ -5,11 +5,11 @@ -Search
Filesys Module — Eggdrop 1.10.0rc1 documentation +Filesys Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/modules/mod/ident.html b/doc/html/modules/mod/ident.html index e3e97b228..00155cc31 100644 --- a/doc/html/modules/mod/ident.html +++ b/doc/html/modules/mod/ident.html @@ -5,11 +5,11 @@ -+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -385,8 +385,8 @@.filesys module © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Ident Module — Eggdrop 1.10.0rc1 documentation +Ident Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -226,8 +226,8 @@diff --git a/doc/html/modules/mod/irc.html b/doc/html/modules/mod/irc.html index 28b2c5a54..21061f2f3 100644 --- a/doc/html/modules/mod/irc.html +++ b/doc/html/modules/mod/irc.html @@ -5,11 +5,11 @@ -Search
IRC Module — Eggdrop 1.10.0rc1 documentation +IRC Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -296,8 +296,8 @@diff --git a/doc/html/modules/mod/notes.html b/doc/html/modules/mod/notes.html index 7d41f9a1d..132d22aeb 100644 --- a/doc/html/modules/mod/notes.html +++ b/doc/html/modules/mod/notes.html @@ -5,11 +5,11 @@ -Search
Notes Module — Eggdrop 1.10.0rc1 documentation +Notes Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -183,8 +183,8 @@diff --git a/doc/html/modules/mod/pbkdf2.html b/doc/html/modules/mod/pbkdf2.html index a3e8231e2..10474ca71 100644 --- a/doc/html/modules/mod/pbkdf2.html +++ b/doc/html/modules/mod/pbkdf2.html @@ -5,11 +5,11 @@ -Search
PBKDF2 Module — Eggdrop 1.10.0rc1 documentation +PBKDF2 Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -182,8 +182,8 @@diff --git a/doc/html/modules/mod/python.html b/doc/html/modules/mod/python.html index ed389f3a3..15ef49b7b 100644 --- a/doc/html/modules/mod/python.html +++ b/doc/html/modules/mod/python.html @@ -5,11 +5,11 @@ -Search
Python Module — Eggdrop 1.10.0rc1 documentation +Python Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/modules/mod/seen.html b/doc/html/modules/mod/seen.html index 65fc6ef14..b4fa3b8be 100644 --- a/doc/html/modules/mod/seen.html +++ b/doc/html/modules/mod/seen.html @@ -5,11 +5,11 @@ -+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -192,8 +192,8 @@pysource <path/to/file> © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Seen Module — Eggdrop 1.10.0rc1 documentation +Seen Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -162,8 +162,8 @@diff --git a/doc/html/modules/mod/server.html b/doc/html/modules/mod/server.html index a2b4e249d..d788f17a8 100644 --- a/doc/html/modules/mod/server.html +++ b/doc/html/modules/mod/server.html @@ -5,11 +5,11 @@ -Search
Server Module — Eggdrop 1.10.0rc1 documentation +Server Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -371,8 +371,8 @@diff --git a/doc/html/modules/mod/share.html b/doc/html/modules/mod/share.html index 16c579a07..8c2c94f74 100644 --- a/doc/html/modules/mod/share.html +++ b/doc/html/modules/mod/share.html @@ -5,11 +5,11 @@ -Search
Share Module — Eggdrop 1.10.0rc1 documentation +Share Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -192,8 +192,8 @@diff --git a/doc/html/modules/mod/transfer.html b/doc/html/modules/mod/transfer.html index ea54a938b..8d9609ba5 100644 --- a/doc/html/modules/mod/transfer.html +++ b/doc/html/modules/mod/transfer.html @@ -5,11 +5,11 @@ -Search
Transfer Module — Eggdrop 1.10.0rc1 documentation +Transfer Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -181,8 +181,8 @@diff --git a/doc/html/modules/mod/twitch.html b/doc/html/modules/mod/twitch.html index 53a39d85c..cae00cac8 100644 --- a/doc/html/modules/mod/twitch.html +++ b/doc/html/modules/mod/twitch.html @@ -5,11 +5,11 @@ -Search
Twitch Module — Eggdrop 1.10.0rc1 documentation +Twitch Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/modules/mod/uptime.html b/doc/html/modules/mod/uptime.html index dcec0b2ed..cf3f5bae6 100644 --- a/doc/html/modules/mod/uptime.html +++ b/doc/html/modules/mod/uptime.html @@ -5,11 +5,11 @@ -+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -196,8 +196,8 @@Partyline commands © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Uptime Module — Eggdrop 1.10.0rc1 documentation +Uptime Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -169,8 +169,8 @@diff --git a/doc/html/modules/mod/woobie.html b/doc/html/modules/mod/woobie.html index 033364e34..0ec72e427 100644 --- a/doc/html/modules/mod/woobie.html +++ b/doc/html/modules/mod/woobie.html @@ -5,11 +5,11 @@ -Search
Woobie Module — Eggdrop 1.10.0rc1 documentation +Woobie Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/searchindex.js b/doc/html/searchindex.js index 9ab88332c..55f0bc3e7 100644 --- a/doc/html/searchindex.js +++ b/doc/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["about/about", "about/legal", "index", "install/install", "install/readme", "install/upgrading", "modules/included", "modules/index", "modules/internals", "modules/mod/assoc", "modules/mod/blowfish", "modules/mod/channels", "modules/mod/compress", "modules/mod/console", "modules/mod/ctcp", "modules/mod/dns", "modules/mod/filesys", "modules/mod/ident", "modules/mod/irc", "modules/mod/notes", "modules/mod/pbkdf2", "modules/mod/python", "modules/mod/seen", "modules/mod/server", "modules/mod/share", "modules/mod/transfer", "modules/mod/twitch", "modules/mod/uptime", "modules/mod/woobie", "modules/writing", "tutorials/firstscript", "tutorials/firststeps", "tutorials/module", "tutorials/setup", "tutorials/tlssetup", "tutorials/userfilesharing", "using/accounts", "using/autoscripts", "using/bans", "using/botnet", "using/core", "using/features", "using/ipv6", "using/ircv3", "using/partyline", "using/patch", "using/pbkdf2info", "using/python", "using/tcl-commands", "using/text-sub", "using/tls", "using/tricks", "using/twitch-tcl-commands", "using/twitchinfo", "using/users"], "filenames": ["about/about.rst", "about/legal.rst", "index.rst", "install/install.rst", "install/readme.rst", "install/upgrading.rst", "modules/included.rst", "modules/index.rst", "modules/internals.rst", "modules/mod/assoc.rst", "modules/mod/blowfish.rst", "modules/mod/channels.rst", "modules/mod/compress.rst", "modules/mod/console.rst", "modules/mod/ctcp.rst", "modules/mod/dns.rst", "modules/mod/filesys.rst", "modules/mod/ident.rst", "modules/mod/irc.rst", "modules/mod/notes.rst", "modules/mod/pbkdf2.rst", "modules/mod/python.rst", "modules/mod/seen.rst", "modules/mod/server.rst", "modules/mod/share.rst", "modules/mod/transfer.rst", "modules/mod/twitch.rst", "modules/mod/uptime.rst", "modules/mod/woobie.rst", "modules/writing.rst", "tutorials/firstscript.rst", "tutorials/firststeps.rst", "tutorials/module.rst", "tutorials/setup.rst", "tutorials/tlssetup.rst", "tutorials/userfilesharing.rst", "using/accounts.rst", "using/autoscripts.rst", "using/bans.rst", "using/botnet.rst", "using/core.rst", "using/features.rst", "using/ipv6.rst", "using/ircv3.rst", "using/partyline.rst", "using/patch.rst", "using/pbkdf2info.rst", "using/python.rst", "using/tcl-commands.rst", "using/text-sub.rst", "using/tls.rst", "using/tricks.rst", "using/twitch-tcl-commands.rst", "using/twitchinfo.rst", "using/users.rst"], "titles": ["About Eggdrop", "Boring legal stuff", "Eggdrop, an open source IRC bot", "Installing Eggdrop", "README", "Upgrading Eggdrop", "Modules included with Eggdrop", "Eggdrop Module Information", "Eggdrop Bind Internals", "Assoc Module", "Blowfish Module", "Channels Module", "Compress Module", "Console Module", "CTCP Module", "DNS Module", "Filesys Module", "Ident Module", "IRC Module", "Notes Module", "PBKDF2 Module", "Python Module", "Seen Module", "Server Module", "Share Module", "Transfer Module", "Twitch Module", "Uptime Module", "Woobie Module", "How to Write an Eggdrop Module", "Writing an Eggdrop Script", "Common First Steps", "Writing a Basic Eggdrop Module", "Setting Up Eggdrop", "Enabling TLS Security on Eggdrop", "Sharing Userfiles", "Account tracking in Eggdrop", "Eggdrop Autoscripts", "Bans, Invites, and Exempts", "Botnet Sharing and Linking", "Eggdrop Core Settings", "Eggdrop Features", "IPv6 support", "IRCv3 support", "The Party Line", "Patching Eggdrop", "Encryption/Hashing", "Using the Python Module", "Eggdrop Tcl Commands", "Textfile Substitutions", "TLS support", "Advanced Tips", "Eggdrop Twitch Tcl Commands", "Twitch", "Users and Flags"], "terms": {"current": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "version": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54], "1": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "9": [0, 4, 5, 6, 8, 11, 12, 20, 23, 25, 27, 31, 36, 39, 40, 43, 46, 48, 50, 52], "5": [0, 4, 8, 11, 23, 24, 29, 30, 40, 42, 48], "last": [0, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 33, 38, 40, 42, 43, 44, 48, 49, 50, 51, 52, 54], "revis": [0, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 38, 40, 42, 43, 44, 48, 49, 50, 51, 52, 54], "juli": 0, "27": [0, 12, 17, 24, 43], "2010": [0, 11, 15, 23, 40, 42, 43, 49, 50], "wa": [0, 2, 6, 8, 20, 26, 30, 32, 33, 37, 39, 43, 46, 47, 48, 50, 52, 53], "creat": [0, 2, 3, 4, 16, 17, 24, 29, 30, 31, 32, 33, 35, 37, 38, 40, 45, 46, 47, 48, 50, 51, 53], "around": [0, 4, 26, 34, 42, 48, 53], "decemb": [0, 28, 41, 44], "1993": [0, 41], "help": [0, 3, 14, 23, 29, 30, 31, 32, 33, 37, 38, 39, 40, 42, 44, 47, 48, 49, 54], "stop": [0, 11, 16, 18, 29, 31, 48, 52], "incess": 0, "war": 0, "gayteen": 0, "It": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 16, 18, 23, 27, 29, 31, 33, 36, 37, 39, 40, 41, 42, 44, 48, 52, 53], "spawn": 0, "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 16, 17, 18, 19, 20, 21, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 46, 47, 49, 50, 51, 52, 53, 54], "anoth": [0, 8, 11, 16, 18, 19, 23, 24, 29, 33, 35, 37, 39, 40, 48, 49, 52], "bot": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 27, 29, 30, 31, 33, 34, 38, 40, 41, 42, 43, 44, 46, 49, 50, 51, 52, 53, 54], "process": [0, 2, 3, 4, 5, 8, 12, 16, 17, 25, 31, 33, 37, 39, 46, 48, 50], "being": [0, 4, 8, 11, 16, 18, 23, 34, 36, 37, 41, 42, 43, 48, 52], "written": [0, 6, 22, 29, 32, 33, 37, 47, 48, 53], "time": [0, 3, 4, 6, 11, 15, 16, 17, 18, 20, 24, 25, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 46, 49, 50, 51, 53], "call": [0, 3, 4, 8, 29, 30, 31, 35, 37, 39, 40, 47, 48, 52], "unrest": 0, "The": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 14, 15, 16, 17, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 43, 46, 47, 48, 50, 51, 52, 53, 54], "purpos": [0, 1, 6, 8, 27, 28, 32, 39, 40, 48], "answer": [0, 7, 14, 17, 23, 30], "request": [0, 4, 5, 7, 11, 14, 16, 18, 23, 33, 36, 38, 40, 42, 43, 45, 48, 50, 51, 53], "other": [0, 1, 4, 6, 8, 10, 11, 15, 16, 17, 18, 19, 20, 23, 24, 29, 30, 31, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 46, 48, 49, 50, 51, 52, 53, 54], "first": [0, 2, 4, 5, 6, 8, 16, 20, 23, 29, 30, 32, 33, 34, 35, 39, 40, 46, 48, 50, 51, 52], "public": [0, 1, 4, 30, 31, 32, 34, 40, 48, 50, 51, 54], "releas": [0, 1, 33, 46, 48], "0": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "6": [0, 5, 8, 11, 18, 31, 33, 37, 40, 42, 48], "sinc": [0, 3, 5, 18, 33, 37, 39, 40, 41, 42, 48, 50, 51], "ha": [0, 1, 2, 4, 5, 6, 8, 11, 15, 16, 18, 23, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 46, 47, 48, 50, 52, 53, 54], "grown": 0, "what": [0, 1, 2, 5, 6, 8, 11, 16, 18, 23, 27, 30, 31, 32, 33, 35, 37, 40, 43, 44, 46, 48], "you": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "have": [0, 1, 3, 4, 5, 6, 8, 10, 11, 13, 16, 18, 19, 20, 23, 24, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 48, 50, 51, 52, 53, 54], "befor": [0, 4, 8, 11, 15, 17, 18, 19, 23, 24, 25, 29, 31, 32, 33, 36, 37, 39, 40, 48, 53], "i": [0, 1, 2, 3, 5, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "world": [0, 2, 4, 21, 34, 40], "": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 16, 17, 18, 22, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 49, 50, 51, 52, 53, 54], "most": [0, 2, 4, 5, 17, 18, 23, 29, 30, 31, 33, 34, 35, 40, 41, 44, 48, 52, 53], "popular": [0, 4, 5, 33, 40], "internet": [0, 4, 48, 50], "relai": [0, 4, 39, 40], "chat": [0, 2, 4, 6, 8, 14, 23, 31, 33, 39, 40, 41, 44, 48, 50, 52, 53], "irc": [0, 4, 6, 8, 16, 17, 23, 26, 30, 31, 32, 33, 36, 38, 39, 40, 41, 42, 43, 44, 48, 49, 51, 52, 54], "freeli": [0, 4, 47], "distribut": [0, 1, 4, 32, 33], "under": [0, 4, 32, 33, 41, 48], "gnu": [0, 1, 3, 4, 8, 12, 32], "gener": [0, 1, 2, 3, 4, 20, 26, 30, 31, 32, 33, 43, 46, 47, 48, 50, 53], "licens": [0, 1, 4, 32], "gpl": [0, 4, 32], "featur": [0, 2, 4, 7, 8, 11, 18, 23, 24, 31, 33, 35, 36, 40, 42, 43, 45, 48, 50, 53, 54], "rich": [0, 4, 33], "program": [0, 2, 4, 17, 31, 32, 33], "design": [0, 2, 4, 6, 8, 20, 37, 43, 52], "easili": [0, 1, 2, 4, 30, 41, 48], "us": [0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 23, 24, 25, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 44, 46, 48, 49, 50, 51, 52, 53, 54], "expand": [0, 2, 4], "upon": [0, 4, 43, 52, 54], "both": [0, 4, 11, 21, 23, 25, 34, 35, 36, 39, 42, 46, 47, 48, 50], "novic": [0, 4], "advanc": [0, 2, 4, 6, 22, 30, 41], "user": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 17, 18, 19, 20, 22, 23, 24, 25, 26, 29, 30, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 44, 45, 46, 49, 50, 51, 52, 53], "varieti": [0, 4, 35], "hardwar": [0, 4], "softwar": [0, 1, 2, 4, 32], "platform": [0, 4, 26, 48, 53], "an": [0, 3, 4, 5, 6, 7, 8, 10, 11, 15, 16, 17, 18, 20, 23, 25, 26, 32, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52, 53], "sit": [0, 4, 40, 46], "channel": [0, 2, 4, 5, 6, 8, 9, 13, 18, 22, 23, 24, 26, 29, 30, 33, 35, 36, 37, 38, 39, 40, 41, 43, 44, 49, 51, 53, 54], "perform": [0, 3, 4, 5, 8, 11, 32, 33, 48, 54], "autom": [0, 2, 4], "task": [0, 2, 4, 8, 39], "while": [0, 4, 5, 11, 17, 26, 33, 35, 36, 37, 38, 40, 44, 46, 48, 53], "look": [0, 4, 5, 6, 8, 11, 22, 27, 28, 30, 31, 32, 34, 35, 36, 40, 41, 46, 47, 48, 50, 53], "just": [0, 3, 4, 5, 6, 8, 15, 16, 18, 20, 24, 29, 31, 32, 33, 36, 37, 39, 40, 44, 46, 48, 51, 52, 53], "like": [0, 1, 4, 8, 10, 11, 14, 16, 18, 20, 29, 30, 31, 32, 33, 35, 37, 40, 41, 42, 44, 45, 46, 47, 48, 50, 52, 53, 54], "normal": [0, 4, 6, 14, 15, 16, 17, 23, 29, 30, 34, 37, 40, 48, 50, 51, 52, 53], "some": [0, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 29, 32, 33, 36, 38, 39, 40, 41, 42, 43, 47, 48, 50, 51, 53, 54], "function": [0, 1, 2, 4, 6, 7, 20, 26, 32, 33, 39, 40, 42, 43, 46, 47, 48, 51, 52], "includ": [0, 2, 3, 4, 7, 8, 18, 27, 29, 32, 33, 34, 38, 40, 41, 42, 46, 47, 48, 50, 52, 53], "protect": [0, 2, 3, 4, 11, 20, 23, 31, 33, 38, 40, 46, 48, 50, 54], "abus": [0, 2, 4], "allow": [0, 3, 4, 5, 6, 7, 8, 11, 12, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 29, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 46, 47, 48, 50, 51, 53], "privileg": [0, 4, 17, 54], "gain": [0, 4, 46, 54], "op": [0, 2, 4, 11, 18, 26, 35, 36, 39, 41, 46, 48, 53, 54], "voic": [0, 2, 4, 11, 31, 48, 54], "statu": [0, 2, 4, 11, 26, 29, 32, 34, 40, 51, 52, 53], "log": [0, 2, 4, 6, 8, 11, 20, 26, 29, 32, 33, 36, 45, 46, 47, 48, 53], "event": [0, 4, 26, 29, 32, 36, 39, 40, 52, 53], "provid": [0, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 29, 31, 32, 33, 37, 40, 42, 43, 45, 47, 48, 50, 52, 53], "inform": [0, 2, 3, 4, 5, 6, 8, 11, 16, 27, 29, 30, 31, 32, 33, 36, 37, 39, 40, 42, 43, 47, 48, 50], "host": [0, 2, 4, 11, 17, 21, 23, 26, 30, 37, 38, 39, 40, 47, 50, 52, 54], "game": [0, 2, 4, 26, 53], "etc": [0, 2, 4, 11, 18, 26, 29, 33, 36, 37, 39, 40, 41, 47, 48, 51, 54], "One": [0, 4, 30, 35, 36, 48], "make": [0, 2, 3, 4, 5, 6, 7, 11, 14, 16, 20, 23, 24, 26, 29, 30, 31, 33, 34, 35, 37, 40, 42, 43, 45, 48, 50, 51, 53], "stand": [0, 4, 33], "out": [0, 3, 4, 8, 25, 27, 30, 31, 32, 33, 35, 39, 40, 44, 46, 48, 50], "modul": [0, 4, 8, 33, 36, 39, 41, 46, 53], "tcl": [0, 1, 2, 3, 4, 6, 11, 12, 23, 29, 30, 33, 38, 40, 41, 42, 47, 50, 51, 53], "script": [0, 2, 3, 4, 6, 7, 8, 11, 21, 23, 31, 32, 33, 38, 41, 42, 43, 48, 51, 52, 53, 54], "support": [0, 2, 3, 4, 5, 6, 8, 9, 11, 12, 15, 17, 18, 19, 23, 24, 25, 31, 33, 34, 35, 38, 40, 41, 48, 51, 53], "With": [0, 4, 6, 8, 16, 32, 35, 39, 40, 46, 48, 50], "can": [0, 3, 4, 5, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "almost": [0, 4, 33, 38, 54], "ani": [0, 1, 2, 3, 4, 5, 7, 13, 16, 17, 18, 19, 23, 24, 26, 29, 30, 31, 32, 33, 37, 38, 40, 41, 44, 46, 47, 48, 50, 52, 53, 54], "want": [0, 3, 4, 6, 8, 11, 13, 15, 16, 18, 19, 23, 29, 30, 31, 32, 33, 39, 40, 42, 47, 48, 50, 51], "thei": [0, 3, 4, 5, 7, 8, 11, 13, 14, 18, 19, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 46, 48, 50, 52], "do": [0, 4, 6, 8, 11, 13, 16, 17, 18, 20, 23, 27, 30, 31, 32, 33, 35, 36, 37, 39, 40, 41, 48, 49, 51, 52, 53], "anyth": [0, 4, 16, 30, 31, 32, 33, 35, 37, 39, 40, 44, 48, 52], "prevent": [0, 4, 11, 18, 19, 26, 31, 33, 37, 39, 42, 43, 48, 53], "flood": [0, 4, 11, 14, 19, 23, 37, 39, 40, 41, 48, 54], "greet": [0, 2, 4, 11, 30, 36, 47], "ban": [0, 2, 4, 11, 18, 26, 35, 39, 40, 41, 53, 54], "advertis": [0, 4, 48], "also": [0, 2, 3, 4, 7, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54], "link": [0, 2, 3, 4, 5, 6, 7, 16, 24, 25, 29, 32, 40, 41, 43, 46, 50, 51], "multipl": [0, 2, 4, 8, 17, 30, 32, 33, 39, 40, 41, 48, 52], "togeth": [0, 2, 4, 23, 30, 39, 40, 41, 43, 48], "form": [0, 4, 29, 30, 48, 49], "botnet": [0, 2, 3, 4, 6, 9, 11, 13, 16, 23, 27, 33, 35, 41, 42, 44, 46, 48, 51, 54], "thi": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "each": [0, 4, 6, 11, 16, 19, 25, 30, 31, 33, 35, 36, 37, 39, 40, 41, 44, 47, 48, 51, 52, 54], "secur": [0, 2, 4, 10, 20, 31, 33, 35, 40, 41, 46, 48], "control": [0, 2, 4, 18, 23, 30, 31, 39, 40, 41, 50, 53, 54], "effici": [0, 4, 33, 39, 40, 41], "even": [0, 4, 7, 16, 18, 29, 32, 33, 35, 38, 39, 40, 41, 44, 48, 53], "across": [0, 4, 39, 43, 45, 48, 51], "network": [0, 2, 4, 18, 23, 40, 48, 49], "share": [0, 2, 4, 6, 11, 12, 25, 29, 40, 41, 48], "list": [0, 4, 6, 8, 11, 15, 16, 20, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 43, 44, 47, 50, 52, 53], "exempt": [0, 1, 2, 4, 11, 18, 26, 39, 41, 53, 54], "invit": [0, 2, 4, 11, 18, 26, 39, 41, 43, 53], "ignor": [0, 4, 8, 14, 23, 24, 30, 35, 39, 40, 41, 48, 52], "userfil": [0, 2, 4, 5, 6, 10, 11, 12, 20, 24, 25, 29, 31, 33, 39, 40, 46, 48, 51], "enabl": [0, 2, 4, 6, 7, 8, 13, 16, 18, 23, 25, 29, 30, 31, 33, 37, 39, 40, 41, 42, 43, 50, 51, 53], "same": [0, 3, 4, 5, 7, 8, 11, 12, 17, 18, 29, 30, 33, 35, 36, 37, 39, 40, 43, 46, 47, 48, 49, 50, 51, 52], "access": [0, 4, 17, 23, 29, 30, 31, 33, 37, 41, 44, 46, 48, 50, 52, 53, 54], "everi": [0, 3, 4, 11, 16, 18, 23, 25, 29, 30, 31, 35, 36, 37, 38, 40, 42, 46, 48, 54], "your": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 44, 45, 46, 47, 48, 50, 53], "see": [0, 2, 3, 4, 5, 6, 8, 11, 16, 18, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 52], "doc": [0, 3, 4, 5, 6, 23, 30, 32, 34, 40, 44, 48, 52, 53], "set": [0, 1, 2, 3, 4, 5, 6, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 29, 30, 34, 35, 36, 38, 39, 41, 43, 44, 46, 49, 51, 52, 53, 54], "up": [0, 2, 3, 4, 5, 6, 16, 23, 27, 29, 30, 34, 35, 36, 37, 39, 40, 44, 46, 48, 53], "alwai": [0, 3, 4, 11, 33, 35, 36, 38, 48], "improv": [0, 4], "adjust": [0, 4, 18], "becaus": [0, 4, 8, 17, 23, 29, 30, 33, 37, 40, 43, 47, 48, 51, 52, 53], "ar": [0, 1, 2, 3, 4, 5, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54], "bug": [0, 3, 4, 30, 33, 45], "fix": [0, 3, 4, 29, 40, 48], "ad": [0, 2, 3, 4, 5, 7, 11, 20, 21, 23, 24, 26, 29, 30, 33, 35, 36, 37, 40, 41, 42, 43, 46, 48, 50, 52, 53], "demand": [0, 4], "them": [0, 1, 3, 4, 5, 7, 11, 13, 14, 15, 16, 18, 19, 23, 24, 29, 30, 31, 33, 34, 37, 39, 40, 41, 42, 43, 46, 48, 51, 53, 54], "actual": [0, 4, 8, 16, 29, 30, 34, 40, 43, 44, 48], "sens": [0, 4], "In": [0, 4, 5, 8, 15, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 47, 48, 50, 53], "fact": [0, 4, 52], "exist": [0, 4, 8, 16, 23, 29, 32, 36, 46, 47, 48, 52, 53, 54], "sever": [0, 4, 14, 29, 33, 34, 43, 48, 51], "year": [0, 4, 33, 40, 48], "v0": [0, 4, 48], "7": [0, 4, 8, 11, 33, 42, 48], "final": [0, 4, 8, 30, 31, 33, 40, 46], "go": [0, 3, 4, 6, 16, 23, 27, 30, 31, 33, 34, 35, 36, 47, 48], "part": [0, 4, 8, 23, 26, 30, 32, 40, 41, 48, 50, 51, 53], "tree": [0, 4, 33], "A": [0, 2, 4, 5, 8, 11, 17, 30, 31, 32, 35, 36, 37, 39, 40, 41, 43, 44, 48, 49, 50, 52, 54], "valiant": [0, 4], "effort": [0, 2, 4, 48], "been": [0, 1, 4, 5, 6, 8, 16, 18, 23, 29, 35, 38, 40, 41, 48, 52], "made": [0, 1, 3, 4, 5, 11, 24, 32, 45, 48, 50, 53], "chase": [0, 4], "down": [0, 3, 4, 16, 35, 39, 48], "destroi": [0, 4], "To": [0, 2, 3, 4, 5, 7, 21, 30, 31, 32, 33, 34, 36, 37, 40, 42, 43, 44, 45, 47, 48, 50, 51, 52], "need": [0, 3, 4, 8, 11, 15, 17, 18, 23, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 42, 46, 48, 50, 52, 53, 54], "sort": [0, 4, 38], "unix": [0, 3, 16, 17, 33, 41], "account": [0, 2, 4, 17, 19, 29, 31, 33, 41, 43, 45, 46, 53], "pretti": [0, 44], "good": [0, 16, 23, 26, 30, 33, 40, 48, 53, 54], "knowledg": 0, "how": [0, 3, 6, 8, 11, 14, 15, 16, 19, 23, 24, 26, 30, 31, 32, 33, 34, 38, 39, 40, 47, 48, 50, 51, 52, 53], "compil": [0, 2, 3, 4, 29, 32, 33, 34, 35, 40, 42, 48, 50], "read": [0, 2, 3, 4, 6, 7, 17, 29, 30, 31, 32, 33, 34, 40, 48, 49, 53], "dcc": [0, 2, 4, 6, 8, 16, 22, 23, 25, 29, 31, 32, 33, 39, 41, 42, 44, 46, 51], "absolut": [0, 34, 48, 54], "minimum": [0, 2, 11, 32, 37, 48, 52], "mb": 0, "disk": [0, 40, 41, 48], "space": [0, 8, 40, 43, 48], "tarbal": [0, 33], "4": [0, 3, 4, 8, 11, 15, 23, 29, 30, 31, 32, 33, 34, 37, 39, 40, 42, 48], "unpack": 0, "cannot": [0, 11, 29, 33, 36, 46, 48, 54], "without": [0, 2, 4, 5, 6, 10, 11, 14, 20, 29, 30, 31, 32, 33, 34, 37, 39, 40, 41, 43, 46, 48, 50], "instal": [0, 4, 5, 21, 30, 31, 34, 37, 40, 47], "shell": [0, 3, 4, 17, 31, 33, 35, 40, 48], "copyright": [0, 1, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "c": [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "1999": [0, 3, 4, 7, 38, 39, 45, 48, 49, 51], "2023": [21, 22, 25, 27, 40], "egghead": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 33, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "develop": [0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 34, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 54], "team": [0, 1, 2, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "eggdrop": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 38, 42, 43, 44, 46, 49, 50, 51, 53, 54], "robei": [1, 3, 4, 41, 49, 54], "pointer": [1, 3, 4, 8, 32, 41, 49], "As": [1, 16, 20, 30, 33, 34, 35, 43, 48, 50, 53], "januari": [1, 9, 10, 13, 19, 48], "1997": [1, 3, 4, 41, 49], "accord": [1, 48, 54], "There": [1, 3, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 26, 29, 30, 31, 32, 34, 36, 38, 40, 42, 46, 49, 50, 53, 54], "should": [1, 3, 4, 5, 6, 8, 11, 13, 14, 15, 16, 18, 20, 23, 24, 26, 29, 30, 31, 32, 33, 35, 37, 39, 40, 42, 44, 46, 47, 48, 50, 52, 53], "copi": [1, 2, 5, 7, 16, 29, 32, 33, 48], "file": [1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 38, 39, 41, 42, 46, 47, 49, 50, 54], "If": [1, 3, 4, 5, 6, 7, 8, 11, 13, 16, 17, 18, 20, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 44, 45, 46, 48, 50, 51, 52], "write": [1, 2, 6, 7, 28, 33, 37, 40, 46, 48, 53], "free": [1, 2, 5, 29, 32], "foundat": [1, 32], "inc": [1, 32], "51": 1, "franklin": 1, "street": 1, "fifth": 1, "floor": 1, "boston": [1, 32], "ma": [1, 32], "02110": 1, "1301": 1, "usa": [1, 32], "3": [1, 4, 8, 11, 14, 15, 16, 18, 21, 23, 25, 31, 32, 33, 34, 36, 39, 40, 43, 48], "28": [1, 10, 20], "all": [1, 5, 6, 7, 8, 11, 14, 15, 16, 18, 20, 21, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52, 53, 54], "chang": [1, 2, 8, 10, 11, 16, 18, 20, 23, 24, 26, 30, 32, 33, 34, 37, 39, 40, 41, 43, 44, 45, 50, 52, 53], "sourc": [1, 3, 4, 5, 6, 7, 8, 21, 29, 30, 32, 34, 37, 40, 45, 48, 50, 51], "code": [1, 2, 3, 4, 7, 8, 29, 30, 37, 48], "relat": [1, 6, 11, 30, 32, 42, 48], "still": [1, 4, 5, 6, 11, 16, 24, 32, 33, 34, 36, 40, 41, 48, 53], "did": [1, 31, 46], "past": [1, 4, 29, 32, 40], "previou": [1, 3, 4, 5, 20, 33, 48, 53], "0m": 1, "were": [1, 17, 18, 38, 39, 40, 42, 46, 48, 53], "differ": [1, 3, 4, 5, 11, 16, 23, 30, 32, 34, 36, 40, 46, 47, 48, 51, 52], "scheme": 1, "mai": [1, 4, 5, 11, 12, 16, 17, 18, 25, 30, 33, 39, 40, 42, 43, 48, 51, 52, 53], "option": [1, 3, 4, 7, 11, 16, 17, 20, 23, 31, 32, 33, 40, 50, 53], "those": [1, 3, 7, 12, 16, 23, 29, 30, 31, 32, 33, 35, 48, 51, 52, 53], "instead": [1, 4, 5, 11, 16, 17, 18, 21, 24, 26, 33, 35, 37, 39, 40, 43, 46, 48, 50, 51, 53, 54], "packag": [1, 3, 4, 21, 33, 34, 37, 47], "bless": 1, "For": [1, 2, 3, 5, 6, 7, 8, 16, 23, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 44, 46, 47, 48, 50, 51, 52, 53], "bear": 1, "date": [1, 4, 32, 33, 36, 40, 48], "later": [1, 3, 6, 8, 10, 19, 20, 27, 30, 32, 33, 40, 48, 50], "choic": [1, 23, 30], "must": [1, 2, 3, 4, 8, 11, 15, 17, 18, 23, 25, 29, 31, 32, 33, 34, 35, 36, 37, 39, 40, 46, 47, 48, 50, 52], "match": [1, 2, 8, 11, 16, 18, 29, 30, 32, 37, 38, 40, 46, 50, 52], "net": [1, 3, 18, 23, 26, 33, 36, 43], "blowfish": [1, 2, 5, 6, 20, 29, 40, 46, 48], "abov": [1, 4, 18, 20, 29, 30, 31, 35, 41, 48, 49], "restrict": [1, 16, 17, 23, 40, 48, 49, 53], "origin": [1, 6, 8, 22, 23, 33, 45, 48], "chri": 1, "fuller": 1, "place": [1, 3, 5, 7, 11, 16, 18, 21, 30, 32, 33, 37, 38, 40, 47, 48, 50, 53], "him": 1, "domain": [1, 15, 39], "variou": [1, 8, 29, 33, 38, 40, 48], "well": [1, 26, 30, 31, 32, 33, 34, 36, 37, 40, 46, 48, 50, 53], "contain": [1, 3, 4, 5, 30, 33, 36, 37, 39, 40, 42, 48, 50, 52], "could": [1, 8, 23, 30, 37, 39, 40, 42, 45, 46, 48, 50, 53], "port": [1, 5, 15, 17, 23, 24, 31, 33, 34, 35, 39, 40, 42, 50], "applic": [1, 40, 48], "john": 1, "ousterhout": 1, "wai": [1, 3, 17, 23, 26, 29, 30, 31, 33, 34, 36, 38, 39, 40, 44, 46, 48, 50, 53], "affili": [1, 53], "its": [1, 2, 4, 6, 7, 11, 16, 17, 18, 20, 23, 24, 26, 30, 31, 32, 33, 36, 37, 39, 40, 41, 43, 45, 47, 48, 51, 53], "own": [1, 6, 7, 16, 17, 23, 24, 30, 31, 32, 33, 34, 35, 37, 43, 47, 48, 50, 51, 53], "nots": 1, "warranti": [1, 32], "impli": [1, 29, 32], "whatev": [1, 3, 30, 40, 41, 48, 49], "risk": [1, 23], "matter": [1, 8, 15, 30, 31], "put": [1, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 40, 47, 48, 50], "built": [2, 17, 47, 48, 51], "assist": [2, 33, 36, 50], "manag": [2, 4, 6, 16, 26, 34, 35, 37, 53], "oldest": [2, 48], "activ": [2, 11, 17, 32, 33, 36, 37, 38, 44, 48, 50], "maintain": [2, 17, 33, 35, 36, 51, 52], "via": [2, 3, 4, 6, 11, 12, 17, 18, 22, 24, 29, 30, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49, 50, 52, 53], "abil": [2, 6, 7, 17, 34, 36, 39, 41, 48], "run": [2, 3, 4, 5, 6, 7, 11, 17, 21, 23, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 46, 47, 49, 50, 52], "join": [2, 6, 8, 11, 13, 18, 19, 26, 30, 32, 33, 34, 35, 38, 40, 41, 43, 44, 48, 52, 53, 54], "perorm": 2, "obtain": [2, 34, 50], "larg": [2, 16, 18, 23, 40], "number": [2, 11, 16, 18, 19, 20, 23, 25, 26, 29, 32, 33, 34, 37, 39, 40, 46, 48, 50, 52, 53, 54], "integr": [2, 47], "ircv3": [2, 36, 41, 48, 51], "capabl": [2, 35, 40, 41, 47, 48, 51, 53], "tl": [2, 3, 4, 5, 8, 31, 33, 35, 37, 40, 48], "ipv6": [2, 33, 40, 41, 48], "twitch": [2, 6, 41], "much": [2, 3, 8, 26, 29, 44, 48], "project": [2, 45, 53], "http": [2, 4, 5, 6, 22, 27, 33, 36, 37, 43, 47], "github": [2, 4, 6, 22, 33], "com": [2, 4, 5, 6, 22, 23, 30, 31, 33, 39, 40, 46, 47, 48, 50], "clone": [2, 4, 11, 33], "git": [2, 3, 33, 45], "altern": [2, 4, 6, 17, 23, 33, 34, 35, 37, 39, 40, 48, 50], "stabl": [2, 4, 33, 35], "snapshot": [2, 33], "locat": [2, 4, 30, 31, 34, 37, 40, 50], "geteggdrop": [2, 4, 33], "addit": [2, 4, 5, 8, 17, 23, 32, 33, 35, 40, 48, 50, 52], "found": [2, 4, 8, 29, 40, 48, 52], "offici": [2, 4], "webpag": 2, "www": [2, 4, 6, 27], "org": [2, 4, 5, 6, 27, 30, 33, 34, 39, 40, 48], "requir": [2, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 31, 33, 37, 40, 46, 50, 52], "header": [2, 4, 29, 30, 34, 50], "present": [2, 6, 30, 31, 36, 37, 42, 48, 52, 53], "system": [2, 3, 6, 7, 15, 16, 17, 29, 33, 37, 40, 41, 42, 48, 49, 50], "strongli": [2, 33], "encourag": [2, 33, 46], "openssl": [2, 3, 4, 20, 31, 33, 34, 40, 50], "commun": [2, 4, 29, 39, 44, 45, 48], "guid": [2, 3, 30, 33, 34], "quickli": [2, 40], "here": [2, 4, 11, 14, 15, 16, 18, 19, 23, 25, 30, 31, 32, 33, 37, 38, 39, 40, 47, 48, 51, 52], "lurk": 2, "libera": [2, 4, 5, 23, 29, 30, 31, 33], "readm": [2, 3, 37], "notic": [2, 14, 16, 30, 39, 40, 48, 53], "quick": [2, 29, 33], "startup": [2, 8, 46, 48], "upgrad": [2, 33, 46, 50], "command": [2, 3, 6, 8, 11, 13, 16, 17, 18, 22, 23, 29, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 46, 50, 53, 54], "line": [2, 3, 5, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 36, 37, 39, 40, 41, 46, 47, 48, 50, 51, 52, 53], "auto": [2, 3, 39, 54], "start": [2, 3, 5, 6, 10, 17, 20, 23, 28, 30, 31, 37, 39, 40, 43, 44, 46, 48, 49, 52, 53], "document": [2, 8, 17, 30, 33, 34, 37, 39, 42, 43, 45, 47, 50, 51], "cygwin": [2, 42], "window": [2, 31, 42], "v1": [2, 24, 25, 30, 37, 48, 50, 52], "core": [2, 3, 6, 7, 8, 18, 19, 21, 23, 29, 30, 32, 47, 48, 51], "execut": [2, 3, 7, 29, 30, 31, 36, 48], "path": [2, 3, 6, 16, 17, 33, 34, 37, 48, 50], "basic": [2, 4, 6, 7, 22, 30, 33, 47], "consol": [2, 4, 6, 11, 29, 37, 41, 44], "directori": [2, 3, 4, 6, 7, 8, 29, 31, 33, 34, 37, 41, 45, 50, 51], "telnet": [2, 31, 33, 39, 41, 42, 44, 46, 48, 49, 50], "ssl": [2, 3, 4, 5, 23, 31, 33, 34, 39, 41, 48], "parti": [2, 4, 5, 13, 33, 39, 40, 41, 47, 48, 50, 54], "autoscript": 2, "usag": [2, 4, 6, 29, 47, 48], "structur": [2, 35], "hint": [2, 30], "flag": [2, 5, 6, 11, 14, 18, 24, 29, 30, 32, 33, 35, 37, 40, 41, 49], "term": [2, 30, 32, 34, 48], "exampl": [2, 3, 4, 5, 7, 8, 16, 17, 23, 29, 30, 31, 32, 33, 34, 35, 37, 40, 44, 47, 48, 50, 51, 52, 53], "bottre": [2, 35], "botflag": [2, 24], "record": [2, 24, 29, 32, 35, 36, 41, 54], "certif": [2, 3, 23, 31, 34, 40, 48], "authent": [2, 36, 46, 48, 53], "ctcp": [2, 6, 11, 23, 31, 33, 40, 48, 50], "chat4": 2, "chat6": 2, "kei": [2, 3, 11, 18, 26, 30, 31, 40, 46, 52, 53], "cap": [2, 29, 36, 41, 53], "track": [2, 3, 16, 26, 29, 31, 48, 53], "server": [2, 4, 5, 6, 7, 11, 14, 15, 16, 17, 18, 20, 26, 27, 29, 31, 32, 33, 40, 41, 42, 43, 50, 51, 52, 53], "check": [2, 4, 5, 8, 11, 23, 29, 30, 31, 32, 34, 37, 40, 46, 48, 50, 52], "determin": [2, 3, 17, 29, 31, 33, 39, 42, 48, 50], "best": [2, 3, 6, 17, 33, 35, 37, 39, 48, 52], "encrypt": [2, 5, 6, 10, 20, 31, 34, 39, 40, 41, 50], "hash": [2, 5, 6, 20, 33, 48], "background": [2, 4, 30], "interfac": [2, 26, 48, 53], "disclaim": [2, 48], "regist": [2, 8, 11, 31, 32, 48], "edit": [2, 3, 8, 30, 32, 37, 51], "config": [2, 3, 4, 6, 7, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 34, 35, 36, 38, 39, 40, 42, 46, 47, 49, 50], "web": [2, 6, 26, 27, 47, 52], "ui": [2, 52], "limit": [2, 6, 8, 11, 16, 18, 23, 37, 39, 42], "tip": [2, 48], "renam": [2, 16, 29, 33, 40, 48], "keep": [2, 4, 11, 16, 23, 25, 33, 35, 40, 53], "self": [2, 23, 34, 40, 50], "modifi": [2, 6, 11, 15, 18, 30, 32, 36, 37, 40, 48], "default": [2, 3, 4, 6, 12, 15, 16, 18, 23, 25, 31, 33, 34, 36, 37, 38, 40, 46, 48, 50], "string": [2, 6, 8, 11, 18, 29, 30, 31, 37, 40, 46, 52, 53], "modular": 2, "variabl": [2, 5, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25, 29, 30, 36, 37, 40, 42, 49, 52], "textfil": 2, "substitut": [2, 40], "output": [2, 3, 29, 31, 32, 34, 46, 49, 51, 52], "manipul": [2, 40], "note": [2, 3, 6, 7, 8, 10, 11, 15, 18, 20, 23, 24, 29, 31, 32, 33, 36, 39, 40, 46, 47, 50, 52, 53], "assoc": [2, 6], "compress": [2, 4, 6, 31], "filesi": [2, 6, 8, 40], "miscellan": 2, "global": [2, 8, 13, 17, 18, 23, 24, 29, 30, 32, 37, 38, 39, 52, 54], "bind": [2, 6, 17, 18, 23, 26, 29, 30, 36, 40, 43, 51, 53], "procedur": [2, 24, 36, 52, 54], "tcp": [2, 17, 42], "connect": [2, 4, 5, 6, 15, 16, 17, 23, 26, 29, 31, 33, 35, 39, 40, 42, 44, 50, 53, 54], "charact": [2, 11, 16, 23, 33, 39, 40, 42, 46], "patch": [2, 42, 48], "submit": [2, 48], "prerequisit": 2, "super": 2, "short": [2, 29, 31, 42, 50], "configur": [2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 37, 40, 42, 45, 47, 48, 50], "common": [2, 23, 33, 34, 39, 40, 43, 50, 54], "step": [2, 3, 5, 8, 29, 33, 35, 53], "partylin": [2, 4, 6, 8, 11, 13, 33, 34, 36, 37, 39, 40, 42, 46, 48, 50, 51, 52, 53, 54], "automat": [2, 3, 4, 5, 8, 13, 17, 23, 33, 35, 36, 37, 38, 39, 40, 41, 42, 46, 47, 48, 50, 53, 54], "restart": [2, 3, 4, 5, 7, 30, 33, 37, 40], "nickserv": [2, 50], "sasl": [2, 33, 41, 43], "export": [8, 32, 51], "dynam": [2, 3, 11, 31, 33, 38, 48], "static": [2, 3, 8, 11, 29, 31, 32, 48], "dn": [2, 6, 40, 48], "ident": [2, 6, 7, 18, 23, 31, 40, 42, 46, 48], "pbkdf2": [2, 5, 6, 46], "seen": [2, 6, 11, 36, 40, 48], "transfer": [2, 6, 7, 12, 16, 24, 33, 39, 40, 42, 48, 50, 54], "woobi": [2, 3, 6, 29, 32, 37], "uptim": [2, 6], "intern": [2, 23, 36, 40, 43, 48, 52], "tabl": [2, 29, 32, 43, 48], "creation": [31, 36], "stackabl": [], "ht_stackabl": 32, "trigger": [2, 11, 23, 29, 30, 32, 36, 43, 47, 48, 52], "handler": 2, "summari": [2, 37], "bore": [2, 4], "legal": [2, 4], "stuff": [2, 4, 29, 30, 33, 40, 48], "had": [3, 5, 11, 39, 48, 53], "littl": [3, 5, 16, 26, 33, 37, 39, 51], "experi": [3, 16, 30, 33], "THE": 3, "now": [3, 5, 8, 16, 17, 18, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 46, 48, 52, 54], "experienc": 3, "more": [3, 4, 5, 6, 8, 14, 16, 18, 22, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 43, 45, 46, 47, 48], "cours": [3, 8, 30, 39, 40, 48], "autoconfigur": 3, "thing": [3, 4, 6, 26, 28, 29, 30, 31, 35, 39, 40, 48, 53], "easier": [3, 20], "type": [2, 3, 4, 6, 7, 11, 13, 18, 23, 26, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 47, 50], "figur": [3, 33], "correctli": [3, 48], "try": [3, 4, 6, 7, 22, 23, 27, 29, 30, 31, 33, 35, 36, 40, 52], "find": [3, 6, 15, 18, 21, 22, 29, 30, 31, 33, 44, 45, 47, 48, 53], "which": [3, 5, 6, 8, 11, 13, 15, 16, 17, 23, 24, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 54], "either": [3, 4, 8, 16, 17, 31, 32, 33, 34, 36, 38, 39, 40, 42, 47, 48, 50, 52], "iconfig": [3, 7, 33], "everyth": [3, 8, 30, 47, 48], "mod": [3, 6, 7, 22, 26, 29, 40, 47, 48, 52], "choos": [3, 7, 31, 33, 40, 41, 53], "forc": [3, 11, 13, 16, 20, 24, 30, 35, 40, 42, 48], "otherwis": [3, 4, 13, 16, 30, 36, 38, 39, 40, 42, 46, 48, 50, 52], "makefil": [3, 29], "better": [3, 4, 6, 22, 31, 33, 40], "possibl": [3, 6, 11, 14, 16, 23, 31, 34, 35, 39, 40, 42, 43, 44, 48, 50, 52], "debug": [3, 27, 29, 30, 40, 48, 50, 52], "sdebug": 3, "give": [3, 4, 11, 16, 23, 30, 33, 35, 39, 40, 41, 44, 46, 48, 54], "detail": [3, 4, 6, 8, 29, 32, 33, 36, 48, 50, 52], "highli": [3, 23, 33], "unlik": [3, 41], "crash": [3, 4, 8, 48], "take": [3, 4, 5, 6, 11, 16, 20, 23, 27, 30, 32, 33, 37, 40, 46, 47, 48, 50], "longer": [3, 5, 16, 18, 20, 29, 33, 34, 37, 48], "enlarg": 3, "binari": [3, 34, 48], "bit": [3, 16, 26, 30, 33, 34, 40, 48, 50, 53], "worth": 3, "somewher": [3, 40], "accomplish": 3, "enter": [3, 11, 16, 31, 34, 40, 44, 45, 46, 48, 50, 52], "home": [3, 16, 17, 31, 33, 50], "e": [3, 6, 8, 9, 10, 11, 18, 20, 29, 31, 33, 39, 40, 48, 49, 54], "dest": [3, 6, 33, 34, 40, 48, 50], "otherdir": 3, "full": [3, 4, 5, 8, 11, 26, 33, 42, 43, 48, 50, 52, 53], "8": [3, 4, 5, 6, 8, 11, 15, 20, 21, 23, 32, 33, 39, 40, 42, 46, 48, 50], "intend": [3, 8, 37, 38, 48], "traffic": [3, 40, 51], "between": [3, 6, 11, 16, 19, 23, 24, 32, 34, 36, 39, 40, 42, 48], "sslcert": [3, 34, 40, 50], "Or": [3, 34, 48], "non": [3, 8, 11, 15, 17, 18, 23, 29, 31, 38, 39, 48, 50, 53], "interact": [3, 4, 6, 17, 18, 32, 40, 48, 50, 53], "sslsilent": [3, 50], "info": [3, 4, 11, 13, 18, 29, 33, 40], "follow": [3, 4, 5, 8, 11, 16, 18, 21, 23, 26, 29, 32, 33, 34, 37, 39, 40, 41, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53], "complet": [3, 4, 16, 24, 33, 41, 47, 48, 50, 54], "m": [3, 4, 11, 23, 33, 40, 42, 46, 48, 49, 51, 52, 54], "lamestbot": [3, 11, 19, 23, 33, 39, 40, 48, 49], "conf": [3, 7, 17, 31, 33, 43, 48, 50], "when": [3, 4, 6, 7, 8, 10, 11, 13, 16, 17, 18, 23, 24, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 42, 44, 46, 47, 48, 50, 52, 53], "futur": [3, 18, 31, 33, 46, 48], "drop": [3, 4, 40, 48], "chmod": [3, 40], "u": [3, 5, 8, 29, 30, 31, 32, 39, 40, 48, 49, 54], "x": [3, 5, 8, 11, 14, 32, 33, 34, 40, 42, 48, 54], "my": [3, 5, 37, 40, 42, 50, 54], "name": [3, 4, 6, 8, 9, 16, 23, 29, 30, 31, 32, 33, 34, 36, 37, 40, 43, 52], "abl": [3, 4, 6, 11, 16, 18, 23, 33, 36, 40, 44, 46, 47, 48], "prompt": [3, 4, 36], "work": [3, 4, 5, 6, 8, 11, 14, 16, 20, 22, 24, 29, 30, 31, 32, 33, 38, 39, 40, 42, 43, 45, 46, 48, 50, 51, 52], "top": [3, 4, 30, 45, 48], "correct": [3, 8, 32, 34, 40, 46], "advis": [3, 4, 23], "crontab": [3, 4, 48], "so": [3, 4, 6, 7, 8, 10, 16, 17, 18, 20, 27, 30, 31, 32, 33, 35, 36, 38, 40, 41, 42, 46, 48, 52], "machin": [3, 4, 17, 21, 33, 37, 40, 47], "goe": [3, 11, 31, 35, 37, 38, 39, 44, 48, 50], "heaven": 3, "forbid": 3, "helper": 3, "systemd": [3, 4], "entri": [3, 4, 8, 31, 40], "add": [3, 4, 5, 6, 7, 8, 11, 17, 18, 21, 26, 29, 30, 32, 33, 34, 35, 36, 37, 39, 40, 41, 46, 47, 53], "job": [3, 4, 31, 50], "autobotchk": [3, 4, 31], "yourconfig": 3, "smile": 3, "tool": [3, 33], "prior": [3, 31, 33, 36, 46, 50], "interpret": [3, 4, 6, 21, 32, 42, 48, 49], "devel": 3, "autoconf": 3, "gcc": 3, "util": [3, 4], "diffutil": 3, "small": [3, 25, 39, 51], "piec": [3, 30, 32], "separ": [3, 7, 8, 23, 33, 37, 39, 40, 41, 42, 43, 48, 51, 52], "smaller": 3, "download": [3, 4, 5, 7, 16, 25, 35, 37, 40, 41, 48], "src": [3, 7, 8, 18, 29, 47], "extens": [3, 33, 36, 37], "dure": [3, 12, 24, 29, 31, 33], "valid": [3, 11, 23, 29, 39, 40, 41, 48, 50], "compat": [3, 5, 37, 43, 48, 52, 53], "rest": [3, 29, 32, 39, 40, 46, 48, 52], "wish": [3, 5, 7, 8, 17, 18, 27, 29, 33, 35, 37, 38, 39, 40, 48, 52], "paragraph": 3, "2": [3, 8, 11, 14, 18, 21, 23, 31, 32, 33, 34, 36, 39, 40, 42, 43, 46, 48, 50], "after": [3, 4, 8, 11, 17, 18, 23, 29, 30, 31, 36, 37, 38, 40, 43, 48, 50, 51, 53], "move": [3, 16, 23, 33, 48, 53], "appropri": [3, 5, 33, 35, 39, 40, 43, 45, 46], "onli": [3, 4, 5, 6, 7, 8, 11, 16, 17, 18, 19, 22, 23, 24, 27, 28, 30, 31, 33, 35, 36, 38, 39, 40, 42, 43, 44, 46, 48, 49, 50, 51, 52, 54], "portion": [3, 7, 11, 48], "end": [3, 29, 31, 32, 40, 46, 48, 49], "point": [3, 6, 8, 23, 28, 32, 33, 35, 37, 39, 40, 48], "hopefulli": [3, 48], "IT": [3, 4], "fun": [3, 53], "pleas": [4, 5, 6, 7, 10, 11, 17, 20, 23, 34, 40, 43, 47, 48], "least": [4, 18, 29, 32, 33, 38, 40], "skim": 4, "ask": [4, 18, 31, 33, 44, 48, 50], "question": [4, 31], "ve": [4, 16, 33, 35, 38, 39, 44], "never": [4, 5, 11, 40, 48], "successfulli": [4, 29, 35, 48, 52], "sure": [4, 11, 29, 30, 33, 34, 39, 40, 48, 53], "select": [4, 33, 40, 41, 45, 48], "n": [4, 5, 11, 31, 32, 39, 40, 44, 48, 49, 54], "owner": [4, 8, 11, 33, 40, 44, 48, 54], "wise": [4, 40], "100": [4, 18, 52], "power": [4, 41], "TO": 4, "someon": [4, 11, 18, 30, 33, 34, 48, 52], "trust": [4, 40, 54], "about": [4, 6, 26, 27, 29, 30, 31, 32, 37, 40, 48, 51, 53], "older": [4, 5, 42, 48], "frequent": [4, 33], "where": [4, 6, 8, 11, 15, 16, 19, 23, 29, 30, 31, 33, 34, 36, 37, 40, 41, 46, 47, 48, 50, 52], "might": [4, 18, 29, 40, 48, 50], "two": [4, 6, 11, 18, 24, 30, 32, 33, 35, 36, 37, 38, 39, 40, 46, 48, 50, 51], "method": [4, 10, 17, 18, 20, 26, 30, 33, 34, 35, 46, 47, 48, 51, 53], "come": [4, 6, 18, 23, 31, 33, 45, 48], "imag": 4, "latest": [4, 5], "pub": [4, 5, 23, 31, 32, 36, 43, 47, 48], "cv": [], "base": [6, 33, 36, 37, 40, 46, 48], "interest": 4, "veri": [4, 6, 17, 22, 23, 30, 40, 47], "updat": [4, 5, 6, 20, 21, 22, 29, 33, 36, 40, 41, 46, 47, 48, 52], "pull": [4, 45, 46], "recent": [4, 33, 48], "BE": 4, "warn": [4, 17, 30, 48], "branch": [4, 45], "consid": [4, 33, 36, 38, 40, 44, 48], "haha": 4, "signific": [4, 6], "repositori": [4, 33], "simpli": [4, 5, 31, 33, 34, 43, 47, 48, 53], "tar": [4, 7, 33], "archiv": 4, "gz": [4, 33], "hub": [4, 24, 33, 39, 40, 46, 50], "_": [4, 36, 49], "mani": [4, 5, 11, 15, 16, 18, 23, 29, 31, 32, 33, 34, 35, 39, 40, 48], "tclsh": 4, "given": [4, 8, 15, 16, 17, 33, 39, 48, 52], "exit": [4, 6, 13, 16, 23, 48], "howev": [4, 6, 7, 14, 23, 31, 33, 34, 36, 40, 46, 48, 50, 51], "often": [4, 6, 8, 15, 31, 33, 40, 52], "o": [4, 11, 14, 18, 26, 33, 34, 39, 40, 42, 48, 52, 53, 54], "usual": [4, 31, 32, 33, 34, 38, 42, 45, 46, 48, 50, 53], "someth": [4, 8, 30, 33, 37, 45, 47, 48, 53], "similar": [4, 8, 11, 21, 31, 32, 33, 37, 40, 44, 45, 47, 48, 51], "dev": [4, 21, 33, 34, 47], "tk": 4, "tcltk": 4, "html": [4, 42], "recommend": [5, 11, 25, 29, 33, 37, 46, 48, 51, 52], "order": [4, 15, 21, 30, 32, 35, 36, 40, 46, 48, 50, 52], "data": [4, 11, 24, 29, 34, 46, 48], "libssl": [4, 33, 34], "finish": [4, 8, 16, 33, 48], "simpl": [4, 29, 30, 31, 32, 33, 35, 37, 48], "new": [2, 4, 5, 6, 7, 20, 26, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43, 44, 45, 46, 50, 51, 53], "repeat": [4, 35, 36, 48], "defin": [4, 6, 8, 11, 12, 14, 18, 23, 29, 30, 33, 36, 37, 38, 39, 40, 43, 48, 54], "through": [4, 11, 16, 23, 26, 30, 34, 41, 42, 43, 44, 48, 53, 54], "sometim": [4, 23, 33], "mode": [4, 5, 8, 11, 14, 18, 23, 26, 29, 31, 36, 38, 40, 41, 43, 53], "let": [4, 6, 8, 11, 15, 19, 29, 30, 33, 39, 40, 41, 48], "avail": [4, 8, 11, 16, 20, 27, 29, 31, 32, 33, 34, 37, 40, 41, 42, 44, 48, 53], "t": [4, 6, 7, 8, 10, 11, 13, 15, 16, 17, 18, 20, 23, 24, 26, 27, 29, 30, 31, 32, 33, 37, 38, 39, 40, 44, 48, 49, 50, 51, 52, 54], "don": [4, 7, 11, 15, 16, 18, 23, 24, 26, 29, 30, 31, 32, 33, 37, 39, 40, 44, 48, 50, 51], "termin": [4, 5, 8, 48], "session": [4, 42, 43], "troubleshoot": [4, 33], "issu": [4, 5, 17, 26, 33, 36, 40, 45, 48, 50, 52, 53], "show": [4, 6, 8, 11, 16, 27, 30, 39, 40, 47, 48], "10": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54], "second": [4, 8, 11, 14, 15, 18, 23, 25, 29, 30, 32, 40, 51], "screen": [4, 45, 49], "clear": [4, 6, 8, 45, 50, 52, 53], "one": [4, 8, 11, 16, 17, 18, 23, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 50, 51], "person": [4, 30, 33, 40, 48], "introduc": [4, 33, 48], "himself": 4, "herself": 4, "ll": [4, 30, 31, 32, 33, 36, 40, 46, 48, 50], "h": [4, 8, 18, 29, 34, 35, 39, 40, 48, 54], "quit": [4, 6, 8, 23, 33, 35, 40, 48], "v": [4, 8, 11, 18, 31, 40, 48, 49, 54], "peopl": [4, 11, 16, 17, 18, 19, 23, 24, 30, 33, 40, 41, 44, 48, 49, 54], "except": [4, 14, 21, 23, 29, 35, 40, 48, 50], "onc": [4, 6, 8, 11, 16, 18, 20, 23, 30, 31, 33, 35, 39, 45, 48], "along": [4, 16, 32], "manual": [4, 31, 35, 37, 39, 40, 42, 47, 48, 50, 52], "oper": [4, 14, 23, 30, 37, 40, 42, 48, 49], "reason": [4, 29, 31, 33, 35, 37, 39, 40], "monitor": [4, 31, 38, 41, 43], "boot": [4, 8, 40], "b": [4, 11, 16, 18, 26, 30, 31, 39, 40, 45, 48, 49, 53, 54], "minut": [4, 11, 18, 25, 29, 31, 33, 35, 38, 40], "attempt": [4, 5, 11, 17, 18, 23, 26, 34, 35, 36, 38, 39, 40, 47, 48, 50, 53], "geneer": 4, "setup": [4, 6, 7, 33, 40], "would": [4, 5, 14, 30, 31, 33, 34, 35, 36, 39, 40, 47, 48, 49, 50, 52, 53], "noemail": 4, "botchk": [4, 31, 33], "send": [4, 6, 12, 16, 18, 19, 23, 24, 25, 29, 30, 33, 35, 36, 39, 42, 48, 51, 52], "email": [4, 31, 40, 48], "sai": [4, 11, 16, 30, 34, 39, 48], "we": [4, 5, 8, 11, 18, 26, 29, 30, 31, 32, 33, 34, 35, 37, 39, 48, 53], "re": [4, 8, 11, 17, 18, 23, 30, 31, 33, 34, 35, 36, 37, 38, 40, 42, 44, 48, 53], "feel": [4, 5, 29, 45], "miss": [4, 33, 36, 48], "yet": [4, 23, 32, 33, 40, 48], "thank": 4, "discuss": [4, 45], "dalnet": [4, 18, 23], "efnet": [4, 18, 23], "egghelp": [4, 33], "ircnet": [4, 11, 18, 23], "quakenet": [4, 23], "undernet": [4, 18, 23, 48], "plan": [4, 30, 48], "familiar": [4, 30], "etiquett": 4, "capit": [4, 54], "letter": [4, 40, 54], "color": [4, 48], "bold": [4, 48, 49, 54], "excess": [4, 11, 23], "msg": [4, 6, 18, 22, 23, 31, 32, 33, 40, 41, 44, 46, 52], "permiss": [4, 40, 46], "than": [4, 8, 11, 14, 16, 18, 33, 34, 40, 46, 48, 50], "text": [4, 11, 23, 29, 31, 32, 40, 49, 50, 51, 52, 54], "state": [4, 48], "relev": [4, 29, 33], "error": [4, 23, 29, 33, 40, 48, 53], "messag": [4, 11, 23, 29, 30, 32, 36, 40, 41, 43, 44, 46, 47, 49, 51, 52], "easi": [5, 6, 30, 33, 37, 48, 50], "pictur": 5, "reus": [5, 48], "visit": [5, 53], "newer": [5, 33, 37], "backup": [5, 29], "chan": [5, 8, 11, 18, 21, 30, 31, 32, 33, 51], "save": [5, 6, 11, 12, 13, 24, 39, 40, 41, 46], "overwritten": [5, 40, 48], "hurt": 5, "another": 5, "next": [5, 8, 11, 16, 23, 29, 30, 32, 33, 34, 35, 37, 39, 40, 48], "view": [5, 7, 20, 31, 33, 37, 41, 48, 52], "pai": [5, 36, 48], "particular": [5, 31, 32, 37, 40], "attent": [5, 23, 36, 48], "section": [5, 8, 18, 23, 26, 30, 32, 33, 35, 39, 40, 48, 53], "Then": [5, 31, 33, 50], "previous": [5, 33, 48], "unzip": [5, 33], "untar": 5, "These": [5, 8, 11, 12, 18, 29, 33, 36, 37, 38, 39, 40, 42, 47, 49, 50, 52, 54], "NOT": [5, 8, 30, 33, 36, 39, 40, 48, 52], "rather": [5, 48, 50], "killer": 5, "directli": [5, 6, 11, 17, 24, 32, 33, 48], "affect": [5, 11, 26, 40, 41, 42, 48, 53], "modif": [5, 48], "migrat": 5, "suggest": [5, 29, 37, 43], "deprec": [5, 6, 34, 48], "password": [5, 6, 10, 18, 20, 23, 24, 31, 33, 39, 40, 41, 44, 46, 50, 53], "favor": [5, 6, 24], "big": [5, 48, 51], "done": [5, 8, 24, 29, 31, 32, 33, 34, 35, 39, 43, 45, 46, 48, 53], "carelessli": 5, "potenti": [5, 17, 30, 48, 52], "render": [5, 26, 53], "store": [5, 6, 11, 13, 16, 19, 26, 27, 30, 33, 36, 37, 39, 46, 48, 52, 53], "useless": [5, 26, 53], "properli": [5, 32, 33, 34, 39, 40], "switch": [5, 29, 33, 36, 40, 48, 50, 51], "syntax": [5, 8, 31, 40, 47, 50, 54], "6667": [5, 23, 33, 48, 53], "3rd": [5, 8], "remov": [4, 5, 6, 11, 16, 20, 29, 31, 32, 33, 38, 41, 42, 46, 51, 52, 53], "ftp": [5, 33], "fulli": [5, 37, 40, 48, 53], "explicitli": [5, 48, 50], "prefix": [5, 18, 23, 30, 34, 37, 39, 40, 44, 50, 52, 53], "advantag": [5, 33, 51], "chaddr": [5, 39], "lot": [5, 8, 18, 30, 33, 36], "backward": [5, 43], "reflect": [5, 48], "valu": [6, 14, 15, 18, 23, 26, 29, 30, 32, 37, 40, 46, 47, 49, 50, 52, 53], "disabl": [4, 6, 18, 23, 31, 37, 40, 42, 43, 48, 50], "cancel": [6, 48], "cd": [6, 8, 29, 32, 33, 48], "cp": 6, "dst": 6, "desc": [6, 29], "descript": [6, 8, 29, 30, 31, 37, 40, 48, 52, 54], "filestat": 6, "stat": 6, "get": [6, 7, 8, 11, 23, 24, 25, 29, 30, 34, 36, 40, 44, 54], "filenam": [6, 11, 19, 33, 37, 40, 50], "nicknam": [6, 8, 23, 30, 31, 33, 36, 40, 49, 51, 52, 54], "hide": [6, 42, 48], "ln": 6, "filepath": 6, "localfil": 6, "l": [6, 11, 18, 23, 31, 36, 39, 40, 54], "filemask": 6, "mkdir": 6, "dir": [6, 8, 31], "mv": 6, "pend": [6, 11], "pwd": [6, 33], "rm": [6, 33], "rmdir": 6, "optim": [6, 8, 23], "unhid": 6, "unshar": [6, 54], "api": [6, 32, 37], "decrypt": 6, "won": [6, 11, 24, 29, 30, 33, 38, 39, 40, 48, 50, 52], "specif": [6, 8, 11, 15, 17, 18, 20, 23, 26, 32, 33, 35, 39, 42, 43, 47, 48, 50, 52, 53, 54], "therefor": [6, 18, 40, 48], "amount": [6, 40], "bandwidth": [6, 12], "storag": [6, 13, 46], "repli": [6, 14, 15, 17, 18, 36, 40, 48], "d": [6, 11, 14, 16, 29, 31, 32, 33, 34, 39, 40, 43, 45, 48, 51, 54], "expect": [6, 14, 40, 48], "load": [2, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 39, 40, 46, 48, 53], "asynchron": [6, 15, 48], "avoid": [6, 8, 15, 31, 43], "long": [6, 11, 15, 19, 23, 24, 38, 40, 48, 49, 52], "period": [6, 15, 33, 48], "hang": [6, 15], "wait": [6, 15, 16, 18, 23, 25, 36, 40, 43, 48], "hostnam": [6, 11, 15, 31, 40, 42], "resolv": [6, 15, 40, 48], "timeout": [6, 15, 23, 25, 40, 52], "area": [6, 8, 16, 40, 48, 51, 54], "within": [6, 16, 29, 33, 34, 35, 37, 38, 40, 43, 47, 48], "usabl": [6, 16, 40, 47], "extern": [6, 8, 17, 31, 40], "oident": [6, 17], "servic": [6, 11, 17, 26, 31, 36, 48, 50, 53], "act": [6, 17, 29, 40, 41, 48, 50], "daemon": [6, 17, 40], "onlin": [6, 16, 19, 31, 36], "retriev": [6, 19, 47], "transit": [6, 20, 46, 48], "earlier": [6, 20, 32, 33], "AND": [6, 8, 20, 21, 33, 47, 48], "By": [6, 16, 18, 20, 23, 25, 31, 36, 39, 40, 48, 50, 53], "seamlessli": [6, 20], "old": [6, 20, 23, 33], "eventu": [6, 20], "altogeth": [6, 20], "itself": [6, 16, 29, 30, 31, 32, 40, 48], "ie": [6, 8, 33, 37, 46, 48, 50], "userlist": [6, 18, 22, 24, 43], "gseen": [6, 22], "g": [6, 8, 22, 29, 33, 35, 39, 40, 48, 54], "quann": [6, 22], "kreativrauschen": [], "Not": [6, 23, 31, 43], "equival": [6, 23, 34], "no_irc": [6, 23], "implement": [6, 7, 8, 17, 34, 36, 40, 43, 45, 46, 47, 48, 53], "tiwtch": 6, "report": [6, 16, 27, 29, 33, 51], "statist": [6, 16, 27], "contest": [6, 27], "site": [6, 27, 54], "hour": [6, 27, 29, 38, 40, 48], "isn": [6, 16, 23, 24, 27, 33, 38, 48], "again": [6, 16, 27, 29, 32, 37, 38, 39, 40, 46, 48, 52], "sent": [6, 16, 18, 24, 27, 31, 36, 40, 43, 44, 48, 50, 52, 54], "demonstr": [6, 28, 47, 48], "right": [6, 8, 16, 17, 28, 30, 33, 48], "jul": 7, "25": [7, 11, 23, 52], "2016": 7, "independ": 7, "main": [7, 30, 33, 34, 35, 36, 44], "desir": [7, 8, 29, 31, 32, 33, 46], "extra": [7, 40, 43], "overhead": 7, "bloat": 7, "enhanc": 7, "instruct": [7, 33, 46], "direct": [7, 34, 39, 45, 48], "un": [7, 18, 38, 40, 48], "format": [7, 8, 23, 29, 31, 33, 34, 40, 46, 47, 48, 49, 52], "modulenam": [7, 29], "folder": [7, 21, 47], "suffix": [7, 40], "rehash": [7, 29, 30, 31, 40], "ye": [7, 30, 31, 34, 48], "detect": [7, 23, 34, 42, 48, 50], "yourself": [7, 31, 33, 45, 46, 50], "until": [7, 11, 16, 38, 40, 48], "henc": [7, 29, 48], "nearli": 7, "who": [8, 11, 16, 18, 23, 30, 33, 36, 40, 43, 44, 48, 54], "understand": [8, 32, 37, 40, 48], "alreadi": [8, 11, 23, 29, 30, 32, 33, 34, 36, 39, 40, 46, 48, 53], "suitabl": [8, 52], "illustr": 8, "handl": [8, 30, 31, 32, 38, 40, 46, 50, 52], "snippet": 8, "alter": [8, 16, 41, 48, 53], "breviti": 8, "simplic": 8, "initi": [8, 29, 30, 33, 42, 43, 48, 50], "symbol": [8, 34, 48], "p_tcl_bind_list": [8, 32], "h_dcc": 8, "param": 8, "const": [8, 29], "char": [8, 29, 32, 40, 48], "length": [8, 18, 23, 29, 46, 48, 50], "tclhash": 8, "int": [8, 29, 32, 37], "intfunc": 8, "return": [18, 29, 32, 36, 37, 46, 47, 52], "aka": [8, 40], "tcl_bind_list_t": 8, "add_bind_t": [8, 32], "builtin_dcc": 8, "doe": [8, 11, 26, 30, 31, 36, 37, 38, 40, 43, 44, 47, 48, 52, 53, 54], "explain": [2, 8, 39, 48], "happen": [8, 30, 33, 38, 40, 48], "arbitrari": [8, 48], "argument": [8, 16, 18, 30, 31, 42, 48, 52], "import": [8, 21, 29, 30, 31, 33, 35, 36, 40, 44, 47, 48], "That": [8, 26, 30, 33, 39, 48, 54], "mean": [8, 16, 18, 21, 23, 30, 31, 32, 36, 38, 39, 40, 41, 42, 46, 48, 50, 52], "mask": [8, 16, 21, 23, 30, 32, 40, 52], "test": [8, 30, 33, 54], "proc1": 8, "proc2": 8, "overwrit": [8, 17, 33, 48], "proc": [8, 23, 29, 30, 37, 47, 52], "myproc": [8, 47, 48], "arg": [8, 29, 32], "putlog": [8, 23, 29, 30, 32, 47], "Of": [8, 39, 40], "far": [8, 16, 33], "against": [8, 11, 16, 20, 23, 30, 32, 33, 46, 48, 52], "receiv": [8, 15, 16, 23, 31, 32, 35, 43, 48, 52], "accept": [8, 16, 24, 26, 32, 34, 35, 37, 39, 40, 48, 50, 53], "check_tcl_dcc": 8, "cmd": [8, 40, 48], "idx": [8, 29, 32], "struct": [8, 32], "flag_record": [8, 32], "fr": [8, 32], "fr_global": [8, 32], "fr_chan": [8, 32], "11": [8, 48], "get_user_flagrec": 8, "con_chan": 8, "egg_snprintf": 8, "sizeof": [8, 32], "ld": 8, "sock": [8, 29, 40], "tcl_setvar": [8, 32], "interp": [8, 32], "_dcc1": 8, "nick": [8, 11, 18, 23, 27, 30, 31, 32, 33, 40, 54], "_dcc2": 8, "_dcc3": 8, "check_tcl_bind": [8, 32], "match_parti": 8, "bind_use_attr": 8, "bind_has_builtin": 8, "snip": 8, "temporari": [8, 11, 27, 38, 40, 48], "pass": [8, 30, 31, 32, 33, 36, 42, 44, 46, 47, 52], "callback": [8, 36], "socket": [8, 17, 29, 34, 48, 50], "id": [8, 48], "putdcc": 8, "respond": [8, 11, 33, 48], "back": [8, 23, 30, 33, 40, 42, 45, 46, 48, 51], "depend": [8, 29, 36, 38, 45, 48, 50, 54], "caller": 8, "pars": [8, 47, 48], "atr": 8, "match_typ": 8, "matchtyp": 8, "result": [8, 23, 36, 38, 40, 42, 48], "bind_nomatch": 8, "tm": 8, "tm_last": 8, "check_bind_match": 8, "continu": [8, 33, 48], "tc": 8, "suffic": [8, 30], "check_bind_flag": 8, "hit": [8, 48], "tcl_eval": 8, "procnam": [8, 30, 48, 52], "grab": [8, 48], "trigger_bind": 8, "func_nam": [8, 29], "suppli": 40, "case": [8, 15, 20, 23, 30, 32, 33, 35, 36, 37, 40, 47, 48], "uniqu": [37, 40, 48, 52], "identifi": [31, 40, 46, 48, 54], "unsur": 33, "wildcard": [8, 11, 30, 31, 48, 52], "exact": 48, "tclegg": [], "describ": [29, 30, 33, 34, 37, 39, 40], "bind_stack": [8, 32], "add_builtin": [8, 29], "cmd_t": [8, 29, 32], "null": [8, 29, 32], "mycmd": 8, "tcl_name": 8, "void": [8, 29, 32], "cc": [8, 29], "p": [8, 11, 17, 31, 33, 35, 39, 40, 48, 54], "1024": [8, 16, 17, 25, 32, 33], "cd_tcl_cmd": 8, "tclcmd": 8, "func": [8, 29], "bindtyp": 8, "funcnam": 8, "h_raw": 8, "324": 8, "got324": 8, "raw": [8, 36, 40, 50], "cmd_boot": 8, "cdata": 8, "add_cd_tcl_cmd": 8, "bind_bind_entri": 8, "context": [8, 29], "suppos": 8, "typic": [8, 16, 26, 40, 41, 44, 48, 53], "tcl_command": 8, "tcl_putdcc": 8, "clientdata": 8, "tcl_interp": 8, "irp": [8, 32], "argc": 8, "argv": [8, 32], "f": [8, 11, 32, 39, 40, 48, 49, 52, 54], "okai": [8, 40], "verifi": [8, 23, 31, 40, 50], "count": [8, 23], "badarg": [8, 32], "hand": [8, 30, 48], "macro": [8, 29, 32], "saniti": 8, "checkvalid": [8, 32], "findidx": 8, "atoi": 8, "tcl_appendresult": [8, 32], "invalid": [8, 48], "tcl_error": [8, 32], "tcl_resetresult": 8, "tcl_ok": [8, 32], "oppos": [8, 48], "userrec": [8, 32], "know": [8, 18, 19, 23, 26, 29, 30, 35, 36, 38, 39, 40, 48, 51, 53], "els": [8, 30, 32, 44, 47, 48], "par": [8, 32], "associ": [8, 26, 36, 48, 53], "gbuildin_dcc": 8, "annot": 8, "gdb": 8, "backtrac": 8, "thommei": 8, "0x55e8bd8a49b0": 8, "0x55e8be6a0010": 8, "614": 8, "0x55e8bd8aec90": 8, "8977024": 8, "flags_udef": 8, "chanrec": [8, 18, 48], "0x55e8bd8aeae0": 8, "0x55e8bd8a4a10": 8, "0x55e8bbf002d0": 8, "0x55e8bd59b1c0": 8, "0x55e8bd7e3e00": 8, "678": 8, "0x55e8be642fa0": 8, "0x55e8be9f6bd0": 8, "0x55e8be7d9020": 8, "0x0": 8, "usr": 8, "lib": 8, "x86_64": 8, "linux": [8, 33, 42], "libtcl8": 8, "lastbind": 8, "0x55e8bd5efda0": 8, "0x55e8bbf4112b": 8, "0x55e8bd5efd40": 8, "742": 8, "0x55e8bd5eecb0": 8, "0x7ffcf3f9dac1": 8, "0x7ffcf3f9d100": 8, "80": 8, "942": 8, "brkt": 8, "0x7ffcf3f9dac6": 8, "974": 8, "udef_glob": 8, "udef_chan": 8, "dcc_chat": 8, "buf": [8, 18], "1068": 8, "2002": [9, 13, 14, 19, 38, 44, 49, 54], "none": [9, 10, 11, 13, 15, 19, 20, 21, 22, 23, 25, 28, 47, 48], "loadmodul": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 40, 46, 47, 53], "2000": [9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 28, 40, 41, 46, 47], "2003": [10, 24, 30], "md5": 10, "anymor": [10, 20, 40], "octob": [11, 20, 23], "chanfil": [11, 33, 51], "expir": [11, 18, 19, 23, 38, 40, 48, 50], "enforc": [11, 31, 36, 40], "chanmod": [11, 31], "mix": [11, 18], "endless": 11, "preconfigur": 11, "specifi": [11, 15, 16, 17, 19, 23, 24, 29, 31, 33, 35, 37, 38, 40, 41, 42, 46, 48, 50, 52], "turn": [11, 17, 23, 40, 48], "off": [11, 17, 18, 23, 33, 39, 40, 44, 48], "plu": [11, 23, 40, 48, 50], "minu": 11, "front": [11, 30, 33, 34, 37, 48, 53], "integ": [11, 37, 48], "idl": [11, 29, 48], "kick": [11, 18, 23, 36, 37, 40, 48, 51, 54], "stopnethack": [11, 54], "de": [11, 36, 48], "anyon": [11, 37, 38, 48], "serverop": 11, "seven": [11, 48], "isoptest": 11, "wasoptest": 11, "split": [11, 18, 42, 44, 48, 49], "isop": 11, "wasop": [11, 18, 54], "bitch": 11, "reveng": 11, "punish": [11, 48, 54], "bad": [11, 48, 54], "four": [11, 30, 36, 40, 42, 48, 49], "deop": [11, 48, 54], "k": [11, 18, 23, 40, 48, 54], "19": [11, 48], "correspond": [11, 31, 38, 48], "replac": [11, 23, 29, 31, 40, 48, 49, 53], "20": [11, 16, 18, 26, 31, 40, 48], "29": [11, 25, 40, 48], "30": [8, 11, 16, 18, 25, 31, 46, 48], "39": [11, 48], "120": [11, 23, 48], "60": [11, 16, 19, 23, 40, 48], "aop": 11, "delai": [11, 16, 18, 30], "maximum": [11, 15, 16, 18, 19, 23, 25, 32, 40, 46, 48, 50], "autoop": 11, "autohalfop": 11, "autovoic": [11, 54], "No": [11, 24, 31, 34, 48, 53], "y": [11, 14, 34, 40, 54], "random": [11, 23, 39, 48], "putserv": [11, 30, 31, 47], "privmsg": [11, 30, 31, 48], "lamest": [11, 33, 39, 40, 48, 49], "me": [11, 54], "co": 11, "lame": [11, 18, 39, 40, 48], "enclos": [11, 32, 42, 48, 52], "brace": 11, "shorter": 11, "getop": 11, "botnetop": 11, "unban": [11, 40, 48], "rais": [11, 23], "15": [11, 40, 46, 48, 49], "constitut": [11, 23, 40], "preced": [11, 33, 48, 50], "respctiv": 11, "enforceban": 11, "dynamicban": [11, 48], "necessari": [11, 34], "rememb": [11, 30, 31, 33], "userban": 11, "dynamicexempt": [11, 48], "remain": [11, 33, 38, 48], "userexempt": 11, "dynamicinvit": [11, 48], "userinvit": 11, "soon": [11, 48], "insecur": 11, "halfop": [11, 48, 54], "protectop": 11, "protecthalfop": 11, "dehalfop": [11, 48, 54], "protectfriend": 11, "statuslog": 11, "total": [11, 29, 41, 48], "member": [11, 29, 36], "regular": [11, 48, 50], "sampl": [11, 32, 33, 53], "01": [11, 18, 48], "40": [11, 31], "istn": 11, "friend": [11, 54], "revengebot": 11, "secret": 11, "cycl": [11, 23, 40], "dontkickop": 11, "instanc": [11, 36], "attack": [11, 20, 46], "inact": [11, 25], "leav": [8, 11, 23, 33, 40, 44, 48, 53], "lose": 11, "nodesynch": 11, "fight": 11, "chanserv": [11, 48], "ircop": [11, 18], "perman": [11, 38, 40, 48], "below": [8, 11, 16, 17, 24, 26, 29, 30, 33, 35, 40, 46, 48, 52], "fil": [11, 48], "explan": [11, 33, 34, 48, 52], "nt": 11, "chanset": [11, 31, 35, 37, 39], "2004": [12, 18], "level": [12, 17, 31, 32, 36, 40, 54], "gzip": [12, 48], "autosav": 13, "doesn": [13, 15, 18, 32, 33, 37, 44, 48, 51, 52], "displai": [13, 16, 18, 23, 31, 32, 33, 37, 40, 48, 49, 52], "februari": 14, "12": [14, 48], "behavior": [14, 18, 38, 40, 42, 48], "ping": 14, "less": [14, 44, 48], "finger": [14, 33], "userinfo": [14, 48], "septemb": 15, "26": [15, 33, 50, 54], "troubl": [15, 40], "ones": [15, 24, 39, 42, 48], "rel": [15, 29, 33, 48], "standard": [15, 17, 18, 25, 29, 30, 43, 48, 50, 53, 54], "cach": [15, 48], "86400": 15, "respect": [15, 42, 48, 49], "ttl": 15, "upper": 15, "boundari": [15, 32], "negcach": 15, "600": [15, 18], "neg": [15, 40, 48], "nxdomain": 15, "lookup": [15, 40, 42, 48], "fail": [15, 25, 40, 48, 50], "maxsend": 15, "resend": [15, 48], "queri": [15, 17, 36, 42, 43], "retrydelai": 15, "dec": [16, 48], "2017": 16, "mydir": 16, "root": [16, 17], "incom": [16, 40, 48], "upload": [16, 33, 41, 48, 51], "central": [16, 37, 40], "filedb": [16, 48], "subdirectori": [16, 48], "databas": [16, 48], "max": [16, 18, 19, 23, 25, 40], "effect": [16, 38, 40, 48], "infinit": 16, "files": 16, "size": [16, 25, 29, 32, 40, 48], "kb": 16, "sub": [16, 37, 48], "brows": 16, "tell": [16, 30, 31, 32, 33, 34, 35, 36, 39, 40, 48, 53], "queu": [16, 23, 48], "exactli": [8, 16, 18, 29, 30, 37, 48], "group": [16, 17, 40, 43, 48], "master": [16, 31, 33, 38, 40, 48, 49, 54], "janitor": [16, 54], "broken": [16, 30, 40, 48], "word": [16, 18, 31, 32, 33, 39, 48, 52, 53], "break": [16, 48], "comment": [16, 18, 27, 30, 33, 40, 46], "over": [16, 23, 26, 29, 30, 33, 40, 42, 48, 50, 51, 53], "client": [16, 17, 23, 26, 31, 33, 36, 40, 43, 48, 50, 53], "too": [16, 18, 23, 25, 29, 40, 48], "patient": 16, "simultan": [16, 25, 48], "remaind": [16, 52], "mark": [16, 32, 41, 43, 48, 54], "hidden": [16, 33, 41, 48], "lsa": 16, "gif": 16, "uglyman": 16, "nobodi": [16, 30], "local": [16, 30, 33, 37, 40, 44, 45, 48, 50], "snowbot": 16, "ugli": 16, "shown": [8, 16, 33, 37, 40], "kilobyt": [16, 40], "progress": 16, "eras": [16, 48], "remot": [16, 35, 39, 40, 48, 49], "clean": 16, "slow": [16, 33, 40], "db": 16, "though": [16, 23, 30, 33, 48, 50], "tag": [16, 41, 43, 52], "filesystem": [16, 37, 48, 54], "june": 17, "2019": 17, "tradition": 17, "113": 17, "usernam": [17, 31, 33, 40, 52, 53], "custom": [17, 23, 30, 31, 36, 37, 41, 48, 50], "oidentd": 17, "nor": [4, 17], "thu": [17, 30, 36, 42, 46, 48], "modern": [6, 17, 22, 33, 46], "oss": 17, "sudo": [17, 33], "setcap": 17, "cap_net_bind_servic": 17, "ep": 17, "imperson": 17, "iptabl": 17, "rout": [17, 48], "destin": [17, 29], "nat": [17, 40, 42], "prerout": 17, "eth0": 17, "dport": 17, "j": [17, 29, 39, 40, 48, 54], "redirect": 17, "addition": [17, 33, 36, 48], "caus": [17, 32, 33, 39, 43, 48, 51], "bound": [17, 40, 48], "netsplit": [17, 18, 40, 41, 48], "reboot": [17, 31], "conflict": 17, "suit": [17, 32, 33], "singl": [17, 18, 31, 37, 48, 52], "environ": [17, 40, 41, 50], "spoof": 17, "open": [17, 31, 32, 37, 40, 44, 45, 48, 50], "builtin": [17, 48], "identd": [17, 33], "shouldn": 17, "begin": [8, 17, 30, 42, 48], "august": [18, 40], "21": [18, 33], "bounc": 18, "reach": [18, 23, 32, 40], "45": 18, "left": [18, 32, 48], "unless": [18, 23, 30, 33, 38, 40, 48], "overridden": 18, "unabl": [18, 33, 39, 42, 48, 53], "learn": [18, 31, 32, 33, 40, 41, 48], "themselv": [18, 33, 39, 48, 51], "userflag": 18, "hello": [18, 21, 23, 31, 33, 40, 41, 48], "afterward": [18, 40], "1500": 18, "180": 18, "200": [18, 44], "byte": [18, 23, 25, 29, 32, 48], "unbind": [18, 40, 51, 52], "myword": 18, "addhost": 18, "takeov": 18, "occur": [8, 18, 30, 48], "due": [8, 18, 23, 30, 40, 48, 52], "blindli": 18, "ing": [18, 26, 53], "guess": 18, "discourag": 18, "opchar": 18, "recogn": [18, 23, 31, 54], "fine": [18, 23, 40, 52], "unrealircd": [18, 48], "lazi": 18, "gone": [18, 48], "At": [18, 32, 35, 39, 40, 44, 53], "moment": [18, 33, 34], "ircd": [18, 23, 48], "per": [18, 48, 52], "stack": [8, 18, 42, 48], "guarante": [18, 36], "although": [18, 33, 40, 48], "higher": [18, 20, 21, 24, 25, 33, 50], "modes_per_line_max": 18, "recompil": [18, 33], "lk": 18, "354": [18, 48], "ircu2": 18, "rfc": [18, 23, 26, 48, 53], "compliant": [18, 23, 48], "1459": 18, "routin": [18, 40, 48], "notefil": [19, 48], "privat": [19, 24, 30, 31, 33, 34, 37, 40, 44, 48, 50], "50": [19, 31, 40], "life": [19, 33], "dai": [19, 25, 40, 48, 51], "fwd": 19, "forward": 19, "address": [19, 24, 27, 33, 39, 40, 42, 50], "notifi": [19, 23, 33, 40, 41, 43, 48], "hourli": [19, 29, 40], "onjoin": 19, "2020": [20, 26, 40, 50, 52], "safe": [20, 31, 33, 34, 46, 53], "outsid": [20, 32, 34, 40], "rijndael": 20, "sha256": 20, "cryptograph": [20, 46, 48], "digest": 20, "algorithm": [20, 46], "round": [20, 46], "1600": 20, "brute": 20, "novemb": [21, 24, 25, 43], "03": [21, 40, 48], "py": [21, 47], "myscript": [21, 47], "putmsg": [21, 48], "extend": [21, 26, 41, 43, 47, 48], "analg": [], "entir": [33, 47, 48, 52, 53], "catalog": 47, "chanlist": 47, "convert": [47, 48], "empti": [47, 48, 52], "object": 47, "tupl": 47, "dict": [37, 47, 48, 52], "dictionari": [47, 48], "str": [37, 47], "few": [26, 30, 32, 33, 34, 40, 48, 53], "convers": [29, 44, 50], "tcl_binds_": [], "known": [23, 31, 40, 46, 47, 48], "onvert": [], "resync": 24, "disconnect": [23, 24, 40, 48], "buffer": 24, "reconnect": [24, 35, 48], "examplescript": [], "bestfriend": 47, "imdb": 47, "third": [4, 30, 32, 39, 47], "listtl": 47, "tcl_list": 47, "usuabl": [], "urltitl": 47, "parser": 47, "collect": 47, "titl": [47, 54], "page": [33, 45, 47], "z": [34, 54], "librari": [4, 21, 30, 32, 46, 47, 50], "egg": 47, "freenod": 23, "rizon": 23, "sane": 23, "altnick": [23, 33], "stb": 23, "unavail": [23, 40], "hi": [23, 30, 33], "primari": [23, 35, 40], "realnam": [23, 48], "real": [23, 29, 31, 48], "field": [23, 32, 36, 37, 40, 48, 50], "evnt": [23, 48], "init": [23, 40, 48], "init_serv": 23, "botnick": [23, 30, 31, 33, 40], "putquick": 23, "w": [23, 40, 48, 49, 54], "immedi": [23, 32, 36, 46, 48], "deprici": 23, "7000": [23, 33, 34, 48], "2001": [23, 27, 28, 33, 40, 44], "db8": [23, 33, 40], "618": [23, 33, 40], "5c0": [23, 33, 40], "263": [23, 33, 40], "6669": [23, 33], "6697": [23, 33, 48, 50], "whenev": [23, 29, 32, 36, 39, 48, 50], "sign": [23, 31, 34, 40, 48, 49, 50, 53], "jump": [23, 32, 39, 50], "rate": 23, "transmit": 23, "lower": 23, "512": [23, 25], "verif": [23, 40, 50], "assum": [23, 30, 33, 34, 35, 36, 38, 40, 48], "peer": [23, 40, 50], "alt": [23, 40], "16": [23, 40, 46, 48], "32": [23, 40], "revok": [23, 40], "instantli": 23, "low": 23, "respons": [23, 36, 43, 48], "stone": 23, "di": 23, "hasn": 23, "serverror": 23, "queue": [23, 29], "300": [23, 40], "dump": [23, 40, 48], "chunk": 23, "probabl": [23, 31, 33, 34, 48], "quiet": [23, 37, 40, 54], "reject": [23, 39, 40], "squelch": 23, "lowercas": 23, "mirc": [23, 48], "exclus": [23, 48], "pubm": [23, 43, 48], "msgm": [23, 48], "doubl": 23, "penalti": 23, "calcul": 23, "measur": 23, "trace": 23, "accordingli": 23, "three": [8, 23, 31, 32, 36, 37, 38, 39, 40, 48], "summar": 23, "cpu": [23, 48], "intens": 23, "r": [23, 31, 39, 40, 48, 54], "umod": 23, "understood": 23, "indic": [23, 29, 35, 48, 52], "len": 23, "900": 24, "hold": [24, 48], "flush": 24, "overrid": [24, 42, 50], "mnot": 24, "paranoid": [24, 40], "discard": [24, 48], "dload": 25, "block": [8, 25, 26, 29, 33, 49, 53], "ircii": [25, 48], "admit": 25, "turbo": [25, 33], "xfer": [25, 54], "sharefail": 25, "unlink": [25, 40], "abort": [25, 33, 48, 50], "retri": 25, "april": [26, 52], "gatewai": [26, 52, 53], "stream": [26, 53], "claim": [26, 53], "certainli": [26, 33, 53], "meaning": [26, 48, 53], "intent": [26, 53], "spectrum": [26, 53], "focus": [26, 53], "raid": [26, 53], "donat": [26, 53], "userst": [26, 53], "roomstat": [26, 53], "broadcast": [26, 44, 48, 52, 53], "000": [26, 44, 53], "unreli": [26, 52, 53], "moder": [26, 31, 52, 53], "mostli": [26, 48, 53], "infeas": [26, 53], "workaround": [26, 36], "tradit": [26, 42, 51, 52, 53], "downer": 26, "worri": 26, "ton": 26, "clearchat": [26, 52], "clearmsg": [26, 52], "hosttarget": [26, 52], "whisper": [26, 52], "usernotic": [26, 52], "roomsstat": 26, "twcmd": [26, 53], "ip": [27, 31, 33, 34, 40, 42], "logfil": [27, 29, 33, 40, 51], "publicli": 27, "31": [28, 40, 44, 48], "occurr": 29, "ensur": [29, 31, 33, 35, 39, 46, 48], "module_nam": [29, 32], "making_modulenam": 29, "examin": 29, "close": [29, 48], "stdio": 29, "stdlib": 29, "sy": 29, "drastic": [29, 48], "reduc": [29, 52], "decent": 29, "throughout": 29, "refer": [29, 30, 34, 40, 48], "liter": [29, 48], "func_tabl": 29, "module_regist": [29, 32], "major": [29, 32, 33, 37, 48], "minor": [29, 32, 37, 48], "module_depend": [29, 32], "success": [29, 33, 48], "stage": 29, "any_other_funct": 29, "you_want_to_export": 29, "unload": [29, 32, 48], "apart": [29, 40], "tidi": 29, "thorough": [29, 31, 34, 53], "trail": 29, "garbag": 29, "module_undepend": [29, 32], "talli": 29, "memori": [29, 32, 48], "alloc": [29, 48], "dealloc": 29, "nmalloc": 29, "nfree": 29, "fault": 29, "posit": [29, 40], "resourc": 29, "dprintf": [29, 32], "printf": 29, "dp_log": 29, "dp_stdout": 29, "stdout": 29, "dp_mode": 29, "dp_server": 29, "dp_help": 29, "module_entri": 29, "module_find": 29, "search": [29, 31, 48], "module_renam": 29, "old_module_nam": 29, "new_module_nam": 29, "frim": 29, "add_hook": 29, "hook_num": 29, "del_hook": 29, "hook": 29, "hook_secondli": 29, "hook_minut": 29, "hook_5minut": 29, "hook_hourli": 29, "hook_daili": 29, "hook_read_userfil": 29, "hook_userfil": 29, "hook_pre_rehash": 29, "hook_rehash": 29, "hook_idl": 29, "whole": 29, "hook_backup": 29, "hook_load": 29, "hook_di": 29, "die": [29, 31, 33], "module_unload": 29, "module_load": 29, "tri": [8, 29, 40, 48], "add_tcl_command": 29, "tcl_cmd": [29, 32], "tab": 29, "rem_tcl_command": 29, "function_to_cal": 29, "add_tcl_int": 29, "tcl_int": 29, "rem_tcl_int": 29, "variable_nam": 29, "readonli": 29, "add_tcl_str": 29, "tcl_string": 29, "rem_tcl_str": 29, "str_dir": 29, "constantli": 29, "append": [29, 32, 37, 48], "str_protect": 29, "p_tcl_hash_list": 29, "rem_builtin": 29, "displaynam": 29, "taken": [29, 48], "auch": 29, "filt": [29, 48], "noth": [29, 37, 40, 48, 53], "logmod": 29, "nice": 29, "mention": 29, "realli": [30, 32, 33, 37, 40, 51], "idea": [30, 33, 45], "busi": 30, "annoi": 30, "intention": 30, "definit": [30, 33, 34, 46], "languag": [30, 40, 41, 51], "especi": 30, "bottom": 30, "greetscript": 30, "author": [30, 34, 35, 40, 50], "geo": 30, "gree": 30, "pmsg": 30, "greetmsg": 30, "welcom": 30, "uhost": [30, 48], "whew": 30, "ok": 30, "importantli": [8, 30, 32], "wrote": 30, "credit": [30, 48], "contact": [30, 40], "hard": [30, 40], "larger": [30, 46], "harder": [30, 33], "why": [30, 48], "And": [30, 32, 37], "omin": 30, "dissect": 30, "action": [8, 30, 31, 32, 34, 40, 48], "react": [30, 36], "toward": 30, "refin": 30, "foo": [30, 31, 32, 37, 47, 48], "aol": [30, 46], "sum": 30, "hostmask": [30, 31, 35, 38, 39, 41, 46], "told": 30, "declar": [30, 32, 37, 48], "said": [30, 32, 39, 48], "magic": 30, "awesom": [30, 37], "sexystuff": 30, "fourth": 30, "trick": [30, 51], "didn": [30, 33, 48], "talk": [30, 32, 34, 35, 36, 37, 41, 44], "bodi": 30, "true": 30, "deserv": 30, "insid": [30, 37, 40], "challeng": [30, 31], "mayb": [30, 40], "fancyp": 30, "sound": 30, "utim": 30, "dozen": 30, "defens": 30, "grain": 30, "salt": [30, 46], "further": [8, 31, 32, 48], "IN": 31, "OR": [31, 48], "putti": 31, "listen": [31, 33, 35, 39, 40, 42, 50], "3183": 31, "whoi": [31, 40], "chattr": [31, 54], "grant": [31, 41, 50, 53], "numer": [31, 34, 48], "chaninfo": [31, 39], "involv": 31, "snt": 31, "histor": [31, 48], "reli": [4, 31, 48], "ten": 31, "commonli": [31, 34, 35, 37, 40, 48], "humor": 31, "youreggdropconfignameher": 31, "review": [31, 34], "youreggdrop": 31, "editor": [31, 33, 37], "thee": [31, 48], "systemctl": 31, "botnam": [31, 39], "reload": [31, 37], "acknowledg": 31, "confus": [31, 35, 48], "unfortun": 31, "consult": [31, 42, 43, 50], "uncom": [31, 34, 40, 46], "layer": [31, 34], "becom": [31, 33, 35, 40, 48], "preval": 31, "elimin": 31, "cloak": 31, "ever": [31, 33, 40, 48, 50], "appear": [31, 33, 39, 40, 48, 52], "mechan": [31, 43], "plain": [31, 40, 50], "plaintext": [31, 48, 50], "exchang": 31, "ecdsa": 31, "nist256p": 31, "keypair": [31, 34], "pair": [31, 34, 36, 48, 50, 52], "ecparam": 31, "genkei": 31, "prime256v1": 31, "pem": [31, 40], "fingerprint": [31, 39, 40, 50], "ec": 31, "noout": 31, "conv_form": 31, "grep": 31, "tail": 31, "tr": 31, "xxd": 31, "base64": 31, "On": [21, 31, 33, 34, 38, 39, 47], "pubkei": 31, "req": [31, 40, 50], "x509": [31, 40, 50], "node": [31, 50], "keyout": [31, 50], "crt": [31, 40, 50], "yoru": [], "outform": 31, "der": 31, "sha1sum": 31, "cut": 31, "f1": 31, "privatekei": [31, 34, 39, 40, 50], "cert": [31, 39, 40, 50], "onto": 32, "wherea": [32, 47, 48], "our": [32, 33, 35, 39, 48], "redistribut": 32, "publish": 32, "hope": [32, 33, 53], "merchant": 32, "fit": 32, "FOR": 32, "59": [32, 48], "templ": 32, "330": 32, "02111": 32, "1307": 32, "necessarili": [32, 48], "undef": 32, "server_func": 32, "export_scop": 32, "woobie_start": 32, "woobie_expmem": 32, "woobie_report": 32, "global_func": 32, "woobie_t": 32, "108": 32, "woobie_clos": 32, "log_cmd": 32, "print": [32, 47], "cmd_woobi": 32, "mywoobi": 32, "scope": [32, 34], "tutori": [32, 34], "echo": [32, 41, 43, 51], "tcl_echom": 32, "stdvar": 32, "strcmp": 32, "llama": [32, 39], "illeg": 32, "input": [32, 48], "paramet": [32, 48], "exceed": [32, 40], "style": [32, 38, 48], "quset": 32, "mytcl": 32, "echom": 32, "newli": 32, "certain": [32, 38, 40, 41, 42, 48, 49, 52, 54], "condit": 32, "met": [8, 32], "h_woob": 32, "woobie_2char": 32, "del_bind_t": 32, "woobie_3char": 32, "bar": [32, 48], "moo": [32, 48], "boilerpl": 32, "check_tcl_bindnam": 32, "check_tcl_woobi": 32, "userhost": [32, 43, 52], "snprintf": 32, "_woob1": 32, "_woob2": 32, "match_mask": [8, 32], "bind_exec_log": [8, 32], "encount": [32, 33, 53], "perhap": 33, "websit": [33, 37], "slennox": 33, "incredibli": [33, 48], "prove": 33, "debian": [21, 33, 34, 47], "apt": [33, 34], "wget": 33, "commandlin": 33, "zxvf": 33, "seri": [33, 48, 50], "multi": 33, "patchlevel": 33, "comfort": 33, "haven": 33, "daili": [33, 48], "chanc": [33, 37], "checkout": [33, 45], "skip": [33, 48], "commerci": 33, "problem": [33, 42], "box": [33, 40], "isp": 33, "appli": [33, 38, 40, 46, 54], "curl": 33, "ssh": 33, "gunzip": 33, "xvf": 33, "extract": [33, 37, 48], "slash": [33, 44], "brief": 33, "fast": [33, 35], "botdir": 33, "cooldud": 33, "delet": [33, 37, 51], "rf": 33, "handi": 33, "zip": 33, "notepad": 33, "editplu": 33, "nano": 33, "vim": 33, "offer": [33, 34, 36, 52, 53], "quicker": 33, "nicebot": 33, "carefulli": [33, 48], "vagu": 33, "preserv": 33, "llamabot": [33, 40], "login": [33, 40, 46, 52], "vhost4": [33, 40, 42], "vhost": [33, 40, 42], "ipv4": [33, 40, 42], "vhost6": [33, 40, 42], "5254": 33, "dead": 33, "b33f": 33, "1337": 33, "f270": 33, "captur": [33, 48, 51], "mcobx": 33, "jkp": 33, "donkei": 33, "hors": 33, "3333": [33, 35, 39, 40], "65535": [33, 40], "49152": 33, "rang": [33, 40], "reserv": [33, 40, 44], "basi": 33, "stealth": [33, 40], "scan": 33, "newus": [33, 40], "mrlame": [33, 40], "mrslame": [33, 40], "addus": 33, "rejoin": [33, 48], "aren": [33, 40, 48, 51, 52], "pain": 33, "backslash": 33, "rule": 33, "prematur": 33, "phew": 33, "cross": 33, "gave": 33, "promptli": 33, "kill": [33, 48], "pid": [33, 40, 48], "mnt": 33, "launch": 33, "persist": 33, "luck": [33, 53], "walk": 34, "scenario": [34, 36, 39], "sidenot": 34, "despit": [8, 34], "anachron": 34, "interchang": [34, 42], "transport": 34, "protocol": [34, 40, 43, 48, 50], "appreci": 34, "fork": [6, 22, 34, 45], "ubuntu": [21, 34, 47], "distro": 34, "denot": [34, 48], "pretendnet": 34, "suffici": 34, "wizard": 34, "5555": [34, 35, 39, 40], "hubbot": [34, 39], "perfect": 36, "status": 36, "accur": [36, 48, 52], "alert": [36, 53], "deauthent": 36, "spec": [36, 48], "isupport": 36, "005": [36, 43, 48], "eggdroptest": [36, 52], "beerbot": 36, "tn": 36, "announc": 36, "issupport": 36, "isset": 36, "reliabl": [35, 36, 48, 52], "significantli": [36, 52], "increas": [36, 40, 46], "accuraci": 36, "supplementari": 36, "attach": [36, 48, 52], "overal": 36, "situat": [36, 39], "cover": [36, 38, 39], "incept": 37, "friendli": 37, "special": [8, 37, 39, 48], "locallt": 37, "novel": 37, "namespac": 37, "wrap": 37, "eval": 37, "scriptnam": 37, "statement": [37, 48], "practic": [37, 46, 48], "lessen": 37, "collid": 37, "metadata": 37, "th": 37, "schema": 37, "version_major": 37, "version_minor": 37, "long_descript": 37, "yeah": 37, "besid": 37, "enough": [37, 40], "udef": 37, "myflag": 37, "mystr1": 37, "mystr2": 37, "myint1": 37, "var": [37, 48], "woobie_dict": 37, "q": [37, 54], "woobie_set": 37, "woobie_str": 37, "arrai": 37, "whether": [37, 40, 42, 48], "varnam": 37, "tgz": 37, "proper": [37, 42, 48], "myscript_goodversion_specialfeatur": 37, "sorri": 37, "collis": 37, "myscript_set": 37, "ms_set": 37, "localm": 37, "regardless": [37, 48], "march": [38, 49, 54], "07": [38, 54], "clarifi": 38, "sticki": [38, 48], "unsticki": 38, "stick": 38, "attribut": [38, 39, 48, 54], "kept": [38, 40], "obvious": [38, 48], "unstick": 38, "whose": [38, 48], "whichev": 38, "consist": [35, 39, 41, 44, 48], "leaf": [39, 40, 46, 50], "assign": [39, 40, 48], "aggress": 39, "passiv": 39, "physic": 39, "bota": 39, "botb": 39, "botc": 39, "sharebot": [40, 48], "slave": [], "botattr": [35, 39], "isol": 39, "unlimit": 39, "4444": [35, 39, 40], "thoroughli": 39, "relink": 39, "scripter": 39, "prepar": 39, "lameshar": 39, "hp": [39, 40], "beldin": 39, "pipe": 39, "he": [39, 48], "unreach": 39, "auth": [39, 40, 50], "fprint": [39, 40, 50], "sha1": [39, 50], "0and": 39, "qualifi": 40, "admin": [40, 49], "lamer": 40, "someircnetwork": 40, "timezon": 40, "est": 40, "timestamp": [40, 48], "alphabet": 40, "european": 40, "utc": 40, "cet": 40, "offset": 40, "coordin": 40, "univers": 40, "gmt": [40, 48], "west": 40, "prime": 40, "meridian": 40, "east": 40, "23": [40, 48], "env": 40, "tz": 40, "everywher": [40, 42, 48], "99": [40, 44], "virtual": [8, 40], "outgo": [40, 48, 51], "prefer": [40, 42, 50], "resolut": 40, "famili": 40, "addlang": [40, 48], "english": [40, 51], "egg_lang": 40, "danish": 40, "french": 40, "finnish": 40, "german": 40, "chatter": 40, "24": [40, 42], "logfilenam": 40, "yesterdai": 40, "48": 40, "concurr": [40, 46], "infin": 40, "decreas": 40, "logsiz": 40, "550": 40, "fill": [40, 45, 50], "quota": 40, "ram": [], "hole": 40, "care": [40, 48, 53], "logflag": 40, "misc": [40, 48], "wallop": [40, 48], "eight": [40, 48], "belong": 40, "mco": [40, 48], "jpk": 40, "min": 40, "sec": 40, "man": 40, "strftime": 40, "forev": 40, "digit": [40, 50], "month": [40, 48], "fresh": 40, "militari": 40, "00": [40, 48, 49], "am": [40, 54], "midnight": 40, "04may2000": 40, "produc": [40, 48], "yyyymmdd": 40, "manpag": 40, "mkcoblx": 40, "pidfil": 40, "motd": [40, 49], "banner": [40, 49], "perm": 40, "0600": 40, "octal": 40, "remind": 40, "rw": 40, "0400": 40, "0200": 40, "0660": 40, "0440": 40, "0220": 40, "0666": 40, "0444": 40, "0222": 40, "kiddi": 40, "head": 40, "unimport": 40, "deal": [40, 48, 54], "maxim": 40, "1025": 40, "prepend": 40, "prohibit": 40, "sanitycheck": 40, "bogu": 40, "ground": 40, "wouldn": 40, "anywai": 40, "thr": 40, "firewal": 40, "sun": 40, "barr": 40, "ebai": 40, "3666": 40, "behind": 40, "passthru": 40, "127": 40, "192": [40, 48], "168": [40, 48], "255": 40, "172": 40, "transpar": 40, "masquerad": 40, "portrang": 40, "url": [40, 48], "birthdai": 40, "userinfo1": 40, "moreov": 40, "simul": [40, 48], "ethic": 40, "dk": [40, 48], "dupwait": 40, "spread": 40, "lag": [40, 44], "cidr": [40, 48], "notat": 40, "genrsa": 40, "4096": [40, 50], "rsa": 40, "strong": 40, "schat": [40, 50], "conveni": 40, "cipher": [40, 48, 50], "side": [40, 48, 50, 53], "365": 40, "depth": [40, 50], "chain": [40, 50], "shall": 40, "capath": [40, 50], "cafil": [40, 50], "ca": 40, "colon": [40, 42], "comma": [40, 44, 48], "silent": 40, "adh": 40, "anonym": 40, "dh": 40, "uid": [40, 50], "chfinger": 40, "slower": 40, "everydai": 40, "limbo": 40, "serv": 40, "alltool": 40, "robot": 41, "regularli": 41, "awai": [41, 43, 48], "chghost": [41, 43, 48], "setnam": [41, 43], "whox": [41, 48], "unaccess": 41, "combin": [41, 48], "mar": [22, 27, 42], "2021": [42, 43, 51], "establish": [42, 48, 50], "freebsd": 42, "netbsd": 42, "openbsd": 42, "mac": 42, "vista": 42, "xp": 42, "unoffici": 42, "wherev": 42, "squar": 42, "bracket": 42, "doubt": 42, "Their": 42, "began": 43, "rfc1459": [43, 48], "rfc2812": 43, "compris": 43, "decid": [35, 43, 46], "emerg": 43, "optino": 43, "assumpt": 43, "explicit": 43, "302": [43, 48], "miniatur": 44, "watch": [44, 52], "999": 44, "wide": [44, 50], "anywher": [44, 48], "dot": 44, "apostroph": 44, "everyon": [44, 48], "contribut": 45, "think": [45, 54], "repo": 45, "click": [45, 53], "button": [45, 53], "descriptivebranchnam": 45, "confirm": [45, 48], "push": [45, 48], "yourusernam": 45, "yourbranchnam": 45, "templat": 45, "pour": 45, "cold": [45, 46], "bask": 45, "warm": 45, "karma": 45, "crytopgraphi": 46, "content": [46, 48, 52], "sensit": [8, 46], "crypto": 46, "solut": 46, "deriv": [46, 48], "revers": [46, 48], "seamless": 46, "enjoi": 46, "beverag": 46, "chpass": 46, "consider": 46, "ideal": [46, 53], "essenti": 46, "fanci": 46, "lobster": 46, "dinner": 46, "encpass2": 46, "pbk": 46, "2024": [0, 3, 4, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "exhaust": [48, 52], "categori": 48, "vertic": 48, "faster": 48, "bypass": 48, "caution": 48, "lieu": 48, "negoti": [48, 50], "mytag": 48, "baa": 48, "flat": 48, "servivc": 48, "botfl": 48, "botaddr": 48, "laston": 48, "xtra": 48, "visibl": 48, "counterpart": 48, "filearea": 48, "remotebotnam": 48, "globalflag": 48, "channelflag": 48, "subsequ": 48, "botaddress": 48, "ipaddress": 48, "ipv4address": 48, "ipv6address": 48, "behav": 48, "getinfo": 48, "unstuck": 48, "jupe": 48, "sublist": 48, "zero": 48, "differenti": 48, "abcdechannel": 48, "got": 48, "modechang": 48, "refresh": [48, 52], "fragil": 48, "notif": 48, "behalf": 48, "compon": [4, 48], "duplic": 48, "element": 48, "bywho": 48, "ag": 48, "reset": 48, "reread": 48, "memberlist": 48, "lost": 48, "ntik": 48, "serverlist": 48, "ex": 48, "goober": 48, "ON": 48, "forget": 48, "reiniti": 48, "coupl": 48, "throw": 48, "alia": 48, "99999": 48, "greater": 48, "equal": 48, "she": 48, "mpj": 48, "pj": 48, "moc": 48, "mp": 48, "configfil": 48, "omit": [48, 50], "boldfac": 48, "video": 48, "underlin": [48, 49], "ansi": 48, "ctrl": 48, "bell": 48, "ordinari": [48, 50], "ital": 48, "intercept": 48, "item": 48, "uplink": 48, "botnetnick": 48, "file_receiv": 48, "file_send": 48, "file_send_pend": 48, "readabl": 48, "lindex": 48, "six": 48, "blank": 48, "mandatori": 48, "permit": 48, "failur": [48, 52], "kind": 48, "succeed": 48, "pathnam": 48, "resum": 48, "bitchx": 48, "python": [2, 4, 6, 48], "five": 48, "jp": 48, "34": 48, "04": 48, "06": 48, "08": [48, 49], "interv": 48, "secondli": 48, "repres": [48, 52], "jan": [48, 50], "1970": 48, "week": 48, "804600": 48, "vari": [48, 54], "posix": 48, "portabl": 48, "fri": 48, "aug": 48, "55": 48, "1973": 48, "rand_max": 48, "2147483647": 48, "underli": 48, "pseudo": 48, "relinquish": 48, "deliv": 48, "notebox": 48, "caught": 48, "encod": [48, 49], "ascii": 48, "64": 48, "ecb": 48, "cbc": 48, "pick": 48, "fatal": 48, "wasn": 48, "128": 48, "pre": [48, 50], "myownevent123": 48, "todai": 48, "couldn": 48, "17": 48, "insensit": [8, 48], "simplifi": 48, "rfc_compliant": 48, "spent": 48, "mem": 48, "exclud": 48, "cleartext": 48, "vali": 48, "valis0": 48, "crappi": 48, "math": 48, "ufl": 48, "edu": [48, 54], "eu": 48, "pl1": 48, "1010201": 48, "mnnrrpp": 48, "nn": 48, "rr": 48, "pp": 48, "437": 48, "expans": 48, "quot": [48, 52], "highest": 48, "prioriti": 48, "danger": 48, "logic": 48, "proce": 48, "easiest": 48, "build": 48, "ti": 48, "lastli": [35, 48], "ov": 48, "mn": 48, "unknown": 48, "phrase": 48, "spoken": 48, "notc": 48, "breach": 48, "notcproc": 48, "partproc": 48, "signoff": 48, "possibli": [48, 52], "twice": 48, "rawt": 48, "topc": 48, "kicker": 48, "newnick": 48, "typo": 48, "18": 48, "guppi": 48, "mode_proc": 48, "stai": 48, "mode_proc_fix": 48, "ctcr": 48, "embed": 48, "supplant": 48, "368": 48, "unexpect": 48, "chon": 48, "chof": 48, "recipi": 48, "rcvd": 48, "invok": 48, "dronepup": 48, "eden": 48, "wild": 48, "spoke": 48, "bcst": 48, "disc": 48, "splt": 48, "Be": 48, "awar": 48, "fals": 48, "alarm": 48, "fake": 48, "rejn": 48, "needop": 48, "needal": 48, "flud": 48, "wall": 48, "sender": 48, "chjn": 48, "chpt": 48, "0000": 48, "9999": 48, "schedul": 48, "pad": 48, "unld": 48, "nkch": 48, "oldhandl": 48, "newhandl": 48, "sighup": 48, "hup": 48, "sigterm": 48, "sigil": 48, "ill": 48, "sigquit": 48, "prerehash": 48, "prerestart": 48, "preinit": 48, "tout": 48, "stall": 48, "flexibl": [48, 50], "noqueu": 48, "cron": [8, 48], "weekdai": 48, "evalu": 48, "express": [6, 48], "delimit": 48, "whitespac": 48, "sundai": 48, "handshak": 48, "shutdownreason": 48, "shutdown": 48, "sigkil": 48, "ircawai": 48, "301": 48, "catch": 48, "invt": 48, "invite": 48, "late": 48, "distinguish": 48, "unset": 48, "revert": 48, "treat": [48, 53], "signal": [8, 48], "verbos": 48, "affet": 48, "retain": 48, "driven": 48, "misnom": 48, "song": 48, "danc": 48, "eof": 48, "arriv": 48, "dispos": 48, "newidx": 48, "6687": 48, "escap": 48, "insert": 49, "invers": 49, "flash": 49, "botnetcentr": 49, "percent": 49, "col": 49, "column": 49, "width": 49, "center": 49, "70": 49, "meet": [8, 50], "autodetect": 50, "forcefulli": 50, "sslinc": 50, "ssllib": 50, "starttl": 50, "certifict": 50, "graphic": 50, "deliber": 50, "sdcc": 50, "kvirc": 50, "synchron": 50, "infrastructur": 50, "subject": 50, "s_client": 50, "sslport": 50, "issuer": 50, "jun": 51, "02": 51, "2500": 51, "high": 51, "therebi": [51, 53], "lang": 51, "techniqu": 51, "yourbot": 51, "myvar": 51, "held": 52, "natur": 52, "WILL": 52, "unintend": [43, 52], "consequ": 52, "truncat": 52, "assur": 52, "replic": [52, 53], "vip": [52, 53], "subscrib": [52, 53], "badgui": 52, "comprehens": 52, "twith": 52, "gui": 52, "flagmask": 52, "ccht": 52, "histori": 52, "tmi": 52, "tv": [52, 53], "target": [8, 52], "cmsg": 52, "msgid": 52, "htgt": 52, "viewer": 52, "similarli": [35, 52], "arbitrarili": 52, "wspr": 52, "popul": [43, 52], "wspm": 52, "rmst": 52, "emot": 52, "uncertainti": 52, "usst": 52, "usrntc": 52, "discontinu": 53, "technic": 53, "token": 53, "oauth": 53, "alphanumer": 53, "pretend": 53, "j9irk4vs28b0obz9easys4w2ystji3u": 53, "spoiler": 53, "sake": 53, "light": 53, "decis": 53, "notabl": 53, "topic": 53, "degrad": 53, "capac": 53, "face": 53, "hubcap": 54, "clemson": 54, "hate": 54, "milk": 54, "meaningless": 54, "entitl": 54, "badg": 54, "mainten": 54, "washalfop": 54, "nethack": 54, "highlight": 54, "individu": 47, "eggsrop": 47, "bind_typ": [], "pysourc": [6, 47], "parse_tcl_list": [], "parse_tcl_dict": [], "errata": 2, "workflow": 2, "codebas": 4, "zlib": 4, "earli": 5, "mortmann": [6, 22], "michaelortmann": [6, 22], "readi": 8, "partner": 8, "bind_wantret": 8, "match_exact": 8, "match_cas": 8, "match_mod": 8, "match_cron": 8, "halt": 8, "bind_stackret": 8, "criteria": 8, "bind_ambigu": 8, "bind_match": 8, "bind_execut": 8, "bind_quit": 8, "sentinel": 8, "cmd_leav": 8, "python3": [21, 47], "symlink": [21, 47], "analog": 21, "14": [22, 27], "great": 35, "hundr": 35, "sync": 35, "timer": 35, "chose": 35, "mind": 35, "hubalici": 35, "leiferikson": 35, "ip_address_of_lieferikson": 35, "lieferikson_hostmask": 35, "lieferikson": 35, "6666": 35, "ip_address_of_hubalici": 35, "ghp": 35, "hubalic": 35, "shortcut": 35, "theforest": 35, "desynchron": 35, "leafbost": 35, "meantim": 35, "swap": 35, "altrock": 35, "agp": 35, "botd": 39, "legend": 39, "unintent": 43, "synch": 43, "ship": 47, "2898": 48, "hexadecim": 48, "texr": 48}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"about": [0, 2, 42, 43, 50], "eggdrop": [0, 2, 3, 4, 5, 6, 7, 8, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 45, 47, 48, 52], "bore": 1, "legal": 1, "stuff": 1, "an": [2, 29, 30, 31, 34, 47], "open": 2, "sourc": [2, 16, 33], "irc": [2, 18, 34, 50, 53], "bot": [2, 16, 35, 39, 48], "some": 2, "thing": 2, "you": 2, "can": [2, 7], "do": [2, 7, 29], "how": [2, 4, 5, 7, 29, 35], "get": [2, 4, 16, 33, 48], "instal": [2, 3, 7, 33, 42, 50], "pre": [2, 4, 34], "requisit": [2, 4, 34], "where": 2, "find": 2, "more": 2, "help": [2, 4], "us": [2, 8, 36, 39, 47], "tutori": 2, "modul": [2, 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 40, 47, 48], "quick": [3, 4], "startup": [3, 4], "cygwin": 3, "requir": [3, 4, 21, 29, 32, 36, 47, 48], "window": 3, "readm": 4, "notic": 4, "what": [4, 7, 29, 39], "i": [4, 7, 39], "ftp": 4, "git": 4, "develop": [4, 37], "snapshot": 4, "docker": 4, "system": [4, 21, 31, 47], "upgrad": [4, 5], "command": [4, 5, 21, 26, 32, 37, 47, 48, 51, 52], "line": [4, 44], "auto": 4, "start": [4, 33], "document": [4, 5], "obtain": 4, "must": 5, "read": 5, "chang": [5, 48], "v1": 5, "9": [], "config": [5, 16, 33, 37, 48, 51, 53], "file": [5, 16, 21, 33, 34, 37, 40, 48, 51, 53], "script": [5, 30, 36, 37, 40, 47, 50], "botnet": [5, 34, 39, 40, 50], "tcl": [5, 8, 21, 26, 32, 36, 37, 46, 48, 52], "includ": 6, "inform": [7, 34], "ar": 7, "compil": 7, "without": 7, "dynam": 7, "static": 7, "still": 7, "need": 7, "loadmodul": [7, 48], "bind": [8, 21, 32, 47, 48, 52], "intern": 8, "tabl": 8, "creation": [], "stackabl": [8, 48], "ht_stackabl": 8, "trigger": 8, "ani": 8, "c": 8, "handler": 8, "summari": 8, "assoc": [9, 48], "blowfish": 10, "channel": [11, 16, 31, 48, 52], "set": [11, 31, 33, 37, 40, 42, 48, 50], "valu": [8, 11, 48], "base": 11, "enabl": [11, 34, 36, 46, 48], "disabl": 11, "default": [11, 51], "compress": [12, 48], "consol": [13, 40, 48], "ctcp": [14, 42], "dn": 15, "filesi": [16, 48], "setup": 16, "partylin": [16, 21, 26, 31, 32], "usag": [16, 37, 42, 43, 46, 50], "cancel": 16, "cd": 16, "directori": [16, 40, 48], "cp": [16, 48], "dst": 16, "desc": [16, 48], "descript": 16, "filestat": 16, "user": [16, 31, 39, 48, 54], "clear": [16, 48], "stat": 16, "filenam": [16, 48], "nicknam": [16, 48], "hide": 16, "ln": 16, "filepath": 16, "localfil": 16, "l": [16, 48], "filemask": 16, "mkdir": [16, 48], "dir": [16, 48], "flag": [8, 16, 31, 39, 48, 52, 54], "mv": [16, 48], "dest": 16, "pend": 16, "pwd": 16, "quit": 16, "rm": 16, "rmdir": [16, 48], "share": [16, 24, 35, 39], "optim": 16, "unhid": 16, "unshar": 16, "ident": 17, "note": [19, 48], "pbkdf2": [20, 48], "python": [21, 47], "load": [21, 37, 47], "express": 21, "pysourc": 21, "path": [21, 40], "argument": [32, 47], "parse_tcl_list": 47, "string": [47, 48, 51], "parse_tcl_dict": 47, "variabl": [48, 51], "write": [29, 30, 32, 47], "header": [32, 47], "section": 47, "code": 32, "seen": 22, "server": [23, 34, 36, 48], "transfer": 25, "twitch": [26, 52, 53], "limit": [26, 48, 53], "api": 26, "uptim": [27, 48], "woobi": 28, "module_start": 29, "module_t": 29, "module_clos": 29, "module_expmem": 29, "module_report": 29, "addit": [29, 34], "function": [8, 29, 53], "common": 31, "first": 31, "step": 31, "log": [31, 40, 51], "join": [31, 36], "add": [31, 48], "host": [31, 48], "assign": 31, "permiss": 31, "configur": [31, 33, 34, 46], "automat": 31, "restart": [31, 48], "crontab": 31, "method": 31, "old": [31, 48], "systemd": 31, "newer": 31, "authent": [31, 39, 50], "nickserv": 31, "up": [31, 33], "sasl": 31, "basic": [32, 40], "ad": [8, 32, 39], "defin": 32, "call": 32, "export": [], "prerequisit": 33, "The": [33, 44], "super": [33, 35], "short": [33, 35], "version": [33, 35, 48], "histori": 33, "download": 33, "locat": 33, "edit": [33, 53], "No": 33, "show": 33, "tl": [34, 39, 50], "secur": [34, 39, 50], "connect": [34, 48], "protect": 34, "commun": 34, "prepar": 34, "gener": [8, 34], "kei": [34, 48, 50], "listen": [34, 48], "account": [36, 48], "track": 36, "capabl": [36, 43], "extend": 36, "notifi": 36, "whox": 36, "check": 36, "statu": [36, 48], "determin": 36, "support": [36, 42, 43, 50], "best": 36, "effort": 36, "tag": [36, 48], "autoscript": 37, "remot": 37, "fetch": 37, "list": [37, 48], "unload": 37, "clean": 37, "updat": 37, "structur": 37, "manifest": 37, "json": 37, "placement": 37, "hint": 37, "egg_load": 37, "egg_unload": 37, "egg_al": 37, "ban": [38, 48], "invit": [38, 48], "exempt": [38, 48], "link": [35, 39, 48], "term": 39, "exampl": 39, "bottre": 39, "botflag": 39, "make": 39, "record": [39, 48], "certif": [39, 50], "core": 40, "execut": 40, "dcc": [40, 48, 50], "telnet": 40, "advanc": [40, 51], "ssl": [40, 50], "featur": 41, "ipv6": 42, "chat": 42, "chat4": 42, "chat6": 42, "ircv3": 43, "cap": [43, 48], "parti": 44, "patch": 45, "submit": 45, "via": [45, 48], "github": 45, "encrypt": [46, 48], "hash": 46, "background": 46, "hybrid": 46, "solo": 46, "interfac": 46, "output": 48, "putserv": 48, "text": 48, "option": 48, "puthelp": 48, "putquick": 48, "putnow": 48, "onelin": 48, "putkick": 48, "nick": [48, 52], "reason": 48, "putlog": 48, "putcmdlog": 48, "putxferlog": 48, "putloglev": 48, "": 48, "dumpfil": 48, "queuesiz": 48, "queue": 48, "clearqueu": 48, "req": 48, "raw": 48, "arg": [48, 52], "tagmsg": 48, "target": 48, "ip": 48, "port": 48, "password": 48, "remov": 48, "manipul": 48, "countus": 48, "validus": 48, "handl": 48, "findus": 48, "userlist": 48, "passwdok": 48, "pass": 48, "getus": 48, "entri": 48, "type": [8, 48, 52], "extra": 48, "info": 48, "setus": 48, "chhandl": 48, "new": [8, 48], "chattr": 48, "botattr": 48, "matchattr": 48, "addus": 48, "hostmask": 48, "addbot": 48, "address": 48, "botport": 48, "userport": 48, "delus": 48, "delhost": 48, "addchanrec": 48, "delchanrec": 48, "haschanrec": 48, "getchaninfo": 48, "setchaninfo": 48, "newchanban": 48, "creator": 48, "comment": 48, "lifetim": 48, "newban": 48, "newchanexempt": 48, "newexempt": 48, "newchaninvit": 48, "newinvit": 48, "stickban": 48, "banmask": 48, "unstickban": 48, "stickexempt": 48, "exemptmask": 48, "unstickexempt": 48, "stickinvit": 48, "invitemask": 48, "unstickinvit": 48, "killchanban": 48, "killban": 48, "killchanexempt": 48, "killexempt": 48, "killchaninvit": 48, "killinvit": 48, "ischanjup": 48, "isban": 48, "ispermban": 48, "isexempt": 48, "ispermexempt": 48, "isinvit": 48, "isperminvit": 48, "isbansticki": 48, "isexemptsticki": 48, "isinvitesticki": 48, "matchban": 48, "matchexempt": 48, "matchinvit": 48, "banlist": 48, "exemptlist": 48, "invitelist": 48, "newignor": 48, "killignor": 48, "ignorelist": 48, "isignor": 48, "save": 48, "reload": 48, "backup": 48, "name": 48, "savechannel": 48, "loadchannel": 48, "channame2dnam": 48, "chandname2nam": 48, "dname": 48, "isbotnick": 48, "botisop": 48, "botishalfop": 48, "botisvoic": 48, "botonchan": 48, "isop": 48, "ishalfop": 48, "wasop": 48, "washalfop": 48, "isvoic": 48, "isidentifi": 48, "isawai": 48, "isircbot": 48, "onchan": 48, "monitor": 48, "delet": 48, "onlin": 48, "offlin": 48, "accounttrack": 48, "getaccount": 48, "nick2hand": 48, "account2nick": 48, "hand2nick": 48, "handonchan": 48, "ischanban": 48, "ischanexempt": 48, "ischaninvit": 48, "chanban": 48, "chanexempt": 48, "chaninvit": 48, "resetban": 48, "resetexempt": 48, "resetinvit": 48, "resetchanidl": 48, "resetchanjoin": 48, "resetchan": 48, "refreshchan": 48, "getchanhost": 48, "getchanjoin": 48, "onchansplit": 48, "chanlist": 48, "chanflag": 48, "getchanidl": 48, "getchanmod": 48, "jump": 48, "pushmod": 48, "mode": 48, "flushmod": 48, "topic": 48, "validchan": 48, "isdynam": 48, "setudef": 48, "int": 48, "str": 48, "renudef": 48, "oldnam": 48, "newnam": 48, "deludef": 48, "getudef": 48, "chansettyp": 48, "isupport": 48, "isset": 48, "putdcc": 48, "idx": 48, "putidx": 48, "dccbroadcast": 48, "messag": 48, "dccputchan": 48, "boot": 48, "dccsimul": 48, "hand2idx": 48, "idx2hand": 48, "valididx": 48, "getchan": 48, "setchan": 48, "resetconsol": 48, "echo": 48, "strip": 48, "putbot": 48, "putallbot": 48, "killdcc": 48, "botlist": 48, "islink": 48, "dccuse": 48, "dcclist": 48, "socklist": 48, "whom": 48, "chan": [48, 52], "getdccidl": 48, "getdccawai": 48, "setdccawai": 48, "dccdumpfil": 48, "numberlist": 48, "erasenot": 48, "listnot": 48, "storenot": 48, "from": 48, "msg": 48, "killassoc": 48, "compressfil": 48, "level": 48, "src": 48, "uncompressfil": 48, "iscompress": 48, "setpwd": 48, "getpwd": 48, "getfil": 48, "getdir": 48, "dccsend": 48, "ircnick": 48, "filesend": 48, "fileresend": 48, "setdesc": 48, "getdesc": 48, "setown": 48, "getown": 48, "setlink": 48, "getlink": 48, "getfileq": 48, "getfilesendtim": 48, "destin": 48, "getflag": 48, "setflag": 48, "miscellan": 48, "keyword": 48, "mask": 48, "proc": 48, "unbind": 48, "logfil": 48, "maskhost": 48, "masktyp": 48, "timer": 48, "minut": 48, "count": 48, "timernam": 48, "utim": 48, "second": 48, "killtim": 48, "killutim": 48, "unixtim": 48, "durat": 48, "strftime": 48, "formatstr": 48, "time": 48, "ctime": 48, "myip": 48, "rand": 48, "control": 48, "sendnot": 48, "unlink": 48, "decrypt": 48, "base64": 48, "encpass": 48, "die": 48, "unam": 48, "dnslookup": 48, "hostnam": 48, "arg1": 48, "arg2": 48, "argn": 48, "md5": 48, "callev": 48, "event": 48, "traffic": 48, "unloadmodul": 48, "loadhelp": 48, "helpfil": 48, "unloadhelp": 48, "reloadhelp": 48, "rehash": 48, "stripcod": 48, "matchaddr": 48, "matchcidr": 48, "block": 48, "prefix": 48, "matchstr": 48, "pattern": 48, "rfcequal": 48, "string1": 48, "string2": 48, "istl": 48, "starttl": 48, "tlsstatu": 48, "global": 48, "botnick": 48, "botnam": 48, "serveraddress": 48, "numvers": 48, "lastbind": 48, "isjup": 48, "handlen": 48, "configurearg": 48, "languag": 48, "return": [8, 48], "procedur": 48, "tcp": 48, "match": 48, "charact": 48, "textfil": 49, "substitut": 49, "tip": 51, "renam": 51, "keep": 51, "self": 51, "modifi": 51, "modular": 51, "your": 51, "twcmd": 52, "cmd": 52, "userst": 52, "roomstat": 52, "twitchmod": 52, "twitchvip": 52, "ismod": 52, "isvip": 52, "disclaim": 53, "regist": 53, "web": 53, "ui": 53, "minimum": 4, "10": 5, "workflow": 8, "To": 8, "creat": 8, "userfil": 35, "On": 35, "hub": 35, "leaf": 35, "explain": 35, "process": 35, "errata": 43, "encpass2": 48, "bin": 48, "salt": 48, "round": 48, "digest": 48}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"About Eggdrop": [[0, "about-eggdrop"], [2, null]], "Boring legal stuff": [[1, "boring-legal-stuff"]], "Eggdrop, an open source IRC bot": [[2, "eggdrop-an-open-source-irc-bot"]], "Some things you can do with Eggdrop": [[2, "some-things-you-can-do-with-eggdrop"]], "How to get Eggdrop": [[2, "how-to-get-eggdrop"]], "How to install Eggdrop": [[2, "how-to-install-eggdrop"]], "Installation Pre-requisites": [[2, "installation-pre-requisites"]], "Installation": [[2, "installation"], [33, "installation"], [42, "installation"], [50, "installation"]], "Where to find more help": [[2, "where-to-find-more-help"]], "Installing Eggdrop": [[2, null], [3, "installing-eggdrop"]], "Using Eggdrop": [[2, null]], "Tutorials": [[2, null]], "Eggdrop Modules": [[2, null]], "Quick Startup": [[3, "quick-startup"], [4, "quick-startup"]], "Cygwin Requirements (Windows)": [[3, "cygwin-requirements-windows"]], "Modules": [[3, "modules"], [5, "modules"], [40, "modules"]], "README": [[4, "readme"]], "Notice": [[4, "notice"]], "What is Eggdrop?": [[4, "what-is-eggdrop"]], "How to Get Eggdrop": [[4, "how-to-get-eggdrop"]], "FTP": [[4, "ftp"]], "Git Development Snapshot": [[4, "git-development-snapshot"]], "Docker": [[4, "docker"]], "System Pre-Requisites": [[4, "system-pre-requisites"]], "Minimum Requirements": [[4, "minimum-requirements"]], "Upgrading": [[4, "upgrading"]], "Command Line": [[4, "command-line"]], "Auto-starting Eggdrop": [[4, "auto-starting-eggdrop"]], "Documentation": [[4, "documentation"], [5, "documentation"]], "Obtaining Help": [[4, "obtaining-help"]], "Upgrading Eggdrop": [[5, "upgrading-eggdrop"]], "How to Upgrade": [[5, "how-to-upgrade"]], "Must-read changes for Eggdrop v1.10": [[5, "must-read-changes-for-eggdrop-v1-10"]], "Config file changes": [[5, "config-file-changes"]], "Scripts": [[5, "scripts"], [40, "scripts"], [50, "scripts"]], "Botnet": [[5, "botnet"], [50, "botnet"]], "Tcl Commands": [[5, "tcl-commands"], [21, "tcl-commands"], [37, "tcl-commands"]], "Modules included with Eggdrop": [[6, "modules-included-with-eggdrop"]], "Eggdrop Module Information": [[7, "eggdrop-module-information"]], "What are modules?": [[7, "what-are-modules"]], "How to install a module": [[7, "how-to-install-a-module"]], "Can I compile Eggdrop without dynamic modules? (Static compile)": [[7, "can-i-compile-eggdrop-without-dynamic-modules-static-compile"]], "Do I still need to \u2018loadmodule\u2019 modules?": [[7, "do-i-still-need-to-loadmodule-modules"]], "Eggdrop Bind Internals": [[8, "eggdrop-bind-internals"]], "General Workflow To Create a New Bind": [[8, "general-workflow-to-create-a-new-bind"]], "Adding a New Bind Type to the Bind Table": [[8, "adding-a-new-bind-type-to-the-bind-table"]], "Stackable Binds: HT_STACKABLE": [[8, "stackable-binds-ht-stackable"]], "Adding Bind Functionality": [[8, "adding-bind-functionality"]], "Using the Bind in Tcl": [[8, "using-the-bind-in-tcl"]], "Triggering any Bind": [[8, "triggering-any-bind"]], "Bind Flags": [[8, "bind-flags"]], "Bind Return Values": [[8, "bind-return-values"]], "C Binding": [[8, "c-binding"]], "C Handler": [[8, "c-handler"]], "Summary": [[8, "summary"]], "Assoc Module": [[9, "assoc-module"], [48, "assoc-module"]], "Blowfish Module": [[10, "blowfish-module"]], "Channels Module": [[11, "channels-module"]], "Channel Settings": [[11, "channel-settings"]], "Value-based Channel Settings": [[11, "value-based-channel-settings"]], "Enable/Disable Channel Settings": [[11, "enable-disable-channel-settings"]], "Default Channel Values": [[11, "default-channel-values"]], "Compress Module": [[12, "compress-module"], [48, "compress-module"]], "Console Module": [[13, "console-module"]], "CTCP Module": [[14, "ctcp-module"]], "DNS Module": [[15, "dns-module"]], "Filesys Module": [[16, "filesys-module"], [48, "filesys-module"]], "Config file setup": [[16, "config-file-setup"]], "Partyline usage": [[16, "partyline-usage"]], ".files": [[16, "files"]], ".cancel+ href="../../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -161,8 +161,8 @@diff --git a/doc/html/modules/writing.html b/doc/html/modules/writing.html index 726a93e15..ff40f4fed 100644 --- a/doc/html/modules/writing.html +++ b/doc/html/modules/writing.html @@ -5,11 +5,11 @@ -Search
How to Write an Eggdrop Module — Eggdrop 1.10.0rc1 documentation +How to Write an Eggdrop Module — Eggdrop 1.10.0rc2 documentation - - + + @@ -18,7 +18,7 @@diff --git a/doc/html/search.html b/doc/html/search.html index b8ff44f30..6718e6394 100644 --- a/doc/html/search.html +++ b/doc/html/search.html @@ -4,24 +4,25 @@ -+ href="../index.html">Eggdrop 1.10.0rc2 documentationprevious | @@ -426,8 +426,8 @@What to do with a module? © Copyright 2024, Eggheads. - Last updated on Aug 07, 2024. - Created using Sphinx 7.2.6. + Last updated on Sep 08, 2024. + Created using Sphinx 8.0.2.
Search — Eggdrop 1.10.0rc1 documentation +Search — Eggdrop 1.10.0rc2 documentation - - + + - - + + +@@ -122,10 +123,7 @@+ href="index.html">Eggdrop 1.10.0rc2 documentationSearch
- -- -+ @@ -150,8 +148,8 @@Search
[file] \u2026": [[16, "cancel-file-file"]], ".cd ": [[16, "cd-directory"]], ".cp