diff --git a/code/controllers/subsystem/chat.dm b/code/controllers/subsystem/chat.dm
index 96fe99cf1d..dac9bb46d4 100644
--- a/code/controllers/subsystem/chat.dm
+++ b/code/controllers/subsystem/chat.dm
@@ -156,7 +156,7 @@ SUBSYSTEM_DEF(chat)
)
)
- var/img_size = 75
+ var/img_size = 125
var/headspace = 4
var/debug_chud = FALSE
var/list/colorable_keys = list(
@@ -317,6 +317,31 @@ SUBSYSTEM_DEF(chat)
tentry["Mode"] = emotimode
tentry["Host"] = default_pfps[MALE]["Host"]
tentry["URL"] = default_pfps[MALE]["URL"]
+ tentry["Suppress"] = emotimode == MODE_PROFILE_PIC
+ var/defverb = "says,"
+ var/defblank = "gestures!"
+ switch(emotimode)
+ if(MODE_SAY)
+ defverb = P.features["custom_say"] || "says,"
+ defblank = "speaks."
+ if(MODE_WHISPER)
+ defverb = P.features["custom_whisper"] || "whispers,"
+ defblank = "whispers."
+ if(MODE_SING)
+ defverb = P.features["custom_sing"] || "sings,"
+ defblank = "sings!"
+ if(MODE_ASK)
+ defverb = P.features["custom_ask"] || "asks,"
+ defblank = "asks."
+ if(MODE_EXCLAIM)
+ defverb = P.features["custom_exclaim"] || "exclaims,"
+ defblank = "exclaims!"
+ if(MODE_YELL)
+ defverb = P.features["custom_yell"] || "yells,"
+ defblank = "yells!"
+ tentry["CustomMessageVerb"] = defverb
+ tentry["CustomBlankVerb"] = defblank
+ tentry["Modifiable"] = FALSE
mandated += list(tentry)
/// now go through their profile pics and copy over what they have, if its valid
for(var/list/bepis in PP)
@@ -359,6 +384,9 @@ SUBSYSTEM_DEF(chat)
if(emotimode["Mode"] == emode)
emotimode["Host"] = ehost
emotimode["URL"] = eurl
+ emotimode["Modifiable"] = FALSE
+ emotimode["CustomMessageVerb"] = bepis["CustomMessageVerb"] || "says,"
+ emotimode["CustomBlankVerb"] = bepis["CustomBlankVerb"] || "gestures!" // unused, but here for good luck
break
else
var/list/newPP = list(
@@ -366,6 +394,8 @@ SUBSYSTEM_DEF(chat)
"Host" = ehost,
"URL" = eurl,
"Modifiable" = TRUE,
+ "CustomMessageVerb" = bepis["CustomMessageVerb"] || "says,",
+ "CustomBlankVerb" = bepis["CustomBlankVerb"] || "gestures!",
)
extras += list(newPP)
var/list/newlist = mandated + extras // sorting!
@@ -561,6 +591,11 @@ SUBSYSTEM_DEF(chat)
for(var/list/moud in m_images)
if(moud["Mode"] == testpart)
m_mode = testpart
+ var/list/quicksplit = splittext(m_rawmessage, testpart)
+ if(LAZYLEN(quicksplit) == 2 && ckey(quicksplit[2]) == "") // the token was at the end... probably
+ m_rawmessage = trim(quicksplit[1])
+ m_message = trim(quicksplit[1])
+ break math // mathematical
// now the fun part, surgically remove the custom mode from the message, *and* remove any spaces around it
m_rawmessage = replacetext(m_rawmessage, " [testpart] ", "")
m_rawmessage = replacetext(m_rawmessage, "[testpart] ", "")
@@ -572,7 +607,8 @@ SUBSYSTEM_DEF(chat)
m_message = replacetext(m_message, " [testpart]", "")
m_message = replacetext(m_message, "[testpart]", "")
break math // mathematical
- var/m_pfp = get_horny_pfp(m_rawmessage, m_images, m_mode)
+ var/list/hidden_toe = list() // critical
+ var/m_pfp = get_horny_pfp(m_rawmessage, m_images, m_mode, hidden_toe)
var/list/set4mode = P.mommychat_settings["[m_mode]"]
if(!LAZYLEN(set4mode))
set4mode = P.mommychat_settings["[MODE_SAY]"]
@@ -588,10 +624,10 @@ SUBSYSTEM_DEF(chat)
var/bgc_2 = set4mode["ButtonGradient1"]
var/bgc_1 = set4mode["ButtonGradient2"]
- var/bgangle = set4mode["ButtonGradientAngle"]
- var/bbc = set4mode["ButtonBorderColor"]
- var/bbs = set4mode["ButtonBorderWidth"]
- var/bbt = set4mode["ButtonBorderStyle"]
+ // var/bgangle = set4mode["ButtonGradientAngle"]
+ // var/bbc = set4mode["ButtonBorderColor"]
+ // var/bbs = set4mode["ButtonBorderWidth"]
+ // var/bbt = set4mode["ButtonBorderStyle"]
var/bbc_2 = set4mode["BottomBoxGradient1"]
var/bbc_1 = set4mode["BottomBoxGradient2"]
@@ -604,9 +640,9 @@ SUBSYSTEM_DEF(chat)
var/obs = set4mode["OuterBoxBorderWidth"]
var/obt = set4mode["OuterBoxBorderStyle"]
- var/ibc = set4mode["ImageBorderBorderColor"]
- var/ibs = set4mode["ImageBorderBorderWidth"]
- var/ibt = set4mode["ImageBorderBorderStyle"]
+ // var/ibc = set4mode["ImageBorderBorderColor"]
+ // var/ibs = set4mode["ImageBorderBorderWidth"]
+ // var/ibt = set4mode["ImageBorderBorderStyle"]
// now the text colors
// most are defined by mommy, but some arent, so we'll need to get a color that contrasts with the average of the top and bottom gradient colors
@@ -618,7 +654,7 @@ SUBSYSTEM_DEF(chat)
var/dtc = "#[contrast_color]"
var/mommyquid = mommy.source_quid
- var/targetquid = SSeconomy.extract_quid(target)
+ // var/targetquid = SSeconomy.extract_quid(target)
/// OFF WITH THEIR HEADS if we've already heard them speak with the same mode in the last, uh, minute?
/// Listener (target) has a list of the quids they've heard from, along with the last time they heard them, and their last message mode
@@ -633,33 +669,51 @@ SUBSYSTEM_DEF(chat)
if(timecheck > world.time)
giv_head = FALSE // (get them) OFF WITH YOUR HEADS!
target.heard_data[mommyquid] = list("last_heard" = world.time, "message_mode" = m_mode)
- if(m_rawmessage == "" || m_rawmessage == " " || m_rawmessage == ".")
- m_rawmessage = " "
- giv_body = FALSE
- // if both are false......... give em the head back
- if(!giv_head && !giv_body)
- giv_head = TRUE
+ var/nomessage = FALSE
+ var/nobold_verb = FALSE
+ if(LAZYLEN(hidden_toe))
+ if(!LAZYLEN(ckey(m_rawmessage)))
+ // so see if they have a CustomBlankVerb and CustomMessageVerb
+ // if they do, use that instead of the default message and verb
+ var/vess = hidden_toe["CustomBlankVerb"]
+ if(vess)
+ m_verb = vess
+ else
+ m_verb = "does something!"
+ nobold_verb = TRUE
+ nomessage = TRUE
+ else if(hidden_toe["CustomMessageVerb"])
+ if(findtext(hidden_toe["CustomMessageVerb"], "|"))
+ var/list/verblist = splittext(hidden_toe["CustomMessageVerb"], "|")
+ if(LAZYLEN(verblist) > 1)
+ m_verb = pick(verblist)
+ else
+ m_verb = hidden_toe["CustomMessageVerb"]
+ // nobold_verb = TRUE
+ else
+ m_verb = hidden_toe["CustomMessageVerb"]
+ // nobold_verb = TRUE
/// Character Directory link
- var/m_charlink = "\
-
" - cum += m_charlink - cum += " | " - cum += "" - cum += m_dmlink - cum += " | " - cum += "
" - cum += m_flirtlink - cum += " | " - cum += "" - cum += m_interactlink - cum += " | " - cum += "
[m_name] [m_verb]
" - cum += "[m_message]
" + cum += "[m_name] [m_verb]
" + if(!nomessage) + cum += "[m_message]
" cum += "Foxxxy Vixen asks,
- //Hey there! How's it going? I was thinking we could go on a date sometime. What do you say?
- - -/datum/controller/subsystem/chat/proc/get_horny_pfp(m_rawmessage, list/m_images, m_mode) + +/datum/controller/subsystem/chat/proc/get_horny_pfp(m_rawmessage, list/m_images, m_mode, list/imglist) // two-stace bytch of a process: First extract any custom modes, then dive in for modes, then just dump something var/modeimal = m_mode // now we have the modeimal, we can get the image! @@ -748,6 +758,7 @@ SUBSYSTEM_DEF(chat) if(maud["Mode"] == MODE_SAY) fallback_boy = "[maud["Host"]]/[maud["URL"]]" if(maud["Mode"] == modeimal) + imglist |= maud return "[maud["Host"]]/[maud["URL"]]" // eat my shorts, Jon // if we get here, we have an unsupported message mode, so just use Say return fallback_boy // the boy is back in town @@ -1083,7 +1094,7 @@ SUBSYSTEM_DEF(chat) return TRUE /mob/verb/setup_coolchat() - set name = "Setup CoolChat" + set name = "Setup VisualChat" set category = "Preferences" SSchat.HornyPreferences(src) @@ -1513,6 +1524,8 @@ SUBSYSTEM_DEF(chat) data["UserImages"] = P.ProfilePics data["UserCKEY"] = user.ckey data["Clipboard"] = clipboard.Copy() + data["imgsize"] = SSchat.img_size + data["UserName"] = P.real_name var/list/vhosts = assoc_list_strip_value(GLOB.supported_img_hosts) data["ValidHosts"] = vhosts /// Also all the previews @@ -1534,6 +1547,7 @@ SUBSYSTEM_DEF(chat) for(var/list/modus in P.ProfilePics) var/msgmode = modus["Mode"] var/message2say = "Hi." + var/message2say2 switch(msgmode) if(MODE_SAY) message2say = "Hello! You are hearing me talk. I am saying words. I am saying words to you. \ @@ -1560,11 +1574,16 @@ SUBSYSTEM_DEF(chat) AAAAAAAAA A AAA AAAAAAAAAAA AAAAAAAAAA AAAAAAAAAA AAA AAAAAAA AAAAAA AAAA A A AA AAAAAAAA AAA AAAA AAAA \ AA A A AA A AAA A A AAAAAAAAAAAAAA AAA A A AAA AAAAAAAAAAAA A AAAA A A A AA AAAAAAAAAAAAAAAAA AAAAAA \ AND NOW IM DONE!! HI!!" + if(MODE_PROFILE_PIC) + continue // hi else message2say = "Hi, this is a test of a custom message mode that has been set by you to be used to display \ a custom message mode. The mode is set to [replacetext(msgmode, ":","")]. If the previous sentence was \ cut off, please make a note of it. Cool huh? And now I'm done. Hi. [msgmode]" + message2say2 = "[msgmode]" var/msgmess = SSchat.PreviewHornyFurryDatingSimMessage(user, null, message2say, FALSE) + if(message2say2) + msgmess += "[SSchat.PreviewHornyFurryDatingSimMessage(user, null, message2say2, FALSE)]
" previewmsgs += list(list("Mode" = msgmode, "Message" = msgmess)) data["NumbermalMin"] = SSchat.numbermal_min data["NumbermalMax"] = SSchat.numbermal_max @@ -1579,6 +1598,8 @@ SUBSYSTEM_DEF(chat) data["OuterBox"] = list() data["ImageBox"] = list() for(var/mmode in P.mommychat_settings) + if(mmode == MODE_PROFILE_PIC) + continue // tchia uncle chuck // First, the top box settings var/list/topfox = list() topfox["Mode"] = mmode @@ -1586,57 +1607,57 @@ SUBSYSTEM_DEF(chat) topfox["Settings"] = list() topfox["Settings"] += list( list( - "Name" = "Gradient 1", + "Name" = "Image Box Top Gradient Color", "Val" = P.mommychat_settings[mmode]["TopBoxGradient1"], "Type" = "COLOR", "Loc" = "L", "PKey" = "TopBoxGradient1", - "Desc" = "The first color of the gradient for the top box.", + "Desc" = "The first color of the gradient for the section that contains the image for this message mode.", "Default" = "000000" ), list( - "Name" = "Gradient 2", + "Name" = "Image Box Bottom Gradient Color", "Val" = P.mommychat_settings[mmode]["TopBoxGradient2"], "Type" = "COLOR", "Loc" = "L", "PKey" = "TopBoxGradient2", - "Desc" = "The second color of the gradient for the top box.", + "Desc" = "The second color of the gradient for the section that contains the image for this message mode.", "Default" = "000000" ), list( - "Name" = "Gradient Angle", + "Name" = "Image Box Gradient Direction", "Val" = P.mommychat_settings[mmode]["TopBoxGradientAngle"], "Type" = "ANGLE", "Loc" = "L", "PKey" = "TopBoxGradientAngle", - "Desc" = "The angle of the gradient for the top box.", + "Desc" = "The angle of the gradient for the section that contains the image for this message mode.", "Default" = "0" ), list( - "Name" = "Border Color", + "Name" = "Image Box Outer Border Color", "Val" = P.mommychat_settings[mmode]["TopBoxBorderColor"], "Type" = "COLOR", "Loc" = "R", "PKey" = "TopBoxBorderColor", - "Desc" = "The color of the border for the top box.", + "Desc" = "The color of the border for the section that contains the image for this message mode.", "Default" = "000000" ), list( - "Name" = "Border Width", + "Name" = "Image Box Outer Border Width", "Val" = P.mommychat_settings[mmode]["TopBoxBorderWidth"], "Type" = "NUMBER", "Loc" = "R", "PKey" = "TopBoxBorderWidth", - "Desc" = "The width of the border for the top box.", + "Desc" = "The width of the border for the section that contains the image for this message mode. Set to 0 to disable.", "Default" = "1" ), list( - "Name" = "Border Style", + "Name" = "Image Box Outer Border Style", "Val" = P.mommychat_settings[mmode]["TopBoxBorderStyle"], "Type" = "SELECT", "Loc" = "R", "PKey" = "TopBoxBorderStyle", - "Desc" = "The style of the border for the top box.", + "Desc" = "The style of the border for the section that contains the image for this message mode.", "Default" = "solid", "Options" = SSchat.borderstyles ), @@ -1649,57 +1670,57 @@ SUBSYSTEM_DEF(chat) bottomfox["Settings"] = list() bottomfox["Settings"] += list( list( - "Name" = "Gradient 1", + "Name" = "Message Box Top Gradient Color", "Val" = P.mommychat_settings[mmode]["BottomBoxGradient1"], "Type" = "COLOR", "Loc" = "L", "PKey" = "BottomBoxGradient1", - "Desc" = "The first color of the gradient for the bottom box.", + "Desc" = "The first color of the gradient for the box that will contain your message.", "Default" = "000000" ), list( - "Name" = "Gradient 2", + "Name" = "Message Box Bottom Gradient Color", "Val" = P.mommychat_settings[mmode]["BottomBoxGradient2"], "Type" = "COLOR", "Loc" = "L", "PKey" = "BottomBoxGradient2", - "Desc" = "The second color of the gradient for the bottom box.", + "Desc" = "The second color of the gradient for the box that will contain your message.", "Default" = "000000" ), list( - "Name" = "Gradient Angle", + "Name" = "Message Box Gradient Direction", "Val" = P.mommychat_settings[mmode]["BottomBoxGradientAngle"], "Type" = "ANGLE", "Loc" = "L", "PKey" = "BottomBoxGradientAngle", - "Desc" = "The angle of the gradient for the bottom box.", + "Desc" = "The angle of the gradient for the box that will contain your message.", "Default" = "0" ), list( - "Name" = "Border Color", + "Name" = "Message Box Outer Border Color", "Val" = P.mommychat_settings[mmode]["BottomBoxBorderColor"], "Type" = "COLOR", "Loc" = "R", "PKey" = "BottomBoxBorderColor", - "Desc" = "The color of the border for the bottom box.", + "Desc" = "The color of the border for the box that will contain your message.", "Default" = "000000" ), list( - "Name" = "Border Width", + "Name" = "Message Box Outer Border Width", "Val" = P.mommychat_settings[mmode]["BottomBoxBorderWidth"], "Type" = "NUMBER", "Loc" = "R", "PKey" = "BottomBoxBorderWidth", - "Desc" = "The width of the border for the bottom box.", + "Desc" = "The width of the border for the box that will contain your message. Set to 0 to disable.", "Default" = "1" ), list( - "Name" = "Border Style", + "Name" = "Message Box Outer Border Style", "Val" = P.mommychat_settings[mmode]["BottomBoxBorderStyle"], "Type" = "SELECT", "Loc" = "R", "PKey" = "BottomBoxBorderStyle", - "Desc" = "The style of the border for the bottom box.", + "Desc" = "The style of the border for the box that will contain your message.", "Default" = "solid", "Options" = SSchat.borderstyles ), @@ -1767,7 +1788,7 @@ SUBSYSTEM_DEF(chat) "Options" = SSchat.borderstyles ), ) - data["Buttons"] += list(buttonfox) + data["Buttons"] += list(buttonfox) // unused /// Then, the Image Border settings var/list/imagefox = list() imagefox["Mode"] = mmode @@ -1803,7 +1824,7 @@ SUBSYSTEM_DEF(chat) "Options" = SSchat.borderstyles ), ) - data["ImageBox"] += list(imagefox) + data["ImageBox"] += list(imagefox) // unused /// And finally the Outer Box settings var/list/outerfox = list() outerfox["Mode"] = mmode @@ -1811,30 +1832,30 @@ SUBSYSTEM_DEF(chat) outerfox["Settings"] = list() outerfox["Settings"] += list( list( - "Name" = "Border Color", + "Name" = "Outer Box Border Color", "Val" = P.mommychat_settings[mmode]["OuterBoxBorderColor"], "Type" = "COLOR", "Loc" = "R", "PKey" = "OuterBoxBorderColor", - "Desc" = "The color of the border for the outer box.", + "Desc" = "The color of the border that will go around the entire message box.", "Default" = "000000" ), list( - "Name" = "Border Width", + "Name" = "Outer Box Border Width", "Val" = P.mommychat_settings[mmode]["OuterBoxBorderWidth"], "Type" = "NUMBER", "Loc" = "R", "PKey" = "OuterBoxBorderWidth", - "Desc" = "The width of the border for the outer box.", + "Desc" = "The width of the border that will go around the entire message box. Set to 0 to disable.", "Default" = "1" ), list( - "Name" = "Border Style", + "Name" = "Outer Box Border Style", "Val" = P.mommychat_settings[mmode]["OuterBoxBorderStyle"], "Type" = "SELECT", "Loc" = "R", "PKey" = "OuterBoxBorderStyle", - "Desc" = "The style of the border for the outer box.", + "Desc" = "The style of the border that will go around the entire message box.", "Default" = "solid", "Options" = SSchat.borderstyles ), @@ -1869,7 +1890,7 @@ SUBSYSTEM_DEF(chat) if("ToggleWhinyLittleBazingaMode") TOGGLE_BITFIELD(P.chat_toggles, CHAT_SEE_COOLCHAT) if(CHECK_BITFIELD(P.chat_toggles, CHAT_SEE_COOLCHAT)) - to_chat(M, span_notice("You will now see CoolChat messages!")) + to_chat(M, span_notice("You will now see VisualChat messages!")) else to_chat(M, span_notice("You will now see boring normal chat messages!")) . = CHANGED_NOTHING @@ -1982,6 +2003,8 @@ SUBSYSTEM_DEF(chat) PPc["URL"] = newurl if(!isnull(newhost)) PPc["Host"] = newhost // UX SUPREME + if(mode == MODE_PROFILE_PIC) + PPc["Suppress"] = TRUE to_chat(M, span_notice("URL for [mode2string(mode)] has been updated to [newurl]!")) . = CHANGED_IMAGES break @@ -2018,6 +2041,49 @@ SUBSYSTEM_DEF(chat) return FALSE else to_chat(M, span_notice("Profile entry for [mode2string(mode)] has been updated!")) + if("ModifyCustomBlankVerb") // if someone just types :bazinga:, show this message instead + var/mode = params["Mode"] + var/newmsg = params["NewMessage"] + // if(mode in SSchat.mandatory_modes) + // to_chat(M, span_alert("Unable to modify profile entry for [mode2string(mode)], mode is not modifiable! :c")) + // return FALSE + newmsg = replacetext(newmsg, @"\n", "") + if(!newmsg || !istext(newmsg) || !LAZYLEN(newmsg)) + to_chat(M, span_alert("Unable to modify profile entry for [mode2string(mode)], message cannot be empty! :c")) + return FALSE + for(var/list/PPc in P.ProfilePics) + if(PPc["Mode"] != mode) + continue + PPc["CustomBlankVerb"] = newmsg + to_chat(M, span_notice("Custom default message for [mode2string(mode)] has been updated!")) + . = CHANGED_IMAGES + break + if(!.) + to_chat(M, span_alert("Unable to modify profile entry for [mode2string(mode)], entry not found! :c")) + return FALSE + else + to_chat(M, span_notice("Profile entry for [mode2string(mode)] has been updated!")) + if("ModifyCustomMessageVerb") // if someone just types :bazinga:, show this verb as the message mode instead + var/mode = params["Mode"] + var/newverb = params["NewVerb"] + // if(mode in SSchat.mandatory_modes) // not that they can use it anyway + // to_chat(M, span_alert("Unable to modify profile entry for [mode2string(mode)], mode is not modifiable! :c")) + // return FALSE + if(!newverb || !istext(newverb) || !LAZYLEN(newverb)) + to_chat(M, span_alert("Unable to modify profile entry for [mode2string(mode)], verb cannot be empty! :c")) + return FALSE + for(var/list/PPc in P.ProfilePics) + if(PPc["Mode"] != mode) + continue + PPc["CustomMessageVerb"] = newverb + to_chat(M, span_notice("Custom default verb for [mode2string(mode)] has been updated!")) + . = CHANGED_IMAGES + break + if(!.) + to_chat(M, span_alert("Unable to modify profile entry for [mode2string(mode)], entry not found! :c")) + return FALSE + else + to_chat(M, span_notice("Profile entry for [mode2string(mode)] has been updated!")) if("AddProfileEntry") var/list/new_entry = list( "Mode" = ":[safepick(GLOB.ing_verbs)][safepick(GLOB.adverbs)]:", diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 146e383a58..d4e7c3bedd 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -583,7 +583,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(jobban_isbanned(user, "appearance")) dat += "You are banned from using custom names and appearances. You can continue to adjust your characters, but you will be randomised once you join the game.Ward Buttersworth says,
"Hello! You are hearing me talk. I am saying words. I am saying words to you. I am saying words to you in a friendly manner. I am not yelling, I am not whispering, I am not singing, I am not asking, I am not exclaiming. I am saying words to you, and you are hearing them. And now I am done. Hi."
+ Ward Buttersworth + says, +
++ "Hello! You are hearing me talk. I am saying words. I am saying words to you. I am saying words to you in a friendly manner. I am not yelling, I am not whispering, I am not singing, I am not asking, I am not exclaiming. I am saying words to you, and you are hearing them. And now I am done. Hi." +
+Welcome to the Profile Pics tab!
+ {"Here, you can set how VisualChat will render your chat messages, based on 'message modes'!"}+ {"Assign a profile picture to any form of message mode, such as 'say', 'whisper', or 'ask'."} +
++ {"Modify the verb that is associated with the message mode."} +
++ {'For instance, you can change "says," to "meows," or "purrs,".'} +
++ {"You can have multiple verbs for the same message mode, separated by: |"} +
++ {'For instance, "meows,|purrs," would randomly select between "meows," and "purrs," when that message mode is used.'} +
++ {"Add in a new message mode, or remove an existing (custom) message mode."} +
++ {"To add a Profile Pic to a message mode, it's as easy as 1, 2, 3!"} +
++ {"Upload your image to Catbox.moe or Gyazo."} +
++ {"Don't have an image? Generate some with Perchance! It's a free AI generator designed for making furry images."} +
++ {"You can go there by clicking the 'Get Profile Pics' button."} +
++ {"Copy the image link."} +
++ {"Paste the image link into the text box to the right of the Host dropdown."} +
+
+ {"And that's it! You've added a Profile Pic to a message mode!"}
+
+ {"You can also manually set the Host in the dropdown menu, and paste just the filename in the text box, if you want."}
+
+ {"There are two kinds of message modes: Default and Custom."}
+
+ {"Let's start with Default first!"}
+
+ {"These are the message modes that VisualChat comes with by default, and that the game itself natively supports (arguably)."}
+
+ {"While you can't remove these, you can modify the verb associated with them."}
+
+ {"For instance, you can change 'says,' to 'meows,' or 'purrs,'."}
+
+ {"You can also have multiple verbs for the same message mode, separated by: |"}
+
+ {"For instance, 'meows,|purrs,' would randomly select between 'meows,' and 'purrs,' when that message mode is used."}
+
+ {"These message modes are used based on the 'context' of your message, which is determined by the game itself."}
+
+ {"For instance, if you say 'Hello, Cutie Cat!' VisualChat will use the 'Exclaim' message mode to render your message."}
+
+ {"Or, if you use the hotkey to whisper, VisualChat will use the 'Whisper' message mode to render your message."}
+
+ {"There'll be a cheat sheet at the end of all this, don't worry!"}
+
+ {"These are message modes that you've added yourself, and share a lot of the same functionality as Default message modes, with a few differences."} +
+
+ {"Custom message modes are used when you add its associated tag to the end of your message."}
+
+ {"For instance, if you say 'Hello, Cutie Cat! :tag:', VisualChat will use the 'tag' message mode to render your message."}
+
+ {"You can also assign a custom 'Blank' verb to your custom message mode, which will be displayed in place of the verb, if your chat message contains 'only' the tag."}
+
+ {"For instance, if you say ':tag:', VisualChat will use the 'tag' message mode to render your message, and display the 'Blank' verb after your name."}
+
+ {"This allows you to, say, have a mode for :yay:, which could have a picture of your character going 'yay!', and a 'Blank' verb of 'is excited!'."}
+
+ {"To add a custom message mode:"} +
++ {"Scroll to the bottom of the list and press the 'Add Custom Mode' button."} +
++ {"Click the randomized mode name and change it to whatever you want (so long as it's alphanumeric with no spaces)."} +
++ {"Click the associated verb and set it to whatever you want."} +
++ {"Click the 'Blank' verb and set it to whatever you want."} +
++ {"Give it a pretty picture"} +
++ {"And you're ready to go!"} +
++ {"Now at this point, you've probably realized that there's a "} lot {" of settings to change!"} +
+ {"And you're right! There are a lot of settings to change! But don't worry, I've got you covered!"} + + {"You can copy the settings from one message mode to another, and save yourself a lot of time if you want to fill in the blanks with the same picture!"} + + {"Just click the 'Copy' button on the message mode you want to copy, and then click the 'Paste' button on the message mode you want to paste to!"} + + {"Only the image settings are copied, which, honestly, is around 90% of the settings to set."} + ++ {"If you want to remove a Profile Pic from a message mode, you can do that too!"} +
+ {"On the far right of each message mode, there's a 'Clear' button. Looks like an X."} + + {"For Default message modes, this will revert the message mode to its default settings."} + + {"For Custom message modes, this will delete the message mode entirely, forever!"} + + {"There is a confirmation dialog, so don't worry about accidentally deleting your favorite message mode!"} + ++ {"The Message Appearance tab is where you can set up the appearance of your chat messages using the power of early 2000s style sheets!"} +
+ {"Each message mode has its own separate customizable appearance, so you can have your whispers be a totally different style to your yells!"} + + {"There are a lot of options, a lot of tabs, and a lot of gradients, but don't worry! I'll guide you through it!"} + ++ {"The left column is where you select the message mode you want to edit."} +
++ {"The upper row of the section to the right is where you select which part of the message appearance you want to edit."} +
++ {"Under that is a set of options for that part of the message appearance."} +
++ {"Such as the gradient, the border color, the border style, and the border width."} +
++ {"Some sections will only have the border available to edit."} +
++ {"Under that is a preview of the message appearance."} +
++ {"This is how your message will look to yourself and others when you use this message mode."} +
++ {"Yes, you can use whichever colors and borders you want, there are no restrictions!"} +
++ {"Just keep in mind that this will be seen by others, and is definitely part of the impression you give off, for better or worse! =3"} +
++ {"The Preview tab is where you can see how your chat messages will look to yourself and others!"} +
+ {"Each message mode has its own separate preview, so you can see how your whispers will look, and how your yells will look!"} + + {"Custom message modes will have two previews: one for when it is used with a message, and one for when it is used on its own."} + + {"Fun!"} + ++ {"Everything autosaves, so you don't have to worry about losing your settings!"} +
+ {"But if you want to make sure, you can click the 'Save' button at the bottom of the window!"} + ++ {"If you want to take a break from seeing VisualChat's messages, you can toggle the visibility of VisualChat's messages with the 'VisualChat Visible/Hidden' button!"} +
+ {"While VisualChat is hidden, you will see all messages from other players as plain text, without any of the VisualChat flair!"} + + {"Other players will still see your messages as VisualChat messages if they have VisualChat enabled!"} + ++ {"Here's a cheat sheet for the default message modes, and how they're used!"} +
+ {"Don't worry, you don't have to memorize this, chances are you'll encounter most of these without even thinking about it!"} + ++ {"Byond that, it's all up to you!"} +
+
+ {"-With love,"}
+
+ {"Dan"}
+
>1,m=23===u?r(2,-24)-r(2,-77):0,g=e<0||0===e&&1/e<0?1:0,y=0;for((e=n(e))!=e||e===Infinity?(l=e!=e?1:0,c=h):(c=o(i(e)/a),e*(f=r(2,-c))<1&&(c--,f*=2),(e+=c+v>=1?m/f:m*r(2,1-v))*f>=2&&(c++,f/=2),c+v>=h?(l=0,c=h):c+v>=1?(l=(e*f-1)*r(2,u),c+=v):(l=e*r(2,v-1)*r(2,u),c=0));u>=8;)d[y++]=255&l,l/=256,u-=8;for(c=c<0;)d[y++]=255&c,c/=256,p-=8;return d[--y]|=128*g,d},unpack:function(e,t){var n,o=e.length,i=8*o-t-1,a=(1<>1,s=i-7,c=o-1,l=e[c--],f=127&l;for(l>>=7;s>0;)f=256*f+e[c--],s-=8;for(n=f&(1<<-s)-1,f>>=-s,s+=t;s>0;)n=256*n+e[c--],s-=8;if(0===f)f=1-u;else{if(f===a)return n?NaN:l?-Infinity:Infinity;n+=r(2,t),f-=u}return(l?-1:1)*n*r(2,f-t)}}},89753:function(e,t,n){"use strict";var r=n(38457),o=n(3440),i=n(86790),a=Object,u=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?u(e,""):a(e)}:a},5283:function(e,t,n){"use strict";var r=n(48609),o=n(46840),i=n(97916);e.exports=function(e,t,n){var a,u;return i&&r(a=t.constructor)&&a!==n&&o(u=a.prototype)&&u!==n.prototype&&i(e,u),e}},91634:function(e,t,n){"use strict";var r=n(38457),o=n(48609),i=n(45065),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},31738:function(e,t,n){"use strict";var r=n(46840),o=n(90460);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},94986:function(e,t,n){"use strict";var r=n(65439),o=n(38457),i=n(94083),a=n(46840),u=n(35821),s=n(92867).f,c=n(86658),l=n(26661),f=n(77311),d=n(93054),p=n(14097),h=!1,v=d("meta"),m=0,g=function(e){s(e,v,{value:{objectID:"O"+m++,weakData:{}}})},y=e.exports={enable:function(){y.enable=function(){},h=!0;var e=c.f,t=o([].splice),n={};n[v]=1,e(n).length&&(c.f=function(n){for(var r=e(n),o=0,i=r.length;oy;y++)if((x=O(e[y]))&&c(v,x))return x;return new h(!1)}m=l(e,g)}for(w=C?e.next:m.next;!(_=o(w,m)).done;){try{x=O(_.value)}catch(F){d(m,"throw",F)}if("object"==typeof x&&x&&c(v,x))return x}return new h(!1)}},94648:function(e,t,n){"use strict";var r=n(68609),o=n(8782),i=n(87869);e.exports=function(e,t,n){var a,u;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(s){u=!0,a=s}if("throw"===t)throw n;if(u)throw a;return o(a),n}},40897:function(e,t,n){"use strict";var r=n(98852).IteratorPrototype,o=n(8356),i=n(12311),a=n(13453),u=n(87804),s=function(){return this};e.exports=function(e,t,n,c){var l=t+" Iterator";return e.prototype=o(r,{next:i(+!c,n)}),a(e,l,!1,!0),u[l]=s,e}},63424:function(e,t,n){"use strict";var r=n(65439),o=n(68609),i=n(65787),a=n(2142),u=n(48609),s=n(40897),c=n(45526),l=n(97916),f=n(13453),d=n(90460),p=n(83972),h=n(42847),v=n(87804),m=n(98852),g=a.PROPER,y=a.CONFIGURABLE,b=m.IteratorPrototype,x=m.BUGGY_SAFARI_ITERATORS,w=h("iterator"),_="keys",E="values",D="entries",C=function(){return this};e.exports=function(e,t,n,a,h,m,k){s(n,t,a);var A,S,N,O=function(e){if(e===h&&B)return B;if(!x&&e in M)return M[e];switch(e){case _:case E:case D:return function(){return new n(this,e)}}return function(){return new n(this)}},F=t+" Iterator",T=!1,M=e.prototype,I=M[w]||M["@@iterator"]||h&&M[h],B=!x&&I||O(h),L="Array"==t&&M.entries||I;if(L&&(A=c(L.call(new e)))!==Object.prototype&&A.next&&(i||c(A)===b||(l?l(A,b):u(A[w])||p(A,w,C)),f(A,F,!0,!0),i&&(v[F]=C)),g&&h==E&&I&&I.name!==E&&(!i&&y?d(M,"name",E):(T=!0,B=function(){return o(I,this)})),h)if(S={values:O(E),keys:m?B:O(_),entries:O(D)},k)for(N in S)(x||T||!(N in M))&&p(M,N,S[N]);else r({target:t,proto:!0,forced:x||T},S);return i&&!k||M[w]===B||p(M,w,B,{name:h}),v[t]=B,S}},98852:function(e,t,n){"use strict";var r,o,i,a=n(3440),u=n(48609),s=n(46840),c=n(8356),l=n(45526),f=n(83972),d=n(42847),p=n(65787),h=d("iterator"),v=!1;[].keys&&("next"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!s(r)||a((function(){var e={};return r[h].call(e)!==e}))?r={}:p&&(r=c(r)),u(r[h])||f(r,h,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},87804:function(e){"use strict";e.exports={}},83440:function(e,t,n){"use strict";var r=n(60780);e.exports=function(e){return r(e.length)}},1402:function(e,t,n){"use strict";var r=n(3440),o=n(48609),i=n(35821),a=n(4098),u=n(2142).CONFIGURABLE,s=n(91634),c=n(29017),l=c.enforce,f=c.get,d=Object.defineProperty,p=a&&!r((function(){return 8!==d((function(){}),"length",{value:8}).length})),h=String(String).split("String"),v=e.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!i(e,"name")||u&&e.name!==t)&&(a?d(e,"name",{value:t,configurable:!0}):e.name=t),p&&n&&i(n,"arity")&&e.length!==n.arity&&d(e,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&d(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=undefined)}catch(o){}var r=l(e);return i(r,"source")||(r.source=h.join("string"==typeof t?t:"")),e};Function.prototype.toString=v((function(){return o(this)&&f(this).source||s(this)}),"toString")},48277:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){var t=+e;return 0==t?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}:t},36344:function(e,t,n){"use strict";var r=n(54768),o=Math.abs,i=Math.pow,a=i(2,-52),u=i(2,-23),s=i(2,127)*(2-u),c=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=+e,l=o(i),f=r(i);return l "+e+"1?arguments[1]:undefined,D=E!==undefined,C=c(w);if(C&&!l(C))for(b=(y=s(w,C)).next,w=[];!(g=o(b,y)).done;)w.push(g.value);for(D&&_>2&&(E=r(E,arguments[2])),n=u(w),h=new(d(x))(n),v=f(h),t=0;n>t;t++)m=D?E(w[t],t):w[t],h[t]=v?p(m):+m;return h}},35927:function(e,t,n){"use strict";var r=n(89746),o=n(75693),i=r.aTypedArrayConstructor,a=r.getTypedArrayConstructor;e.exports=function(e){return i(o(e,a(e)))}},93054:function(e,t,n){"use strict";var r=n(38457),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(e===undefined?"":e)+")_"+a(++o+i,36)}},79415:function(e,t,n){"use strict";var r=n(60265);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},78590:function(e,t,n){"use strict";var r=n(4098),o=n(3440);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},44020:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(e0?(r=n/c)*r:n;return c===Infinity?Infinity:c*a(o)}})},86378:function(e,t,n){"use strict";var r=n(65439),o=n(3440),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=65535,r=+e,o=+t,i=n&r,a=n&o;return 0|i*a+((n&r>>>16)*a+i*(n&o>>>16)<<16>>>0)}})},93550:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{log10:n(84234)})},98102:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{log1p:n(77477)})},30584:function(e,t,n){"use strict";var r=n(65439),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},95379:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{sign:n(54768)})},92091:function(e,t,n){"use strict";var r=n(65439),o=n(3440),i=n(48277),a=Math.abs,u=Math.exp,s=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){var t=+e;return a(t)<1?(i(t)-i(-t))/2:(u(t-1)-u(-t-1))*(s/2)}})},73398:function(e,t,n){"use strict";var r=n(65439),o=n(48277),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=+e,n=o(t),r=o(-t);return n==Infinity?1:r==Infinity?-1:(n-r)/(i(t)+i(-t))}})},77545:function(e,t,n){"use strict";n(13453)(Math,"Math",!0)},72430:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{trunc:n(6730)})},23794:function(e,t,n){"use strict";var r=n(65439),o=n(65787),i=n(4098),a=n(25511),u=n(18524),s=n(38457),c=n(50330),l=n(35821),f=n(5283),d=n(52625),p=n(32437),h=n(73716),v=n(3440),m=n(86658).f,g=n(18593).f,y=n(92867).f,b=n(43270),x=n(93842).trim,w="Number",_=a[w],E=u[w],D=_.prototype,C=a.TypeError,k=s("".slice),A=s("".charCodeAt),S=function(e){var t=h(e,"number");return"bigint"==typeof t?t:N(t)},N=function(e){var t,n,r,o,i,a,u,s,c=h(e,"number");if(p(c))throw C("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=x(c),43===(t=A(c,0))||45===t){if(88===(n=A(c,2))||120===n)return NaN}else if(48===t){switch(A(c,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+c}for(a=(i=k(c,2)).length,u=0;uo)return NaN;return parseInt(i,r)}return+c},O=c(w,!_(" 0o1")||!_("0b1")||_("+0x1")),F=function(e){return d(D,e)&&v((function(){b(e)}))},T=function(e){var t=arguments.length<1?0:_(S(e));return F(this)?f(Object(t),this,T):t};T.prototype=D,O&&!o&&(D.constructor=T),r({global:!0,constructor:!0,wrap:!0,forced:O},{Number:T});var M=function(e,t){for(var n,r=i?m(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)l(t,n=r[o])&&!l(e,n)&&y(e,n,g(t,n))};o&&E&&M(u[w],E),(O||o)&&M(u[w],_)},55349:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},27495:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0},{isFinite:n(90059)})},59798:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0},{isInteger:n(22796)})},33089:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},37881:function(e,t,n){"use strict";var r=n(65439),o=n(22796),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},78876:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},9344:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},86071:function(e,t,n){"use strict";var r=n(65439),o=n(39302);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},84717:function(e,t,n){"use strict";var r=n(65439),o=n(89466);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},86649:function(e,t,n){"use strict";var r=n(65439),o=n(38457),i=n(53893),a=n(43270),u=n(82341),s=n(3440),c=RangeError,l=String,f=Math.floor,d=o(u),p=o("".slice),h=o(1..toFixed),v=function b(e,t,n){return 0===t?n:t%2==1?b(e,t-1,n*e):b(e*e,t/2,n)},m=function(e,t,n){for(var r=-1,o=n;++r<6;)o+=t*e[r],e[r]=o%1e7,o=f(o/1e7)},g=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=f(r/t),r=r%t*1e7},y=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=l(e[t]);n=""===n?r:n+d("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:s((function(){return"0.000"!==h(8e-5,3)||"1"!==h(.9,0)||"1.25"!==h(1.255,2)||"1000000000000000128"!==h(0xde0b6b3a7640080,0)}))||!s((function(){h({})}))},{toFixed:function(e){var t,n,r,o,u=a(this),s=i(e),f=[0,0,0,0,0,0],h="",b="0";if(s<0||s>20)throw c("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return l(u);if(u<0&&(h="-",u=-u),u>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(u*v(2,69,1))-69)<0?u*v(2,-t,1):u/v(2,t,1),n*=4503599627370496,(t=52-t)>0){for(m(f,0,n),r=s;r>=7;)m(f,1e7,0),r-=7;for(m(f,v(10,r,1),0),r=t-1;r>=23;)g(f,1<<23),r-=23;g(f,1<>1]]
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},95592:function(e,t){"use strict";t.__esModule=!0,t.sleep=t.debounce=void 0;t.debounce=function(e,t,n){var r;return void 0===n&&(n=!1),function(){for(var o=arguments.length,i=new Array(o),a=0;a
\n":"'+(n?e:d(e,!0))+"
\n"},n.blockquote=function(e){return""+(n?e:d(e,!0))+"
\n"+e+"
\n"},n.html=function(e){return e},n.heading=function(e,t,n,r){return this.options.headerIds?"
\n":"
\n"},n.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+""+r+">\n"},n.listitem=function(e){return"\n\n"+e+"\n"+t+"
\n"},n.tablerow=function(e){return"\n"+e+" \n"},n.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+""+n+">\n"},n.strong=function(e){return""+e+""},n.em=function(e){return""+e+""},n.codespan=function(e){return""+e+"
"},n.br=function(){return this.options.xhtml?"
":"
"},n.del=function(e){return""+e+""},n.link=function(e,t,n){if(null===(e=b(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"+n+""},n.image=function(e,t,n){if(null===(e=b(this.options.sanitize,this.options.baseUrl,e)))return n;var r='":">"},n.text=function(e){return e},e}(),j=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),V=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),R=function(){function e(e){this.options=e||t.defaults,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new j,this.slugger=new V}e.parse=function(t,n){return new e(n).parse(t)},e.parseInline=function(t,n){return new e(n).parseInline(t)};var n=e.prototype;return n.parse=function(e,t){void 0===t&&(t=!0);var n,r,o,i,a,u,s,c,l,f,d,p,v,m,g,y,b,x,w,_="",E=e.length;for(n=0;n
"+d(e.message+"",!0)+"";throw e}try{var s=L.lex(e,t);if(t.walkTokens){if(t.async)return Promise.all(z.walkTokens(s,t.walkTokens)).then((function(){return R.parse(s,t)}))["catch"](u);z.walkTokens(s,t.walkTokens)}return R.parse(s,t)}catch(c){u(c)}}z.options=z.setOptions=function(e){var n;return C(z.defaults,e),n=z.defaults,t.defaults=n,z},z.getDefaults=i,z.defaults=t.defaults,z.use=function(){for(var e=z.defaults.extensions||{renderers:{},childTokens:{}},t=arguments.length,n=new Array(t),r=0;r
"+d(r.message+"",!0)+"";throw r}},z.Parser=R,z.parser=R.parse,z.Renderer=P,z.TextRenderer=j,z.Lexer=L,z.lexer=L.lex,z.Tokenizer=F,z.Slugger=V,z.parse=z;var K=z.options,U=z.setOptions,Y=z.use,H=z.walkTokens,W=z.parseInline,$=z,G=R.parse,q=L.lex;t.Lexer=L,t.Parser=R,t.Renderer=P,t.Slugger=V,t.TextRenderer=j,t.Tokenizer=F,t.getDefaults=i,t.lexer=q,t.marked=z,t.options=K,t.parse=$,t.parseInline=W,t.parser=G,t.setOptions=U,t.use=Y,t.walkTokens=H},60207:function(e,t){"use strict";t.__esModule=!0,t.subscribe=t.setupHotReloading=t.sendMessage=t.sendLogEntry=void 0;var n=[];t.subscribe=function(e){return n.push(e)};t.sendMessage=function(e){};t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}}}]); \ No newline at end of file +(self.webpackChunktgui_workspace=self.webpackChunktgui_workspace||[]).push([["tgui-common"],{46877:function(e,t,n){"use strict";t.__esModule=!0,t.createPopper=void 0,t.popperGenerator=v;var r=d(n(86310)),o=d(n(99470)),i=d(n(24403)),a=d(n(84416)),u=(d(n(59493)),d(n(3738))),s=d(n(82053)),c=(d(n(53131)),d(n(13611)),d(n(63992)),d(n(76197))),l=d(n(76316));t.detectOverflow=l["default"];var f=n(50695);n(63570);function d(e){return e&&e.__esModule?e:{"default":e}}var p={placement:"bottom",modifiers:[],strategy:"absolute"};function h(){for(var e=arguments.length,t=new Array(e),n=0;n
>1,m=23===u?r(2,-24)-r(2,-77):0,g=e<0||0===e&&1/e<0?1:0,y=0;for((e=n(e))!=e||e===Infinity?(l=e!=e?1:0,c=h):(c=o(i(e)/a),e*(f=r(2,-c))<1&&(c--,f*=2),(e+=c+v>=1?m/f:m*r(2,1-v))*f>=2&&(c++,f/=2),c+v>=h?(l=0,c=h):c+v>=1?(l=(e*f-1)*r(2,u),c+=v):(l=e*r(2,v-1)*r(2,u),c=0));u>=8;)d[y++]=255&l,l/=256,u-=8;for(c=c<0;)d[y++]=255&c,c/=256,p-=8;return d[--y]|=128*g,d},unpack:function(e,t){var n,o=e.length,i=8*o-t-1,a=(1<>1,s=i-7,c=o-1,l=e[c--],f=127&l;for(l>>=7;s>0;)f=256*f+e[c--],s-=8;for(n=f&(1<<-s)-1,f>>=-s,s+=t;s>0;)n=256*n+e[c--],s-=8;if(0===f)f=1-u;else{if(f===a)return n?NaN:l?-Infinity:Infinity;n+=r(2,t),f-=u}return(l?-1:1)*n*r(2,f-t)}}},89753:function(e,t,n){"use strict";var r=n(38457),o=n(3440),i=n(86790),a=Object,u=r("".split);e.exports=o((function(){return!a("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?u(e,""):a(e)}:a},5283:function(e,t,n){"use strict";var r=n(48609),o=n(46840),i=n(97916);e.exports=function(e,t,n){var a,u;return i&&r(a=t.constructor)&&a!==n&&o(u=a.prototype)&&u!==n.prototype&&i(e,u),e}},91634:function(e,t,n){"use strict";var r=n(38457),o=n(48609),i=n(45065),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(e){return a(e)}),e.exports=i.inspectSource},31738:function(e,t,n){"use strict";var r=n(46840),o=n(90460);e.exports=function(e,t){r(t)&&"cause"in t&&o(e,"cause",t.cause)}},94986:function(e,t,n){"use strict";var r=n(65439),o=n(38457),i=n(94083),a=n(46840),u=n(35821),s=n(92867).f,c=n(86658),l=n(26661),f=n(77311),d=n(93054),p=n(14097),h=!1,v=d("meta"),m=0,g=function(e){s(e,v,{value:{objectID:"O"+m++,weakData:{}}})},y=e.exports={enable:function(){y.enable=function(){},h=!0;var e=c.f,t=o([].splice),n={};n[v]=1,e(n).length&&(c.f=function(n){for(var r=e(n),o=0,i=r.length;oy;y++)if((x=O(e[y]))&&c(v,x))return x;return new h(!1)}m=l(e,g)}for(w=C?e.next:m.next;!(_=o(w,m)).done;){try{x=O(_.value)}catch(F){d(m,"throw",F)}if("object"==typeof x&&x&&c(v,x))return x}return new h(!1)}},94648:function(e,t,n){"use strict";var r=n(68609),o=n(8782),i=n(87869);e.exports=function(e,t,n){var a,u;o(e);try{if(!(a=i(e,"return"))){if("throw"===t)throw n;return n}a=r(a,e)}catch(s){u=!0,a=s}if("throw"===t)throw n;if(u)throw a;return o(a),n}},40897:function(e,t,n){"use strict";var r=n(98852).IteratorPrototype,o=n(8356),i=n(12311),a=n(13453),u=n(87804),s=function(){return this};e.exports=function(e,t,n,c){var l=t+" Iterator";return e.prototype=o(r,{next:i(+!c,n)}),a(e,l,!1,!0),u[l]=s,e}},63424:function(e,t,n){"use strict";var r=n(65439),o=n(68609),i=n(65787),a=n(2142),u=n(48609),s=n(40897),c=n(45526),l=n(97916),f=n(13453),d=n(90460),p=n(83972),h=n(42847),v=n(87804),m=n(98852),g=a.PROPER,y=a.CONFIGURABLE,b=m.IteratorPrototype,x=m.BUGGY_SAFARI_ITERATORS,w=h("iterator"),_="keys",E="values",D="entries",C=function(){return this};e.exports=function(e,t,n,a,h,m,k){s(n,t,a);var A,S,N,O=function(e){if(e===h&&B)return B;if(!x&&e in M)return M[e];switch(e){case _:case E:case D:return function(){return new n(this,e)}}return function(){return new n(this)}},F=t+" Iterator",T=!1,M=e.prototype,I=M[w]||M["@@iterator"]||h&&M[h],B=!x&&I||O(h),L="Array"==t&&M.entries||I;if(L&&(A=c(L.call(new e)))!==Object.prototype&&A.next&&(i||c(A)===b||(l?l(A,b):u(A[w])||p(A,w,C)),f(A,F,!0,!0),i&&(v[F]=C)),g&&h==E&&I&&I.name!==E&&(!i&&y?d(M,"name",E):(T=!0,B=function(){return o(I,this)})),h)if(S={values:O(E),keys:m?B:O(_),entries:O(D)},k)for(N in S)(x||T||!(N in M))&&p(M,N,S[N]);else r({target:t,proto:!0,forced:x||T},S);return i&&!k||M[w]===B||p(M,w,B,{name:h}),v[t]=B,S}},98852:function(e,t,n){"use strict";var r,o,i,a=n(3440),u=n(48609),s=n(46840),c=n(8356),l=n(45526),f=n(83972),d=n(42847),p=n(65787),h=d("iterator"),v=!1;[].keys&&("next"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):v=!0),!s(r)||a((function(){var e={};return r[h].call(e)!==e}))?r={}:p&&(r=c(r)),u(r[h])||f(r,h,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:v}},87804:function(e){"use strict";e.exports={}},83440:function(e,t,n){"use strict";var r=n(60780);e.exports=function(e){return r(e.length)}},1402:function(e,t,n){"use strict";var r=n(3440),o=n(48609),i=n(35821),a=n(4098),u=n(2142).CONFIGURABLE,s=n(91634),c=n(29017),l=c.enforce,f=c.get,d=Object.defineProperty,p=a&&!r((function(){return 8!==d((function(){}),"length",{value:8}).length})),h=String(String).split("String"),v=e.exports=function(e,t,n){"Symbol("===String(t).slice(0,7)&&(t="["+String(t).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(t="get "+t),n&&n.setter&&(t="set "+t),(!i(e,"name")||u&&e.name!==t)&&(a?d(e,"name",{value:t,configurable:!0}):e.name=t),p&&n&&i(n,"arity")&&e.length!==n.arity&&d(e,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&d(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=undefined)}catch(o){}var r=l(e);return i(r,"source")||(r.source=h.join("string"==typeof t?t:"")),e};Function.prototype.toString=v((function(){return o(this)&&f(this).source||s(this)}),"toString")},48277:function(e){"use strict";var t=Math.expm1,n=Math.exp;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){var t=+e;return 0==t?t:t>-1e-6&&t<1e-6?t+t*t/2:n(t)-1}:t},36344:function(e,t,n){"use strict";var r=n(54768),o=Math.abs,i=Math.pow,a=i(2,-52),u=i(2,-23),s=i(2,127)*(2-u),c=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=+e,l=o(i),f=r(i);return l "+e+"1?arguments[1]:undefined,D=E!==undefined,C=c(w);if(C&&!l(C))for(b=(y=s(w,C)).next,w=[];!(g=o(b,y)).done;)w.push(g.value);for(D&&_>2&&(E=r(E,arguments[2])),n=u(w),h=new(d(x))(n),v=f(h),t=0;n>t;t++)m=D?E(w[t],t):w[t],h[t]=v?p(m):+m;return h}},35927:function(e,t,n){"use strict";var r=n(89746),o=n(75693),i=r.aTypedArrayConstructor,a=r.getTypedArrayConstructor;e.exports=function(e){return i(o(e,a(e)))}},93054:function(e,t,n){"use strict";var r=n(38457),o=0,i=Math.random(),a=r(1..toString);e.exports=function(e){return"Symbol("+(e===undefined?"":e)+")_"+a(++o+i,36)}},79415:function(e,t,n){"use strict";var r=n(60265);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},78590:function(e,t,n){"use strict";var r=n(4098),o=n(3440);e.exports=r&&o((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},44020:function(e){"use strict";var t=TypeError;e.exports=function(e,n){if(e0?(r=n/c)*r:n;return c===Infinity?Infinity:c*a(o)}})},86378:function(e,t,n){"use strict";var r=n(65439),o=n(3440),i=Math.imul;r({target:"Math",stat:!0,forced:o((function(){return-5!=i(4294967295,5)||2!=i.length}))},{imul:function(e,t){var n=65535,r=+e,o=+t,i=n&r,a=n&o;return 0|i*a+((n&r>>>16)*a+i*(n&o>>>16)<<16>>>0)}})},93550:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{log10:n(84234)})},98102:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{log1p:n(77477)})},30584:function(e,t,n){"use strict";var r=n(65439),o=Math.log,i=Math.LN2;r({target:"Math",stat:!0},{log2:function(e){return o(e)/i}})},95379:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{sign:n(54768)})},92091:function(e,t,n){"use strict";var r=n(65439),o=n(3440),i=n(48277),a=Math.abs,u=Math.exp,s=Math.E;r({target:"Math",stat:!0,forced:o((function(){return-2e-17!=Math.sinh(-2e-17)}))},{sinh:function(e){var t=+e;return a(t)<1?(i(t)-i(-t))/2:(u(t-1)-u(-t-1))*(s/2)}})},73398:function(e,t,n){"use strict";var r=n(65439),o=n(48277),i=Math.exp;r({target:"Math",stat:!0},{tanh:function(e){var t=+e,n=o(t),r=o(-t);return n==Infinity?1:r==Infinity?-1:(n-r)/(i(t)+i(-t))}})},77545:function(e,t,n){"use strict";n(13453)(Math,"Math",!0)},72430:function(e,t,n){"use strict";n(65439)({target:"Math",stat:!0},{trunc:n(6730)})},23794:function(e,t,n){"use strict";var r=n(65439),o=n(65787),i=n(4098),a=n(25511),u=n(18524),s=n(38457),c=n(50330),l=n(35821),f=n(5283),d=n(52625),p=n(32437),h=n(73716),v=n(3440),m=n(86658).f,g=n(18593).f,y=n(92867).f,b=n(43270),x=n(93842).trim,w="Number",_=a[w],E=u[w],D=_.prototype,C=a.TypeError,k=s("".slice),A=s("".charCodeAt),S=function(e){var t=h(e,"number");return"bigint"==typeof t?t:N(t)},N=function(e){var t,n,r,o,i,a,u,s,c=h(e,"number");if(p(c))throw C("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=x(c),43===(t=A(c,0))||45===t){if(88===(n=A(c,2))||120===n)return NaN}else if(48===t){switch(A(c,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+c}for(a=(i=k(c,2)).length,u=0;uo)return NaN;return parseInt(i,r)}return+c},O=c(w,!_(" 0o1")||!_("0b1")||_("+0x1")),F=function(e){return d(D,e)&&v((function(){b(e)}))},T=function(e){var t=arguments.length<1?0:_(S(e));return F(this)?f(Object(t),this,T):t};T.prototype=D,O&&!o&&(D.constructor=T),r({global:!0,constructor:!0,wrap:!0,forced:O},{Number:T});var M=function(e,t){for(var n,r=i?m(t):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;r.length>o;o++)l(t,n=r[o])&&!l(e,n)&&y(e,n,g(t,n))};o&&E&&M(u[w],E),(O||o)&&M(u[w],_)},55349:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)})},27495:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0},{isFinite:n(90059)})},59798:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0},{isInteger:n(22796)})},33089:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0},{isNaN:function(e){return e!=e}})},37881:function(e,t,n){"use strict";var r=n(65439),o=n(22796),i=Math.abs;r({target:"Number",stat:!0},{isSafeInteger:function(e){return o(e)&&i(e)<=9007199254740991}})},78876:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991})},9344:function(e,t,n){"use strict";n(65439)({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991})},86071:function(e,t,n){"use strict";var r=n(65439),o=n(39302);r({target:"Number",stat:!0,forced:Number.parseFloat!=o},{parseFloat:o})},84717:function(e,t,n){"use strict";var r=n(65439),o=n(89466);r({target:"Number",stat:!0,forced:Number.parseInt!=o},{parseInt:o})},86649:function(e,t,n){"use strict";var r=n(65439),o=n(38457),i=n(53893),a=n(43270),u=n(82341),s=n(3440),c=RangeError,l=String,f=Math.floor,d=o(u),p=o("".slice),h=o(1..toFixed),v=function b(e,t,n){return 0===t?n:t%2==1?b(e,t-1,n*e):b(e*e,t/2,n)},m=function(e,t,n){for(var r=-1,o=n;++r<6;)o+=t*e[r],e[r]=o%1e7,o=f(o/1e7)},g=function(e,t){for(var n=6,r=0;--n>=0;)r+=e[n],e[n]=f(r/t),r=r%t*1e7},y=function(e){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==e[t]){var r=l(e[t]);n=""===n?r:n+d("0",7-r.length)+r}return n};r({target:"Number",proto:!0,forced:s((function(){return"0.000"!==h(8e-5,3)||"1"!==h(.9,0)||"1.25"!==h(1.255,2)||"1000000000000000128"!==h(0xde0b6b3a7640080,0)}))||!s((function(){h({})}))},{toFixed:function(e){var t,n,r,o,u=a(this),s=i(e),f=[0,0,0,0,0,0],h="",b="0";if(s<0||s>20)throw c("Incorrect fraction digits");if(u!=u)return"NaN";if(u<=-1e21||u>=1e21)return l(u);if(u<0&&(h="-",u=-u),u>1e-21)if(n=(t=function(e){for(var t=0,n=e;n>=4096;)t+=12,n/=4096;for(;n>=2;)t+=1,n/=2;return t}(u*v(2,69,1))-69)<0?u*v(2,-t,1):u/v(2,t,1),n*=4503599627370496,(t=52-t)>0){for(m(f,0,n),r=s;r>=7;)m(f,1e7,0),r-=7;for(m(f,v(10,r,1),0),r=t-1;r>=23;)g(f,1<<23),r-=23;g(f,1<>1]]
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(/&(nbsp|amp|quot|lt|gt|apos);/g,(function(e,n){return t[n]})).replace(/?([0-9]+);/gi,(function(e,t){var n=parseInt(t,10);return String.fromCharCode(n)})).replace(/?([0-9a-f]+);/gi,(function(e,t){var n=parseInt(t,16);return String.fromCharCode(n)}))};t.buildQueryString=function(e){return Object.keys(e).map((function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])})).join("&")}},95592:function(e,t){"use strict";t.__esModule=!0,t.sleep=t.debounce=void 0;t.debounce=function(e,t,n){var r;return void 0===n&&(n=!1),function(){for(var o=arguments.length,i=new Array(o),a=0;a
\n":"'+(n?e:d(e,!0))+"
\n"},n.blockquote=function(e){return""+(n?e:d(e,!0))+"
\n"+e+"
\n"},n.html=function(e){return e},n.heading=function(e,t,n,r){return this.options.headerIds?"
\n":"
\n"},n.list=function(e,t,n){var r=t?"ol":"ul";return"<"+r+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+""+r+">\n"},n.listitem=function(e){return"\n\n"+e+"\n"+t+"
\n"},n.tablerow=function(e){return"\n"+e+" \n"},n.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+""+n+">\n"},n.strong=function(e){return""+e+""},n.em=function(e){return""+e+""},n.codespan=function(e){return""+e+"
"},n.br=function(){return this.options.xhtml?"
":"
"},n.del=function(e){return""+e+""},n.link=function(e,t,n){if(null===(e=b(this.options.sanitize,this.options.baseUrl,e)))return n;var r='"+n+""},n.image=function(e,t,n){if(null===(e=b(this.options.sanitize,this.options.baseUrl,e)))return n;var r='":">"},n.text=function(e){return e},e}(),j=function(){function e(){}var t=e.prototype;return t.strong=function(e){return e},t.em=function(e){return e},t.codespan=function(e){return e},t.del=function(e){return e},t.html=function(e){return e},t.text=function(e){return e},t.link=function(e,t,n){return""+n},t.image=function(e,t,n){return""+n},t.br=function(){return""},e}(),V=function(){function e(){this.seen={}}var t=e.prototype;return t.serialize=function(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},t.getNextSafeSlug=function(e,t){var n=e,r=0;if(this.seen.hasOwnProperty(n)){r=this.seen[e];do{n=e+"-"+ ++r}while(this.seen.hasOwnProperty(n))}return t||(this.seen[e]=r,this.seen[n]=0),n},t.slug=function(e,t){void 0===t&&(t={});var n=this.serialize(e);return this.getNextSafeSlug(n,t.dryrun)},e}(),R=function(){function e(e){this.options=e||t.defaults,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new j,this.slugger=new V}e.parse=function(t,n){return new e(n).parse(t)},e.parseInline=function(t,n){return new e(n).parseInline(t)};var n=e.prototype;return n.parse=function(e,t){void 0===t&&(t=!0);var n,r,o,i,a,u,s,c,l,f,d,p,v,m,g,y,b,x,w,_="",E=e.length;for(n=0;n
"+d(e.message+"",!0)+"";throw e}try{var s=L.lex(e,t);if(t.walkTokens){if(t.async)return Promise.all(z.walkTokens(s,t.walkTokens)).then((function(){return R.parse(s,t)}))["catch"](u);z.walkTokens(s,t.walkTokens)}return R.parse(s,t)}catch(c){u(c)}}z.options=z.setOptions=function(e){var n;return C(z.defaults,e),n=z.defaults,t.defaults=n,z},z.getDefaults=i,z.defaults=t.defaults,z.use=function(){for(var e=z.defaults.extensions||{renderers:{},childTokens:{}},t=arguments.length,n=new Array(t),r=0;r
"+d(r.message+"",!0)+"";throw r}},z.Parser=R,z.parser=R.parse,z.Renderer=P,z.TextRenderer=j,z.Lexer=L,z.lexer=L.lex,z.Tokenizer=F,z.Slugger=V,z.parse=z;var K=z.options,U=z.setOptions,Y=z.use,H=z.walkTokens,W=z.parseInline,$=z,G=R.parse,q=L.lex;t.Lexer=L,t.Parser=R,t.Renderer=P,t.Slugger=V,t.TextRenderer=j,t.Tokenizer=F,t.getDefaults=i,t.lexer=q,t.marked=z,t.options=K,t.parse=$,t.parseInline=W,t.parser=G,t.setOptions=U,t.use=Y,t.walkTokens=H},60207:function(e,t){"use strict";t.__esModule=!0,t.subscribe=t.setupHotReloading=t.sendMessage=t.sendLogEntry=void 0;var n=[];t.subscribe=function(e){return n.push(e)};t.sendMessage=function(e){};t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}}}]); \ No newline at end of file