OWOP Chat Utils

Adds several useful features to the chat

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Advertisement:

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

Advertisement:

// ==UserScript==
// @name         OWOP Chat Utils
// @namespace    https://greatest.deepsurf.us/en/users/1502179/
// @version      1.9
// @description  Adds several useful features to the chat
// @author       NothingHere7759
// @match        https://ourworldofpixels.com/*
// @exclude      https://ourworldofpixels.com/api*
// @icon         data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAIAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAA2XYBAOgDAADZdgEA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAACMojeFEB6NgAAArJJREFUeF7t28uNE1EQQFGbCFgzgZDGiEARaRAIrCeDYd8CqawpfP05Z9kLd7d99RZV8vn0IH79+Px+vPbIXl7fzsdr9+jT8QJckwBJCZCUAEkJkJQASQmQlABJCZBUNk2vNhdfvn47Xropv39+P166imqz4gQkJUBSAiQlQFICJCVAUgIkJUBSAiS1Pv3e3nA82+Zi+323n297Y+IEJCVAUgIkJUBSAiQlQFICJCVAUgIkNZ5qVxuO7Un+9L5Tt/58U9vvMd2YOAFJCZCUAEkJkJQASQmQlABJCZCUAEmNptWnCzYh00n+9uR92/Q9KtPvb/s9pve1CeEuCJCUAEkJkJQASQmQlABJCZCUAEmdpxuOqenkfTpRr0zf49ls/25OQFICJCVAUgIkJUBSAiQlQFICJCVAUuNNSLUZ2J68b7/H9vNt237fqen34gQkJUBSAiQlQFICJCVAUgIkJUBSAiR185uQynSS/yi2f9/p9+cEJCVAUgIkJUBSAiQlQFICJCVAUgIktb4JmU7Ap6b3ndp+vmcz/T2m37MTkJQASQmQlABJCZCUAEkJkJQASQmQlABJCZCUAEkJkJQASQmQlABJCZCUAEkJkNT4PyFT0/8MVKb/VeA6nICkBEhKgKQESEqApARISoCkBEhKgKTOxwv/Mt2YbG9CppuL6X2nn8fHvLy+jdpyApISICkBkhIgKQGSEiApAZISICkBkhpNq08XbEKmppuLio3Jx9iEcBcESEqApARISoCkBEhKgKQESEqApEbT6kvYmDy26YZjyglISoCkBEhKgKQESEqApARISoCkBEhqdap9ie2NyZTNyt9tbzimnICkBEhKgKQESEqApARISoCkBEhKgKSS6ff/UG1WKtXmYpsTkJQASQmQlABJCZCUAEkJkJQASQmQ1B8g1YFmQv53bQAAAABJRU5ErkJggg==
// @grant        none
// @license      MIT
// ==/UserScript==

// CREDITS: Advice about the code - NekoNoka
//          Beta testers - Atlan, SyntexPr

/* CHANGELOG
For previous changelog entries, look at version 1.8.2
1.9 - Added an options menu accessible via a new chat command, /cuoptions
      Removed /left and /max as they were rendered useless
      Added chat notifications, which can be configured in the options menu
      Added timestamps to messages, which can be disabled in the options
      Added glow, backwards and upside-down text and spoilers
      Changed the markdown for highlighting text
      Made it so multiple effects can be added through the use of a single pair of curly brackets (ex: {000000gFFFFFF something})
      Made it so default coloring isn't applied to the nickname if it starts with #
      Added colorings for navy, infrared, ultraviolet, chocolate, cocoa, magma, light, Trion Ball, Ukraine, Sweden, Finland, Ireland, Italy, Portugal, Vatican, Malta, Belgium, Estonia, Latvia, Lithuania, Netherlands, Luxembourg, Austria, Monaco, San Marino, Armenia, Slovenia, Croatia, Serbia, Bulgaria, Denmark, Iceland, Norway, Liechtenstein, USA, Moldova, Andorra, Canada, Turkey, Albania, Switzerland, Peru, Chad, Nigeria, Mongolia, Mexico, Kazakhstan, Morocco, Algeria, Tunisia, Kosovo, North Macedonia, El Salvador, Honduras, Nicaragua, Ecuador, Colombia, Venezuela, Bolivia, Paraguay, Argentina, Mali, Guinea, Ivory Coast, Somalia, Cyprus, Saudi Arabia, Qatar, Bahrain, Japan, Bangladesh, Palau, Togo, Liberia, Greece, Malaysia, Vietnam, Uruguay, Georgia, China, Botswana, Chile, Madagascar, Benin, Montenegro, Belarus, Indonesia, Singapore, Myanmar, Cambodia, India, Azerbaijan, Tajikistan, Uzbekistan, Yemen, Brazil, ħ, ĥ, Multital, Purper, Potassiumyntex, Wolonland, Nullscape, Aurenmochi, Caster, ALBaNOS, Sviqurkai, Matyas05, EEE, Meebodustria, Maeve, Promania, The 7 Tank Souls, Rïrel, Eurillooppia, Reaper, Operator, Nano, Space≠Time, Starland, Avarus, Saffron, Renïmia, Subsidency, Reverancy, Iterans, Tepun, Nupet, Ackermann, Cübe, Dïemönd, Puro, Zika, Mäcí, Lory, Jolavero, Redism, Orangism, Greenerism, Blurism, Indigoism, Alalia, Onest Land, Tvost Land, Ye Olde Rivers, Fivest Land, Sixest Land, Eightest Land, Ninest Land, Tenest Land, Norteasthia, Easthia, Souteasthia, Soutwesthia, Westhia, Nortwesthia, Centria, Soisia, Aesia, Oasia, Soutian Soisia, Easthian Aesia, Westhian Oasia, Psy, Poleria, Tasapluia, Unacnigd, Axian, Flashland, Bulgariaball, AnythingThere, Sagittarius, Ikdi, Sytist, Yggdrasil, Ascendancy, Untirelleoria, Kronweger, Noduard, Dehirah, Nestad-Rodo, Lenaiderr, Neafters, Osnia, Tin'g, Zius, Sefectal, Baffenor, Muion Nexus, Dwajl, Yudi, Утюг, Amalgam, Illogicalis, New Basaltia, Evilguy, Evertrialition, Forest Island, Kestrel, Kami, TDRR, Seurites, Cpl. Andersen, The Secret, Infinityland, Abosites, Susamogus2002, Nasri, Lafu, Bylka, Valor
      Changed the coloring of Europe, Hungary, Germany, Russia, Prussia, Poland, Slovakia, SomethingThere, Amogusland, Nut Wujing and Trion Nexus
      Discord emojis now show their name when you hover over them
      Fixed Discord emojis not working when placed anywhere after the first new line in a message
      Made Discord emojis work when used inside the nickname
      Made it so when you type a nickname, the max length of the chat input changes
      Made it so when you enter a new pass correctly, it gets saved in localStorage (as it normally should)
      Fixed fz getting colored when used by the rpmap gateway
*/

'use strict';

(() => {
    //Pre-installation
    const waitUntil = (probe, cb, t = 200) => {
        const id = setInterval(() => { try { if (probe()) { clearInterval(id); cb(); } } catch { } }, t);
    };
    waitUntil(
        () => window.OWOP &&
            OWOP.misc?.chatRecvModifier &&
            OWOP.misc.world?.players &&
            OWOP.misc.chatSendModifier &&
            document.getElementById('chat'),
        install
    );

    function install() {
        //Utilities
        const say = OWOP.chat.send;
        function tell(id, msg) { say('/tell ' + id + ' ' + msg) };
        const locSend = OWOP.chat.local;
        function locErr(msg) {
            OWOP.chat.receiveMessage(`{
            	"sender":"server",
            	"type":"error",
            	"data":{
        		    "message":"${msg}"
        	    }
            }`);
        }
        let playerList = OWOP.misc.world.players;
        let playerID = OWOP.player.id;
        let lastAttemptedPass = null;
        OWOP.on(OWOP.events.net.world.join, () => {
            playerList = OWOP.misc.world.players;
            playerID = OWOP.player.id;
            lastAttemptedPass = null;
        });
        // Obfuscated text
        function randStr(length) {
            let str = "";
            let charList = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "$", "¢", "€", "£", "¥", "+", "-", "*", "/", "÷", "=", "%", "\"", "'", "#", "@", "&", "_", "(", ")", ",", ".", ";", ":", "¿", "?", "¡", "!", "\\", "|", "{", "}", "<", ">", "[", "]", "¶", "µ", "`", "^", "~", "©", "¦", "¨", "«", "¬", "°", "±", "´", "·", "¸", "»", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Ÿ", "ˆ", "˜", "–", "—", "‘", "’", "‚", "“", "”", "„", "•", "…", "‹", "›"];
            for (let i = 0; i < length; i++) {
                str += charList[Math.floor(Math.random() * charList.length)];
            }
            return str;
        }
        setInterval(() => {
            let obfuscatedElements = document.getElementsByClassName("obfuscated");
            for (let i = 0; i < obfuscatedElements.length; i++) {
                obfuscatedElements[i].textContent = randStr(obfuscatedElements[i].textContent.length);
            }
        }, 100);
        function mdParse(str) {
            str = str
                .replace(/(?<!\\)\*\*([^*\\]|[^*].*?[^\\])\*\*/g, match => `<b>${match.slice(2).slice(0, -2)}</b>`)                                                                // ** --> Bold
                .replace(/(?<!\\)\*.*?[^\\]\*/g, match => `<i>${match.slice(1).slice(0, -1)}</i>`)                                                                                 // * ---> Italic
                .replace(/(?<!\\)__([^_\\]|[^_].*?[^\\])__/g, match => `<u>${match.slice(2).slice(0, -2)}</u>`)                                                                    // __ --> Underline
                .replace(/(?<!\\)_.*?[^\\]_/g, match => `<i>${match.slice(1).slice(0, -1)}</i>`)                                                                                   // _ ---> Italic
                .replace(/(?<!\\)~~([^~\\]|[^~].*?[^\\])~~/g, match => `<s>${match.slice(2).slice(0, -2)}</s>`)                                                                    // ~~ --> Strikethrough
                .replace(/(?<!\\)~.*?[^\\]~/g, match => `<sub>${match.slice(1).slice(0, -1)}</sub>`)                                                                               // ~ ---> Subscript
                .replace(/(?<!\\)\^.*?[^\\]\^/g, match => `<sup>${match.slice(1).slice(0, -1)}</sup>`)                                                                             // ^ ---> Superscript
                .replace(/(?<!\\)`.*?[^\\]`/g, match => `<code>${match.slice(1).slice(0, -1)}</code>`)                                                                             // ` ---> Code
                .replace(/(?<!\\)\|\|([^|\\]|[^|].*?[^\\])\|\|/g, match => `<span class="spoiler" onclick="this.className='spoiler-shown'">${match.slice(2).slice(0, -2)}</span>`) // || --> Spoiler
                .replace(/^##\s.+$/gm, match => `<span style="font-size:24px;">${match.slice(3).replace(/#+\s*$/, '')}</span>`)                                                    // ## --> Heading 2
                .replace(/^#\s.+$/gm, match => `<span style="font-size:32px;">${match.slice(2).replace(/#+\s*$/, '')}</span>`)                                                     // # ---> Heading 1
                .replace(/^-#\s.+$/gm, match => `<span style="font-size:12px;">${match.slice(3)}</span>`)                                                                          // -# --> Subtext
                .replace(/^\[ \]/gm, '<input type="checkbox">')                                                                                                                    // [ ] -> Unchecked item
                .replace(/^\[X\]/gim, '<input type="checkbox" checked>')                                                                                                           // [X] -> Checked item
            while (str.match(/(?<!\\)\{.+? .+?(?<!\\)\}/s)) {                                                                                                                      // {c --> Color, {rb --> Rainbow, {k --> Obfuscated, {< --> Backwards, {V --> Upside down, {gc --> Glow, {hc, {=c --> Highlight
                str = str.replace(/(?<!\\)\{.+? .+?(?<!\\)\}/s, match => {
                    let [clrstr, ...content] = match.slice(1, -1).split(' ');
                    content = content.join(" ");
                    if (content.length == 0 || !clrstr.match(/(g|h|=)?[\dA-F]{6}|k|&lt;|V|rb/i)) return `&#123;${clrstr} ${content}&#125;`;
                    if (clrstr.match(/rb/i)) {
                        return `${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `<mark style="background-color: #${clrstr.match(/(?<=h|=)[\dA-F]{6}/i)[0]}">` : ''}<span class="rainbow${clrstr.match(/k/i) ? ` obfuscated` : ''}"${clrstr.match(/&lt;|V/i) ? ` style="display: inline-block; transform: scale(${clrstr.match(/&lt;/) ? "-1" : "+1"}, ${clrstr.match(/V/i) ? "-1" : "+1"})"` : ''}>${content}</span>${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `</mark>` : ''}`;
                    } else {
                        return `${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `<mark style="background-color: #${clrstr.match(/(?<=h|=)[\dA-F]{6}/i)[0]}">` : ''}<span${clrstr.match(/&lt;|V|g?[\dA-F]{6}/i) ? ` style="${clrstr.match(/&lt;|V/i) ? `display: inline-block; transform: scale(${clrstr.match(/&lt;/) ? "-1" : "+1"}, ${clrstr.match(/V/i) ? "-1" : "+1"});` : ''}${clrstr.match(/g[\dA-F]{6}/i) ? `text-shadow: 0px 0px 5px #${clrstr.match(/(?<=g)[\dA-F]{6}/i)[0]}, 0px 0px 5px #${clrstr.match(/(?<=g)[\dA-F]{6}/i)[0]}, 0px 0px 5px #${clrstr.match(/(?<=g)[\dA-F]{6}/i)[0]};` : ''}${clrstr.match(/(?<![gh=][\dA-F]{0,5})[\dA-F]{6}/i) ? `color: #${clrstr.match(/(?<![gh=][\dA-F]{0,5})[\dA-F]{6}/i)[0]};` : ''}"` : ''}${clrstr.match(/k/i) ? ` class="obfuscated"` : ''}>${content}</span>${clrstr.match(/(h|=)[\dA-F]{6}/i) ? `</mark>` : ''}`;
                    }
                });
            };
            return str
                .replace(/(?<!\\)\\/g, '') // Remove lone backslashes
                .replace(/\\\\/g, '\\') // Halve each backslash pair
        }
        let helpBtn = document.getElementById('help-button');
        let chat = document.getElementById('chat');
        let chatInput = document.getElementById("chat-input");
        // localStorage
        if (localStorage.CU === undefined || (() => { try { JSON.parse(localStorage.CU); return false } catch (e) { return true } })()) {
            localStorage.CU = `{"chatOnLeft":${localStorage.chatOnLeft ?? "false"},"chatUtilsUpdateNotice":${localStorage.chatUtilsUpdateNotice ?? '"1.7.1"'},"maxChatBuffer":256,"notifications":"none","notifNames":[],"timestamps":true}`;
            delete localStorage.chatOnLeft;
            delete localStorage.chatUtilsUpdateNotice;
        };
        let ls = JSON.parse(localStorage.CU);
        function updateLs() {
            localStorage.CU = JSON.stringify(ls);
        }
        if (typeof ls.chatOnLeft != "boolean") {
            ls.chatOnLeft = false;
            updateLs();
        };
        if (!ls.chatUtilsUpdateNotice) {
            ls.chatUtilsUpdateNotice = "1.7.1";
            updateLs();
        };
        if (!ls.maxChatBuffer || typeof ls.maxChatBuffer !== "number") {
            ls.maxChatBuffer = 256;
            updateLs();
        };
        if (!ls.notifications) {
            ls.notifications = "none";
            updateLs();
        };
        if (!ls.notifNames || !(ls.notifNames instanceof Array)) {
            ls.notifNames = [];
            updateLs();
        };
        if (typeof ls.timestamps != "boolean") {
            ls.timestamps = true;
            updateLs();
        };
        // Load maxChatBuffer
        OWOP.options.maxChatBuffer = ls.maxChatBuffer;
        // Notifications
        let notifsAllowed;
        if (window.Notification) {
            Notification.requestPermission().then(result => {
                if (result != "granted") return notifsAllowed = false;
                notifsAllowed = true;
            });
        } else notifsAllowed = false;
        // Timestamps
        (() => {
            let style = document.createElement("style");
            style.id = "cu-timestamp-style";
            style.innerHTML = `.msg-time {
                display: ${ls.timestamps ? "initial" : "none"};
            }`;
            document.head.appendChild(style);
        })();
        // nhStyle
        if (!document.getElementById('nhStyle') || +document.getElementById('nhStyle').getAttribute("version") < 2) {
            document.getElementById('nhStyle')?.remove();
            let nhStyle = document.createElement('style');
            nhStyle.id = 'nhStyle';
            nhStyle.setAttribute("version", "2");
            nhStyle.innerHTML = `.nhCont {
    & input {
		background-color: rgba(0, 0, 0, 0.3);
		color: white;
	}
	& input::placeholder {
	    color: #BFBFBF;
	}
    & > div > input[type="number"],
    & > div > input[type="range"],
    & > div > input[type="text"],
    & > div > select {
        flex-grow: 1;
        flex-basis: 171px;
    }
    & select {
        background-color: #ABA389;
        border: 6px #ABA389 solid;
        border-image: url(/img/small_border.png) 6 repeat;
        border-image-outset: 1px;
    }
    & > div {
        display: flex;
        align-items: center;
    }
    & > div > label {
        text-wrap: nowrap;
    }
}`;
            document.head.appendChild(nhStyle);
        };
        (() => {
            let style = document.createElement("style");
            style.innerHTML = `.chatImg {
                height: 1em;
                vertical-align: middle;
            }
            #chat-messages>li:not(:last-child):after {
                content: "";
                position: relative;
                left: 50%;
                transform: translate(-50%, 0);
                display: block;
                width: 95%;
                height: 0.9px;
                background-color: #80808080;
            }
            .obfuscated {
                word-break: break-all;
                word-wrap: anywhere;
            }
            .spoiler {
                background-color: grey !important;
                border-radius: 5px;
                color: grey !important;
                text-shadow: none !important;
                user-select: none;
                -webkit-user-select: none;
                transition: all 0.25s;
                * {
                    background: none !important;
                    color: grey !important;
                    text-shadow: none !important;
                }
                &:hover {
                    background-color: darkgrey !important;
                    color: darkgrey !important;
                }
            }
            .spoiler-shown {
                background-color: #80808080;
                border-radius: 5px;
            }
            .rainbow-back {
                user-select: none;
                -webkit-user-select: none;
            }
            .msg-time {
                user-select: none;
                -webkit-user-select: none;
            }`;
            document.head.appendChild(style);
        })();
        const replacements = [ // Colorful chat replacements
            // [regex, before, replacement, after]

            /*** OTHER WORDS ***/

            // Colors
            [/(?<!\bDARKISH\s)\bRED\b|\bRED\b(?!\sREPUBLIC\b)/gi, "<span style='color: #E53B44'>", "`${match}`", "</span>"],
            [/\bCRIMSON\b/gi, "<span style='color: #9E2835'>", "`${match}`", "</span>"],
            [/\bINFRARED\b/gi, "<span style='color: #420000; text-shadow: -1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bORANGE\b/gi, "<span style='color: #FB922B'>", "`${match}`", "</span>"],
            [/\bGOLD(EN)?\b/gi, "<span style='color: #FFB735'>", "`${match}`", "</span>"],
            [/\bYELLOW\b/gi, "<span style='color: #FFE762'>", "`${match}`", "</span>"],
            [/(?<!\bUNITED\s)\bGREEN\b|\bGREEN\b(?!\sSTATES\b)/gi, "<span style='color: #63C64D'>", "`${match}`", "</span>"],
            [/\bLIME\b/gi, "<span style='color: #B1D657'>", "`${match}`", "</span>"],
            [/(?<!\bNAVY\s)\bBLUE\b/gi, "<span style='color: #3AB2FF'>", "`${match}`", "</span>"],
            [/\bINDIGO\b/gi, "<span style='color: #0484D1'>", "`${match}`", "</span>"],
            [/\bNAVY(\sBLUE)?\b/gi, "<span style='color: #15599e'>", "`${match}`", "</span>"],
            [/\bCYAN(\sREP(\.|UBLIC)?)?\b/gi, "<span style='color: #2CE8F4'>", "`${match}`", "</span>"],
            [/\b(MAGENTA|PINK|FUCHSIA)\b/gi, "<span style='color: #FF41E4'>", "`${match}`", "</span>"],
            [/\b(VIOLET|PURPLE|MAUVE)\b/gi, "<span style='color: #AB80F9'>", "`${match}`", "</span>"],
            [/\bU(LTRA(VIOLET|IDIOT)|V)\b/gi, "<span style='color: #e8abdd'>", "`${match}`", "</span>"],
            [/\bBROWN\b/gi, "<span style='color: #B86F50'>", "`${match}`", "</span>"],
            [/\bGR(A|E)Y\b/gi, "<span style='color: #AFBFD2'>", "`${match}`", "</span>"],
            [/\bWHITE\b/gi, "<span style='color: #FFFFFF'>", "`${match}`", "</span>"],
            [/\bBLACK\b/gi, localStorage.nick === "SyntexPr" ? "<span style='color: #FFFFFF; text-shadow: 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF;'>" : "<span style='color: #000000; text-shadow: -1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\b(RAINBOW(BALL)?|REGENBOGEN)\b/gi, "<span class='rainbow'>", "`${match}`", "</span>"],
            [/\bRGB\b/gi, "<span style='color: #00FF00'>", "`<span style='color: #FF0000'>${match[0]}</span>${match[1]}<span style='color: #0000FF'>${match[2]}</span>`", "</span>"],
            [/\bCMYK?\b/gi, "<span style='color: #FF00FF'>", "`<span style='color: #00FFFF'>${match[0]}</span>${match[1]}<span style='color: #FFFF00'>${match[2]}</span>${match[3] ? `<span style='color: #000000'>${match[3]}</span>` : ''}`", "</span>"],

            // Other words
            [/\b(TREES?|WOOD(EN|ED|S)?|STICKS?|CHOCOLATES?|COCOAS?)\b/gi, "<span style='color: #B86F50'>", "`${match}`", "</span>"],
            [/\b(GRASS|CLIFFS?|HILLS?)\b/gi, "<span style='color: #63C64D'>", "`${match}`", "</span>"],
            [/\b(WATER|OCEAN|SEA|LAKE|LAGOON)S?\b/gi, "<span style='color: #3AB2FF'>", "`${match}`", "</span>"],
            [/\b(IC(E|Y|ICLE)|FRO(STY?|ZEN?)|FREEZ(E(D|S)?|ING)|SNOW(Y|ING|ED|S|M(A|E)N)?|COLD)\b/gi, "<span style='color: #D0D0FF'>", "`${match}`", "</span>"],
            [/\bRAIN(S|ING|ED)?\b/gi, "<span style='color: #0484D1'>", "`${match}`", "</span>"],
            [/\b(LAVA|HOT)\b/gi, "<span style='color: #FB922B'>", "`${match}`", "</span>"],
            [/\bMAGMA\b/gi, "<span style='color: #e07438'>", "`${match[0]}<span style='color: #96471d'>${match[1]}</span>${match[2]}<span style='color: #96471d'>${match[3]}</span>${match[4]}`", "</span>"],
            [/\bWARM\b/gi, "<span style='color: #FFB735'>", "`${match}`", "</span>"],
            [/\bFIRES?\b/gi, "<span style='color: #E53B44'>", "`${match}`", "</span>"],
            [/\b(EARTH|GROUNDS?)\b/gi, "<span style='color: #B86F50'>", "`${match}`", "</span>"],
            [/\b(AIR|WINDS?)\b/gi, "<span style='color: #AFBFD2'>", "`${match}`", "</span>"],
            [/\bLIGHT\b/gi, "<span style='color: #FFF; text-shadow: 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF'>", "`${match}`", "</span>"],
            [/\bCOAL\b/gi, "<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bCOPPER\b/gi, "<span style='color: #E77C56'>", "`${match}`", "</span>"],
            [/\b(IRON|STEEL|MOUNTAINS?|STONES?|ROCKS?)\b/gi, "<span style='color: #AFBFD2'>", "`${match}`", "</span>"],
            [/\bAMETHYST\b/gi, "<span style='color: #B38EF3'>", "`${match}`", "</span>"],
            [/\bDIAMONDS?\b/gi, "<span style='color: #4AEDD9'>", "`${match}`", "</span>"],
            [/\bREDSTONE\b/gi, "<span style='color: #F00'>", "`${match}`", "</span>"],
            [/\bEME(RALDS?)?\b/gi, "<span style='color: #41F384'>", "`${match}`", "</span>"],
            [/\bSAPPHIRES?\b/gi, "<span style='color: #412BEE'>", "`${match}`", "</span>"],
            [/\bRUB(Y|IES)\b/gi, "<span style='color: #D41E37'>", "`${match}`", "</span>"],
            [/\b67\b/gi, "<s>", "`${match}`", "</s>"],
            [/\bMINDUSTRY\b/gi, "<span style='color: #6E7080'>", "`${match[0]}<span style='color: #989AA4'>${match[1]}<span style='color: #D4806B'>${match[2]}<span style='color: #EAB678'>${match[3]}<span style='color: #FFD27E'>${match[4]}</span>${match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}`", "</span>"],
            [/\bTAUM(OTONS?)?\b/gi, "<span style='color: #EE00FF'>", "`${match}`", "</span>"],
            [/\bCOCA\sPOLA\b/gi, "<span style='color: #E53B44'>", "`${match}`", "</span>"],
            [/\b(?<!:)(NUT\s)?WUJING\b|沙僧坚果/gi, "<span style='color: #A98828'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/1450183287598350366.png?v=1'> ${match}`", "</span>"],
            [/\b(FRIENDZONE|(?<!\[)FZ|FZ(?!\]))\b/gi, "<span style='color: #63C64C'>", "`${match.length == 2 ? match[0] : match.slice(0, -4)}<span style='color: #E53B44'>${match.length == 2 ? match[1] : match.slice(-4)}</span>`", "</span>"],
            [/\bGOOGLE\b/gi, "<span style='color: #4285F4'>", "`${match[0]}<span style='color: #EA4335'>${match[1]}</span><span style='color: #FBBC05'>${match[2]}</span>${match[3]}<span style='color: #34A853'>${match[4]}</span><span style='color: #EA4335'>${match[5]}</span>`", "</span>"],
            [/\bMULTITAL\b/gi, "<span style='color: #cc0000'>", "`<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[0]}</span><span style='color: #f00'>${match[1]}</span><span style='color: #0f0'>${match[2]}</span><span style='color: #e60000'>${match[3]}</span><span style='color: #00f'>${match[4]}</span><span style='color: #ff0'>${match[5]}</span><span style='color: #8000ff'>${match[6]}</span>${match[7]}`", "</span>"],
            [/\bTRION\sBALLS?\b/gi, "<span style='color: #5a5958'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/1512204037678694421.png?v=1'> ${match.slice(0, 2)}<span style='color: #ee00ff'>${match[2]}</span>${match[3]}<span style='color: #ee00ff'>${match[4]}</span>${match.slice(5, 7)}<span style='color: #ee00ff'>${match[7]}</span>${match.slice(8)}`", "</span>"],

            // Countries and regions
            [/\bROM(ANIA(NS?)?|ÂNIA)\b/gi, "<span style='color: #003CB3'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FCD116'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #CE1126'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\b(HUNGAR(Y|IANS?)|MAGYAR(ORSZ(Á|A)G)?)\b/gi, "<span style='color:#477050'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjYwMCI+PHBhdGggZD0iTTAgMGgxMjAwdjYwMEgwIiBmaWxsPSIjNDc3MDUwIi8+PHBhdGggZD0iTTAgMGgxMjAwdjQwMEgwIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTAgMGgxMjAwdjIwMEgwIiBmaWxsPSIjY2UyOTM5Ii8+PC9zdmc+DQo=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(RUSSIA(NS?)?|РОССИЯ|POCCNR)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#0032A0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI2MDAiPjxyZWN0IGZpbGw9IiNkNTJiMWUiIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIi8+PHJlY3QgZmlsbD0iIzAwMzlhNiIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI0MDAiLz48cmVjdCBmaWxsPSIjZmZmIiB3aWR0aD0iOTAwIiBoZWlnaHQ9IjIwMCIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(GERMAN(Y|S)?|DEUTSCHLAND)\b/gi, "<span style='color:#595959'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMDAiIGhlaWdodD0iNjAwIj48cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI2MDAiIGZpbGw9IiNGRkNFMDAiLz48cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSI0MDAiIGZpbGw9IiNEMDAiLz48cmVjdCB3aWR0aD0iMTAwMCIgaGVpZ2h0PSIyMDAiIGZpbGw9IiMwMDAiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bFR((A|\*)NCE|(E|\*)NCH)\b/gi, "<span style='color:#0000B3'>", "`${match.slice(0, 2)}<span style='color:#FFFFFF'>${match.slice(2, 4)}</span><span style='color:#E1000F'>${match.slice(-2)}</span>`", "</span>"],
            [/\b(PRUSSIA(NS?)?|PREU(ẞ|ß|SS|SZ)EN)\b/gi, "<span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`</span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjkwMCIgaGVpZ2h0PSI1NDAiPjxyZWN0IHdpZHRoPSI5MDAiIGhlaWdodD0iNTQwIiAvPjxyZWN0IHk9IjgyIiB3aWR0aD0iOTAwIiBoZWlnaHQ9IjM3NiIgZmlsbD0iI0ZGRiIgLz48L3N2Zz4=) text top 60% left 50% / 100% 50%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span><span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>`", "</span>"],
            [/\bPOL(SKA|AND|ISH)\b/gi, "<span style='color: #DD0C39'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjE2IiBoZWlnaHQ9IjEwIj48cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTAiIGZpbGw9IiNkYzE0M2MiLz48cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iNSIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bSLOV(AK(IA(NS?)?|S)?|ENSKO)\b/gi, "<span style='color:#254AA5'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjYiPjxyZWN0IGZpbGw9IiNlZDFjMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjYiLz48cmVjdCBmaWxsPSIjMjU0YWE1IiB3aWR0aD0iOSIgaGVpZ2h0PSI0Ii8+PHJlY3QgZmlsbD0iI2ZmZiIgd2lkdGg9IjkiIGhlaWdodD0iMiIvPjwvc3ZnPgo=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CZECH(IA|S)?|(C|Č)ESKO)\b/gi, "<span style='color:#15579d'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxzdmcgdmVyc2lvbj0iMS4wIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5MDAiIGhlaWdodD0iNjAwIj4NCgk8cmVjdCB3aWR0aD0iOTAwIiBoZWlnaHQ9IjYwMCIgZmlsbD0iI2Q3MTQxYSIvPg0KCTxyZWN0IHdpZHRoPSI5MDAiIGhlaWdodD0iMzAwIiBmaWxsPSIjZmZmIi8+DQoJPHBhdGggZD0iTSA0NTAsMzAwIDAsMCBWIDYwMCB6IiBmaWxsPSIjMTE0NTdlIi8+DQo8L3N2Zz4=) text center / 100% 100%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bEUROP(E|A)\b/gi, "<span style='color: #003cb3'>", "`${match[0]}<span style='color: #ffcc00'>${match[1]}</span>${match[2] + match[3]}<span style='color: #ffcc00'>${match[4]}</span>${match[5]}`", "</span>"],
            [/\bEUROPEAN\b/gi, "<span style='color: #003cb3'>", "`${match[0] + match[1]}<span style='color: #ffcc00'>${match[2]}</span>${match[3] + match[4]}<span style='color: #ffcc00'>${match[5]}</span>${match[6] + match[7]}`", "</span>"],
            [/\bROMANS\b/gi, "<span style='color: #AA080B'>", "`${match[0] + match[1]}<span style='color: #ffa50a'>${match[2] + match[3]}</span>${match.slice(-2)}`", "</span>"],
            [/\bROMAN(\sEMPIRE)?\b/gi, "<span style='color: #AA080B'>", "`${match[0]}<span style='color: #ffa50a'>${match[1]}</span>${match[2]}<span style='color: #ffa50a'>${match[3]}</span>${match.slice(4)}`", "</span>"],
            [/\b(ROM(A|E)|SPQR)\b/gi, "<span style='color: #AA080B'>", "`${match[0]}<span style='color: #ffa50a'>${match[1] + match[2]}</span>${match[3]}`", "</span>"],
            [/\bENGLAND\b/gi, "<span style='color: #FFFFFF'>", "`${match.slice(0, 2)}<span style='color: #CE1124'>${match.slice(2, -2)}</span>${match.slice(-2)}`", "</span>"],
            [/\b(SPA(IN|NI(SH|ARDS?))|ESPA(N|Ñ)A)\b/gi, "<span style='color: #ffc400'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNTAwIiB3aWR0aD0iNzUwIiB2ZXJzaW9uPSIxLjEiPgogIDxyZWN0IHdpZHRoPSI3NTAiIGhlaWdodD0iNTAwIiBmaWxsPSIjYzYwYjFlIi8+CiAgPHJlY3Qgd2lkdGg9Ijc1MCIgaGVpZ2h0PSIyNTAiIHk9IjEyNSIgZmlsbD0iI2ZmYzQwMCIvPgo8L3N2Zz4=) text top 70% left 50% / 100% 60%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(UKRAIN(E|IANS?)|Україна)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #0057B7'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiPjxyZWN0IHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGZpbGw9IiNGRkQ3MDAiLz48cmVjdCB3aWR0aD0iMyIgaGVpZ2h0PSIxIiBmaWxsPSIjMDA1N0I3Ii8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(SWED(E(N|S)?|ISH)|SVERIGE)\b/gi, "<span style='color: #0062b3'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n)}<span style='color: #fecb00'>${match.slice(n, -n)}</span>${match.slice(-n)}`", "</span>"],
            [/\b(FIN(N(S|ISH)?|LAND)|SUOMI)\b/gi, "<span style='color: #FFFFFF'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n)}<span style='color: #004db3'>${match.slice(n, -n)}</span>${match.slice(-n)}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(IR(ELAND|ISH)|(É|E)IRE)\b/gi, "<span style='color: #0E9C62'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFFFFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #FF893C'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bITAL(Y|IA(NS?)?)\b/gi, "<span style='color: #009246'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFFFFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #ce2b37'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bPORTUG(AL|UESE)\b/gi, "<span style='color: #00b362'>", "`${match.slice(0, Math.floor(match.length * 0.4))}<span style='color: #ed1c24'>${match.slice(Math.floor(match.length * 0.4))}</span>`", "</span>"],
            [/\b(VATICANO?|HOLY\sSEE)\b/gi, "<span style='color: #FFF200'>", "`${match.slice(0, 4)}<span style='color: #FFFFFF'>${match.slice(4)}</span>`", "</span>"],
            [/\bMALT(A|ESE)\b/gi, "<span style='color: #cf142b'>", "`<span style='color: #FFFFFF'>${match.slice(0, Math.floor(match.length / 2))}</span>${match.slice(Math.floor(match.length / 2))}`", "</span>"],
            [/\bBELGI(UM|ANS?|EN?|QUE|Ë)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #fdda25'>", "`<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}</span>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}<span style='color: #ef3340'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bE(STONIA(NS?)?|ESTI)\b/gi, "<span style='color: #0072ce'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjIxIiB3aWR0aD0iMzMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMEgzM1YyMUgweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0wIDBIMzNWMTRIMHoiLz48cGF0aCBkPSJNMCAwSDMzVjdIMHoiIGZpbGw9IiMwMDcyY2UiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bLATVI(A(NS?)?|JA)\b/gi, "<span style='color: #9D2235'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMCIgaGVpZ2h0PSI1Ij48cGF0aCBmaWxsPSIjOUQyMjM1IiBkPSJNMCAwaDEwdjVIMCIvPjxwYXRoIGZpbGw9IiNGRkYiIGQ9Ik0wIDJoMTB2MUgwIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bLI(THUANIA(NS?)?|ETUVA)\b/gi, "<span style='color: #00b371'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiNjMTI3MmQiIGQ9Ik0wIDBoNXYzSDB6Ii8+PHBhdGggZmlsbD0iIzAwYjM3MSIgZD0iTTAgMGg1djJIMHoiLz48cGF0aCBmaWxsPSIjZmRiOTEzIiBkPSJNMCAwaDV2MUgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(NETHERLANDS|DUTCH((WO)?M(A|E)N)?|NEDERLAND)\b/gi, "<span style='color: #21468B'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjYiPjxwYXRoIGZpbGw9IiMyMTQ2OEIiIGQ9Ik0wIDBIOVY2SDB6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMEg5VjRIMHoiLz48cGF0aCBmaWxsPSIjQUUxQzI4IiBkPSJNMCAwSDlWMkgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bL(UXEMBO?URG(ISH|ERS?)?|(Ë|E)TZEBUERG)\b/gi, "<span style='color: #00a3e0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUiIGhlaWdodD0iMyI+PHBhdGggZmlsbD0iIzAwYTNlMCIgZD0iTTAgMEg1VjNIMFoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwSDVWMkgwWiIvPjxwYXRoIGZpbGw9IiNlZjMzNDAiIGQ9Ik0wIDBINVYxSDBaIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(AUSTRIA(NS?)?|(Ö|O)STERREICH)\b/gi, "<span style='color: #c8102e'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjkiIGhlaWdodD0iNiI+PHBhdGggZmlsbD0iI2M4MTAyZSIgZD0iTTAgMEg5VjZIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAySDlWNEgweiIvPjwvc3ZnPg0K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bMON(ACO|(É|E)GASQUES?)\b/gi, "<span style='color: #CE1126'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUiIGhlaWdodD0iNCI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMEg1VjRIMHoiLz48cGF0aCBmaWxsPSIjQ0UxMTI2IiBkPSJNMCAwSDVWMkgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bSA(N\sMARINO|MMARINESE)\b/gi, "<span style='color: #5eb6e4'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjgiIGhlaWdodD0iNiI+PHBhdGggZmlsbD0iIzVlYjZlNCIgZD0iTTAgMEg4VjZIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwSDhWM0gweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ARMENIA(NS?)?|Հայաստան)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #F2A800'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiNGMkE4MDAiIGQ9Ik0wIDBoNnYzSDB6Ii8+PHBhdGggZmlsbD0iIzAwMzNBMCIgZD0iTTAgMGg2djJIMHoiLz48cGF0aCBmaWxsPSIjRDkwMDEyIiBkPSJNMCAwaDZ2MUgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bSLOVEN(IA(NS?)?|ES?|IJA)\b/gi, "<span style='color: #00f'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNiIgaGVpZ2h0PSIzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0wIDBoNnYzSDBaIiBmaWxsPSJyZWQiLz48cGF0aCBkPSJNMCAwaDZ2MkgwWiIgZmlsbD0iIzAwZiIvPjxwYXRoIGQ9Ik0wIDBoNnYxSDBaIiBmaWxsPSIjZmZmIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(CROAT(IA(NS?)?|S)?|HRVATSKA)\b/gi, "<span style='color: #171796'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjYiIGhlaWdodD0iMyI+PHBhdGggZmlsbD0iIzE3MTc5NiIgZD0iTTAgMEg2VjNIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwSDZWMkgweiIvPjxwYXRoIGZpbGw9InJlZCIgZD0iTTAgMEg2VjFIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SERB(IA(NS?)?|S)?|SRBIJA|Србија)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #1057a2'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIGhlaWdodD0iNiIgd2lkdGg9IjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTAgMEg5VjZIMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMCAwSDlWNEgweiIgZmlsbD0iIzEwNTdhMiIvPjxwYXRoIGQ9Ik0wIDBIOVYySDB6IiBmaWxsPSIjYzYzNjNjIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BULGARIA(NS?)?|България)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00966E'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjUiIGhlaWdodD0iMyI+PHBhdGggZmlsbD0iI0Q2MjYxMiIgZD0iTTAgMEg1VjNIMHoiLz48cGF0aCBmaWxsPSIjMDA5NjZFIiBkPSJNMCAwSDVWMkgweiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBINVYxSDB6Ii8+PC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(D(E|A)NMARK|DAN(ISH|ES?))\b/gi, "<span style='color: #c8102e'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n)}<span style='color: #FFF'>${match.slice(n, -n)}</span>${match.slice(-n)}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ICELAND(IC|ERS?)?|ÍSLAND)\b/gi, "<span style='color: #02529C'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n - 1)}<span style='color: #FFF'>${match.slice(n - 1, n)}<span style='color: #DC1E35'>${match.slice(n, -n)}</span>${match.slice(-n, 1 - n)}</span>${match.slice(1 - n)}`", "</span>"],
            [/\bNOR(W(AY|EGIANS?)|GE|EG)\b/gi, "<span style='color: #ba0c2f'>", "let n = Math.ceil(match.length / 2) - 1; `${match.slice(0, n - 1)}<span style='color: #FFF'>${match.slice(n - 1, n)}<span style='color: #003eb3'>${match.slice(n, -n)}</span>${match.slice(-n, 1 - n)}</span>${match.slice(1 - n)}`", "</span>"],
            [/\bLIECHTENSTEIN(ERS?)?\b/gi, "<span style='color: #003cb3'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjYiPjxwYXRoIGQ9Ik0wIDBIMTBWNkgweiIgZmlsbD0iI2NlMTEyNiIvPjxwYXRoIGQ9Ik0wIDBIMTBWM0gweiIgZmlsbD0iIzAwM2NiMyIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(USA|UNITED\sSTATES(\sOF\sAMERICA)?|MURICA|(?<!\b((SOU|NOR)TH|CENTRAL)\s)AMERICA(NS?)?)\b/gi, "<span style='color: #003eb3'>", "`${match.slice(0, Math.ceil(match.length / 3))}<span style='color: #bf0a30'>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}</span>`", "</span>"],
            [/\bMOLDOVA(NS?)?\b/gi, "<span style='color: #0046ae'>", "`${match.slice(0, match.length % 3 == 1 || match.length < 9 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #ffd200'>${match.length % 3 == 1 || match.length < 9 ? match.slice(Math.floor(match.length / 3), Math.floor(match.length / 2 - 0.5)) : match.slice(Math.ceil(match.length / 3), Math.floor(match.length / 2 - 0.5))}<span style='color: #b07e5b'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.length % 3 == 1 || match.length < 9 ? match.slice(-Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 3)) : match.slice(-Math.floor(match.length / 2 - 0.5), -Math.ceil(match.length / 3))}</span><span style='color: #cc092f'>${match.slice(match.length % 3 == 1 || match.length < 9 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bANDORRA(NS?)?\b/gi, "<span style='color: #1106ac'>", "`${match.slice(0, match.length % 3 == 1 || match.length < 9 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #fedd00'>${match.length % 3 == 1 || match.length < 9 ? match.slice(Math.floor(match.length / 3), Math.floor(match.length / 2 - 0.5)) : match.slice(Math.ceil(match.length / 3), Math.floor(match.length / 2 - 0.5))}<span style='color: #c6aa76'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.length % 3 == 1 || match.length < 9 ? match.slice(-Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 3)) : match.slice(-Math.floor(match.length / 2 - 0.5), -Math.ceil(match.length / 3))}</span><span style='color: #d50032'>${match.slice(match.length % 3 == 1 || match.length < 9 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bCANAD(A|IANS?)\b/gi, "<span style='color: #d52b1e'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/\b(TURK(EY|ISH|S)?|T(Ü|U)RKIYE)\b/gi, "<span style='color: #e30a17'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\b(ALBANIA(NS?)?|SHQIP(Ë|E)RIA)\b/gi, "<span style='color: #F00'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\bS(WI(TZERLAND|SS)|CHWEIZ|UISSE|VIZ(ZE)?RA)\b/gi, "<span style='color: #da291c'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\bPER(U(VIANS?)?|Ú)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #D91023'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CHAD(IANS?)?|TCHAD|تشاد)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #0044b3'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #fecb00'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #c60c30'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bNIGERIA(NS?)?\b/gi, "<span style='color: #008751'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MONGOL(IA(NS?)?|S)?|Монгол|Моңһл|ᠮᠤᠩᠭᠤᠯ|ᡏᡆᡊᡎᡆᠯ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #da2031'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #0066b2'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/\bGUATEMALA(NS?)?\b/gi, "<span style='color: #4997d0'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/\b(MEXIC(O|ANS?)|MÉXICO)\b/gi, "<span style='color: #00b37a'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #CE1126'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(KAZAKH(S(TAN(IS?)?)?)?|QAZAQSTAN|Қазақстан|Казахстан)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00abc2'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #ffec2d'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MOROCC(O|ANS?)|لمغريب|المغرب|ⵍⵎⵖⵔⵉⴱ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #c1272d'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #00b35c'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ALGERIA(NS?)?|الجزائر|ⴷⵣⴰⵢⵔ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00b359'>", "`${match.slice(0, Math.floor(match.length / 2))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2))}</span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(TUNISIA(NS?)?|تونس)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #e70013'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(KOSOV(O|A((R|N)S?)?)|Косово)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #244aa5'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #d0a650'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((NORTH\s)?MACEDONIA(NS?)?|FYROM|Македонија|MAQEDONIA(\sE\sVERIUT)?)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #d82126'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #f8e92e'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\b(EL\sSALVADOR|SALVADOR(E|I)?ANS?)\b/gi, "<span style='color: #0047ab'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMzUiIGhlaWdodD0iMTg5Ij48cGF0aCBmaWxsPSIjMDA0N2FiIiBkPSJNMCAwaDMzNXYxODlIMHoiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCA2M2gzMzV2NjNIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bHONDURA(NS?|S)\b/gi, "<span style='color: #0d3b99'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiMwZDNiOTkiIGQ9Ik0wIDBoNnYzSDB6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMWg2djFIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bNICARAGUA(NS?)?\b/gi, "<span style='color: #0067c6'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjMiPjxwYXRoIGZpbGw9IiMwMDY3YzYiIGQ9Ik0wIDBoNXYzSDB6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMWg1djFIMHoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bECUADOR(IANS?)?\b/gi, "<span style='color: #fd0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjQiPjxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjQiIGZpbGw9IiNlZDFjMjQiLz48cmVjdCB3aWR0aD0iNiIgaGVpZ2h0PSIzIiBmaWxsPSIjMDM0ZWEyIi8+PHJlY3Qgd2lkdGg9IjYiIGhlaWdodD0iMiIgZmlsbD0iI2ZkMCIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bCOLOMBIA(NS?)?\b/gi, "<span style='color: #ffcd00'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2IiBoZWlnaHQ9IjQiPjxwYXRoIGZpbGw9IiNmZmNkMDAiIGQ9Ik0wIDBoNnY0SDB6Ii8+PHBhdGggZmlsbD0iIzAwM2ViMyIgZD0iTTAgMmg2djJIMHoiLz48cGF0aCBmaWxsPSIjYzgxMDJlIiBkPSJNMCAzaDZ2MUgweiIvPjwvc3ZnPg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bVENEZUELA(NS?)?\b/gi, "<span style='color: #fc0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI5IiBoZWlnaHQ9IjYiPjxwYXRoIGQ9Ik0wIDBIOVY2SDBaIiBmaWxsPSIjY2YxNDJiIi8+PHBhdGggZD0iTTAgMEg5VjRIMFoiIGZpbGw9IiMwMDMzYjMiLz48cGF0aCBkPSJNMCAwSDlWMkgwWiIgZmlsbD0iI2ZjMCIvPjwvc3ZnPgo=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(BOLIVIA(NS?)?|PULI(PI|(P|W)Y)A|WULIWYA|(V|MB)O(L|R)(Í|I)VIA)\b/gi, "<span style='color: #00b34d'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMiIgaGVpZ2h0PSIxNSI+PHBhdGggZmlsbD0iIzAwYjM0ZCIgZD0iTTAgMEgyMlYxNUgwWiIvPjxwYXRoIGZpbGw9IiNGOUUzMDAiIGQ9Ik0wIDBIMjJWMTBIMFoiLz48cGF0aCBmaWxsPSIjRDUyQjFFIiBkPSJNMCAwSDIyVjVIMFoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bPARAGU(AY|ÁI|AI)\b/gi, "<span style='color: #0038a8'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSIzMyI+PHBhdGggZD0iTTAgMGg2MHYzM0gweiIgZmlsbD0iIzAwMzhhOCIvPjxwYXRoIGQ9Ik0wIDBoNjB2MjJIMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMCAwaDYwdjExSDB6IiBmaWxsPSIjZDUyYjFlIi8+PC9zdmc+) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(ARGENTIN(A|(I|E)ANS?|ES?))\b/gi, "<span style='color: #74acdf'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIxNSI+PHBhdGggZmlsbD0iIzc0YWNkZiIgZD0iTTAgMEgyNFYxNUgwWiIvPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDVIMjRWMTBIMFoiLz48L3N2Zz4=) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MALI(ANS?)?|MAALI|ߡߊ߬ߟߌ|𞤃𞤢𞥄𞤤𞤭|مَالِي|ⵎⴰⵍⵉ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #14b53a'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #fcd116'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #ce1126'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\bGUIN(E(A(NS?)?)|ÉE)\b/gi, "<span style='color: #009460'>", "`<span style='color: #ce1126'>${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}</span><span style='color: #fcd116'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/\b(IVORY\sCOAST(ERS?)?|IVORIANS?|C(O|Ô)TE\sD'?\s?IVOIRE)\b/gi, "<span style='color: #FF8200'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFFFFF'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span><span style='color: #009A44'>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}</span>`", "</span>"],
            [/\b(SOMALI(S|A)?|SOOMAALIYA)\b/gi, "<span style='color: #418fde'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CYPRUS|Κύπρος|Kıbrıs|KIBRIS)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #d67900'>", "`<span style='color: #FFF'>${match.slice(0, Math.floor(match.length / 2 - 0.5))}</span>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(-Math.floor(match.length / 2 - 0.5))}</span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SAUDI(\sARABIA(NS?)?|S)?|السعودية)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00b365'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FFF'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(QATAR(IS?)?|قطر)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #8a1538'>", "`<span style='color: #FFFFFF'>${match.slice(0, 4)}</span>${match.slice(4)}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BAHRAIN(IS?)?|البحرين)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #da291c'>", "`<span style='color: #FFFFFF'>${match.slice(0, 4)}</span>${match.slice(4)}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(JAPAN(ESE)?|日本)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FFF'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #bc002d'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BANGLADESH(IS?)?|BENGAL(IS?)?|বাংলাদেশ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #00b37a'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #da291c'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\b(PA|BE)LAU(ANS?)?\b/gi, "<span style='color: #09F'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FF0'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\b(TOGO(LESE)?)\b/gi, "<span style='color: #00b383'>", "`<span style='color: #D21034'>${match.slice(0, Math.ceil(match.length / 3))}</span>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFCE00'>${elem}</span>`).join('')}`", "</span>"],
            [/\bLIBERIA(NS?)?\b/gi, "<span style='color: #004db3'>", "`${match.slice(0, Math.ceil(match.length / 3))}<span style='color: #c13'>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}</span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(GREE(CE|KS?)|HELLEN(ES?|IC)|Ελληνικ(ή|η))(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #0D5EAF'>", "`${match.split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}`", "</span>"],
            [/\bMALAY(SIA(NS?)?|S)?\b/gi, "<span style='color: #c00'>", "`<span style='color: #0000b3'>${match.slice(0, Math.ceil(match.length / 3))}</span>${match.slice(Math.ceil(match.length / 3)).split('').map((elem, index) => index % 2 == 0 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}`", "</span>"],
            [/\b(VIET(NAM(ESE)?|S)?|Vi(ệ|Ệ)t\sNam)\b/gi, "<span style='color: #da251d'>", "`${match.slice(0, Math.floor(match.length / 2 - 0.5))}<span style='color: #FF0'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5))}`", "</span>"],
            [/\bURUGUAY(ANS?)?\b/gi, "<span style='color: #0038a8'>", "`${match.split('').map((elem, index) => index % 2 == 1 ? elem : `<span style='color: #FFF'>${elem}</span>`).join('')}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(GEORGIA(NS?)?|KARTVELIANS?|საქართველო)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FFF'>", "`<span style='color: #F00'>${match[0]}</span>${match.slice(1, Math.floor(match.length / 2 - 0.5))}<span style='color: #F00'>${match.slice(Math.floor(match.length / 2 - 0.5), -Math.floor(match.length / 2 - 0.5))}</span>${match.slice(-Math.floor(match.length / 2 - 0.5), -1)}<span style='color: #F00'>${match.slice(-1)}</span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(CHIN(A|ESE)|中国)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #EE1C25'>", "`${match[0]}<span style='color: #FF0'>${match[1]}</span>${match.slice(2)}`", "</span>"],
            [/\b(BO|BA|MO)?TSWANA\b/gi, "<span style='color: #6da9d2'>", "match.length == 8 ? `${match.slice(0, 2)}<span style='color: #FFF'>${match[2]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(3, 5)}</span>${match[5]}</span>${match.slice(6, 8)}` : `${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(2, 4)}</span>${match[4]}</span>${match[5]}`", "</span>"],
            [/\bCHILE(ANS?)?\b/gi, "<span style='color: #0032A0'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNEQTI5MUMiIGQ9Ik0wIDBoMnYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iIzAwMzJBMCIgZD0iTTAgMGgydjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match[0]}</span><span class='rainbow-back' style='text-shadow: inherit'>${match[0]}</span></span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNEQTI5MUMiIGQ9Ik0wIDBoMnYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMGgydjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(1)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(1)}</span></span>`", "</span>"],
            [/\bMA(DAGAS(CAR|IKARA)|LAGASY)\b/gi, "<span style='color: #00b353'>", "let n = match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3); `<span style='color: #FFF'>${match.slice(0, n)}</span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiMwMGIzNTMiIGQ9Ik0wIDBIMlYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2Y5NDIzYSIgZD0iTTAgMEgyVjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(n)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(n)}</span></span>`", "</span>"],
            [/\b(B(E|É)NIN(ESE|OIS(ES?)?)?|DAHOMEY)\b/gi, "<span style='color: #00b36b'>", "let n = match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3); `${match.slice(0, n)}<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNlODExMmQiIGQ9Ik0wIDBoMnYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2ZjZDExNiIgZD0iTTAgMGgydjFIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(n)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(n)}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MONTENEGR(O|INS?)|Црна\sГора|CRNA\sGORA)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #E30000; text-shadow:-1px 0px 0 #FFC000, 1px 0px 0 #FFC000, 0px 1px 0 #FFC000, 0px -1px 0 #FFC000'>", "`${match}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(BELARUS(IANS?)?|Беларусь)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FFF'>", "let n = match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3); `${match.slice(0, n)}<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGZpbGw9IiMwMGIzNDQiIGQ9Im0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2NlMTcyMCIgZD0ibTAgMGgzdjJIMHoiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match.slice(n)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(n)}</span></span>`", "</span>"],
            [/\bINDONESIA(NS?)?\b/gi, "<span style='color: #F00'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBIMlYySDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0icmVkIiBkPSJNMCAwSDJWMUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SINGAP(ORE(ANS?)?|URA)|சிங்கப்பூர்|新加坡)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #ED2939'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPgogIDxwYXRoIGQ9Ik0wIDBoMnYySDB6IiBmaWxsPSIjZmZmIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgydjFIMHoiIGZpbGw9IiNlZDI5MzkiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MYANMA(R(ESE)?)?|BURM(A|ESE)|မြန်မာ|မြန်မာနိုင်ငံ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FECB00'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6IiBmaWxsPSIjRUEyODM5Ij48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgzdjJIMHoiIGZpbGw9IiMzNEIyMzMiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwaDN2MUgweiIgZmlsbD0iI0ZFQ0IwMCI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(CAMBODIA(NS?)?|KHMERS?)\b|កម្ពុជា/gi, "<span style='color: #032ea1'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDBaIiBmaWxsPSIjMDMyZWExIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMWgzdjFIMFoiIGZpbGw9IiNlMDAwMjUiPjwvcGF0aD4KPC9zdmc+Cg==) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(INDIA(NS?)?|HIND(I|USTANI?)?|BH(A|Ā)RAT|भारत)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #FF6820'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGZpbGw9IiMwNmFjNWMiIGQ9Ik0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI0ZGRiIgZD0iTTAgMGgzdjJIMHoiPjwvcGF0aD4KICA8cGF0aCBmaWxsPSIjRkY2ODIwIiBkPSJNMCAwaDN2MUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(AZER(BAIJAN)?(IS?)?|AZƏRBAYCAN)\b/gi, "<span style='color: #00B5E2'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBIM1YzSDBaIiBmaWxsPSIjNTA5ZTJmIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMEgzVjJIMFoiIGZpbGw9IiNlZjMzNDAiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwSDNWMUgwWiIgZmlsbD0iIzAwYjVlMiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(TAJIK(I(STAN(IS?)?)?|S)?|ТОҶИКИСТОН|ТАДЖИКИСТАН)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #1e943a'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBIM1YzSDBaIiBmaWxsPSIjMWU5NDNhIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMEgzVjJIMFoiIGZpbGw9IiNGRkYiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwSDNWMUgwWiIgZmlsbD0iI0RDMTYxRCI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(UZBEK(ISTAN(IS?)?|S)?|OʻZBEKISTON|Ўзбекистон)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #3081f7'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGZpbGw9IiMzMDg3MzgiIGQ9Ik0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzdjJIMHoiPjwvcGF0aD4KICA8cGF0aCBmaWxsPSIjMzA4MWY3IiBkPSJNMCAwaDN2MUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(YEMEN(I(TE)?S?)?|اليمن)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #ce1126'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6Ij48L3BhdGg+CiAgPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgzdjJIMHoiPjwvcGF0aD4KICA8cGF0aCBmaWxsPSIjY2UxMTI2IiBkPSJNMCAwaDN2MUgweiI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bBRA(Z|S)IL(IANS?)?\b/gi, "<span style='color: #00b34d'>", "let n = (match.length - 2) % 3 == 1 ? Math.floor((match.length - 2) / 3) : Math.ceil((match.length - 2) / 3); `${match.slice(0, n)}<span style='color: #ffcb00'>${match.slice(n, n + 1)}<span style='color: #302681'>${match.slice(n + 1, -n - 1)}</span>${match.slice(-n - 1, -n)}</span>${match.slice(-n)}`", "</span>"],
            //[/\bCOUNTRY\b/gi, "<span style='color:#ffc400'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url() text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],

            // Border names
            [/\bLIMBO\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAMUExURQo5VBVwqArQlSzy7vDaOZYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAASZJREFUOMttkgGSBREMRFtcQLgAcQHk/nfbZv7Wbo2vahjzppPoAN4jVHQ+rTui1wvDn0U+yL0MlDjVu07X5W8OnenvQyiqfUDjyl6OQN+cIc342hcnMz8ZWpzNi3sHM7w4l6kVMiInLdzucuKAl1kouHnARIalYGgoSP8FRdfNkTJK7bktmWiBGbz5dkl8HJfeHFKgo7e8omJ+sfHiQmeGp+CRjjwCxlEF0kfw4hIbP9DhqHk8guqr5e7yCF48CKZ1Hn8uK6gJCsEIuaWIys3FwbOZaRU14yl3fP4aWk6U7RwXnzTNWgqZDWqMlIS9Zr2cVg03Z19StJ7CshF2ZwQtYZl1hMyiLg7m5/3Yg7aMXZL0c+N8VfnGT8JjZj63Zpv6O9LNfwDPsDQ6wZvBIgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bOBLIVION\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAPUExURQAAAKysrICAgJ4oNeU7RDSL0DwAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAARtJREFUOMuV0lGShiAIAGBGT6BeAOkCGtwA73+mBaym3X3Y/akMiU9rJoBPo+yo5R31HvpV6Hde4fW0MU9mblzIkkmN/fC08HmhC/QY2lpTljbtJFOY2NKozS4Oei2doNQAVAs19b4APEVJ1HbwmoNaDfQNrN1Af4Pa2QCXdHjtDJA6BaAA+A0gz6Ys82ADp+gDCA2guYJ0gaWHEsjZFq95aIB1yiAyQAmhOkgdbRLbsy2aDBy21w1EDWBKSAmA0HsJkGCvphugAcob8JKBDtIG1m4gbcAvkLJmrw1ZBiBBAPgLDBn5BrBBshEekJWtB+3lHgB2QrQDIPhGkee1/Bvs5j282MGeBPgVmXnYvxS3YTO/rgmPf//NP+MLZABWizJ0KUoAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bARCADIA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAwUExURQAAAP8AAP9VAP+SAP/AAP/+AKT/AFVVVQD/SgD/zQC+/wCA/yEA/6wA/9oA//8A0CK0ZI4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAJVJREFUOMuVksENwjAQBPcDFyf50AIt0AIt0ALv/NwCLdBCWqCFtEALtAAXbO8Ffjv26UbW6ixLBlQOIjiK4CSCswguxB+0+yuebVJXYjnvf2uiRwo3YrCuFLrmsOKRwp34pORTk6Xqq63bPVKYiU/qS6Fv7jd8e6TwIDbUlXPtEz1SWAjGusC+NN+kniJ4ieAtIv/uD0cKCqWhgX+MAAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bPURGATORY\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAMUExURQAAAOLi4rm5uZCQkEjWg78AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAKVJREFUOMu9UEEOAyEIBP0A/mDDfqCR//+tMGDWJu3BSwcMyu44I0SnGIf4A0GBi6gh6MfyyD9LQcZgIOq3hU9QSIlLuCHoWcT0nD1SgCQJYyQhqluIatwn9+yRSBJ4EYRKQZqL41ZFZu/FNIuwLNnc7cTNINT55l5vXlNyIdgpC/AcWT2tJzhjjTXI22hjjJHb/oNwm6qZTURVjdz2RbBDnBNO8QYr6TfVIF/BsgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bDAMNATION\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURfuSK+U7RP/nYvW7CgAAAJ4oNT8oMigaILh8MN4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAANNJREFUOMu1j8kVwjAMRAUVQHgUQKgARAPEyx3zoACW0AG0j2ZkliM58GMrGmmkvIj8nclAZATGbbsY8S4QTLtq7e0ZSkSmoFHV17WwarSrqquZleicyhx4K7KJsKcKqhsfYCnRKjtQYK7NGkylmcbms2hLqxxAgXm9tEYIdcBUKjjvRYlWuYITzVie0A3+mVxw6iIboFWOoNCM5XBodpVOOMEX2Tyt0oOz/V5QPPnMsKm5ZZk9JLT6QB9jxM0x9x6oemYX9JB8D/yO3Acit4HIYyBPxTW3XqdtH+cAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bPARADISE\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAQBAMAAABzZ+XyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAACzo9P/nYvuSK////6+/0gSE0XqUtCCWJngAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAR1JREFUKM+NkjtuwzAMhn+93NUGcgDCvoAQXUAD3dkFombVUHjOEMDXLyknbdPJhB+fpU8kZRs4GsPBULEHjBD+gR4wgjq4i+NIejGvYNtNzvFHJCRjycUX8NbbCAj+ZqTBGVkf8xN6OjkVTZvce2zMVuYzZa0nIsmIii5Cy5m2D1mQCVOwACkYhYe4pGT6KaloEQfOU4qzTWdSGBR2MTBauyo6mBNLIs+SKC5tMwI9XVScP7Td1mKPTxaRmW1YRNREXY2VimzFl7VSpVXiq+D6R8yP1rTeJBkBG/fXwzPKxjmK6FSMIirUlOLFBZdSJ5g6mUcpW4ZCWHADwytkIBS83YC1yif0u3jdWGMugnd+xly27c7v2l97PPyXfQOBOkQnJXD4WQAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bNIRVANA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAN2D8/OL/P/nYkAAgP///6hR/4AA/4F+am4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAUJJREFUOMuVkjmWgzAMhrmCDI/UyDy7Hps3fYhyA3KAuJBrKPD1R5gMeJYmcuH196etqt41gG746ABA4Wnee1dsEU6rQNV0U7KqtT+NbsXG6x+CbriSIGrl9lv5UA/TlOf9xLkaGiK6ZoEAmiYjSo+EUPgkHtNDRhZsgIwAgxgYDQefY9COw3aAHDpo7hPdpw1RCeBKGWGCCRE5sSPyA42fiQ1zMIlF8BDBQwSqEkDTZETLJqzIMvrRO0LrmHkNFplPQVcQWvlOnnNER7ofnSzXaIJM6VkQzhjamAWJtetvhN5E3rzkyDAfgiJLzzasQbxGluhpRC1vRSBOMZRBf9cBVp4v4kPENSL2kkzL0Sw2XjhCmdaj0pcEkOyyoF2kZFv602KxmyHNcnsW7uil3V4dpf820dEaglC/T9V/T1+Cd+0LG618W9f1xygAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bRAGNAROK\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAP8AAP9VALAAAP+DAP+5AP/2AP/8tvJ2gkQAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAUxJREFUOMuVkl2uhCAMhZuwAt0BjAtAq8474gqU2YCxLOAmsv17qhkzyb0v0x8oh6+kJhJ9a5VaXf01+48Gjqy1Ve1Qwt+hmoYCWmM/F93JWVc5Z5m7irl9MPOjdY5bh5O9lI5b7uq6thYwOdCueRCZO41zvvtQOt/73rnmDAohuDU+DJt3LtQ3vptuRXE0hBhC4wLFGJtmnsyEq8ksyIlM9L0qlwMf/ABuDXOMtK5rnJO+d6W20OD75VaAQ4nrfAbNKc1zWoh4wsRAeDEeEBSj6qINZFJaz0iU0o5YCLPr/AYYQD9s59eo4kc8ML4UfKWdkkja981suNJVEfE0Xuflahi1AaDsO4nILnI3YJDNyKYNm/m5lNE//SgXKCQ5Y9v47YyUws8PZYQ/RbIcCJKjHEc+ci5S8lFyOeujQNVD0TprjUKQVL60r//uX/VJkTvjyKq5AAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bOLYMPUS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAGPGTeSmcv///2yr0bhvUD8oMnQ/OWdRQb54c88AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAR5JREFUOMuV0kFOwzAQBdBcwRB5X4PcdRiJvdtRbsABQqPB6xzC8rH54wk0EWHRqapft/PkuJ6ue7TcU0C9OMtXTod5cvRm2Tn3gSJn+UxDS+a0S+eINAcFFAKhz4nIJDfyEsWLVhQhhP6gQPsMnJcGcq1TBiix+IoqsdZbFl2UBtDXwFVBApD8C4rgFUs2gB16vgPGB2aALwM1A7wX/wOwdVGAvmv6A2Yacv1cgT2Si6KA0YcuA7wByZfFl7HtIKTgvOTpf8BbQEegN5D00HMW2QJmPbRIPQa1zjgf70G1v5XvgDmEBnA/M97sJXgZRS+QeZRJb7EB9DVgI8DrKHBb4wlSWycbGbd+D9BfbMh4HTa+7DLZUJ7WNYbv0foGpWOxkn/yUekAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bEDEN\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAJza///////wm//nYjJzRT2OVWPGTR4+ICMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAARNJREFUOMuVkrFuxCAMhqFNwkoiZU95AqT4ASodD5AbyJzlyMp0fv3aECLS3tD7h9g/+LONFCHeVU8yxqTvV19rOG19k4CBAJ15maOsfW8mOvgDzEkyR1t7aab5CvBIDUdHcCyp7entMMEVYGn4MDlSWcOAOby7EfUKSB3bBaQx+jLB2ddA2rnb+I6B8gZo3E3UgPccxyXvriLdeQbKW0DQCJD+TkVUKsYQOF23vBIDPiyuPVaiFRWNcG143Mc1+F6siJzuETp87oiRwU/XLTYERHxuoCJNosvHumPwgmpSGs8JtDk4tdniFTa0KqZ2GAQiHp3TI6mAV//GOBevMCYgS5QkiqNjDpWnWj74DfxXb//dP1QmeY3eT1cEAAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bUTOPIA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAAAoU7m5uX5+fv/nYoiivgAADt7JfLMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAQZJREFUOMuVktFxwyAQRGkBUYFBDYgTDQg6uNF/+q8iuwdCjseeJDc+n9FoebsY5/5b/k0tEfXwbwuC5fodxMsmYi0VM2B69ieBxrKV82RrRYfeZzZah7rlhgc9yiZFchHRpKJBVIJK2R90uTa+6mJbbTkIGZ9WcjIBnngKQFjaAQEkFCBhO2CNhLxSs1ezZAJY2uMoSJzNw5ZpEihQyZPAN0mIJHQpli1NglnCNtiCu3SCWWpmiQQT/MiAZ1X7LkYwS3cGs/ScYRKOmxCfMhhBBgHHWkFIONaOHRnaSwb+R0bACTFDsnlluE5pZGDhFuArN16NJCTYlJkhzgx/r5e7+/Xr7f4G6ZJzfWnCnfcAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bEKA(-|\s)LANIAKEA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAA8THCcXPlEdcP///5csnthWuP+Xv5gokeAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPFJREFUOMuVksEKwjAMhvcKWdt5Hj6Bog9QFvFclN0HE8+C7PnNn5bNjF2WHhqSfv2bpFW112inCVCbwMnm3QYgMWb25D1zpBQJeySKsi0J8ZQWIEiOCHE4gwA4DF9W43OCEA4ZaAoQJd71U/cP3N7jRRMUW4+TAA4ZYH2KKuAFer++lXEDvOv7daLq2H+nB3NRyDXILhKKBI8E8LRSuOQaUK4CPmu4uYZhVcOzFE0FcFmBZuDjbZfGFRAMUF/v9/G8zCG6/vuwQLOhsExaWjArYFQCHHRwBYA3zEC2ZD6A9q41oUQWWP0h9M5aObD7d/8AJ7dTcuHcbqEAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bLANIAKEA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAMUExURQAAAAAADv/th////yFmTPkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAONJREFUOMuVkoERwyAIRbFZAJigOgF37L9b4aNeml6vKYmJRJ4/IERna/Tb5E9bAMck+XhzPGIjjFai+aFFlG6gs4kc7sbW2Dgn7t6OvJbTRUafgA4ARLGUABmxUQRjEJzH+FQAEKuCG8EWGlJOXzlgEiG9xA3RWr/klNuUs5LWUYAOKJhTAuO5FXw6tfWbQv6+RQAUTHYO5dTWu6yZAwCmmYMcVSXkIKWgE+gnQPgrkHWlqmrWoRWgq6wLQFkncFLAMSUQGeLgNrCca2tkG2RXaLUGz8aYrSF0Ae43Xxnf6OuyF+/mL3AHNsf6AAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bELYSIUM\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAP///+VwRPvUOR6QVZDx+K7+XZpKS//l76hNuvgAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAS1JREFUOMuVkjFuwzAMRX0FGeYJeAJLtds1hXIAGiayCyjjC7TonCHn7qfkBCnQoaEAi/zk49fgrns2wpPxG+DU7sM/gX7sx8B/AA91J4FwAtEQhIlCH0cZskshCOrB00OdCYIDYICM1iDCSsT9JGsmkmUUlORdrwkUAOlEIJGo5oMyT+pAzkcSFgc0H1XugDgAibQB7xMrLxNnPjIkiA3wBTpkrAWgLiHWnJvDEhFO6k12QB1Q7Oiq1DorIwMwcVpiMwP94j0MVOoBgFEDfGxm4/Y6BHqfN0D1/iQ9YRhZHU9zSanMXCph9mW7TQVOamZXO5uVyR24xDcYlAQgxlcuM/pbs3EAk1dzyezMCbsxDXa2K8d0ifCqbbNv2z4AbLXYtf16TLf7pyVP/90/dyiXyQCDav0AAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bCAMELOT\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAhUExURQAAAFKk3P///5zExIt/c1VNS2B+iR6QVZpKSzNjr0LMOc8JdYAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPVJREFUOMu9kbFKxTAUhiuBi6NHAtc1wQcIFO5e+DO4p3tBuLtTwcn7Di46u9in9D9NkyCo0MVvaJLT/zs5pV23F9lJFW5dXtZidyVy83OzWvTeqeQdH8aoEAJPIq509N8ET1izwD0GY3TYECw8tpwGXBG86ioAKY4ADo+mP02nidsIDLl/E7jPDSxijGNMMP1hMqEPjKc0pnJDHUnV4yxiR8Yje5qzuX4J5yxEiMxP7aM1yYIuHIhp6A0q6A2MV2FNVkEuYqHzk4fyj17zeZA7aQKTooWLYGP5fNt4X8hHEdZkEY4zWX6D75owN57/ECr/IOzlC/PRsYQzn6TUAAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bLEMURIA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAPUExURQAAAASE0WPGTXQ/ObhvULu6x28AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAOJJREFUOMuVktEVwyAIRbOCcQJhAsENZP+ZCi8aTXP6Uc4LJS23gHIc/1padlJY2eJld9IAVGs4VfEIEkiFWJUIv+9AsxrOTDyCBLJOjMf6Dpwpx3vu2oS7f5KLQ2pCzeVB9TYnQDQAYmH/45EdajIVQLkADzwXFSQ6sAXMCgASrRkcoJR9BE+yfgMxA7JVW30MzQBQoTd9V/DjeABnADQc83uG7woB+LzTQXkHampSni3hROGu7rUtoLyBcWc27gtdh1PrDOV5c/dqXJswNgILcVJ8oQxl1QeA2/tt24b+vd0f8NhkG/eRgwIAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bMIDAS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAN21M8ShLeVwRP/qaPvUOdewFYg7kxkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPlJREFUOMudku1xwyAMhr0CvS5QsAcIWBnAhwaIkTxAarL/CBWf4V+TiBMnuPdBCDRN75r60tV+1CvxB4DuppRLZqtrbZzVEqhRU4B5LwCwmIXqGjgkV6OmAIQVcDLSZGUKhp2QLUPVZGD2dC+AhRXWO8jhFxNM8LJhtRo1GVgi7Q0AWPcOONkIJUPTZACPiE8AsAFSULqaGjUJWBD9YyuAlLA+hgzXzWSgaxIwU2SuwExD0SHKwmWgaxLAkZjPArBo2rOGQGmRga4RYInoD/Rb+jiI6K7145Zf5yVZftanRlrjZKbDM6UW+D+e1Pfp8STGeFOvxG939x+0GoGFY5R8XgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bARMAGEDDON\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAnUExURQAAADNjr1Kk3JyKkOVwRKw5QIovQ2glRpDx+B6QVULMOXeDPa7+XXzHMaAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAWtJREFUOMuV0rFugzAUBVD/AmyRumBkqcqIwUtHLNhBJlIymnhhJcreqc2WtWOlSKmbrYIhTF2rfFQfThyI1A65o/2ujvADoXvjQFzHxRj72KeUhjTk18Q0hqMAB3DtOV4/awow3zfySFBGGQ9LnvJ0XSvJlaQ0oxnOsIfNvDMSCCE0Z6UKk4TXdcp5mcQyoVEUiCAbBO8qEBL5EZOKswSAvhCXkso8yMUguOh1OxaiswDTfYFLGcucZpCLMHlDm60VMiuUtmCFvnAWJnukP6yQG4GxsPxfmL6gzftYyKHwh0Cs8LhHG88KQhB4VhCUSnmdrkdCZAVXo2fvIhBsBMqSMEnTm1ca9uBOzbMagfjmG57aVhQzMZsJsRRV9WWEYQ/usOmd3jVd03ZtIQqxWvWFQlRt1zTdXM9vN/1w+tEaCjtTAEEAsV6p5UJVXbc4QkHrw+nbFE59YB7y2fVpxCgLc3Q01wczevff/Qs4hrpiREO30gAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bVALHALLA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAJpKS2glRmB+ieVwRJzExPvUOUoZLHGFz4QAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAKpJREFUOMu9ksENwzAIRbMCbhfgRxkg8Q7tPZEn6f5S+Ti2bFc95BKwEF/mSYCYpqsmbioSROAJs0FZ1FwoJwC+AGXin70yjZuBFRog2QvQKgtlCAOe8ji2OcYIc5qLQZ3mwOv9OfYlpQRz2g60aknVjgFAB+AXWLuWNiuZaxO9qh2VobkFGytoHbpTeYvtWm8A/J8lgDYAlYU/AI+Q3358VQkpLUcol6/7C0kjUx54RfAVAAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bATLANTIS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAABi24izo9A5giJXnq////5Xz+QSE0UzQFeYAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAATFJREFUOMuVUsuOgzAM9C+YVHAmrLibqOy5VbR8Bw9xR6qU39+xk7LVXnY7AZNgz/gBRO+Cmf0/0SKWlcCVnWG7MBRnN/wO5wyKnCmtmqGDB6HBX9cn00KrLM8cKd74hKsGI3RexpWdleH4FZdI+/xzFCzvhR2LEx7FRHDlzQFT7zRvZwqnlCDiQMhHdgH764rdkUC43Gb62l8SsEA+KONECDwqoUmcuK43qhetKakHkSyWBzekndYipaTGZrMv1Pc6p3RYHOQKQakiViQXA9HY93RfKj5QoEm70ol2r+mMoKnwaNBDtWzUY86p+ZSTIKX7TLCXttMh+b4lzDpOKdlITc8yOCzTh1DQWsU+AoLJf8T4mKbDBZssPGhE45/qgXWhfsXdkz0fceI/EAve/ru/AW6VWHJ6+rA2AAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bAVALON\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAhUExURQAAAP///9ff6Czo9JXz+fuSK//nYmPGTa+/0k9ngQSE0U+FMvcAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAATlJREFUOMuVkkFugzAQRbmCkXIAjLgAJicAqd2CNV6wn1l0XdU5QnoQuvAp+8eYlC4Zycr3n/88kyhVdbVMqaZ81sa0btIamnLfu3ugqbJT03wjqjsiQ7N1o+bHscfdNgYdPRowNQCQdR3mTri9C9uwtG4Y8gSHu+ttEFluwggYa/vK6jRNB+9c8Jo5gMGpdxcKeMe7sNjWuQpPWNsxu8Do+TuU5mPETjvAfYfnOF8U0AqsUfSyGsfpLcZPzNiB7Iv/B3hdxudn4E/Te3zoiBMQ+AT8ZbPCSo/nEyPOAMkZeG2T1TDFx/cT3+K8ksdSGUiowGmTdWMuSiTGLxFJYU20wUJjha/ZHVhTdrio9IO0fEAS8aY/q5rhBWhyTx+q1AYMtog2ip8BonxoPdQBEBUDp/hVuliX/92/5ujtgKiDYxEAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bHEAVEN\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAYUExURQAAAJXz+Szo9P28Rv/nYtff6PuSK////9bLqqAAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAV9JREFUOMuVkkGLwyAQhQcxerZh7yaQHxBCydVD6DnbILl6KJ4DRebv7xvbLr3tdtDkjc43zwSJPg3nTqe+x/grOozOOXKj6x71nnpS0gNKQXrySJSIJ3FyraPJjbAQwodeK70seMlUPvhlWZQmbNT6rmvdRG5yrtYPa4gG20R+oawAJB/goINPMVbCoZhc21aHYT8CA7Ac19CbJ4A6nSgxx+owjo5aPMRh5yOQFgeIq67AGkgN+iYAX/t4RfORMKsDgEteGp3Tk2zWhJVm16YCZeDyje4vhyHiSGSa6lBJeySsWNYUBOAd0JsD0iMUY/EN4gAhDqEwgFsqkYtAmzicz/H6FVnq9hcAYYIGwAKYtEt/OGwbgG3mUlP5S3IkEmGP28XCitDC4EhiUPb7fKZtemQAEupMzqkKRtmRc25MQ6k2lJhmur80H8Rk5WpUwQcGEksW+W/Mb/p/8fHt/gHL2Zifr8iNpQAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bSHANGRI(-|\s)LA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAtUExURQAAAJXz+eU7RJ4oNf///6+/0sExPOSmcnQ/OUdHWdff6D8oMk9ngWPGTcmyolMFqZMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAVJJREFUOMuVkj1Ow0AQhX0FokDPjBKCUJpZ0VCvJQqamCxKEZogfIMoVUpQiigFR0DQRNBwBA6QIv1wBJ+BN5vYcQqQMpbmx37fvl3bSXJoHFXRINoNsa/fKKMOOKkEDUYf038AsZyWvaCPCUPT7wO+mokrwKGPCYNPfR1opv00+N6JneHP6PtelB/7JE1DjDus6pidiBUkx8KWYgeByVGSsI38MYOCmMQKMSMJWeccGTCZjMMOuMwf8pFABAeUVgaXTgb2/IVsEUg6nVYNuHVXThxBxlZa0AKA28WX2zrM5081ICyXy1c8xy5wwQHrno3NR0qH2WwP+PA375m9jwwXYUv4itM1cfubHQDVn6IoVNWAe1R9u/afGraD6hoLy1RJ2vFkBqwWK3uSbAQbYDgYloC9G1Wm55HYGcxhUdSBGGFQOig210Xu6jp+uJ3m4L/7F6ffvbi5cw9BAAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bEL\s?DORADO\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAkUExURQAAAEqcSWPGTf/zsP28RnQ/OfuSK//nYsExPDJzRZ4oNT8oMjEAaJ4AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAVtJREFUOMuVkjFuwkAQRfcKa2GklN5ITm8k90QWgRIpadIBzjjmAF4OgCKntyy5jwgniDhe/h+DQ0p+8T0zO887AzbmVlkbTKDEOasKrJtc5KJIKwEMUcAeAO6e/TxSximQZQScZTlkc2J7yrzYQKCVCN9lx4g3E1iewtaOR1pLGAEy4dIW3vtVUdkQeYxY0oI2RGNGMSOrIynwVlRRiAHGXooqpc1o8WB60ANhgdsAJOHywcd+LQDy/8BKAKAFW5pMb6iWReXC53k985v0ApznQm/ZIiUQZGb0GPEG7mBfj6eD31zfkPbTlIK0RMtoauxUd0Amsj3tfq52ANoSbZl+0LoGO0zvegC2/faH4bepOEg7DHdgrWs60y06/g8lLccOjFnJZ1K20kouwtr7UQ8IQPt6/8lnXR9rDTK802eMmgzqH51KgbnfLRTYf/XAn5qnM3mR6W7UzV/3Lxx0+QYhcAfUAAAAAElFTkSuQmCC" class="chatImg">`', ""],
            [/\bSOLARIS\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAPXMAA6l2Nff6PXgAP///wRC0v/nYgSE0dLMZGkAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPxJREFUOMudUjtuwzAMfZai3UAu4KW7AAFGRx+BGXSG9gK1vWeIj12S+gb5DCEkmqL4TD5SwAsZHl3m3eUTeNneF+8SIzleYrPSU4zyrUBrEYItJ4kkOAUQiYmkmviAn6sfO8AFX05N9wiYOMOBffXJHvoMF81xB5Dy7fyHba8c+LYAqAFk5a7Y8xFxu1YOcFq4G4RwJCVL6i0ybxvW0HFyfYaoSQ1qUaP93leExTdOWkctiZKBhTKFMN8OlPDUqgoY2czIrIRD+A2wNTgBTEc6ccBIU5kC1+/bE+G58iYZbe6STFq8qa2G/15bOr18QuaJr0nDne7DTvhU/gFIfC2SnkfnfgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bAETHER\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAPuSKxk9P//nYgSE0Szo9JXz+bkvnOsAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAMlJREFUOMuVkkESgyAMRXOFCLpvpxfIcAI67QGYUfcu5P5H6E+0GFetH4EneWFcSHQ13f1SbiSPSwkkT5fMeJi3mfedO2cEii8XlphTEps6NmZnZPJ+DoGz6K3C1qAsLN6ht4sWMXtAY23zDsXxSIFUUoqAEbuxnnmFZDpiEm6dikzWDMYZOyWcG0wywFOM9ezU0K+8frOIDmZAY12bgArNJQ3zHrsVnwVorHurQ6W6pKHuWVgHM6Cxrq0OlWpt778Dlf63t1z+uz+CSKxdfCwzEgAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bHYPERION\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAbUExURQAAAJXz+fuSKxi24gSE0Q5giCzo9P28Rv/nYgvspVMAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAf9JREFUOMuVUsGOm0AM5RfckDTXZbtarqyBcmUxEddox+lcEWBxbVQJrmxmqD+7s5/QuVgjvef37Oco+t/37ZmSmk0dUy0wAkBOKCKIwyDM3OTI1ALEiMgLvD9Fn/j2ozZcE2an03jkK2I50kUGGcoPLAgLc2mPfCj4A3/+hjS6JwmAobopKziTl+2sO6m6WR+i6o162id/PDAw43JPo1Wfvi/cQiNzNtd+2ue+Gj2bWeaheBQdVsZN2/FQXEEf1V0jTV4XLFrTDAESCH4eKnFkLFtEz11esU4bA0IPqkHhM+DLggwO1dj1bvIVWthiY42lxpmOOlTxtx5O0sOyLNF9SUop2GQyq4qdJ6vbQdV06mpy3LFlt+9hayVJv+rf6P6aliWiySg0I+Nklh4fMXfeQOxaS2fwzmF+kUvfr6tGy5JiKQNmcXDdsqNu7LNH3FpLcfygrj5ffeVyEqIvS2ukmqqASEYWLZFnO/bwgKC2xfEuM535i2DGSxPWnKzRsj5XmsEpO9oPK6MjSzJsAGfoiPZA745eXM6jNOrt6xpySELqmSAEAss+duEbggtemlBY3dHfXN7K2BBrkkYLvr1wUBgCTiZmaQrm6wGRqBEx7WWEm+TYssHWekqjX38waTMKU4iMItOt4XBmAIGCExsmqm+YN0Qmb5XfX/77uv8BkxTQHgK/b+IAAAAASUVORK5CYII=" class="chatImg">`', ""],
            [/\bANTEPROXIMA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAQBAMAAAAblGfKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAABmOAevCTf/WoT/kf///yrTaOw+uowAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAASZJREFUOMt1UluOwyAMnALqN2ovQNXVfqOw4jsKucFeALUS9z/CjnFe2s1aGA22xx4SALHLA2oG+INWC4fUbfCKP8JpiUAzaRcJXp7fD0VmqTvyJOZ3+iTbNuHMOHWTTHaY5xHzPIuPTkHZAyPcsAAbmQZcSpmeauEmIBY9iDODsmSgUbivz+yitxVcLnJ6IVJHBklgbygBb9akRgKeSuAA37vntynPmINNEV4IMVmJVpUUYTcCSmvoJBszSLg8NkKXFJHdsBIGfojCL1ZwV0msgb8LAfZVFtl9wosHCpDOQoLVS2eTauoigtxKlEc0+rXKQmutJhIST1cebF3BMF1r6jW/3kNYNrP+T2b9IXb+zjSkL8ac5o4gbENlQvin5Sl5f0K74h8hY0SZdVIsfwAAAABJRU5ErkJggg==" class="chatImg">`', ""],
            [/\bPROXIMA\b/gi, "", '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAQBAMAAABzZ+XyAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAVUExURQAAAAAuZgp4/jfc/4Ty/////zOz/+0H8sQAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAPxJREFUKM9tUkGOwzAInIK152jVB1BtHuAWyeeq9g/2A5Yq+f9PWByctNkUKdaEgQGDgdMFbgQc0Gpi3/dt8p9Z/lMbpAdw+vm9uJsGLx+Ud4pH29ewHkMpGaWUu4GCAskOCNrdL9mgqjWrJgcxLCDmyO4ZTUwIkbhmIIUIrrxQSlgCr3jWtVdxodRiiMoVakGis2SO6aztWbc2Q2oNS+keKKpwRQucvfSYgZUGMo3Sph8t0DzWzPk28ZuiEZJnGZepnHgBPfVqqdtoOXqthtZaTRhAQc2or9oXc5h/P2jdg018eu1zP/+R6JulA0Fvmp7YFeXjU6I92F7fsD/aWi+37K8etAAAAABJRU5ErkJggg==" class="chatImg">`', ""],

            // Rank names
            [/\bADMINS?\b/gi, "<span style='color:#FF4F4F'>", '`${match}`', "</span>"],
            [/\bMODERATORS?\b/gi, "<span style='color:#86FF41'>", '`${match}`', "</span>"],

            /*** PLAYER NAMES (and fictional countries) ***/

            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(((FL?|L|V|G|WH)OR|4|PHOR(RH?)?)E(ST|Z)(\s?(L|P?F)ANDT?O?|(?!\sISL(AND|E)\b))|ФОРЕСТ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#63C64D'>", "`${match}`", "</span>"],
            [/\bMR\.?\sSMILES\b/gi, "<span style='color:#FFFFFF'>", "`${match}`", "</span>"],
            [/\bRIVER(\s?(LAND|L'ANT|DUCK))?\b/gi, "<span style='color:#0484D1'>", "`${match}`", "</span>"],
            [/\bMONOCHROME\b/gi, "<span style='color: #000'>", "`${match[0]}<span style='color:#404040'>${match[1]}<span style='color:#808080'>${match[2]}<span style='color:#C0C0C0'>${match[3]}<span style='color:#FFFFFF'>${match[4]}${match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
            [/\bROMANIABALL\b/gi, "<span style='color:#003CB3'>", "`<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAASUExURf///wAAAPzQAAArf84AAAAAAL+aKrIAAAAGdFJOU///////ALO/pL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAAE9JREFUKFN10EkKACAMA8DE5f9flqQuiDWHogNVK7oDZS5jTyVMBWRRSO8EtVpaE8GwRBTiNjLEALCoiD5yurbsk3P53H7L++ZkrmT2+38GpP8CyRiq0RgAAAAASUVORK5CYII=' class='chatImg'> ${match[0] + match[1] + match[2] + match[3]}<span style='color:#FCD116'>${match[4] + match[5] + match[6]}</span><span style='color:#CE1126'>${match[7] + match[8] + match[9] + match[10]}</span>`", "</span>"],
            [/\bNOTHINGHERE(7759)?\b/gi, "<span style='color:#63C64D'>", "`<span style='color:#FFE762'>${match.slice(0, 7)}</span>${match.slice(7, 11)}<span style='color:#FFE762'>${match[11] ? '7759' : ''}</span>`", "</span>"],
            [/\bSOMETHINGTHERE(3351)?\b/gi, "<span style='color:#9C39B2'>", "`<span style='color:#001bb3'>${match.slice(0, 9)}</span>${match.slice(9, 14)}<span style='color:#001bb3'>${match[14] ? '3351' : ''}</span>`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(DIERMANIA|Дерьмания|дирмания)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#DD0000'>", "`${match.slice(0, -6)}<span style='color:#FFCE00'>${match.slice(-6, -5)}<span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(-5, -4)}</span>${match.slice(-4, -3)}</span>${match.slice(-3)}`", "</span>"],
            [/\bDIER\b/gi, "<span style='color: #DD0000'>", "`${match[0]}<span style='color: #FFCE00'>${match[1]}</span><span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(SL?YNT(EX(PR)?|AXIS)|СИНТ((Е|Э)КС(ПР)?|АКСИС)|СЛЮНТ(Е|Э)КС)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#417171'>", "`${match}`", "</span>"],
            [/\bTRION(\sNEX(\b\.|US(ORIATE)?)?)?(?=\s|$|"|'|\b)/gi, "<span style='color: #21D714'>", "`${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}</span>${match.slice(4)}`", "</span>"],
            [/\b(COALI(TION)?|CLN)\b/gi, "<span style='color:#608C5E'>", "`${match}`", "</span>"],
            [/\b(CRC|UNBIDDEN|unbidюn)\b/gi, "<span style='color:#90F1F8'>", "`${match}`", "</span>"],
            [/\bCOALCRCITION\b/gi, "<span style='color:#6D80A5'>", "`${match}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((SOUTH\s)?NORTH?I(AN?|S\s?LAND)(\s(EMPIRE|REPUBLIC))?|USRNSNN|URNNSN|Ņüŧüŗí(ß|ẞ)flőd|NUTURI(SS?|B)FLOD|IKD1|IDK1|нортия|ĥ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#32E27E'>", "`${match}`", "</span>"],
            [/\bNORISIA\b/gi, "<span style='color:#F75B18'>", "`${match}`", "</span>"],
            [/\bV(I|2)NLAND\b/gi, "<span style='color:#DEB129'>", "`${match}`", "</span>"],
            [/(\[|\b)SERVER(\]|\b)/gi, "<span style='color:#FF41E4'>", "`${match}`", "</span>"],
            [/\bR(SS|55)R\b/gi, "<span style='color:#FF0000'>", "`${match}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(MOTH(ERSHIP|METHMYTH|YLAMINE)?|МОЛЬ|MO(L|N)B|MO(TH)?RBIUS)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#D7C39F'>", "`${match}`", "</span>"],
            [/\bSAR\b/gi, "<span style='color:#D50B0B'>", "`${match}`", "</span>"],
            [/\b(POTASS(IUM(_(L|K))?)?|EVERMORE)\b/gi, "<span style='color:#FFA200'>", "`${match}`", "</span>"],
            [/\bATLAN\b/gi, "<span style='color:#FFFFFF'>", "`${match[0]}<span style='color:#808080'>${match[1]}<span style='color:#FF0000'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
            [/\bATLAN?DOS\b/gi, "<span style='color:#FFFFFF'>", "`${match[0]}<span style='color:#AAAAAA'>${match[1]}<span style='color:#555555'>${match[2]}<span style='color:#FF0000'>${match[3] + (match.length == 7 ? '' : match[4])}</span>${match[match.length - 3]}</span>${match[match.length - 2]}</span>${match[match.length - 1]}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b):\bD(\s|-)ANON\b/gi, "<span style='color:#0080FF'>", "`${match}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_)ST\.?(?=\s|$|"|'|\b)/gi, "<span style='color:#A1409D'>", "`${match}`", "</span>"],
            [/\bSHADOW\sTAI?LE\b/gi, "<span style='color:#4394A0'>", "`${match.slice(0, 6)}</span>${match[6]}<span style='color:#F430B2'>${match.slice(7)}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(ORANG|PETRYSKA229|ОРАНГ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#FF8800'>", "`${match}`", "</span>"],
            [/\b(HUNGARYBALL|MAGYARLABDA)\b/gi, "<span style='color:#477050'>", "`<span style='color:#CE2939'>${match.slice(0, 4)}</span><span style='color:#FFFFFF'>${match.slice(4, -4)}</span>${match.slice(-4)}`", "</span>"],
            [/\bGABRIEL\b/gi, "<span style='color:#F0F0F0'>", "`${match[0]}<span style='color:#F4E5BC'>${match[1]}<span style='color:#F9DB88'>${match[2]}<span style='color:#FED154'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
            [/\bWEST\sVLANDIA\b/gi, "<span style='color:#950000'>", "`${match}`", "</span>"],
            [/\bEAST\sVLANDIA\b/gi, "<span style='color:#FF7A33'>", "`${match}`", "</span>"],
            [/\b(?<!\b(EA|WE)ST\s)VLANDIA\b/gi, "<span style='color:#950000'>", "`${match}`", "</span>"],
            [/\bSANGSA\b/gi, "<span style='color:#F29153'>", "`<span style='color:#FF0000'>${match.slice(0, 1)}</span><span style='color:#0000FF'>${match.slice(1, -1)}</span><span style='color:#FF00F7'>${match.slice(-1)}</span>`", "</span>"],
            [/\b(KWAPT(ISH|IA)?|62143)\b/gi, "<span style='color:#A45195'>", "`${match}`", "</span>"],
            [/\bSIREMIA\b/gi, "<span style='color:#FFFFFF'>", "`${match}`", "</span>"],
            [/\bXAHH\b/gi, "<span style='color:#00FA9A'>", "`${match}`", "</span>"],
            [/\bLLG\b/gi, "<span style='color:#FF00FF'>", "`${match}`", "</span>"],
            [/\bNONA(EM|MEZ_?)\b/gi, "<span style='color:#9E9EFF'>", "`${match}`", "</span>"],
            [/\b16777216\b/gi, "<span style='color:#FFFFFF'>", "`<span style='color:#0000FF'>16</span><span style='color:#00FF00'>77</span><span style='color:#FF0000'>72</span>16`", "</span>"],
            [/\bNEKONOKA\b/gi, "<span style='color:#8F3CD7'>", "`${match}`", "</span>"],
            [/\bTOASTER\b/gi, "<span style='color:#FFC839'>", "`${match.slice(0, 2)}<span style='color:#FFFFFF'>${match.slice(2, 5)}</span>${match.slice(-2)}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((C(3|E))?PHEI|C(3|E)PH(I|Y)?|Ц(е|3)ф(ей)?|C3|SEFEI)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#FF0000'>", "`${match}`", "</span>"],
            [/\bENDERMENT\b/gi, "<span style='color:#952BFF'>", "`${match}`", "</span>"],
            [/\b(TAHA(\sÖZDEMIR)?|SYBERLONG)\b/gi, "<span style='color:#224E7C'>", "`${match}`", "</span>"],
            [/\bS(Ü|U)DENLAND\b/gi, "<span style='color:#224E7C'>", "`${match[0]}<span style='color:#4C8FD6'>${match[1]}<span style='color:#1DCDA1'>${match[2]}</span>${match[3]}</span>${match.slice(-5)}`", "</span>"],
            [/\bRELOOPGD\b/gi, "<span style='color:#FD1C27'>", "`${match}`", "</span>"],
            [/(\bBLAKE\b|._BLAKE_.)/gi, "<span style='color:#FCC8D9'>", "`${match}`", "</span>"],
            [/\bCAPA\b/gi, "<span style='color:#A44F15'>", "`${match}`", "</span>"],
            [/\bLEG(3ND)?\b/gi, "<span style='color:#DD80A5'>", "`${match}`", "</span>"],
            [/\b5UP\b/gi, "<span style='color:#0484D1'>", "`${match}`", "</span>"],
            [/\b(VVICTOR(__)?|OFO(\sGANG)?)\b/gi, "<span style='color:#00FF66'>", "`${match}`", "</span>"],
            [/\bM(OUNTAI|T)N\sDEW\b/gi, "<span style='color:#00FF00'>", "`${match.slice(0, -3)}<span style='color:#FF0000'>${match.slice(-3)}</span>`", "</span>"],
            [/\b(MART|ARTM)AN\b/gi, "<span style='color:#0083D5'>", "`${match}`", "</span>"],
            [/\bSTEVESTA\b/gi, "<span style='color:#7F7F7F'>", "`${match}`", "</span>"],
            [/\bLAPIS(\sLAZULI)?\b/gi, "<span style='color:#0066FF'>", "`${match}`", "</span>"],
            [/(?<!:)\bJP(DLD|LAND)?\b/gi, "<span style='color:#FFFFFF'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/409708038589775872.png?v=1'> ${match}`", "</span>"],
            [/\bAMOGUSLAND\b/gi, "<span style='color: #F11'>", "`${match.slice(0, match.length % 3 == 1 ? Math.floor(match.length / 3) : Math.ceil(match.length / 3))}<span style='color: #FFEF8A'>${match.length % 3 == 1 ? match.slice(Math.floor(match.length / 3), -Math.floor(match.length / 3)) : match.slice(Math.ceil(match.length / 3), -Math.ceil(match.length / 3))}</span>${match.slice(match.length % 3 == 1 ? -Math.floor(match.length / 3) : -Math.ceil(match.length / 3))}`", "</span>"],
            [/\bDOITSHL(Æ|AE?)ND\b/gi, "<span style='color:#58585A'>", "`${match.slice(0, -7)}</span><span style='color:#C72931'>${match.slice(-7, 7)}</span><span style='color:#F9DD3E'>${match.slice(7)}`", "</span>"],
            [/\bDEUCHLAND\b/gi, "<span style='color:#58585A'>", "`${match.slice(0, 3)}<span style='color:#C72931'>${match.slice(3, 6)}</span><span style='color:#F9DD3E'>${match.slice(-3)}</span>`", "</span>"],
            [/\bLEMONWIRES\b/gi, "<span style='color:#FFF700'>", "`<span style='color:#FFF700'>${match[0]}</span><span style='color:#00FF1E'>${match[1]}</span><span style='color:#FFF700'>${match[2]}</span><span style='color:#00FF1E'>${match[3]}</span><span style='color:#FFF700'>${match[4]}</span><span style='color:#00FF1E'>${match[5]}</span><span style='color:#FFF700'>${match[6]}</span><span style='color:#00FF1E'>${match[7]}</span><span style='color:#FFF700'>${match[8]}</span><span style='color:#00FF1E'>${match[9]}</span>`", "</span>"],
            [/\bLEMONS?\b/gi, "<span style='color:#FFFF00'>", "`🍋 ${match}`", "</span>"],
            [/\bTESS\b/gi, "<span style='color:#9CDED3'>", "`${match}`", "</span>"],
            [/\bHELPER\b/gi, "<span style='color:#00FF00'>", "`${match}`", "</span>"],
            [/\b(CYGNUS|CEUTHYN)\b/gi, "<span style='color:#00EEFF'>", "`${match}`", "</span>"],
            [/\bSHAY\b/gi, "<span style='color:#2CE8F4'>", "`${match}`", "</span>"],
            [/\bNEOMOTH(\.DEV)?\b/gi, "<span style='color:#9669ff'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/1388314585781637200.png?v=1'> ${match}`", "</span>"],
            [/\bELDIT\b/gi, "<span style='color:#A92444'>", "`${match}`", "</span>"],
            [/\bJI+GG\b/gi, "<span style='color:#00FFFF'>", "`${match}`", "</span>"],
            [/\bC(-|\s)?YARD\b/gi, "<span style='color:#00FF00'>", "`${match}`", "</span>"],
            [/\bVGS\b/gi, "<span style='color:#FF0000'>", "`${match}`", "</span>"],
            [/(?<!:)\b(JJB|JAR\s?JAR(\s?BOINKS)?)\b/gi, "<span style='color:#750F00'>", "`<img class='emote' src='https://cdn.discordapp.com/emojis/411450961949753345.png?v=1'> ${match}`", "</span>"],
            [/\bNORDDEX\b/gi, "<span style='color:#E53B44'>", "`${match}`", "</span>"],
            [/\b(999|AZSRIEL)\b/gi, "<span class='rainbow'>", "`${match}`", "</span>"],
            [/\bNURUTOMO\b/gi, "<span style='color:#0484D1'>", "`${match}`", "</span>"],
            [/\bMEMELORD\b/gi, "<span style='color:#9E6AFF'>", "`<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAMAAABlXnzoAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJUExURZ5q/0X/DwAAAJ+7yioAAAADdFJOU///ANfKDUEAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAo5MAAOgDAACjkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAABdUNkYj53BAQAAADhJREFUGFdtzkEKADEMQtGv9z/0YIUySLNI8lyEYAPYkmQzBClB+tmGRWvZUw3u5R8TFG/mic7hBzLcALENn7j/AAAAAElFTkSuQmCC' class='chatImg'> ${match.slice(0, 4)}<span style='color:#45FF0F'>${match.slice(4)}</span>`", "</span>"],
            [/\bF(RI|U)CK\sVERIZON\b/gi, "<span style='color:#FFFFFF'>", "`<img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJUExURf///wAAAAAAAH5RqV0AAAADdFJOU///ANfKDUEAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAIAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAA2XYBAOgDAADZdgEA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAACMojeFEB6NgAAAEZJREFUKFONkIsKACAIA+f+/6NjEr6o6EBhR0UKkkTgSWWBx2bcoRs5wPIloehltluo0S7qdDEZusb41PNU4Vsdxq4LFOQCftcAm2osOS0AAAAASUVORK5CYII=' class='chatImg'> ${match}`", "</span>"],
            [/\bRANDOOF\b/gi, '<span style="color:#B31919">', '`<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJUExURXUAALMZGQAAAOXo42cAAAADdFJOU///ANfKDUEAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA1LjEuOWxu2j4AAAC2ZVhJZklJKgAIAAAABQAaAQUAAQAAAEoAAAAbAQUAAQAAAFIAAAAoAQMAAQAAAAMAAAAxAQIAEAAAAFoAAABphwQAAQAAAGoAAAAAAAAAnZMAAOgDAACdkwAA6AMAAFBhaW50Lk5FVCA1LjEuOQADAACQBwAEAAAAMDIzMAGgAwABAAAAAQAAAAWgBAABAAAAlAAAAAAAAAACAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAAAAAAJFj+K2cP21wAAACBJREFUGFdjYAADJhiAcAnySQKMjIxwkhg+SQDdZQT4ADwAAH+enAY0AAAAAElFTkSuQmCC" class="chatImg"> ${match}`', "</span>"],
            [/\bSISYPHUS(\sPRIME)?\b/gi, '<span style="color:#FF2B00">', '`${match[0]}<span style="color:#FF6100">${match[1]}<span style="color:#FFA500">${match[2]}<span style="color:#FFB200">${match[3]}</span><span style="color:#FFCD00">${match[4]}<span style="color:#FFFF00">${match[5]}</span><span style="color:#FFFFBA">${match[6]}<span style="color:#FFFFFF">${match[7]}</span>${(match[8] ?? "") + (match[9] ?? "")}</span>${(match[10] ?? "")}</span>${(match[11] ?? "")}</span>${(match[12] ?? "")}</span>${(match[13] ?? "")}`', "</span>"],
            [/\bMINOS(\sPRIME)?\b/gi, "<span style='color:#D3D5FF'>", "`${match[0]}<span style='color:#9395D7'>${match[1]}<span style='color:#6E70AB'>${match[2]}<span style='color:#77526D'>${match[3]}<span style='color:#934463'>${match[4] + (match[5] ?? '') + (match[6] ?? '')}</span>${(match[7] ?? '')}</span>${(match[8] ?? '')}</span>${(match[9] ?? '')}</span>${(match[10] ?? '')}`", "</span>"],
            [/\b(GREENY(\s?LAND|ALT)?|GREEN\sREP|UGS|UNITED\sGREEN\sSTATES)\b/gi, "<span style='color:#4ED97C'>", "`${match}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)((NEW\s)?PHY(REXIA|I?HH?)?|ɸ|ჶ|ф(и(кус)?|i(k|c)us)|пфи|ħ)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#F4F1A4'>", "`${match}`", "</span>"],
            [/\bPURPER(I(S|Z)M)?\b/gi, "<span style='color:#972C9E'>", "`${match}`", "</span>"],
            [/\b(RODIMUS(\s?PRIME)?|PACI(CIDAL)?|UNALIGNED|WILDSTRIKE)\b/gi, "<span style='color:#58A699'>", "`${match}`", "</span>"],
            [/\bDUCK12\b/gi, "<span style='color:#FFFFFF'>", "`${match}`", "</span>"],
            [/\b((BO(Ö|O)TES|VOID)\s(IMPERIUM|EMPIRE)|VOID)\b/gi, "<span style='color:#000000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bRALIOVI\b/gi, "<span style='color:#AEE797'>", "`${match}`", "</span>"],
            [/\b(ERIC|HOLY\sELVEN\sHORDE|E(_|\s)LXIV|LMAO\.ERICC_6464)\b/gi, "<span style='color:#00B315'>", "`${match}`", "</span>"],
            [/\bNORIST\b/gi, "<span style='color:#39cd79'>", "`${match[0]}<span style='color:#1e8f73'>${match[1]}</span><span style='color:#2b5758'>${match[2]}</span><span style='color:#fb922b'>${match[3]}</span><span style='color:#aefe5d'>${match[4]}</span><span style='color:#3b9b90'>${match[5]}</span>`", "</span>"],
            [/\bEXPUNGED\b/gi, "<span style='color:#B80000'>", "`${match}`", "</span>"],
            [/\bNOUR\b/gi, "<span style='color:#9CC4C4'>", "`${match}`", "</span>"],
            [/\bEMPIRE\sFRAN(C|Ç)AIS\b/gi, "<span style='color:#0D67F8'>", "`${match.slice(0, 10)}<span style='color:#FFFFFF'>${match.slice(10, 12)}</span><span style='color:#E00000'>${match.slice(-3)}</span>`", "</span>"],
            [/\bFILANA\b/gi, "<span style='color:#FFBFD1'>", "`${match}`", "</span>"],
            [/\bPINKISTAN\b/gi, "<span style='color:#FF97BF'>", "`${match}`", "</span>"],
            [/\bLILI?AC(\sREP(UBLIC)?)?\b/gi, "<span style='color:#A8ABF5'>", "`${match}`", "</span>"],
            [/\bTIZENAMI\b/gi, "<span style='color:#FE6C6C'>", "`${match}`", "</span>"],
            [/\b(UNION|ONION)\sOF\sUNKNOWN\b/gi, "<span style='color:#D4D4D4'>", "`${match}`", "</span>"],
            [/\bBREZTEC\b/gi, "<span style='color:#CFAE12'>", "`${match}`", "</span>"],
            [/\bTHISISKS\b/gi, "<span style='color:#00CEFF'>", "`${match}`", "</span>"],
            [/\bSOLANIAN\sTRIBE\b/gi, "<span style='color:#B34400'>", "`${match[0]}<span style='color:#C45C00'>${match[1]}<span style='color:#FB8B03'>${match[2]}<span style='color:#FEC625'>${match[3] + match[4]}<span style='color:#FEAE10'>${match[5]}<span style='color:#E6E631'>${match[6]}</span>${match[7]}</span>${match.slice(8, 11)}</span>${match[11]}</span>${match[12]}</span>${match[13]}`", "</span>"],
            [/\bSOLANIA\b/gi, "<span style='color:#B34400'>", "`${match[0]}<span style='color:#C45C00'>${match[1]}<span style='color:#FB8B03'>${match[2]}<span style='color:#FEC625'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
            [/\b((NORTH\s)?((C|S)YTIA|SOUTH?IA(N?\sEMPIRE)?)|IK2)\b/gi, "<span style='color:#FBD439'>", "`${match}`", "</span>"],
            [/\bSTABLE\sLAND\b/gi, "<span style='color:#C2A42E'>", "`${match}`", "</span>"],
            [/\bSTABILIA\b/gi, "<span style='color:#AEFE5D'>", "`${match}`", "</span>"],
            [/\bMAURICE\b/gi, "<span style='color:#79665F'>", "`${match[0]}<span style='color:#9D897A'>${match[1]}<span style='color:#BAA490'>${match[2]}<span style='color:#D3B8A1'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
            [/\bECIRUAM\b/gi, "<span style='color:#8699A0'>", "`${match[0]}<span style='color:#627685'>${match[1]}<span style='color:#455B6F'>${match[2]}<span style='color:#2C475E'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
            [/\bAVIA(N\sREPUBLIC)?\b/gi, "<span style='color:#9c0aeb'>", "`${match}`", "</span>"],
            [/\bSYNTHESIA\b/gi, "<span style='color:#63C64D'>", "`${match[0]}<span style='color:#4A9C49'>${match[1]}<span style='color:#327345'>${match.slice(2, 4)}<span style='color:#AF9C2C'>${match[4]}</span>${match.slice(5, 7)}</span>${match[7]}</span>${match[8]}`", "</span>"],
            [/\b(DARKSTALKER|\.JUSTDARK)\b/gi, "<span style='color:#570034; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bCYNTEX\b/gi, "<span style='color:#417171'>", "`${match[0]}</span><span style='color:#348A8D'>${match[1]}</span><span style='color:#27A3A9'>${match[2]}</span><span style='color:#1ABCC6'>${match[3]}</span><span style='color:#0DD5E2'>${match[4]}</span><span style='color:#00EEFF'>${match[5]}`", "</span>"],
            [/\bCYGNTEX\b/gi, "<span style='color:#417171'>", "`${match[0]}</span><span style='color:#3E7576'>${match[1]}</span><span style='color:#318F93'>${match[2]}</span><span style='color:#23A9b1'>${match[3]}</span><span style='color:#16C3CE'>${match[4]}</span><span style='color:#08DDEC'>${match[5]}</span><span style='color:#00EEFF'>${match[6]}`", "</span>"],
            [/\bINFRA(RAVEN)?\b/gi, "<span style='color:#CA0000'>", "`${match}`", "</span>"],
            [/\bDIMDEN\b/gi, "<span style='color:#B4FFD6'>", "`${match}`", "</span>"],
            [/\bKIT(0057)?\b/gi, "<span style='color:#F36709'>", "`${match}`", "</span>"],
            [/\bDAYDUN\b/gi, "<span style='color:#7D579A'>", "`${match}`", "</span>"],
            [/\b(LMN|ELEMEN)TAL\sX\b/gi, "<span style='color:#afd643'>", "`${match}`", "</span>"],
            [/\bMINDUSTRIA\b/gi, "<span style='color:#6E7080'>", "`${match[0]}<span style='color:#989AA4'>${match[1]}<span style='color:#9D7F7F'>${match[2]}<span style='color:#DCC6C6'>${match[3]}<span style='color:#FFFFFF'>${match[4] + match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
            [/\bATEN(ESIA)?\b/gi, "<span style='color:#65a0b3'>", "`${match}`", "</span>"],
            [/\bMITIA\b/gi, "<span style='color:#FF0000'>", "`${match[0]}<span style='color:#CC0000'>${match[1]}<span style='color:#980000'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(7RAUM?|ILLIA(N\sREPUBLIC)?|иллия)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color:#4e5579'>", "`${match}`", "</span>"],
            [/\bHADRON\b/gi, "<span style='color:#FF902A'>", "`${match[0]}<span style='color:#A4A9B4'>${match[1]}<span style='color:#8F9B89'>${match[2] + match[3]}</span>${match[4]}</span>${match[5]}`", "</span>"],
            [/\bBIBLIA\b/gi, "<span style='color:#FFFFFF'>", "`${match[0]}<span style='color:#fef8bc'>${match[1]}</span><span style='color:#fef6a6'>${match[2]}</span><span style='color:#84ceff'>${match[3]}</span><span style='color:#addeff'>${match[4]}</span>${match[5]}`", "</span>"],
            [/\bFLORIA\b/gi, "<span style='color:#63C64D'>", "`${match[0]}<span style='color:#4a9c49'>${match[1]}<span style='color:#e53b44'>${match[2]}</span><span style='color:#fb922b'>${match[3]}</span>${match[4]}</span>${match[5]}`", "</span>"],
            [/\b(S(ISY|YSI)D(EA|ON))\b/gi, "<span style='color:#FFFF00'>", "`${match[0]}<span style='color:#CCCC00'>${match[1]}<span style='color:#989800'>${match[2]}</span>${match[3]}</span>${match[4]}<span style='color:#CCCC00'>${match[5]}</span><span style='color:#989800'>${match[6]}</span>`", "</span>"],
            [/\bAVARITIA\b/gi, "<span style='color:#50B4C8'>", "`${match[0]}</span><span style='color:#AADC6E'>${match[1]}</span><span style='color:#D2BE46'>${match[2]}</span><span style='color:#D26E28'>${match[3]}</span><span style='color:#C8283C'>${match[4]}</span><span style='color:#D23C96'>${match[5]}</span><span style='color:#A046DC'>${match[6]}</span><span style='color:#6E5AE6'>${match[7]}`", "</span>"],
            [/\bYELLORISM\b/gi, "<span style='color:#d3a80d'>", "`${match}`", "</span>"],
            [/\b(STAVORIA|CHENGED)\b/gi, "<span style='color:#3b9b90'>", "`${match}`", "</span>"],
            [/𓁹|\bMITO\b/gi, '<span style="color:#B30000;text-shadow: 0px 0px 5px #FFFF00, 0px 0px 5px #FFFF00, 0px 0px 5px #FFFF00, -1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888;">', "`${match}`", "</span>"],
            [/\bVALORIA\b/gi, "<span style='color:#6cb86b'>", "`${match}`", "</span>"],
            [/\bZOTOVARIA\b/gi, "<span style='color:#e8b84f'>", "`${match}`", "</span>"],
            [/\bMOLOVARASHIA\b/gi, "<span style='color:#425728'>", "`${match}`", "</span>"],
            [/\bVARASHIA\b/gi, "<span style='color:#8c8936'>", "`${match}`", "</span>"],
            [/\bDINIA\b/gi, "<span style='color:#2b53b1'>", "`${match[0]}<span style='color:#214087'>${match[1]}<span style='color:#1a3574'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
            [/\bDINIAN\sEMPIRE\b/gi, "<span style='color:#2b53b1'>", "`${match[0]}<span style='color:#26499c'>${match[1] + match[2]}<span style='color:#214087'>${match[3]}<span style='color:#1c397d'>${match[4]}<span style='color:#1a3574'>${match.slice(5, 8)}</span>${match[8]}</span>${match[9]}</span>${match[10] + match[11]}</span>${match[12]}`", "</span>"],
            [/\bORSSU(\sPCCC)?\b/gi, "<span style='color:#EE3A5B'>", "`${match}`", "</span>"],
            [/\b(S(EV|CHEVV)EN|7)EST(\s?LANDT?)?\b/gi, "<span style='color:#43a894'>", "`${match}`", "</span>"],
            [/\bGEARLAND\b/gi, "<span style='color:#3f1599; text-shadow:-2px 0px 0 #000, -1px 1px 0 #000, 0px 2px 0 #000, 1px 1px 0 #000, 2px 0px 0 #000, 1px -1px 0 #000, 0px -2px 0 #000, -1px -1px 0 #000'>", "`<span style='color:#038ae4'>${match.slice(0, 2)}</span><span style='color:#FFFFFF'>${match.slice(2, -2)}</span>${match.slice(-2)}`", "</span>"],
            [/\bPotassiumyntex\b/gi, "<span style='color:#a08938'>", '`<span style="color:#ffa200">${match[0]}</span><span style="color:#f09e08">${match[1]}</span><span style="color:#e19a11">${match[2]}</span><span style="color:#d3961a">${match[3]}</span><span style="color:#c49222">${match[4]}</span><span style="color:#b58f2b">${match[5]}</span><span style="color:#a78b34">${match[6]}</span><span style="color:#98873c">${match[7]}</span><span style="color:#8a8345">${match[8]}</span><span style="color:#7b804e">${match[9]}</span><span style="color:#6c7c56">${match[10]}</span><span style="color:#5e785f">${match[11]}</span><span style="color:#4f7468">${match[12]}</span><span style="color:#417170">${match[13]}</span>`', "</span>"],
            [/\bWOLONLAND\b/gi, "<span style='color: #82d671'>", "`${match}`", "</span>"],
            [/\bNULLSCAPE\b/gi, "<span style='color: #40518a'>", "`${match}`", "</span>"],
            [/\b(AUREN(MOCHI)?|MOCHI)\b/gi, "<span style='color: #fb922b'>", "`${match}`", "</span>"],
            [/\b(CASTER|RIFTER)\b/gi, "<span style='color: #ac42d6'>", "`${match}`", "</span>"],
            [/\bALBAN\b/gi, "<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match[0]}</span><span style='color: #c40000'>${match[1]}<span style='color: #F00'>${match[2]}</span>${match[3]}</span><span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[4]}`", "</span>"],
            [/\bALBANOS\b/gi, "<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match.slice(0, 2)}</span><span style='color: #c40000'>${match[2]}<span style='color: #F00'>${match[3]}</span>${match[4]}</span><span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(-2)}`", "</span>"],
            [/\bSVIQURKAI\b/gi, "<span style='color: #24242e; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bMATYAS05\b/gi, "<span style='color: #e6b919'>", "`${match}`", "</span>"],
            [/\bEEE(\.0864_06064)?\b/gi, "<span style='color: #23eba0'>", "`${match}`", "</span>"],
            [/\bMeebodustria\b/gi, "<span style='color: #5BCEFA'>", "`${match.slice(0, 2)}<span style='color: #F5A9B8'>${match.slice(2, 5)}<span style='color: #FFF'>${match.slice(5, -5)}</span>${match.slice(-5, -2)}</span>${match.slice(-2)}`", "</span>"],
            [/\bMAEVE\b/gi, "<span style='color: #C3B1E1'>", "`${match}`", "</span>"],
            [/\bPROMANIA\b/gi, "<span style='color: #fb922b'>", "`${match}`", "</span>"],
            [/\b(THE\s)?((SEVEN|7)\s)?TANK\sSOULS?\b/gi, "<span style='color: #595959'>", "`${match.split('').map((elem, index) => '<span style=\\'color: #' + ['ff3f39', 'ff7f39', 'ffff39', '74ff39', '74ffff', '743fff', 'ff3fff'][Math.floor(index % 14 / 2)] + '\\'>' + elem + '</span>').join('')}`", "</span>"],
            [/\bR(I|Ï)REL\b/gi, "<span style='color: #a38533'>", "`${match}`", "</span>"],
            [/\bEURILOOPIA\b/gi, "<span style='color: #56c688'>", "`<span style='color: #5ebeed'>${match.slice(0, 2)}</span><span style='color: #169c91'>${match.slice(2, 4)}</span><span style='color: #1bbb9b'>${match.slice(4, 6)}</span>${match.slice(6, 8)}<span style='color: #0c143b; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(8)}</span>`", "</span>"],
            [/\bEURILLOOPPIA\b/gi, "<span style='color: #56c688'>", "`<span style='color: #5ebeed'>${match.slice(0, 3)}</span><span style='color: #169c91'>${match.slice(3, 5)}</span><span style='color: #1bbb9b'>${match.slice(5, 7)}</span>${match.slice(7, 9)}<span style='color: #0c143b; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(9)}</span>`", "</span>"],
            [/\bREAPER\b/gi, "<span style='color: #a8141d'>", "`${match[0]}<span style='color: #d3181c'>${match[1]}<span style='color: #ff252b'>${match.slice(2, 4)}</span>${match[4]}</span>${match[5]}`", "</span>"],
            [/\bOPERATOR\b/gi, "<span style='color: #2a6e93'>", "`${match[0]}<span style='color: #328eb7'>${match[1]}<span style='color: #3aafdb'>${match[2]}<span style='color: #42d0ff'>${match.slice(3, 5)}</span>${match[5]}</span>${match[6]}</span>${match[7]}`", "</span>"],
            [/\bNANO\b/gi, "<span style='color: #3eb300'>", "`${match}`", "</span>"],
            [/\b(SPACE(≠|\s≠\s)?TIME|OBLIVIOUS\sMAXIMUS)\b/gi, "<span style='color: #D8F6F3'>", "`${match}`", "</span>"],
            [/\bSTARLAND\b/gi, "<span style='color: #220dbf'>", "match.split('').map(e => Math.floor(Math.random() * 8 / 3) == 0 ? `<span style='color: #d5d0fb'>${e}</span>` : e).join('')", "</span>"],
            [/\bAVAR(US|I)\b/gi, "<span style='color: #002de8'>", "`${match[0]}<span style='color: #1356ed'>${match[1]}<span style='color: #267ff2'>${match.slice(2, -2)}</span>${match.slice(-2, -1)}</span>${match.slice(-1)}`", "</span>"],
            [/\bSAFFRON\b/gi, "<span style='color: #FFF'>", "`${match}`", "</span>"],
            [/\bREN(Ï|I)MIA\b/gi, "<span style='color: #1da538'>", "`<span style='color: #db000b'>${match.slice(0, 2)}</span><span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjYwMCI+CiAgPHBhdGggZD0iTTAgMGgxMjAwdjYwMEgwIiBmaWxsPSIjMGQ4ZWRlIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgxMjAwdjQwMEgwIiBmaWxsPSIjZmZkYTBhIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgxMjAwdjIwMEgwIiBmaWxsPSIjMWRhNTM4Ij48L3BhdGg+Cjwvc3ZnPgo=) text top 80% left 50% / 100% 70%'>${match.slice(2)}</span><span class='rainbow-back' style='text-shadow: inherit'>${match.slice(2)}</span></span>`", "</span>"],
            [/\bSUBSIDENCY\b/gi, "<span style='color: #006d9a'>", "`${match[0]}<span style='color: #257fa4'>${match[1]}<span style='color: #4b92ae'>${match[2]}<span style='color: #71a5b8'>${match[3]}<span style='color: #97b8c3'>${match.slice(4, 6)}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
            [/\bREVERANCY\b/gi, "<span style='color: #7d0f1f'>", "`${match[0]}<span style='color: #a8141d'>${match[1]}<span style='color: #d3181c'>${match[2]}<span style='color: #ff252b'>${match.slice(3, 6)}</span>${match[6]}</span>${match[7]}</span>${match[8]}`", "</span>"],
            [/\bITERAN?\b/gi, "<span style='color: #797871'>", "`${match[0]}<span style='color: #84837b'>${match[1]}<span style='color: #f75667'>${match.slice(2, -2)}</span>${match.slice(-2, -1)}</span>${match.slice(-1)}`", "</span>"],
            [/\bITERANS\b/gi, "<span style='color: #6e6d68'>", "`${match[0]}<span style='color: #797871'>${match[1]}<span style='color: #84837b'>${match[2]}<span style='color: #f75667'>${match[3]}</span>${match[4]}</span>${match[5]}</span>${match[6]}`", "</span>"],
            [/\bTEPUN\b/gi, "<span style='color: #e2aa34'>", "`<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[0]}</span><span style='color: #382a0d; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[1]}</span><span style='color: #71551a; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span><span style='color: #a97f27'>${match[3]}</span>${match[4]}`", "</span>"],
            [/\bNUPET\b/gi, "<span style='color: #fef6a6'>", "`<span style='color: #FFF'>${match[0]}</span><span style='color: #fefce8'>${match[1]}</span><span style='color: #fefad2'>${match[2]}</span><span style='color: #fef8bc'>${match[3]}</span>${match[4]}`", "</span>"],
            [/\bACKERMANN\b/gi, "<span style='color: #e3a72b'>", "`${match.slice(0, 2)}<span style='color: #f1c452'>${match[2]}<span style='color: #ffe17a'>${match.slice(3, 6)}</span>${match[6]}</span>${match.slice(7)}`", "</span>"],
            [/\bC(Ü|U)BE\b/gi, "<span style='color: #9cc4c4'>", "`${match}`", "</span>"],
            [/\bD(Ï|I)EM(Ö|O)ND\b/gi, "<span style='color: #90f1f8'>", "`${match}`", "</span>"],
            [/\bPURO\b/gi, "<span style='color: #D856B8'>", "`${match}`", "</span>"],
            [/\bZIKA\b/gi, "<span style='color: #52A4DC'>", "`${match}`", "</span>"],
            //[/\bDA\b/gi, "<span style='color: #DE8E75'>", "`${match}`", "</span>"], // too small, can also mean Russian "yes", causes other issues
            [/\bM(Ä|A)C(Í|I)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #39CD79'>", "`${match}`", "</span>"],
            [/\bLORY\b/gi, "<span style='color: #FB786F'>", "`${match}`", "</span>"],
            [/\bJOLAVERO\b/gi, "<span style='color: #9BA5D7'>", "`${match}`", "</span>"],
            [/\bREDISM\b/gi, "<span style='color: #c93131'>", "`${match}`", "</span>"],
            [/\bORANGISM\b/gi, "<span style='color: #e66700'>", "`${match}`", "</span>"],
            [/\bGREENERISM\b/gi, "<span style='color: #63C64D'>", "`${match}`", "</span>"],
            [/\bBLURISM\b/gi, "<span style='color: #0e53c4'>", "`${match}`", "</span>"],
            [/\bINDIGOISM\b/gi, "<span style='color: #2600bd'>", "`${match}`", "</span>"],
            [/\bALALIA\b/gi, "<span style='color: #b30000'>", "`${match.slice(0, 2)}<span style='color: #84b027'>${match.slice(2, -2)}</span>${match.slice(-2)}`", "</span>"],
            [/\b(ON|1)EST(\s?LAND)?\b/gi, "<span style='color: #2d93e1'>", "`${match}`", "</span>"],
            [/\b(TVO|2)ST(\s?LAND)?\b/gi, "<span style='color: #ccbba8'>", "`${match}`", "</span>"],
            [/\bYE\sOLDE\sRIVERS\b/gi, "<span style='color: #bac79e'>", "`${match}`", "</span>"],
            [/\b(FIV|5)EST(\s?LAND)?\b/gi, "<span style='color: #657665'>", "`${match}`", "</span>"],
            [/\b(SIX|6)EST(\s?LAND)?\b/gi, "<span style='color: #6d56a4'>", "`${match}`", "</span>"],
            [/\b(EIGHT|8)EST(\s?LAND)?\b/gi, "<span style='color: #4755bd'>", "`${match}`", "</span>"],
            [/\b(NIN|9)EST(\s?LAND)?\b/gi, "<span style='color: #b54b12'>", "`${match}`", "</span>"],
            [/\b(TEN|10)EST(\s?LAND)?\b/gi, "<span style='color: #363636; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bNORTEASTHIA\b/gi, "<span style='color: #67d3a1'>", "`${match}`", "</span>"],
            [/\b(WEST\s)?EASTHIA\b/gi, "<span style='color: #9cc4c4'>", "`${match}`", "</span>"],
            [/\bSOUTEASTHIA\b/gi, "<span style='color: #cbcc7e'>", "`${match}`", "</span>"],
            [/\bSOUTWESTHIA\b/gi, "<span style='color: #e99578'>", "`${match}`", "</span>"],
            [/\b(EAST\s)?WESTHIA\b/gi, "<span style='color: #d856b8'>", "`${match}`", "</span>"],
            [/\bNORTWESTHIA\b/gi, "<span style='color: #859c9b'>", "`${match}`", "</span>"],
            [/\bCENTRIA\b/gi, "<span style='color: #b4a700'>", "`${match}`", "</span>"],
            [/(?<!\bSOUTIAN\s)\bSOISIA(N?\sREPUBLIC)?\b/gi, "<span style='color: #3A6264'>", "`${match}`", "</span>"],
            [/(?<!\bEASTHIAN\s)\bAESIA\b/gi, "<span style='color: #8B51D2'>", "`${match}`", "</span>"],
            [/(?<!\bWESTHIAN\s)\bOASIA\b/gi, "<span style='color: #7C99EE'>", "`${match}`", "</span>"],
            [/\bSOUTIAN\sSOISIA\b/gi, "<span style='color: #9A4A4B'>", "`${match}`", "</span>"],
            [/\bEASTHIAN\sAESIA\b/gi, "<span style='color: #1A8E8E'>", "`${match}`", "</span>"],
            [/\bWESTHIAN\sOASIA\b/gi, "<span style='color: #AF1868'>", "`${match}`", "</span>"],
            [/𐩢|\bPSY\b/gi, "<span style='color: #B784B8'>", "`${match}`", "</span>"],
            [/\bPOLERIA\b/gi, "<span style='color: #DC143C'>", "`${match.slice(0, 2)}<span style='color: #FFF'>${match[2]}<span style='color: #FFE762'>${match[3]}</span>${match[4]}</span>${match.slice(-2)}`", "</span>"],
            [/\bTASAPLUIA\b/gi, "<span style='color: #8F9F00'>", "`${match}`", "</span>"],
            [/\bUNACNIGD\b/gi, "<span style='color: #B78400'>", "`${match}`", "</span>"],
            [/\bAXIAN\b/gi, "<span style='color: #4F6781'>", "`${match[0]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[1]}<span style='color: #2CE8F4'>${match[2]}</span>${match[3]}</span>${match[4]}`", "</span>"],
            [/\bFLASHLAND\b/gi, "<span style='color: #A2D77E'>", "`${match}`", "</span>"],
            [/\bBULGARIABALL\b/gi, "<span style='color: #00966E'>", "`<span style='color: #FFF'>${match.slice(0, 4)}</span>${match.slice(4, -4)}<span style='color: #D62612'>${match.slice(-4)}</span>`", "</span>"],
            [/\bANYTHINGTHERE\b/gi, "<span style='color: #2CE8F4'>", "`<span style='color: #0484D1'>${match.slice(0, 8)}</span>${match.slice(-5)}`", "</span>"],
            [/\bSAGITTARIUS\b/gi, "<span style='color: #FF1100'>", "`${match}`", "</span>"],
            [/\bIKDI\b/gi, "<span style='color: #D0E1DC'>", "`${match}`", "</span>"],
            [/\bSYTIST\b/gi, "<span style='color: #FBD439'>", "`${match[0]}<span style='color: #9A4A4B'>${match[1]}</span><span style='color: #3F2832; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span><span style='color: #3A6264; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[3]}</span><span style='color: #8F9F00'>${match[4]}</span><span style='color: #B78400'>${match[5]}</span>`", "</span>"],
            [/\bAMETHIA\b/gi, "<span style='color: #b921e4'>", "`${match}`", "</span>"],
            [/\bYGGDRASIL\b/gi, "<span style='color: #565a5d'>", "`${match[0]}<span style='color: #d32929'>${match[1]}<span style='color: #62676a'>${match[2]}<span style='color: #d32929'>${match[3]}<span style='color: #fd4949'>${match[4]}</span>${match[5]}</span>${match[6]}</span>${match[7]}</span>${match[8]}`", "</span>"],
            [/\bASCENDANCY\b/gi, "<span style='color: #7524c0'>", "`${match[0]}<span style='color: #8431d0'>${match[1]}<span style='color: #a341ff'>${match[2]}<span style='color: #cc7efc'>${match[3]}<span style='color: #dfb2fd'>${match.slice(4, 6)}</span>${match[6]}</span>${match[7]}</span>${match[8]}</span>${match[9]}`", "</span>"],
            [/\bUNTIRELLEORIA\b/gi, "<span style='color: #d8dcb4'>", "`<span style='color: #e21c61'>${match[0]}</span><span style='color: #e26159'>${match[1]}</span><span style='color: #fea85f'>${match[2]}</span>${match.slice(3, 6)}<span style='color: #381631; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[6]}</span>${match.slice(7, 10)}<span style='color: #5eb6ad'>${match[10]}</span><span style='color: #1b958d'>${match[11]}</span><span style='color: #105390'>${match[12]}</span>`", "</span>"],
            [/\bKRONWEGER(\sDYNASTY|S)?\b/gi, "<span style='color: #288a59'>", "`${match}`", "</span>"],
            [/\bNODUARD(\sEXCELSIE|S)?\b/gi, "<span style='color: #0000b5'>", "`${match}`", "</span>"],
            [/\bDEHIRAH(\sSPACES)?\b/gi, "<span style='color: #b30909'>", "`${match}`", "</span>"],
            [/\bNESTAD((\s|-)RODO)?\b/gi, "<span style='color: #313175'>", "`${match}`", "</span>"],
            [/\bLENAIDERR(\sFEDERATION)?\b/gi, "<span style='color: #05053d; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bNEAFTERS\b/gi, "<span style='color: #ad3d26'>", "`${match}`", "</span>"],
            [/\bOSNIA\b/gi, "<span style='color: #67258e'>", "`${match}`", "</span>"],
            [/\bTIN'G\b/gi, "<span style='color: #a6846c'>", "`${match}`", "</span>"],
            [/\b(ZIUS\sALLIANCE|(LESSER\s)?ZIUS(ES)?|SEFECTALS?)\b/gi, "<span style='color: #FFF; text-shadow: 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF, 0 0 10px #FFF'>", "`${match}`", "</span>"],
            [/\bBAFFENOR(\sLEGION)?\b/gi, "<span style='color: #a600ff'>", "`${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}</span>${match.slice(4)}`", "</span>"],
            [/\bMUION(\sNEX(\b\.|US(ORIATE)?)?)?(?=\s|$|"|'|\b)/gi, "<span style='color: #e0f'>", "`${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span>${match[3]}</span>${match.slice(4)}`", "</span>"],
            [/\bDWAJL\b/gi, "<span style='color: #F00; text-shadow:-1px 0px 0 #850000, 1px 0px 0 #850000, 0px 1px 0 #850000, 0px -1px 0 #850000'>", "`${match}`", "</span>"],
            [/\bYUDI(MATSU)?\b/gi, "<span style='color: #F00'>", "`${match}`", "</span>"],
            [/(?<=\s|^|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)(УТЮГ|UTYUG)(?=\s|$|"|'|\.|,|:|;|\?|!|\*|\/|\\|\||\(|\)|\[|\]|{|}|=|\+|-|_|\b)/gi, "<span style='color: #A0A0A0'>", "`${match}`", "</span>"],
            [/\bAMALGA(M(ESE)?|M?(-|\s)?NATION)\b/gi, "<span style='color: #b7e2e6'>", "match.split('').map(e => `<span style='color: #${['b7e2e6', 'e5c3b0', 'a48674', '665046', '848fa3', 'a800e6'][Math.floor(Math.random() * 6)]}'>${e}</span>`).join('')", "</span>"],
            [/\bILLOGICALIS\b/gi, "<span style='color: #745f8a'>", "`${match}`", "</span>"],
            [/\b(NEW\s)?BASALTIA\b/gi, "<span style='color: #4f6781'>", "`${match}`", "</span>"],
            [/\b(EVILGUY|GGPETRY)\b/gi, "<span style='color: #b30000'>", "`${match}`", "</span>"],
            [/\bEVERTRIALITION\b/gi, "<span style='color: #4C4D4B'>", "`<span style='color: #FF7300'>E</span><span style='color: #F97202'>v</span><span style='color: #D86F11'>e</span><span style='color: #A56728'>r</span><span style='color: #69563F'>t</span>rial<span style='color: #4F594F'>i</span><span style='color: #577256'>t</span><span style='color: #5D845B'>i</span><span style='color: #5F8B5D'>o</span><span style='color: #608C5E'>n</span>`", "</span>"],
            [/\bFOREST\sISL(AND|E)\b/gi, "<span style='color: #FFE762'>", "`${match}`", "</span>"],
            [/\b(KESTREL|NORTHWIND)\b/gi, "<span style='color: #2ce8f4'>", "`${match}`", "</span>"],
            [/\bKAMI\b/gi, "<span style='color: #b388ff'>", "`${match[0]}<span style='color: #7c4dff'>${match[1]}</span><span style='color: #651fff'>${match[2]}</span><span style='color: #6200ea'>${match[3]}</span>`", "</span>"],
            [/\b(TDRR|(THE\s)?DARKISH\sRED\sREPUBLIC)\b/gi, "<span style='color: #c50003'>", "`${match}`", "</span>"],
            [/\bSEURITES(\sQUASIMONARCHY)?\b/gi, "<span style='color: #FFF'>", "`<span style='color: #a4a4a4'>${match[0]}<span style='color: #FFF'>${match[1]}<span style='color: #ffbf00'>${match[2]}<span style='color: #000; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match.slice(3, 5)}</span>${match[5]}</span>${match[6]}</span>${match[7]}</span>${match.slice(8)}`", "</span>"],
            [/\b((CPL\.?|CORPORAL)\s)?ANDERSEN\b/gi, "<span style='color: #8ba2ff'>", "`${match}`", "</span>"],
            [/\bTHE\sSECRET\b/gi, "<span style='color: #36393a; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bINFINITY\s?LAND\b/gi, "<span style='color: #111111; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>", "`${match}`", "</span>"],
            [/\bABOSITES?\b/gi, "<span style='color: #787878'>", "`${match}`", "</span>"],
            [/\bSUSAMOGUS2002\b/gi, "<span style='color: #F11'>", "`${match.slice(0, 3)}<span style='color: #FFEF8A'>${match.slice(3, -3)}</span>${match.slice(-3)}`", "</span>"],
            [/\bNASRI\b/gi, "<span style='color: #6D76F3'>", "`${match[0]}<span style='color: #222991'>${match[1]}</span><span style='color: #7A103E; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[2]}</span><span style='color: #500755; text-shadow:-1px 0px 0 #888, 1px 0px 0 #888, 0px 1px 0 #888, 0px -1px 0 #888'>${match[3]}</span><span style='color: #E000F0'>${match[4]}</span>`", "</span>"],
            [/\bLAFU\b/gi, "<span style='color: #46189a'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6IiBmaWxsPSIjRkZFN0EzIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgzdjJIMHoiIGZpbGw9IiNFODdEMjYiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwaDN2MUgweiIgZmlsbD0iIzQ2MTg5YSI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\bBYLKA\b/gi, "<span style='color: #b30000'>", "`<span class='rainbow-container'><span class='rainbow' style='color: #0000; text-shadow: none; animation: none; background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzIiBoZWlnaHQ9IjMiPgogIDxwYXRoIGQ9Ik0wIDBoM3YzSDB6IiBmaWxsPSIjRUUwMEZGIj48L3BhdGg+CiAgPHBhdGggZD0iTTAgMGgzdjJIMHoiIGZpbGw9IiMwMEZGRTEiPjwvcGF0aD4KICA8cGF0aCBkPSJNMCAwaDN2MUgweiIgZmlsbD0iI2IzMDAwMCI+PC9wYXRoPgo8L3N2Zz4K) text top 80% left 50% / 100% 70%'>${match}</span><span class='rainbow-back' style='text-shadow: inherit'>${match}</span></span>`", "</span>"],
            [/\b(VALOR|UVF)\b/gi, "<span style='color: #9fb6be'>", "`${match}`", "</span>"],
        ]; //9fb6be
        window.chatUtilsReplacements = replacements;

        //Variables
        let quickID;
        let responseID;
        let nearbyThresh = 500;

        // Chat on the left
        if (chat.style.position != 'absolute') {
            chat.style.position = 'absolute';
        };
        if (ls.chatOnLeft) {
            helpBtn.style.left = 'initial';
            helpBtn.style.right = '55px';
            chat.style.right = 'initial';
            chat.style.left = '0';
        };

        // Change the max length of the chat input when you type a nickname, change it back when not
        chatInput.addEventListener("input", () => {
            chatInput.maxLength = (!chatInput.value.match(/^\/n(ick)? /i) ? [128, 128, 512, 16384] : chatInput.value.match(/^\/nick /i) ? [22, 22, 46, 16384] : [19, 19, 43, 16384])[OWOP.player.rank]
        });

        //Help command
        function helpHandle(args) {
            if (args.length != 1) {
                locSend("Chat Utils commands: block, clear, cuoptions, group, local, lset, nearby, q, qset, respond, show, unblock, yell")
                return;
            };
            switch (args[0]) {
                case "group":
                case "g":
                    locSend("group - Opens the group chat menu.\nUsage: /group\nAliases: g");
                    break;
                case "qset":
                case "qid":
                    locSend("qset - Set an id to quickly message with /q.\nUsage: /qset &lt;id&gt;\nAliases: qid")
                    break;
                case "q":
                    locSend("q - Message the id set with /qset.\nUsage: /q &lt;message&gt;\nAliases: [None]")
                    break;
                case "respond":
                case "r":
                    locSend("respond - Respond to the latest /tell message from another player.\nUsage: /respond &lt;message&gt;\nAliases: r")
                    break;
                case "local":
                case "l":
                    locSend("local - Message people within the distance set with /lset (default: 500 pixels).\nUsage: /local &lt;message&gt;\nAliases: l")
                    break;
                case "lset":
                    locSend("lset - Set the distance within which people receive messages sent with /local (default: 500 pixels).\nUsage: /lset &lt;distance&gt;\nAliases: [None]")
                    break;
                case "c":
                case "clear":
                    locSend("clear - Clears the chat.\nUsage: /clear\nAliases: c");
                    break;
                case "yell":
                    locSend("yell - Tell another user a message privately or send it globally in all caps.\nUsage: /yell &lt;id*&gt; &lt;message&gt; (* = optional)\nAliases: [None]");
                    break;
                case "block":
                    locSend("block - Blocks a user.\nUsage: /block &lt;id&gt;\nAliases: [None]");
                    break;
                case "unblock":
                    locSend("unblock - Unblocks a user.\nUsage: /unblock &lt;id&gt;\nAliases: [None]");
                    break;
                case "nearby":
                    locSend("nearby - Lists the players within the distance set with /lset or the specified one.\nUsage: /nearby &lt;distance*&gt; (* = optional)\nAliases: [None]");
                    break;
                case "show":
                    locSend("show - Shows or hides the chat.\nUsage: /show\nAliases: [None]");
                    break;
                case "cuoptions":
                case "cuopts":
                case "cuo":
                    locSend("cuoptions - Opens the chat utils options. Hover over each option for more info.\nUsage: /cuoptions\nAliases: cuopts, cuo");
            };
            return '';
        };

        //Message processing
        const prevR = OWOP.misc.chatRecvModifier || (m => m);
        OWOP.misc.chatRecvModifier = (msg) => {
            msg = prevR(msg);
            const msgParsed = JSON.parse(msg);
            //Response
            if (msgParsed.type == "whisperSent") {
                responseID = msgParsed.data.targetID;
            };
            if (msgParsed.type == "whisperReceived") {
                responseID = msgParsed.data.senderID;
            };
            //Fix "Unknown command:" messages from /help
            if (msgParsed.type == "error" && msgParsed.data.message.startsWith("Unknown command: ")) {
                if (!['group', 'g', 'qset', 'qid', 'q', 'respond', 'r', 'local', 'l', 'lset', 'c', 'clear', 'yell', 'block', 'unblock', 'nearby', 'show', 'cuoptions', 'cuopts', 'cuo'].every(cmd => cmd != msgParsed.data.message.slice(17, -1))) {
                    return ''
                }
            };
            // Pass saver
            switch (msgParsed.data.action) {
                case "invalidatePassword":
                    if (!lastAttemptedPass) {
                        let a = JSON.parse(localStorage.worldPasswords);
                        delete a[OWOP.misc.world.name];
                        localStorage.worldPasswords = JSON.stringify(a)
                    } else lastAttemptedPass = null;
                    break;
                case "savePassword":
                    if (lastAttemptedPass) {
                        let a = JSON.parse(localStorage.worldPasswords);
                        a[OWOP.misc.world.name] = lastAttemptedPass;
                        localStorage.worldPasswords = JSON.stringify(a)
                    } else lastAttemptedPass = null
            };
            // Muting system
            if (OWOP.muted.includes(msgParsed.data.senderID)) return;
            // Notifications
            if (!document.hasFocus() && notifsAllowed && ls.notifications != "none" && msgParsed.data?.message) {
                if (ls.notifications == "all" || msgParsed.data.message.match(new RegExp(`(${ls.notifNames.map(elem => RegExp.escape(elem)).join("|")})`, "i")) || msgParsed.type == "whisperReceived" || msgParsed.data.message.match(new RegExp(`(?<![\\/+=\\-.])\\b${playerID}\\b(?![\\/+=\\-.])`, "g"))) { // Either the player chose to receive notifs for all messages, or the message is /tell or contains the player id or one of the mention names
                    let notification = new Notification(msgParsed.data?.nick || "OWOP", { icon: 'https://ourworldofpixels.com/favicon.ico', body: msgParsed.data.message });
                    notification.onclick = () => { window.focus() };
                    setTimeout(notification.close.bind(notification), 3000);
                    let focusFunc = e => {
                        notification.close.bind(notification)();
                    };
                    window.addEventListener("focus", focusFunc);
                    notification.onclose = () => {
                        window.removeEventListener("focus", focusFunc)
                    };
                }
            };
            if (msgParsed.data?.message && msgParsed.data.message.match(/^!ph (.|\n)+/i)) { // Joke feature, changes the placeholder text of the chat input
                chatInput.placeholder = `Press [${msgParsed.data.message.match(/(?<=^!ph )(.|\n)+/i)[0]}] to chat!`;
                delete msgParsed.data; // Make the message not show up ;)
                return JSON.stringify(msgParsed)
            };
            // Colorful Chat

            /*** FIRST TECHNICAL AREA ***/

            let rank = msgParsed.data.rank;
            // Add ids to mods and admins
            if (rank > 1 && rank < 4 && msgParsed.data.nick.slice(4) != msgParsed.data.senderID) {
                if (msgParsed.data.nick.startsWith("(")) {
                    msgParsed.data.nick = msgParsed.data.nick.slice(0, 4) + `[${msgParsed.data.senderID}]` + msgParsed.data.nick.slice(3);
                } else {
                    msgParsed.data.nick = `[${msgParsed.data.senderID}] ` + msgParsed.data.nick;
                }
            };
            // Gateway compatibility
            if (msgParsed.sender == "server" && msgParsed.data.message.startsWith('[D] ')) {
                msgParsed.sender = 'player';
                msgParsed.type = 'message';
                [msgParsed.data.nick, ...msgParsed.data.message] = msgParsed.data.message.split(/: /);
                msgParsed.data.message = msgParsed.data.message.join(": ");
                msgParsed.data.rank = 1;
                rank = 4;
            };
            if (msgParsed.sender == "player" && msgParsed.data.nick.match(/^(\[\d+\]|\(M\)) \[D\]/)) {
                msgParsed.data.rank = 1;
                rank = 4;
            };
            if (msgParsed.sender == "player" && msgParsed.data.nick.match(/^(\(M\) )?\d+$/gi) && msgParsed.data.message.match(/^\[D\]/) && OWOP.misc.world.name == "countrysim") {
                [msgParsed.data.nick, ...msgParsed.data.message] = msgParsed.data.message.split(/: /);
                msgParsed.data.message = msgParsed.data.message.join(": ");
                msgParsed.data.rank = 1;
                rank = 4;
            };
            if (msgParsed.sender == "player" && msgParsed.data.nick.match(/\u00AD\n\u00AD/gi)) {
                [msgParsed.data.nick, ...msgParsed.data.message] = msgParsed.data.message.split(/: /);
                msgParsed.data.message = msgParsed.data.message.join(": ");
                if (msgParsed.data.nick.match(/^\[.+?\] \(M\)/)) {
                    msgParsed.data.rank = 2;
                    rank = 2;
                } else if (msgParsed.data.nick.match(/^\[.+?\] \(A\)/) || msgParsed.data.nick.match(/^(InfraRaven|Cygnus)/i)) {
                    msgParsed.data.rank = 3;
                    rank = 3;
                } else if (msgParsed.data.nick.match(/^\[D\]/)) {
                    msgParsed.data.rank = 1;
                    rank = 4;
                } else {
                    msgParsed.data.rank = 1;
                    rank = 1;
                };
            };
            if (msgParsed.sender == "server" || msgParsed.type == "whisperReceived") return msg;
            //console.log("Message before: " + msg); // Debug
            msgParsed.data.allowHTML = true;
            function replaceInMessage(rx, replace) {
                msgParsed.data.message = msgParsed.data.message.replace(rx, replace);
            };
            // Prevent people from executing their own code but leave dc emojis alone
            if (rank < 3) {
                //msgParsed.data.message = OWOP.util.escapeHTML(msgParsed.data.message);
                replaceInMessage(/<(?!a?:(.+?):(\d{8,32}))/g, `&lt;`);
                replaceInMessage(/(?<!a?:(.+?):(\d{8,32}))>/g, `&gt;`);
            };
            const emojiQueue = []; // Queue for setting tooltips for emojis
            // Fix Discord emojis not working after new line and make them work in the nickname again
            msgParsed.data.nick = msgParsed.data.nick.replace(/(&lt;|<)a:(.+?):([0-9]{8,32})(&gt;|>)/g, match => { match = match.slice(3, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.gif?v=1">` });
            replaceInMessage(/(&lt;|<)a:(.+?):([0-9]{8,32})(&gt;|>)/g, match => { match = match.slice(3, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.gif?v=1">` });
            msgParsed.data.nick = msgParsed.data.nick.replace(/(&lt;|<):(.+?):([0-9]{8,32})(&gt;|>)/g, match => { match = match.slice(2, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.png?v=1">` });
            replaceInMessage(/(&lt;|<):(.+?):([0-9]{8,32})(&gt;|>)/g, match => { match = match.slice(2, -1).split(":"); emojiQueue.push(match.toSpliced(match.length - 1).join(":")); return `<img class="emote" src="https://cdn.discordapp.com/emojis/${match[match.length - 1]}.png?v=1">` });
            // Add the time when the message was received
            (() => {
                let currTime = new Date();
                msgParsed.data.nick = `<span class="msg-time" title="${currTime.toString().slice(0, 24)}">${("0" + currTime.getHours()).slice(-2)}:${("0" + currTime.getMinutes()).slice(-2)} </span>${msgParsed.data.nick}`;
            })();

            // Coloring the message and the nick
            if (!msgParsed.data.message.match(/^\$/) && !anchorme(msgParsed.data.message).includes("<a")) {
                replaceInMessage(/#\b(\d|[a-f]){6}\b/gi, match => `<span style='color:${match}'>${match}</span>`);
                for (let i = 0; i < replacements.length; i++) {
                    replaceInMessage(replacements[i][0], match => replacements[i][1] + eval(replacements[i][2]) + replacements[i][3]);
                }
            };
            if (!msgParsed.data.nick.slice(69).match(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] )?)#/)) {
                for (let i = 0; i < replacements.length; i++) {
                    if (msgParsed.data.nick.match(replacements[i][0])) {
                        msgParsed.data.nick = replacements[i][1] + msgParsed.data.nick.replace(replacements[i][0], match => eval(replacements[i][2])) + replacements[i][3];
                    }
                }
            };
            replaceInMessage(/^\$\s?/g, '');

            /*** SECOND TECHNICAL AREA ***/

            // Markdown
            if (!anchorme(msgParsed.data.message).includes("<a") && !msgParsed.data.message.match(/^\$/)) {
                msgParsed.data.message = mdParse(msgParsed.data.message);
            } else {
                replaceInMessage(/^\$\s?/g, '');
            };
            if (msgParsed.data.nick.slice(69).match(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] )?)#/)) { // Nickname markdown
                let nameColor = msgParsed.data.nick.slice(69).match(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] ))#([\dA-F]{6}|RB)/gi)?.[0];
                msgParsed.data.nick = (nameColor?.match(/#rb/i) ? `<span class="rainbow">` : `<span style='color:${nameColor}'>`) + msgParsed.data.nick.slice(0, 69) + mdParse(msgParsed.data.nick.slice(69)).replace(/(?<=^(\[.+?\] )?(\((M|A)\) (\[\d+?\] )?|\[(\d+?|D)\] ))#(([\dA-F]{6}|RB)\s?)?/gi, '') + "</span>";
            };
            // Unnamed players
            if (msgParsed.data.nick.slice(69) == msgParsed.data.senderID || msgParsed.data.nick.slice(73) == msgParsed.data.senderID) {
                msgParsed.data.nick = `<span style='color:${playerList[msgParsed.data.senderID]?.clr}'>` + msgParsed.data.nick + "</span>";
            };
            // Chat mention
            let findPlayer = new RegExp(`(?<![\\/+=\\-.])\\b${playerID}\\b(?![\\/+=\\-.])`, "g");
            replaceInMessage(findPlayer, match => `<span style='color:#FF0000'>${match}</span>`);
            // Restore normal message color
            if (rank == 4) msgParsed.data.nick = "<span style='color:#6CFFE7'>" + msgParsed.data.nick + "</span><span style='color:#FFFFFF'>"; // Discord messages

            // Set tooltips for emojis after the message is displayed
            setTimeout(() => {
                const emoteList = document.querySelectorAll(`#chat-messages>li:last-child .emote`);
                for (let i = 0; i < emojiQueue.length; i++) OWOP.util.setTooltip(emoteList[i], emojiQueue[i])
            });

            //console.log("Message after: " + JSON.stringify(msgParsed)); // Debug
            return JSON.stringify(msgParsed);
        };

        //Command processing
        const prevS = OWOP.misc.chatSendModifier || (m => m);
        OWOP.misc.chatSendModifier = msg => {
            msg = prevS(msg);
            if (!msg.startsWith('/')) return msg;
            const [cmd, ...args] = msg.slice(1).trim().split(/\s+/);
            switch (cmd.toLowerCase()) {
                case "pass":
                    lastAttemptedPass = args.join(" ");
                    return msg;
                case "local":
                case "l": {
                    if (args.length < 1) {
                        locErr('Usage: /local <message>');
                        return '';
                    };
                    let px = OWOP.mouse.tileX
                    let py = OWOP.mouse.tileY
                    let nearbyPlayers = []
                    for (let x in playerList) {
                        if (Math.abs(playerList[x].x / 16 - px) <= nearbyThresh && Math.abs(playerList[x].y / 16 - py) <= nearbyThresh) {
                            nearbyPlayers.push(x);
                        };
                    };
                    if (nearbyPlayers.length == 0) {
                        locErr('No players nearby');
                        return '';
                    };
                    let localMsg = args.join(' ') + "\nLocal chat: " + playerID + ", " + nearbyPlayers.join(', ');
                    for (let i = 0; i < nearbyPlayers.length; i++) {
                        tell(nearbyPlayers[i], localMsg);
                    };
                    return '';
                }
                case "lset":
                    if (args.length != 1 || isNaN(args[0]) || args[0] < 0) {
                        locErr("Usage: /lset <distance>");
                        return '';
                    };
                    nearbyThresh = args;
                    return '';
                case "clear":
                case "c":
                    if (args.length != 0) {
                        locErr("Usage: /clear");
                        return '';
                    };
                    OWOP.chat.clear();
                    return '';
                case "respond":
                case "r":
                    if (!responseID) {
                        locErr('Nobody messaged you yet');
                        return '';
                    }
                    if (!playerList[responseID]) {
                        locErr(`ID ${responseID} disconnected`);
                        responseID = undefined;
                        return '';
                    };
                    tell(responseID, args.join(" "));
                    return '';
                case "qid":
                case "qset":
                    if (args.length != 1) {
                        locErr('Usage: /qset <id>');
                        return '';
                    };
                    if (!isNaN(args)) {
                        if (!playerList[args]) {
                            locErr("ID " + args + " doesn't exist.")
                            return '';
                        };
                        quickID = args;
                        return '';
                    };
                    locErr('Usage: /qset <id>');
                    return '';
                case "q":
                    if (quickID === undefined) {
                        locErr('Use "/qset <id>" to set a quick id first');
                        return '';
                    };
                    if (args.length == 0) {
                        locErr('Usage: /q <message>');
                        return '';
                    };
                    if (!playerList[quickID]) {
                        locErr("ID " + quickID + " disconnected");
                        quickID = undefined;
                        return '';
                    };
                    tell(quickID, args.join(' '));
                    return '';
                case "block":
                    if (args.length != 1) {
                        locErr('Usage: /block <id>');
                        return '';
                    };
                    if (!playerList[args]) {
                        locErr(`ID ${args} does not exist`);
                        return '';
                    };
                    if (OWOP.muted.includes(Number(args))) {
                        locErr(`ID ${args} is already blocked`);
                        return '';
                    };
                    OWOP.muted.push(Number(args));
                    return '';
                case "unblock":
                    if (args.length != 1) {
                        locErr('Usage: /unblock <id>');
                        return '';
                    };
                    if (!playerList[args]) {
                        locErr(`ID ${args} does not exist`);
                        return '';
                    };
                    if (!OWOP.muted.includes(Number(args))) {
                        locErr(`ID ${args} is not blocked`);
                        return '';
                    };
                    OWOP.muted.splice(OWOP.muted.indexOf(Number(args)), 1);
                    return '';
                case "nearby": {
                    if (args.length > 1 || (args.length == 1 && isNaN(args[0]))) {
                        locErr('Usage: /nearby <distance*> (* = optional)');
                        return '';
                    };
                    let px = OWOP.mouse.tileX;
                    let py = OWOP.mouse.tileY;
                    let thresh = (args.length == 1 ? args[0] : nearbyThresh);
                    let nearbyPlayers = [];
                    for (let x in playerList) {
                        if (Math.abs(playerList[x].x / 16 - px) <= thresh && Math.abs(playerList[x].y / 16 - py) <= thresh) {
                            nearbyPlayers.push(x);
                        };
                    };
                    if (nearbyPlayers.length == 0) {
                        locErr('No players nearby');
                        return '';
                    } else {
                        locSend(`Nearby player ids: ${nearbyPlayers.join(', ')}`);
                        return '';
                    }
                };
                case "show":
                    if (args.length != 0) {
                        locErr('Usage: /show');
                        return '';
                    };
                    document.getElementById('chat-messages').style.display = (document.getElementById('chat-messages').style.display == 'none' ? '' : 'none');
                    return '';
                case "g":
                case "group":
                    if (args.length != 0) {
                        locErr('Usage: /group');
                        return '';
                    };
                    OWOP.windowSys.addWindow(new OWOP.windowSys.class.window('Group Chat', { closeable: true }, (gcWin) => {
                        gcWin.container.className = "wincontainer nhCont";

                        let memLabel = document.createElement('label');
                        memLabel.for = "gcMembers";
                        memLabel.innerHTML = "Members: ";
                        gcWin.addObj(memLabel);
                        let memIn = document.createElement('input');
                        memIn.type = 'text';
                        memIn.name = 'gcMembers';
                        memIn.className = 'nhIn';
                        memIn.placeholder = "IDs must be comma separated";
                        memIn.addEventListener("blur", (e) => {
                            let members = memIn.value.split(',').map((elem) => { return elem.trim() });
                            for (let x = 0; x < members.length; x++) {
                                if (!playerList[members[x]] || members.indexOf(members[x]) != x) {
                                    members.splice(x, 1);
                                    x -= 1;
                                };
                            };
                            memIn.value = members.join(', ');
                        });
                        gcWin.addObj(memIn);
                        gcWin.addObj(document.createElement('br'));
                        let msgLabel = document.createElement('label');
                        msgLabel.for = "gcMessage";
                        msgLabel.innerHTML = "Message: ";
                        gcWin.addObj(msgLabel);
                        let msgIn = document.createElement('input');
                        msgIn.type = 'text';
                        msgIn.name = 'gcMessage';
                        let maxMsgLength = OWOP.definedProtos.old.maxMessageLength[OWOP.player.rank];
                        msgIn.maxLength = maxMsgLength;
                        msgIn.className = "nhIn";
                        msgIn.placeholder = "Press [Enter] to send";
                        function sendMsg() {
                            let members = memIn.value.split(',').map((elem) => { return elem.trim() });
                            for (let x = 0; x < members.length; x++) {
                                if (!playerList[members[x]] || members.indexOf(members[x]) != x) {
                                    members.splice(x, 1);
                                    x -= 1;
                                };
                            };
                            memIn.value = members.join(', ');
                            if (members.length == 0) return;
                            let msg = msgIn.value;
                            for (let x = 0; x < members.length; x++) {
                                let extra = members.join().length + 11 + `${members[x]}`.length;
                                tell(members[x], `${msg.length + extra > maxMsgLength ? msg.slice(0, maxMsgLength - extra) : msg}\nGC:${members.join()}`);
                            };
                            msgIn.value = '';
                        }
                        msgIn.addEventListener("keydown", ((e) => {
                            if (e.key == "Enter") {
                                sendMsg();
                            };
                        }));
                        gcWin.addObj(msgIn);
                        gcWin.addObj(document.createElement('br'));
                        let sendBtn = document.createElement('button');
                        sendBtn.addEventListener("click", (e) => {
                            sendMsg();
                        });
                        sendBtn.innerHTML = 'Send';
                        gcWin.addObj(sendBtn);
                    }).move(innerWidth - 343, 60));
                    return '';
                case "yell":
                    if (args.length == 0) {
                        locErr('Usage: /yell <id*> <message> (* = optional)');
                        return '';
                    };
                    if (!isNaN(args[0])) {
                        tell(args[0], args.slice(1).join(' ').toUpperCase());
                        return '';
                    };
                    say(args.join(' ').toUpperCase());
                    return '';
                case "cuoptions":
                case "cuopts":
                case "cuo":
                    if (args.length != 0) {
                        locErr('Usage: /cuo');
                        return '';
                    };
                    OWOP.windowSys.addWindow(new OWOP.windowSys.class.window("Chat Utils Options", { closeable: true }, win => {
                        win.container.className = "wincontainer nhCont";

                        win.container.innerHTML = `<div title="Toggles the chat position between left and right">
    <input type="checkbox" name="cu-left" id="cu-left"${ls.chatOnLeft == true ? " checked" : ""}>
    <label for="cu-left">Chat on left</label>
</div>
<div title="Display the time when each message has been received">
    <input type="checkbox" name="cu-timestamps" id="cu-timestamps"${ls.timestamps == true ? " checked" : ""}>
    <label for="cu-timestamps">Message timestamps</label>
</div>
<div title="Sets the max number of messages kept in the chat">
    <label for="cu-max">Max chat messages: </label>
    <input type="number" name="cu-max" id="cu-max" min="0" value="${ls.maxChatBuffer}">
</div>
<div title="Receive notifications for all messages, only ones that mention your name, or none">
    <label for="cu-notifs">Notifications: </label>
    <select name="cu-notifs" id="cu-notifs">
        <option value="all"${ls.notifications == "all" ? " selected" : ""}>All</option>
        <option value="mentions"${ls.notifications == "mentions" ? " selected" : ""}>Mentions</option>
        <option value="none"${ls.notifications == "none" ? " selected" : ""}>None</option>
    </select>
</div>
<div style="${ls.notifications == "mentions" ? "" : "display: none"}" title="When a message contains one of these names, you will get a notification">
    <label for="cu-notifnames">Mention names: </label>
    <input type="text" name="cu-notifnames" id="cu-notifnames" value="${ls.notifNames}" placeholder="Names must be comma separated">
</div>`;
                        win.container.querySelector("#cu-left").addEventListener("input", e => {
                            ls.chatOnLeft = win.container.querySelector("#cu-left").checked;
                            updateLs();
                            if (ls.chatOnLeft) {
                                helpBtn.style.left = 'initial';
                                helpBtn.style.right = '55px';
                                chat.style.right = 'initial';
                                chat.style.left = '0';
                            } else {
                                helpBtn.style.left = '0';
                                helpBtn.style.right = 'initial';
                                chat.style.right = '55px';
                                chat.style.left = 'initial';
                            };
                        });
                        win.container.querySelector("#cu-timestamps").addEventListener("input", e => {
                            ls.timestamps = win.container.querySelector("#cu-timestamps").checked;
                            updateLs();
                            document.querySelector("#cu-timestamp-style").innerHTML = `.msg-time {
    display: ${ls.timestamps ? "initial" : "none"};
}`;
                        });
                        win.container.querySelector("#cu-max").addEventListener("input", e => {
                            win.container.querySelector("#cu-max").value = Math.floor(+win.container.querySelector("#cu-max").value);
                            ls.maxChatBuffer = OWOP.options.maxChatBuffer = +win.container.querySelector("#cu-max").value;
                            updateLs();
                        });
                        win.container.querySelector("#cu-notifs").addEventListener("input", e => {
                            ls.notifications = win.container.querySelector("#cu-notifs").value;
                            updateLs();
                            win.container.querySelector("#cu-notifnames").parentElement.style.display = ls.notifications == "mentions" ? "" : "none"
                        });
                        win.container.querySelector("#cu-notifnames").addEventListener("input", e => {
                            ls.notifNames = win.container.querySelector("#cu-notifnames").value.split(", ").join(",").split(",");
                            updateLs()
                        });
                    }).move(innerWidth - 415, 60));
                    return '';
                case "help":
                case "h":
                case "?":
                    helpHandle(args);
            };
            return msg;
        };
        // Update Notice
        if (ls.chatUtilsUpdateNotice != '1.9') {
            locSend(`<span style="color:#FFFF00">Chat Utils update 1.9:
 - Added /cuoptions for opening the new options menu
 - Removed /max and /left
 - Added chat notifications, which can be configured in the options menu
 - Added message timestamps, which can be disabled in the options
 - Added glow ({gFFFFFF test} - <span style="text-shadow: 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF;">test</span>), backwards text ({&lt; test} - <span style="display: inline-block; transform: scale(-1, 1);">test</span>), upside-down text ({V test} - <span style="display: inline-block; transform: scale(1, -1);">test</span>), spoilers (||test|| - <span class="spoiler" onclick="this.className='spoiler-shown'">test</span>)
 - Changed the way to highlight text to {=FFFFFF ...} and {hFFFFFF ...}, meaning you can now use different colors
 - Made it so you can add multiple effects to text at the same time using one pair of curly brackets. For example, {000000gFFFFFF Hello} becomes <span style="text-shadow: 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF, 0px 0px 5px #FFFFFF;color: #000000;">Hello</span>, {0000FFg00FF00hFF0000&lt;V Hi} becomes <mark style="background-color: #FF0000"><span style="display: inline-block; transform: scale(-1, -1);text-shadow: 0px 0px 5px #00FF00, 0px 0px 5px #00FF00, 0px 0px 5px #00FF00;color: #0000FF;">Hi</span></mark> etc
 - Made it so # stops default coloring in the nickname (and fixed the bug which made your messages invisible)
 - Added tooltips for Discord emojis
 - Discord emojis now work inside the nickname again
 - Made it so when you type your nickname, the max length of the chat input changes, so you cannot accidentally type one that is too long and wouldn't work
 - Additions and changes to colored words
<button onclick="let a = JSON.parse(localStorage.CU); a.chatUtilsUpdateNotice = '1.9'; localStorage['CU'] = JSON.stringify(a); this.parentElement.parentElement.parentElement.remove()">Click to dismiss</button></span>`)
        };
        console.log('Chat Utils installed');
    };
})();