diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm index 281d7e48f7..487499f697 100644 --- a/code/ATMOSPHERICS/components/unary/vent_pump.dm +++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm @@ -165,14 +165,14 @@ if(welded) vent_icon += "weld" - playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/client_preference/air_pump_noise) + playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise) else if(!use_power || !node || (stat & (NOPOWER|BROKEN))) vent_icon += "off" - playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/client_preference/air_pump_noise) + playsound(src, stop_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise) else vent_icon += "[pump_direction ? "out" : "in"]" - playsound(src, start_sound, 25, ignore_walls = FALSE, preference = /datum/client_preference/air_pump_noise) + playsound(src, start_sound, 25, ignore_walls = FALSE, preference = /datum/preference/toggle/air_pump_noise) add_overlay(icon_manager.get_atmos_icon("device", , , vent_icon)) diff --git a/code/__defines/logging.dm b/code/__defines/logging.dm index 07a121d9bb..c0e2ce9977 100644 --- a/code/__defines/logging.dm +++ b/code/__defines/logging.dm @@ -1,2 +1,3 @@ #define SEND_TEXT(target, text) DIRECT_OUTPUT(target, text) #define WRITE_FILE(file, text) DIRECT_OUTPUT(file, text) +#define READ_FILE(file, text) DIRECT_INPUT(file, text) diff --git a/code/__defines/preferences.dm b/code/__defines/preferences.dm index ba0abca8cf..14adeb62bb 100644 --- a/code/__defines/preferences.dm +++ b/code/__defines/preferences.dm @@ -15,3 +15,38 @@ #define MULTILINGUAL_MODE_MAX 4 #define SAVE_RESET -1 + +// Values for /datum/preference/savefile_identifier +/// This preference is character specific. +#define PREFERENCE_CHARACTER "character" +/// This preference is account specific. +#define PREFERENCE_PLAYER "player" + +// Values for /datum/preferences/current_tab +/// Open the character preference window +#define PREFERENCE_TAB_CHARACTER_PREFERENCES 0 + +/// Open the game preferences window +#define PREFERENCE_TAB_GAME_PREFERENCES 1 + +/// These will be shown in the character sidebar, but at the bottom. +#define PREFERENCE_CATEGORY_FEATURES "features" + +/// Any preferences that will show to the sides of the character in the setup menu. +#define PREFERENCE_CATEGORY_CLOTHING "clothing" + +/// Preferences that will be put into the 3rd list, and are not contextual. +#define PREFERENCE_CATEGORY_NON_CONTEXTUAL "non_contextual" + +/// Will be put under the game preferences window. +#define PREFERENCE_CATEGORY_GAME_PREFERENCES "game_preferences" + +/// These will show in the list to the right of the character preview. +#define PREFERENCE_CATEGORY_SECONDARY_FEATURES "secondary_features" + +/// These are preferences that are supplementary for main features, +/// such as hair color being affixed to hair. +#define PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES "supplemental_features" + +/// These preferences will not be rendered on the preferences page, and are practically invisible unless specifically rendered. Used for quirks, currently. +#define PREFERENCE_CATEGORY_MANUALLY_RENDERED "manually_rendered_features" diff --git a/code/__defines/text.dm b/code/__defines/text.dm index 4b520e5771..b48754dd32 100644 --- a/code/__defines/text.dm +++ b/code/__defines/text.dm @@ -8,3 +8,6 @@ * because DM does it so it copies until the char BEFORE the `end` arg, so we need to bump `end` by 1 in these cases. */ #define PREVENT_CHARACTER_TRIM_LOSS(integer) (integer + 1) + +/// Simply removes the < and > characters, and limits the length of the message. +#define STRIP_HTML_SIMPLE(text, limit) (GLOB.angular_brackets.Replace(copytext(text, 1, limit), "")) diff --git a/code/_global_vars/_regexes.dm b/code/_global_vars/_regexes.dm index 46e78a28fa..1d92bc8c52 100644 --- a/code/_global_vars/_regexes.dm +++ b/code/_global_vars/_regexes.dm @@ -2,3 +2,8 @@ GLOBAL_DATUM_INIT(is_http_protocol, /regex, regex("^https?://")) GLOBAL_DATUM_INIT(is_valid_url, /regex, regex("((?:https://)\[-a-zA-Z0-9@:%._+~#=]{1,256}.\[-a-zA-Z0-9@:%._+~#=]{1,256}\\b(?:\[-a-zA-Z0-9@():%_+.,~#?&/=]*\[^.,!?:; ()<>{}\\[]\n\"'ยด`]))", "gm")) + +//All < and > characters +GLOBAL_DATUM_INIT(angular_brackets, /regex, regex(@"[<>]", "g")) + +GLOBAL_DATUM_INIT(is_color, /regex, regex("^#\[0-9a-fA-F]{6}$")) diff --git a/code/_helpers/game.dm b/code/_helpers/game.dm index 812c0d5fe7..488b31d2a2 100644 --- a/code/_helpers/game.dm +++ b/code/_helpers/game.dm @@ -259,7 +259,7 @@ return R // radio, true, false, what's the difference /mob/observer/dead/can_hear_radio(var/list/hearturfs) - return is_preference_enabled(/datum/client_preference/ghost_radio) + return client?.prefs?.read_preference(/datum/preference/toggle/ghost_radio) //Uses dview to quickly return mobs and objects in view, @@ -313,10 +313,10 @@ if(M && M.stat == DEAD && remote_ghosts && !M.forbid_seeing_deadchat) switch(type) if(1) //Audio messages use ghost_ears - if(M.is_preference_enabled(/datum/client_preference/ghost_ears)) + if(M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) mobs |= M if(2) //Visual messages use ghost_sight - if(M.is_preference_enabled(/datum/client_preference/ghost_sight)) + if(M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_sight)) mobs |= M //For objects below the top level who still want to hear diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm index d5e9bd841c..9348231911 100644 --- a/code/_helpers/logging.dm +++ b/code/_helpers/logging.dm @@ -45,7 +45,7 @@ WRITE_LOG(debug_log, "DEBUG: [sanitize(text)]") for(var/client/C in GLOB.admins) - if(C.is_preference_enabled(/datum/client_preference/debug/show_debug_logs)) + if(C.prefs?.read_preference(/datum/preference/toggle/show_debug_logs)) to_chat(C, type = MESSAGE_TYPE_DEBUG, html = "DEBUG: [text]") diff --git a/code/_helpers/sanitize_values.dm b/code/_helpers/sanitize_values.dm index c74176043c..7cc687d7ce 100644 --- a/code/_helpers/sanitize_values.dm +++ b/code/_helpers/sanitize_values.dm @@ -6,6 +6,13 @@ return number return default +/proc/sanitize_float(number, min=0, max=1, accuracy=1, default=0) + if(isnum(number)) + number = round(number, accuracy) + if(round(min, accuracy) <= number && number <= round(max, accuracy)) + return number + return default + // Checks if the given input is a valid list index; returns true/false and doesn't change anything. /proc/is_valid_index(input, list/given_list) if(!isnum(input)) diff --git a/code/_helpers/text.dm b/code/_helpers/text.dm index 2ded9ae75a..4d8968ad4e 100644 --- a/code/_helpers/text.dm +++ b/code/_helpers/text.dm @@ -345,7 +345,7 @@ /var/icon/text_tag_icons = 'icons/chattags.dmi' /var/list/text_tag_cache = list() /proc/create_text_tag(var/tagname, var/tagdesc = tagname, var/client/C = null) - if(!(C && C.is_preference_enabled(/datum/client_preference/chat_tags))) + if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) return tagdesc if(!text_tag_cache[tagname]) var/icon/tag = icon(text_tag_icons, tagname) @@ -355,7 +355,7 @@ return icon2html(text_tag_cache[tagname], C, extra_classes = "text_tag") /proc/create_text_tag_old(var/tagname, var/tagdesc = tagname, var/client/C = null) - if(!(C && C.is_preference_enabled(/datum/client_preference/chat_tags))) + if(!(C && C.prefs?.read_preference(/datum/preference/toggle/chat_tags))) return tagdesc return "[tagdesc]" diff --git a/code/_macros.dm b/code/_macros.dm index b37d24fa0d..2ff9da5e76 100644 --- a/code/_macros.dm +++ b/code/_macros.dm @@ -26,6 +26,7 @@ // From TG, might be useful to have. // Didn't port SEND_TEXT() since to_chat() appears to serve the same purpose. #define DIRECT_OUTPUT(A, B) A << B +#define DIRECT_INPUT(A, B) A >> B #define SEND_IMAGE(target, image) DIRECT_OUTPUT(target, image) #define SEND_SOUND(target, sound) DIRECT_OUTPUT(target, sound) //#define WRITE_LOG is in logging.dm diff --git a/code/controllers/subsystems/ping.dm b/code/controllers/subsystems/ping.dm index 0b76d7dea1..20cf8dd446 100644 --- a/code/controllers/subsystems/ping.dm +++ b/code/controllers/subsystems/ping.dm @@ -27,7 +27,7 @@ SUBSYSTEM_DEF(ping) var/client/client = currentrun[currentrun.len] currentrun.len-- - if(!client?.is_preference_enabled(/datum/client_preference/vchat_enable)) + if(!client?.prefs?.read_preference(/datum/preference/toggle/vchat_enable)) winset(client, "output", "on-show=&is-disabled=0&is-visible=1") winset(client, "browseroutput", "is-disabled=1;is-visible=0") client.tgui_panel.oldchat = TRUE diff --git a/code/datums/browser.dm b/code/datums/browser.dm index e38b78ab4d..4aac042789 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -27,7 +27,7 @@ if (nref) ref = nref // If a client exists, but they have disabled fancy windowing, disable it! - if(user && user.client && !user.client.is_preference_enabled(/datum/client_preference/browser_style)) + if(!user?.client?.prefs?.read_preference(/datum/preference/toggle/browser_style)) return add_stylesheet("common", 'html/browser/common.css') // this CSS sheet is common to all UIs diff --git a/code/datums/chat_message.dm b/code/datums/chat_message.dm index 3a95ba1db5..376f87ed5e 100644 --- a/code/datums/chat_message.dm +++ b/code/datums/chat_message.dm @@ -109,7 +109,7 @@ var/list/runechat_image_cache = list() owned_by = owner.client RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(unregister_qdel_self)) // this should only call owned_by if the client is destroyed - var/extra_length = owned_by.is_preference_enabled(/datum/client_preference/runechat_long_messages) + var/extra_length = owned_by.prefs?.read_preference(/datum/preference/toggle/runechat_long_messages) var/maxlen = extra_length ? CHAT_MESSAGE_EXT_LENGTH : CHAT_MESSAGE_LENGTH var/msgwidth = extra_length ? CHAT_MESSAGE_EXT_WIDTH : CHAT_MESSAGE_WIDTH @@ -244,10 +244,10 @@ var/list/runechat_image_cache = list() return // Doesn't want to hear - if(ismob(speaker) && !client.is_preference_enabled(/datum/client_preference/runechat_mob)) + if(ismob(speaker) && !client.prefs?.read_preference(/datum/preference/toggle/runechat_mob)) return // I know the pref is 'obj' but people dunno what turfs are - else if(!client.is_preference_enabled(/datum/client_preference/runechat_obj)) + else if(!client.prefs?.read_preference(/datum/preference/toggle/runechat_obj)) return // Incapable of receiving @@ -270,7 +270,7 @@ var/list/runechat_image_cache = list() if(italics) extra_classes |= "italics" - if(client.is_preference_enabled(/datum/client_preference/runechat_border)) + if(client.prefs?.read_preference(/datum/preference/toggle/runechat_border)) extra_classes |= "black_outline" var/dist = get_dist(src, speaker) diff --git a/code/datums/json_savefile.dm b/code/datums/json_savefile.dm new file mode 100644 index 0000000000..f93c885687 --- /dev/null +++ b/code/datums/json_savefile.dm @@ -0,0 +1,116 @@ +/** + * A savefile implementation that handles all data using json. + * Also saves it using JSON too, fancy. + * If you pass in a null path, it simply acts as a memory tree instead, and cannot be saved. + */ +/datum/json_savefile + var/path = "" + VAR_PRIVATE/list/tree + /// If this is set to true, calling set_entry or remove_entry will automatically call save(), this does not catch modifying a sub-tree, nor do I know how to do that + var/auto_save = FALSE + /// Cooldown that tracks the time between attempts to download the savefile. + COOLDOWN_DECLARE(download_cooldown) + +GENERAL_PROTECT_DATUM(/datum/json_savefile) + +/datum/json_savefile/New(path) + src.path = path + tree = list() + if(path && fexists(path)) + load() + +/** + * Gets an entry from the json tree, with an optional default value. + * If no key is specified it throws the entire tree at you instead + */ +/datum/json_savefile/proc/get_entry(key, default_value) + if(!key) + return tree + return (key in tree) ? tree[key] : default_value + +/// Sets an entry in the tree to the given value +/datum/json_savefile/proc/set_entry(key, value) + tree[key] = value + if(auto_save) + save() + +/// Removes the given key from the tree +/datum/json_savefile/proc/remove_entry(key) + if(key) + tree -= key + if(auto_save) + save() + +/// Wipes the entire tree +/datum/json_savefile/proc/wipe() + tree?.Cut() + +/datum/json_savefile/proc/load() + if(!path || !fexists(path)) + return FALSE + try + tree = json_decode(rustg_file_read(path)) + return TRUE + catch(var/exception/err) + stack_trace("failed to load json savefile at '[path]': [err]") + return FALSE + +/datum/json_savefile/proc/save() + if(path) + rustg_file_write(json_encode(tree, JSON_PRETTY_PRINT), path) + +/// Traverses the entire dir tree of the given savefile and dynamically assembles the tree from it +/datum/json_savefile/proc/import_byond_savefile(savefile/savefile) + tree.Cut() + var/list/dirs_to_go = list("/" = tree) + while(length(dirs_to_go)) + var/dir = dirs_to_go[1] + var/list/region = dirs_to_go[dir] + dirs_to_go.Cut(1, 2) + savefile.cd = dir + for(var/entry in savefile.dir) + var/entry_value + savefile.cd = "[dir]/[entry]" + //eof refers to the path you are cd'ed into, not the savefile as a whole. being false right after cding into an entry means this entry has no buffer, which only happens with nested save file directories + if (savefile.eof) + region[entry] = list() + dirs_to_go["[dir]/[entry]"] = region[entry] + continue + READ_FILE(savefile, entry_value) //we are cd'ed to the entry, so we don't need to specify a path to read from + region[entry] = entry_value + +/// Proc that handles generating a JSON file (prettified if 515 and over!) of a user's preferences and showing it to them. +/// Requester is passed in to the ftp() and tgui_alert() procs, and account_name is just used to generate the filename. +/// We don't _need_ to pass in account_name since this is reliant on the json_savefile datum already knowing what we correspond to, but it's here to help people keep track of their stuff. +/datum/json_savefile/proc/export_json_to_client(mob/requester, account_name) + if(!istype(requester) || !path) + return + + if(!json_export_checks(requester)) + return + + // COOLDOWN_START(src, download_cooldown, (CONFIG_GET(number/seconds_cooldown_for_preferences_export) * (1 SECONDS))) + COOLDOWN_START(src, download_cooldown, (10 SECONDS)) + var/file_name = "[account_name ? "[account_name]_" : ""]preferences_[time2text(world.timeofday, "MMM_DD_YYYY_hh-mm-ss")].json" + var/temporary_file_storage = "data/preferences_export_working_directory/[file_name]" + + if(!text2file(json_encode(tree, JSON_PRETTY_PRINT), temporary_file_storage)) + tgui_alert(requester, "Failed to export preferences to JSON! You might need to try again later.", "Export Preferences JSON") + return + + var/exportable_json = file(temporary_file_storage) + + DIRECT_OUTPUT(requester, ftp(exportable_json, file_name)) + fdel(temporary_file_storage) + +/// Proc that just handles all of the checks for exporting a preferences file, returns TRUE if all checks are passed, FALSE otherwise. +/// Just done like this to make the code in the export_json_to_client() proc a bit cleaner. +/datum/json_savefile/proc/json_export_checks(mob/requester) + if(!COOLDOWN_FINISHED(src, download_cooldown)) + tgui_alert(requester, "You must wait [DisplayTimeText(COOLDOWN_TIMELEFT(src, download_cooldown))] before exporting your preferences again!", "Export Preferences JSON") + return FALSE + + if(tgui_alert(requester, "Are you sure you want to export your preferences as a JSON file? This will save to a file on your computer.", "Export Preferences JSON", list("Cancel", "Yes")) == "Yes") + return TRUE + + return FALSE diff --git a/code/datums/looping_sounds/_looping_sound.dm b/code/datums/looping_sounds/_looping_sound.dm index 078db317d5..3b48fc1a84 100644 --- a/code/datums/looping_sounds/_looping_sound.dm +++ b/code/datums/looping_sounds/_looping_sound.dm @@ -100,7 +100,7 @@ if(direct) if(ismob(thing)) var/mob/M = thing - if(pref_check && !M.is_preference_enabled(pref_check)) + if(M.check_sound_preference(pref_check)) continue SEND_SOUND(thing, S) else diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 8005d95016..3c0c8c15d2 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -13,7 +13,7 @@ mid_length = 60 volume = 40 extra_range = 10 - pref_check = /datum/client_preference/supermatter_hum + pref_check = /datum/preference/toggle/supermatter_hum /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -104,7 +104,7 @@ mid_length = 70 end_sound = 'sound/machines/air_pump/airpumpshutdown.ogg' volume = 15 - pref_check = /datum/client_preference/air_pump_noise + pref_check = /datum/preference/toggle/air_pump_noise //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/code/datums/looping_sounds/weather_sounds.dm b/code/datums/looping_sounds/weather_sounds.dm index db8396f3a3..41210df105 100644 --- a/code/datums/looping_sounds/weather_sounds.dm +++ b/code/datums/looping_sounds/weather_sounds.dm @@ -1,5 +1,5 @@ /datum/looping_sound/weather - pref_check = /datum/client_preference/weather_sounds + pref_check = /datum/preference/toggle/weather_sounds /datum/looping_sound/weather/outside_blizzard mid_sounds = list( @@ -95,4 +95,4 @@ volume = 20 //Sound is already quieter in file /datum/looping_sound/weather/rain/indoors/heavy - volume = 40 \ No newline at end of file + volume = 40 diff --git a/code/datums/progressbar.dm b/code/datums/progressbar.dm index 8da8d7c000..b0825c6329 100644 --- a/code/datums/progressbar.dm +++ b/code/datums/progressbar.dm @@ -41,7 +41,7 @@ progress = CLAMP(progress, 0, goal) bar.icon_state = "prog_bar_[round(((progress / goal) * 100), 5)]" - if(!shown && user.is_preference_enabled(/datum/client_preference/show_progress_bar)) + if(!shown && user.client?.prefs?.read_preference(/datum/preference/toggle/show_progress_bar)) user.client.images += bar shown = 1 @@ -66,4 +66,4 @@ qdel(bar) . = ..() -#undef PROGRESSBAR_HEIGHT \ No newline at end of file +#undef PROGRESSBAR_HEIGHT diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 2be00fb258..7d63de088f 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -394,7 +394,7 @@ var/list/mob/living/forced_ambiance_list = new /area/proc/play_ambience(var/mob/living/L, initial = TRUE) // Ambience goes down here -- make sure to list each area seperately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch - if(!(L && L.is_preference_enabled(/datum/client_preference/play_ambiance))) + if(!L?.read_preference(/datum/preference/toggle/play_ambience)) return var/volume_mod = L.get_preference_volume_channel(VOLUME_CHANNEL_AMBIENCE) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 9386f531d6..0daa11598d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1277,8 +1277,8 @@ About the new airlock wires panel: for(var/mob/M as anything in player_list) if(!M || !M.client) continue - var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) - var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/old_sounds = M.read_preference(/datum/preference/toggle/old_door_sounds) + var/department_door_sounds = M.read_preference(/datum/preference/toggle/department_door_sounds) var/sound var/volume if(old_sounds) // Do we have old sounds enabled? Play these even if we have department door sounds enabled. @@ -1405,8 +1405,8 @@ About the new airlock wires panel: for(var/mob/M as anything in player_list) if(!M || !M.client) continue - var/old_sounds = M.client.is_preference_enabled(/datum/client_preference/old_door_sounds) - var/department_door_sounds = M.client.is_preference_enabled(/datum/client_preference/department_door_sounds) + var/old_sounds = M.read_preference(/datum/preference/toggle/old_door_sounds) + var/department_door_sounds = M.read_preference(/datum/preference/toggle/department_door_sounds) var/sound var/volume if(old_sounds) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 5fee77b9e3..48f9e1bff2 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -406,14 +406,16 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept for (var/mob/R in receive) /* --- Loop through the receivers and categorize them --- */ - if(!R.is_preference_enabled(/datum/client_preference/holder/hear_radio)) - continue + // Allows admins to disable radio + if(R?.client?.holder) + if(!R.client?.prefs?.read_preference(/datum/preference/toggle/holder/hear_radio)) + continue if(istype(R, /mob/new_player)) // we don't want new players to hear messages. rare but generates runtimes. continue // Ghosts hearing all radio chat don't want to hear syndicate intercepts, they're duplicates - if(data == DATA_ANTAG && istype(R, /mob/observer/dead) && R.is_preference_enabled(/datum/client_preference/ghost_radio)) + if(data == DATA_ANTAG && istype(R, /mob/observer/dead) && R.client?.prefs?.read_preference(/datum/preference/toggle/ghost_radio)) continue // --- Check for compression --- @@ -513,21 +515,21 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept if(length(heard_masked)) for (var/mob/R in heard_masked) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 0, name) - if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) + if(R.read_preference(/datum/preference/toggle/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Process all the mobs that heard the voice normally (understood) --- */ if(length(heard_normal)) for (var/mob/R in heard_normal) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 0, realname) - if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) + if(R.read_preference(/datum/preference/toggle/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Process all the mobs that heard the voice normally (did not understand) --- */ if(length(heard_voice)) for (var/mob/R in heard_voice) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M,0, vname) - if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) + if(R.read_preference(/datum/preference/toggle/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Process all the mobs that heard a garbled voice (did not understand) --- */ @@ -535,14 +537,14 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept if(length(heard_garbled)) for (var/mob/R in heard_garbled) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 1, vname) - if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) + if(R.read_preference(/datum/preference/toggle/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' /* --- Complete gibberish. Usually happens when there's a compressed message --- */ if(length(heard_gibberish)) for (var/mob/R in heard_gibberish) R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 1) - if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) + if(R.read_preference(/datum/preference/toggle/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' return 1 @@ -617,10 +619,10 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept for (var/mob/R in receive) /* --- Loop through the receivers and categorize them --- */ - - if(!R.is_preference_enabled(/datum/client_preference/holder/hear_radio)) //Adminning with 80 people on can be fun when you're trying to talk and all you can hear is radios. - continue - + // Allow admins to disable radios completely + if(R?.client?.holder) + if(!R.client?.prefs?.read_preference(/datum/preference/toggle/holder/hear_radio)) + continue // --- Check for compression --- if(compression > 0) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 83844f7995..83a53c1537 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -326,7 +326,7 @@ else playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) else - playsound(src, drop_sound, 30, preference = /datum/client_preference/drop_sounds) + playsound(src, drop_sound, 30, preference = /datum/preference/toggle/drop_sounds) // apparently called whenever an item is removed from a slot, container, or anything else. /obj/item/proc/dropped(mob/user as mob) @@ -364,11 +364,11 @@ if(user.pulling == src) user.stop_pulling() if(("[slot]" in slot_flags_enumeration) && (slot_flags & slot_flags_enumeration["[slot]"])) if(equip_sound) - playsound(src, equip_sound, 20, preference = /datum/client_preference/pickup_sounds) + playsound(src, equip_sound, 20, preference = /datum/preference/toggle/pickup_sounds) else - playsound(src, drop_sound, 20, preference = /datum/client_preference/pickup_sounds) + playsound(src, drop_sound, 20, preference = /datum/preference/toggle/pickup_sounds) else if(slot == slot_l_hand || slot == slot_r_hand) - playsound(src, pickup_sound, 20, preference = /datum/client_preference/pickup_sounds) + playsound(src, pickup_sound, 20, preference = /datum/preference/toggle/pickup_sounds) return // As above but for items being equipped to an active module on a robot. @@ -948,7 +948,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. /obj/item/MouseEntered(location,control,params) . = ..() - if(usr.is_preference_enabled(/datum/client_preference/inv_tooltips) && ((src in usr) || isstorage(loc))) // If in inventory or in storage we're looking at + if(usr?.read_preference(/datum/preference/toggle/inv_tooltips) && ((src in usr) || isstorage(loc))) // If in inventory or in storage we're looking at var/user = usr tip_timer = addtimer(CALLBACK(src, PROC_REF(openTip), location, control, params, user), 5, TIMER_STOPPABLE) diff --git a/code/game/objects/items/devices/communicator/UI_tgui.dm b/code/game/objects/items/devices/communicator/UI_tgui.dm index fb59fd2a32..e6c099ad45 100644 --- a/code/game/objects/items/devices/communicator/UI_tgui.dm +++ b/code/game/objects/items/devices/communicator/UI_tgui.dm @@ -384,7 +384,7 @@ var/obj/item/device/communicator/comm = exonet.get_atom_from_address(their_address) to_chat(usr, "[icon2html(src, usr.client)] Sent message to [istype(comm, /obj/item/device/communicator) ? comm.owner : comm.name], \"[text]\" (Reply)") for(var/mob/M in player_list) - if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) + if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat) continue if(exonet.get_atom_from_address(their_address) == M) diff --git a/code/game/objects/items/devices/communicator/messaging.dm b/code/game/objects/items/devices/communicator/messaging.dm index 84c930479e..a060cf96c1 100644 --- a/code/game/objects/items/devices/communicator/messaging.dm +++ b/code/game/objects/items/devices/communicator/messaging.dm @@ -161,7 +161,7 @@ exonet_messages.Add("To [chosen_communicator]:
[text_message]") log_pda("(DCOMM: [src]) sent \"[text_message]\" to [chosen_communicator]", src) for(var/mob/M in player_list) - if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) + if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat) continue if(M == src) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index b253e93056..49a4dab9b4 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -62,12 +62,10 @@ /obj/item/device/radio/headset/receive_range(freq, level, aiOverride = 0) if (aiOverride) - //playsound(loc, 'sound/effects/radio_common.ogg', 20, 1, 1, preference = /datum/client_preference/radio_sounds) return ..(freq, level) if(ishuman(src.loc)) var/mob/living/carbon/human/H = src.loc if(H.l_ear == src || H.r_ear == src) - //playsound(loc, 'sound/effects/radio_common.ogg', 20, 1, 1, preference = /datum/client_preference/radio_sounds) return ..(freq, level) return -1 diff --git a/code/game/objects/structures/low_wall.dm b/code/game/objects/structures/low_wall.dm index 8d0d035b96..c96e7d8848 100644 --- a/code/game/objects/structures/low_wall.dm +++ b/code/game/objects/structures/low_wall.dm @@ -108,7 +108,7 @@ if(W.loc != user) // This should stop mounted modules ending up outside the module. return - if(can_place_items() && user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement)) + if(can_place_items() && user.unEquip(W, 0, src.loc) && user.client?.prefs?.read_preference(/datum/preference/toggle/precision_placement)) auto_align(W, click_parameters) return 1 @@ -662,4 +662,4 @@ /obj/effect/low_wall_spawner/eris/reinforced/rphoron icon_state = "spr_rphoron" - window_type = /obj/structure/window/eris/phoronreinforced \ No newline at end of file + window_type = /obj/structure/window/eris/phoronreinforced diff --git a/code/game/sound.dm b/code/game/sound.dm index 256dae7597..dfdd85bfce 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -33,10 +33,21 @@ if(T && T.z == turf_source.z) M.playsound_local(turf_source, soundin, vol, vary, frequency, falloff, is_global, channel, pressure_affected, S, preference, volume_channel) +/mob/proc/check_sound_preference(list/preference) + if(!islist(preference)) + preference = list(preference) + + for(var/p in preference) + if(!read_preference(p)) + return FALSE + + return TRUE + /mob/proc/playsound_local(turf/turf_source, soundin, vol as num, vary, frequency, falloff, is_global, channel = 0, pressure_affected = TRUE, sound/S, preference, volume_channel = null) if(!client || ear_deaf > 0) return - if(preference && !client.is_preference_enabled(preference)) + + if(!check_sound_preference(preference)) return if(!S) @@ -122,7 +133,7 @@ /client/proc/playtitlemusic() if(!ticker || !SSmedia_tracks.lobby_tracks.len || !media) return - if(is_preference_enabled(/datum/client_preference/play_lobby_music)) + if(prefs?.read_preference(/datum/preference/toggle/play_lobby_music)) var/datum/track/T = pick(SSmedia_tracks.lobby_tracks) media.push_music(T.url, world.time, 0.85) to_chat(src,"Lobby music: [T.title] by [T.artist].") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 9135a5c067..b57ebeee73 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -17,7 +17,7 @@ var/global/floorIsLava = 0 var/rendered = "ATTACK: [text]" for(var/client/C in GLOB.admins) if((R_ADMIN|R_MOD) & C.holder.rights) - if(C.is_preference_enabled(/datum/client_preference/mod/show_attack_logs)) + if(C.prefs?.read_preference(/datum/preference/toggle/show_attack_logs)) var/msg = rendered to_chat(C, type = MESSAGE_TYPE_ATTACKLOG, diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm index aad0440423..75aff00da3 100644 --- a/code/modules/admin/admin_verb_lists_vr.dm +++ b/code/modules/admin/admin_verb_lists_vr.dm @@ -18,8 +18,6 @@ var/list/admin_verbs_default = list( // /client/proc/cmd_mod_say, // /client/proc/deadchat //toggles deadchat on/off, // /client/proc/toggle_ahelp_sound, - /client/proc/toggle_admin_global_looc, - /client/proc/toggle_admin_deadchat ) var/list/admin_verbs_admin = list( @@ -118,8 +116,6 @@ var/list/admin_verbs_admin = list( /client/proc/change_security_level, /client/proc/view_chemical_reaction_logs, /client/proc/makepAI, - /client/proc/toggle_debug_logs, - /client/proc/toggle_attack_logs, /datum/admins/proc/paralyze_mob, /client/proc/fixatmos, /datum/admins/proc/quick_nif, //VOREStation Add, @@ -265,7 +261,6 @@ var/list/admin_verbs_debug = list( /client/proc/jumptomob, /client/proc/jumptocoord, /client/proc/dsay, - /client/proc/toggle_debug_logs, /client/proc/admin_ghost, //allows us to ghost/reenter body at will, /datum/admins/proc/show_player_panel, //shows an interface for individual players, with various links (links require additional flags, //VOREStation Add, /client/proc/player_panel_new, //shows an interface for all players, with links to various panels, //VOREStation Add, @@ -409,7 +404,6 @@ var/list/admin_verbs_mod = list( /client/proc/check_antagonists, /client/proc/aooc, /client/proc/jobbans, - /client/proc/toggle_attack_logs, /client/proc/cmd_admin_subtle_message, //send an message to somebody as a 'voice in their head', /datum/admins/proc/paralyze_mob, /client/proc/cmd_admin_direct_narrate, @@ -545,8 +539,6 @@ var/list/admin_verbs_event_manager = list( /client/proc/change_human_appearance_self, // Allows the human-based mob itself change its basic appearance , /client/proc/change_security_level, /client/proc/makepAI, - /client/proc/toggle_debug_logs, - /client/proc/toggle_attack_logs, /datum/admins/proc/paralyze_mob, /client/proc/fixatmos, /datum/admins/proc/sendFax, diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 52eaede877..395620e1ea 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -251,7 +251,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) for(var/client/X in GLOB.admins) if(!check_rights(R_ADMIN, 0, X)) continue - if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + if(X.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) X << 'sound/effects/adminhelp.ogg' window_flash(X) to_chat(X, chat_msg) @@ -362,7 +362,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) return if(initiator) - if(initiator.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + if(initiator.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) initiator << 'sound/effects/adminhelp.ogg' to_chat(initiator, "[span_red("- AdminHelp Rejected! -")]
\ diff --git a/code/modules/admin/verbs/adminpm.dm b/code/modules/admin/verbs/adminpm.dm index c250eb8c4a..0a0fd04b98 100644 --- a/code/modules/admin/verbs/adminpm.dm +++ b/code/modules/admin/verbs/adminpm.dm @@ -165,7 +165,7 @@ to_chat(src, "PM to-Admins: [msg]") //play the recieving admin the adminhelp sound (if they have them enabled) - if(recipient.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + if(recipient.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) recipient << 'sound/effects/adminhelp.ogg' else diff --git a/code/modules/admin/verbs/deadsay.dm b/code/modules/admin/verbs/deadsay.dm index 7e70eba8e5..1d6cead98c 100644 --- a/code/modules/admin/verbs/deadsay.dm +++ b/code/modules/admin/verbs/deadsay.dm @@ -11,7 +11,7 @@ to_chat(src, "You cannot send DSAY messages (muted).") return - if(!is_preference_enabled(/datum/client_preference/show_dsay)) + if(!prefs?.read_preference(/datum/preference/toggle/show_dsay)) to_chat(src, "You have deadchat muted.") return diff --git a/code/modules/admin/verbs/lightning_strike.dm b/code/modules/admin/verbs/lightning_strike.dm index 15bf773829..091cd6ca33 100644 --- a/code/modules/admin/verbs/lightning_strike.dm +++ b/code/modules/admin/verbs/lightning_strike.dm @@ -65,7 +65,7 @@ var/sound = get_sfx("thunder") for(var/mob/M in player_list) if( (P && (M.z in P.expected_z_levels)) || M.z == T.z) - if(M.is_preference_enabled(/datum/client_preference/weather_sounds)) + if(M.check_sound_preference(/datum/preference/toggle/weather_sounds)) M.playsound_local(get_turf(M), soundin = sound, vol = 70, vary = FALSE, is_global = TRUE) if(cosmetic) // Everything beyond here involves potentially damaging things. If we don't want to do that, stop now. diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index c57ad0b706..0a378344d4 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -40,7 +40,7 @@ var/list/sounds_cache = list() message_admins("[key_name_admin(src)] played sound [S]", 1) for(var/mob/M in player_list) - if(M.is_preference_enabled(/datum/client_preference/play_admin_midis)) + if(M.read_preference(/datum/preference/toggle/play_admin_midis)) admin_sound.volume = vol * M.client.admin_music_volume SEND_SOUND(M, admin_sound) admin_sound.volume = vol @@ -89,7 +89,7 @@ var/list/sounds_cache = list() log_admin("[key_name(src)] played sound [S] on Z[target_z]") message_admins("[key_name_admin(src)] played sound [S] on Z[target_z]", 1) for(var/mob/M in player_list) - if(M.is_preference_enabled(/datum/client_preference/play_admin_midis) && M.z == target_z) + if(M.read_preference(/datum/preference/toggle/play_admin_midis) && M.z == target_z) M << uploaded_sound feedback_add_details("admin_verb", "Play Z Sound") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! @@ -202,7 +202,7 @@ var/list/sounds_cache = list() for(var/m in player_list) var/mob/M = m var/client/C = M.client - if(C.is_preference_enabled(/datum/client_preference/play_admin_midis)) + if(C.prefs?.read_preference(/datum/preference/toggle/play_admin_midis)) if(!stop_web_sounds) C.tgui_panel?.play_music(web_sound_url, music_extra_data) else diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index d4a405e35c..f5035673a9 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -21,7 +21,7 @@ for(var/client/C in GLOB.admins) if(R_ADMIN|R_EVENT & C.holder.rights) - if(C.is_preference_enabled(/datum/client_preference/admin/show_chat_prayers)) + if(C.prefs?.read_preference(/datum/preference/toggle/show_chat_prayers)) to_chat(C, msg, type = MESSAGE_TYPE_PRAYER, confidential = TRUE) C << 'sound/effects/ding.ogg' to_chat(usr, "Your prayers have been received by the gods.", confidential = TRUE) diff --git a/code/modules/asset_cache/assets/preferences.dm b/code/modules/asset_cache/assets/preferences.dm new file mode 100644 index 0000000000..3d01471a38 --- /dev/null +++ b/code/modules/asset_cache/assets/preferences.dm @@ -0,0 +1,22 @@ +/// Sends information needed for shared details on individual preferences +/datum/asset/json/preferences + name = "preferences" + +/datum/asset/json/preferences/generate() + var/list/preference_data = list() + + for(var/middleware_type in subtypesof(/datum/preference_middleware)) + var/datum/preference_middleware/middleware = new middleware_type + var/data = middleware.get_constant_data() + if(!isnull(data)) + preference_data[middleware.key] = data + + qdel(middleware) + + for(var/preference_type in GLOB.preference_entries) + var/datum/preference/preference_entry = GLOB.preference_entries[preference_type] + var/data = preference_entry.compile_constant_data() + if(!isnull(data)) + preference_data[preference_entry.savefile_key] = data + + return preference_data diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 6a08f8c16f..f56b56f3b2 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -201,12 +201,15 @@ //preferences datum - also holds some persistant data for the client (because we may as well keep these datums to a minimum) prefs = preferences_datums[ckey] - if(!prefs) + if(prefs) + prefs.client = src + prefs.load_savefile() // just to make sure we have the latest data + prefs.apply_all_client_preferences() + else prefs = new /datum/preferences(src) preferences_datums[ckey] = prefs prefs.last_ip = address //these are gonna be used for banning prefs.last_id = computer_id //these are gonna be used for banning - prefs.client = src // Only relevant if we reloaded it from the global list, otherwise prefs/New sets it hook_vr("client_new",list(src)) //VOREStation Code. For now this only loads vore prefs, so better put before mob.Login() call but after normal prefs are loaded. @@ -271,7 +274,7 @@ alert = TRUE if(alert) for(var/client/X in GLOB.admins) - if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping)) + if(X.prefs?.read_preference(/datum/preference/toggle/holder/play_adminhelp_ping)) X << 'sound/effects/tones/newplayerping.ogg' window_flash(X) //VOREStation Edit end. @@ -487,6 +490,12 @@ if(prefs) prefs.ShowChoices(usr) +/client/verb/game_options() + set name = "Game Options" + set category = "Preferences" + if(prefs) + prefs.tgui_interact(usr) + /client/proc/findJoinDate() var/list/http = world.Export("http://byond.com/members/[ckey]?format=text") if(!http) diff --git a/code/modules/client/preference_setup/antagonism/01_basic.dm b/code/modules/client/preference_setup/antagonism/01_basic.dm index 8dc760a00f..3572a2fd62 100644 --- a/code/modules/client/preference_setup/antagonism/01_basic.dm +++ b/code/modules/client/preference_setup/antagonism/01_basic.dm @@ -4,17 +4,17 @@ var/global/list/uplink_locations = list("PDA", "Headset", "None") name = "Basic" sort_order = 1 -/datum/category_item/player_setup_item/antagonism/basic/load_character(var/savefile/S) - S["uplinklocation"] >> pref.uplinklocation - S["exploit_record"] >> pref.exploit_record - S["antag_faction"] >> pref.antag_faction - S["antag_vis"] >> pref.antag_vis +/datum/category_item/player_setup_item/antagonism/basic/load_character(list/save_data) + pref.uplinklocation = save_data["uplinklocation"] + pref.exploit_record = save_data["exploit_record"] + pref.antag_faction = save_data["antag_faction"] + pref.antag_vis = save_data["antag_vis"] -/datum/category_item/player_setup_item/antagonism/basic/save_character(var/savefile/S) - S["uplinklocation"] << pref.uplinklocation - S["exploit_record"] << pref.exploit_record - S["antag_faction"] << pref.antag_faction - S["antag_vis"] << pref.antag_vis +/datum/category_item/player_setup_item/antagonism/basic/save_character(list/save_data) + save_data["uplinklocation"] = pref.uplinklocation + save_data["exploit_record"] = pref.exploit_record + save_data["antag_faction"] = pref.antag_faction + save_data["antag_vis"] = pref.antag_vis /datum/category_item/player_setup_item/antagonism/basic/sanitize_character() pref.uplinklocation = sanitize_inlist(pref.uplinklocation, uplink_locations, initial(pref.uplinklocation)) diff --git a/code/modules/client/preference_setup/antagonism/02_candidacy.dm b/code/modules/client/preference_setup/antagonism/02_candidacy.dm index 945491ed0d..f4eed30278 100644 --- a/code/modules/client/preference_setup/antagonism/02_candidacy.dm +++ b/code/modules/client/preference_setup/antagonism/02_candidacy.dm @@ -31,11 +31,11 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set name = "Candidacy" sort_order = 2 -/datum/category_item/player_setup_item/antagonism/candidacy/load_character(var/savefile/S) - S["be_special"] >> pref.be_special +/datum/category_item/player_setup_item/antagonism/candidacy/load_character(list/save_data) + pref.be_special = save_data["be_special"] -/datum/category_item/player_setup_item/antagonism/candidacy/save_character(var/savefile/S) - S["be_special"] << pref.be_special +/datum/category_item/player_setup_item/antagonism/candidacy/save_character(list/save_data) + save_data["be_special"] = pref.be_special /datum/category_item/player_setup_item/antagonism/candidacy/sanitize_character() pref.be_special = sanitize_integer(pref.be_special, 0, 16777215, initial(pref.be_special)) //VOREStation Edit - 24 bits of support diff --git a/code/modules/client/preference_setup/general/01_basic.dm b/code/modules/client/preference_setup/general/01_basic.dm index dc4202f912..fb7b5ed4eb 100644 --- a/code/modules/client/preference_setup/general/01_basic.dm +++ b/code/modules/client/preference_setup/general/01_basic.dm @@ -10,37 +10,37 @@ name = "Basic" sort_order = 1 -/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S) - S["real_name"] >> pref.real_name - S["nickname"] >> pref.nickname - S["name_is_always_random"] >> pref.be_random_name - S["gender"] >> pref.biological_gender - S["id_gender"] >> pref.identifying_gender - S["age"] >> pref.age - S["bday_month"] >> pref.bday_month - S["bday_day"] >> pref.bday_day - S["last_bday_note"] >> pref.last_birthday_notification - S["bday_announce"] >> pref.bday_announce - S["spawnpoint"] >> pref.spawnpoint - S["OOC_Notes"] >> pref.metadata - S["OOC_Notes_Likes"] >> pref.metadata_likes - S["OOC_Notes_Disikes"] >> pref.metadata_dislikes +/datum/category_item/player_setup_item/general/basic/load_character(list/save_data) + pref.real_name = save_data["real_name"] + pref.nickname = save_data["nickname"] + pref.be_random_name = save_data["name_is_always_random"] + pref.biological_gender = save_data["gender"] + pref.identifying_gender = save_data["id_gender"] + pref.age = save_data["age"] + pref.bday_month = save_data["bday_month"] + pref.bday_day = save_data["bday_day"] + pref.last_birthday_notification = save_data["last_bday_note"] + pref.bday_announce = save_data["bday_announce"] + pref.spawnpoint = save_data["spawnpoint"] + pref.metadata = save_data["OOC_Notes"] + pref.metadata_likes = save_data["OOC_Notes_Likes"] + pref.metadata_dislikes = save_data["OOC_Notes_Disikes"] -/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S) - S["real_name"] << pref.real_name - S["nickname"] << pref.nickname - S["name_is_always_random"] << pref.be_random_name - S["gender"] << pref.biological_gender - S["id_gender"] << pref.identifying_gender - S["age"] << pref.age - S["bday_month"] << pref.bday_month - S["bday_day"] << pref.bday_day - S["last_bday_note"] << pref.last_birthday_notification - S["bday_announce"] << pref.bday_announce - S["spawnpoint"] << pref.spawnpoint - S["OOC_Notes"] << pref.metadata - S["OOC_Notes_Likes"] << pref.metadata_likes - S["OOC_Notes_Disikes"] << pref.metadata_dislikes +/datum/category_item/player_setup_item/general/basic/save_character(list/save_data) + save_data["real_name"] = pref.real_name + save_data["nickname"] = pref.nickname + save_data["name_is_always_random"] = pref.be_random_name + save_data["gender"] = pref.biological_gender + save_data["id_gender"] = pref.identifying_gender + save_data["age"] = pref.age + save_data["bday_month"] = pref.bday_month + save_data["bday_day"] = pref.bday_day + save_data["last_bday_note"] = pref.last_birthday_notification + save_data["bday_announce"] = pref.bday_announce + save_data["spawnpoint"] = pref.spawnpoint + save_data["OOC_Notes"] = pref.metadata + save_data["OOC_Notes_Likes"] = pref.metadata_likes + save_data["OOC_Notes_Disikes"] = pref.metadata_dislikes /datum/category_item/player_setup_item/general/basic/sanitize_character() pref.age = sanitize_integer(pref.age, get_min_age(), get_max_age(), initial(pref.age)) diff --git a/code/modules/client/preference_setup/general/02_language.dm b/code/modules/client/preference_setup/general/02_language.dm index 0b86c67b04..4c7f408239 100644 --- a/code/modules/client/preference_setup/general/02_language.dm +++ b/code/modules/client/preference_setup/general/02_language.dm @@ -7,25 +7,19 @@ sort_order = 2 var/static/list/forbidden_prefixes = list(";", ":", ".", "!", "*", "^", "-") -/datum/category_item/player_setup_item/general/language/load_character(var/savefile/S) - S["language"] >> pref.alternate_languages - S["extra_languages"] >> pref.extra_languages - if(islist(pref.alternate_languages)) // Because aparently it may not be? - testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") - S["language_prefixes"] >> pref.language_prefixes - //VORE Edit Begin - S["preflang"] >> pref.preferred_language - //VORE Edit End - S["language_custom_keys"] >> pref.language_custom_keys +/datum/category_item/player_setup_item/general/language/load_character(list/save_data) + pref.alternate_languages = save_data["language"] + pref.extra_languages = save_data["extra_languages"] + pref.language_prefixes = save_data["language_prefixes"] + pref.preferred_language = save_data["preflang"] + pref.language_custom_keys = save_data["language_custom_keys"] -/datum/category_item/player_setup_item/general/language/save_character(var/savefile/S) - S["language"] << pref.alternate_languages - S["extra_languages"] << pref.extra_languages - if(islist(pref.alternate_languages)) // Because aparently it may not be? - testing("LANGSANI: Loaded from [pref.client]'s character [pref.real_name || "-name not yet loaded-"] savefile: [english_list(pref.alternate_languages || list())]") - S["language_prefixes"] << pref.language_prefixes - S["language_custom_keys"] << pref.language_custom_keys - S["preflang"] << pref.preferred_language // VOREStation Edit +/datum/category_item/player_setup_item/general/language/save_character(list/save_data) + save_data["language"] = pref.alternate_languages + save_data["extra_languages"] = pref.extra_languages + save_data["language_prefixes"] = pref.language_prefixes + save_data["language_custom_keys"] = pref.language_custom_keys + save_data["preflang"] = pref.preferred_language /datum/category_item/player_setup_item/general/language/sanitize_character() if(!islist(pref.alternate_languages)) diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index e416121034..dbdd5352e5 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -90,135 +90,135 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O name = "Body" sort_order = 3 -/datum/category_item/player_setup_item/general/body/load_character(var/savefile/S) - S["species"] >> pref.species - S["hair_red"] >> pref.r_hair - S["hair_green"] >> pref.g_hair - S["hair_blue"] >> pref.b_hair - S["facial_red"] >> pref.r_facial - S["grad_red"] >> pref.r_grad - S["grad_green"] >> pref.g_grad - S["grad_blue"] >> pref.b_grad - S["facial_green"] >> pref.g_facial - S["facial_blue"] >> pref.b_facial - S["skin_tone"] >> pref.s_tone - S["skin_red"] >> pref.r_skin - S["skin_green"] >> pref.g_skin - S["skin_blue"] >> pref.b_skin - S["hair_style_name"] >> pref.h_style - S["facial_style_name"] >> pref.f_style - S["grad_style_name"] >> pref.grad_style - S["eyes_red"] >> pref.r_eyes - S["eyes_green"] >> pref.g_eyes - S["eyes_blue"] >> pref.b_eyes - S["b_type"] >> pref.b_type - S["disabilities"] >> pref.disabilities - S["organ_data"] >> pref.organ_data - S["rlimb_data"] >> pref.rlimb_data - S["body_markings"] >> pref.body_markings - S["synth_color"] >> pref.synth_color - S["synth_red"] >> pref.r_synth - S["synth_green"] >> pref.g_synth - S["synth_blue"] >> pref.b_synth - S["synth_markings"] >> pref.synth_markings - S["bgstate"] >> pref.bgstate - S["body_descriptors"] >> pref.body_descriptors - S["ear_style"] >> pref.ear_style - S["r_ears"] >> pref.r_ears - S["g_ears"] >> pref.g_ears - S["b_ears"] >> pref.b_ears - S["r_ears2"] >> pref.r_ears2 - S["g_ears2"] >> pref.g_ears2 - S["b_ears2"] >> pref.b_ears2 - S["r_ears3"] >> pref.r_ears3 - S["g_ears3"] >> pref.g_ears3 - S["b_ears3"] >> pref.b_ears3 - S["tail_style"] >> pref.tail_style - S["r_tail"] >> pref.r_tail - S["g_tail"] >> pref.g_tail - S["b_tail"] >> pref.b_tail - S["r_tail2"] >> pref.r_tail2 - S["g_tail2"] >> pref.g_tail2 - S["b_tail2"] >> pref.b_tail2 - S["r_tail3"] >> pref.r_tail3 - S["g_tail3"] >> pref.g_tail3 - S["b_tail3"] >> pref.b_tail3 - S["wing_style"] >> pref.wing_style - S["r_wing"] >> pref.r_wing - S["g_wing"] >> pref.g_wing - S["b_wing"] >> pref.b_wing - S["r_wing2"] >> pref.r_wing2 - S["g_wing2"] >> pref.g_wing2 - S["b_wing2"] >> pref.b_wing2 - S["r_wing3"] >> pref.r_wing3 - S["g_wing3"] >> pref.g_wing3 - S["b_wing3"] >> pref.b_wing3 - S["digitigrade"] >> pref.digitigrade +/datum/category_item/player_setup_item/general/body/load_character(list/save_data) + pref.species = save_data["species"] + pref.r_hair = save_data["hair_red"] + pref.g_hair = save_data["hair_green"] + pref.b_hair = save_data["hair_blue"] + pref.r_facial = save_data["facial_red"] + pref.r_grad = save_data["grad_red"] + pref.g_grad = save_data["grad_green"] + pref.b_grad = save_data["grad_blue"] + pref.g_facial = save_data["facial_green"] + pref.b_facial = save_data["facial_blue"] + pref.s_tone = save_data["skin_tone"] + pref.r_skin = save_data["skin_red"] + pref.g_skin = save_data["skin_green"] + pref.b_skin = save_data["skin_blue"] + pref.h_style = save_data["hair_style_name"] + pref.f_style = save_data["facial_style_name"] + pref.grad_style = save_data["grad_style_name"] + pref.r_eyes = save_data["eyes_red"] + pref.g_eyes = save_data["eyes_green"] + pref.b_eyes = save_data["eyes_blue"] + pref.b_type = save_data["b_type"] + pref.disabilities = save_data["disabilities"] + pref.organ_data = save_data["organ_data"] + pref.rlimb_data = save_data["rlimb_data"] + pref.body_markings = save_data["body_markings"] + pref.synth_color = save_data["synth_color"] + pref.r_synth = save_data["synth_red"] + pref.g_synth = save_data["synth_green"] + pref.b_synth = save_data["synth_blue"] + pref.synth_markings = save_data["synth_markings"] + pref.bgstate = save_data["bgstate"] + pref.body_descriptors = save_data["body_descriptors"] + pref.ear_style = save_data["ear_style"] + pref.r_ears = save_data["r_ears"] + pref.g_ears = save_data["g_ears"] + pref.b_ears = save_data["b_ears"] + pref.r_ears2 = save_data["r_ears2"] + pref.g_ears2 = save_data["g_ears2"] + pref.b_ears2 = save_data["b_ears2"] + pref.r_ears3 = save_data["r_ears3"] + pref.g_ears3 = save_data["g_ears3"] + pref.b_ears3 = save_data["b_ears3"] + pref.tail_style = save_data["tail_style"] + pref.r_tail = save_data["r_tail"] + pref.g_tail = save_data["g_tail"] + pref.b_tail = save_data["b_tail"] + pref.r_tail2 = save_data["r_tail2"] + pref.g_tail2 = save_data["g_tail2"] + pref.b_tail2 = save_data["b_tail2"] + pref.r_tail3 = save_data["r_tail3"] + pref.g_tail3 = save_data["g_tail3"] + pref.b_tail3 = save_data["b_tail3"] + pref.wing_style = save_data["wing_style"] + pref.r_wing = save_data["r_wing"] + pref.g_wing = save_data["g_wing"] + pref.b_wing = save_data["b_wing"] + pref.r_wing2 = save_data["r_wing2"] + pref.g_wing2 = save_data["g_wing2"] + pref.b_wing2 = save_data["b_wing2"] + pref.r_wing3 = save_data["r_wing3"] + pref.g_wing3 = save_data["g_wing3"] + pref.b_wing3 = save_data["b_wing3"] + pref.digitigrade = save_data["digitigrade"] -/datum/category_item/player_setup_item/general/body/save_character(var/savefile/S) - S["species"] << pref.species - S["hair_red"] << pref.r_hair - S["hair_green"] << pref.g_hair - S["hair_blue"] << pref.b_hair - S["grad_red"] << pref.r_grad - S["grad_green"] << pref.g_grad - S["grad_blue"] << pref.b_grad - S["facial_red"] << pref.r_facial - S["facial_green"] << pref.g_facial - S["facial_blue"] << pref.b_facial - S["skin_tone"] << pref.s_tone - S["skin_red"] << pref.r_skin - S["skin_green"] << pref.g_skin - S["skin_blue"] << pref.b_skin - S["hair_style_name"] << pref.h_style - S["facial_style_name"] << pref.f_style - S["grad_style_name"] << pref.grad_style - S["eyes_red"] << pref.r_eyes - S["eyes_green"] << pref.g_eyes - S["eyes_blue"] << pref.b_eyes - S["b_type"] << pref.b_type - S["disabilities"] << pref.disabilities - S["organ_data"] << pref.organ_data - S["rlimb_data"] << pref.rlimb_data - S["body_markings"] << pref.body_markings - S["synth_color"] << pref.synth_color - S["synth_red"] << pref.r_synth - S["synth_green"] << pref.g_synth - S["synth_blue"] << pref.b_synth - S["synth_markings"] << pref.synth_markings - S["bgstate"] << pref.bgstate - S["body_descriptors"] << pref.body_descriptors - S["ear_style"] << pref.ear_style - S["r_ears"] << pref.r_ears - S["g_ears"] << pref.g_ears - S["b_ears"] << pref.b_ears - S["r_ears2"] << pref.r_ears2 - S["g_ears2"] << pref.g_ears2 - S["b_ears2"] << pref.b_ears2 - S["r_ears3"] << pref.r_ears3 - S["g_ears3"] << pref.g_ears3 - S["b_ears3"] << pref.b_ears3 - S["tail_style"] << pref.tail_style - S["r_tail"] << pref.r_tail - S["g_tail"] << pref.g_tail - S["b_tail"] << pref.b_tail - S["r_tail2"] << pref.r_tail2 - S["g_tail2"] << pref.g_tail2 - S["b_tail2"] << pref.b_tail2 - S["r_tail3"] << pref.r_tail3 - S["g_tail3"] << pref.g_tail3 - S["b_tail3"] << pref.b_tail3 - S["wing_style"] << pref.wing_style - S["r_wing"] << pref.r_wing - S["g_wing"] << pref.g_wing - S["b_wing"] << pref.b_wing - S["r_wing2"] << pref.r_wing2 - S["g_wing2"] << pref.g_wing2 - S["b_wing2"] << pref.b_wing2 - S["r_wing3"] << pref.r_wing3 - S["g_wing3"] << pref.g_wing3 - S["b_wing3"] << pref.b_wing3 - S["digitigrade"] << pref.digitigrade +/datum/category_item/player_setup_item/general/body/save_character(list/save_data) + save_data["species"] = pref.species + save_data["hair_red"] = pref.r_hair + save_data["hair_green"] = pref.g_hair + save_data["hair_blue"] = pref.b_hair + save_data["grad_red"] = pref.r_grad + save_data["grad_green"] = pref.g_grad + save_data["grad_blue"] = pref.b_grad + save_data["facial_red"] = pref.r_facial + save_data["facial_green"] = pref.g_facial + save_data["facial_blue"] = pref.b_facial + save_data["skin_tone"] = pref.s_tone + save_data["skin_red"] = pref.r_skin + save_data["skin_green"] = pref.g_skin + save_data["skin_blue"] = pref.b_skin + save_data["hair_style_name"] = pref.h_style + save_data["facial_style_name"] = pref.f_style + save_data["grad_style_name"] = pref.grad_style + save_data["eyes_red"] = pref.r_eyes + save_data["eyes_green"] = pref.g_eyes + save_data["eyes_blue"] = pref.b_eyes + save_data["b_type"] = pref.b_type + save_data["disabilities"] = pref.disabilities + save_data["organ_data"] = pref.organ_data + save_data["rlimb_data"] = pref.rlimb_data + save_data["body_markings"] = pref.body_markings + save_data["synth_color"] = pref.synth_color + save_data["synth_red"] = pref.r_synth + save_data["synth_green"] = pref.g_synth + save_data["synth_blue"] = pref.b_synth + save_data["synth_markings"] = pref.synth_markings + save_data["bgstate"] = pref.bgstate + save_data["body_descriptors"] = pref.body_descriptors + save_data["ear_style"] = pref.ear_style + save_data["r_ears"] = pref.r_ears + save_data["g_ears"] = pref.g_ears + save_data["b_ears"] = pref.b_ears + save_data["r_ears2"] = pref.r_ears2 + save_data["g_ears2"] = pref.g_ears2 + save_data["b_ears2"] = pref.b_ears2 + save_data["r_ears3"] = pref.r_ears3 + save_data["g_ears3"] = pref.g_ears3 + save_data["b_ears3"] = pref.b_ears3 + save_data["tail_style"] = pref.tail_style + save_data["r_tail"] = pref.r_tail + save_data["g_tail"] = pref.g_tail + save_data["b_tail"] = pref.b_tail + save_data["r_tail2"] = pref.r_tail2 + save_data["g_tail2"] = pref.g_tail2 + save_data["b_tail2"] = pref.b_tail2 + save_data["r_tail3"] = pref.r_tail3 + save_data["g_tail3"] = pref.g_tail3 + save_data["b_tail3"] = pref.b_tail3 + save_data["wing_style"] = pref.wing_style + save_data["r_wing"] = pref.r_wing + save_data["g_wing"] = pref.g_wing + save_data["b_wing"] = pref.b_wing + save_data["r_wing2"] = pref.r_wing2 + save_data["g_wing2"] = pref.g_wing2 + save_data["b_wing2"] = pref.b_wing2 + save_data["r_wing3"] = pref.r_wing3 + save_data["g_wing3"] = pref.g_wing3 + save_data["b_wing3"] = pref.b_wing3 + save_data["digitigrade"] = pref.digitigrade /datum/category_item/player_setup_item/general/body/sanitize_character(var/savefile/S) if(!pref.species || !(pref.species in GLOB.playable_species)) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 692e4f7d57..57146e5832 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -6,23 +6,23 @@ name = "Clothing" sort_order = 4 -/datum/category_item/player_setup_item/general/equipment/load_character(var/savefile/S) - S["all_underwear"] >> pref.all_underwear - S["all_underwear_metadata"] >> pref.all_underwear_metadata - S["backbag"] >> pref.backbag - S["pdachoice"] >> pref.pdachoice - S["communicator_visibility"] >> pref.communicator_visibility - S["ringtone"] >> pref.ringtone - S["shoe_hater"] >> pref.shoe_hater //RS ADD +/datum/category_item/player_setup_item/general/equipment/load_character(list/save_data) + pref.all_underwear = save_data["all_underwear"] + pref.all_underwear_metadata = save_data["all_underwear_metadata"] + pref.backbag = save_data["backbag"] + pref.pdachoice = save_data["pdachoice"] + pref.communicator_visibility = save_data["communicator_visibility"] + pref.ringtone = save_data["ringtone"] + pref.shoe_hater = save_data["shoe_hater"] -/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S) - S["all_underwear"] << pref.all_underwear - S["all_underwear_metadata"] << pref.all_underwear_metadata - S["backbag"] << pref.backbag - S["pdachoice"] << pref.pdachoice - S["communicator_visibility"] << pref.communicator_visibility - S["ringtone"] << pref.ringtone - S["shoe_hater"] << pref.shoe_hater //RS ADD +/datum/category_item/player_setup_item/general/equipment/save_character(list/save_data) + save_data["all_underwear"] = pref.all_underwear + save_data["all_underwear_metadata"] = pref.all_underwear_metadata + save_data["backbag"] = pref.backbag + save_data["pdachoice"] = pref.pdachoice + save_data["communicator_visibility"] = pref.communicator_visibility + save_data["ringtone"] = pref.ringtone + save_data["shoe_hater"] = pref.shoe_hater var/global/list/valid_ringtones = list( "beep", diff --git a/code/modules/client/preference_setup/general/05_background.dm b/code/modules/client/preference_setup/general/05_background.dm index 70b2e130bd..03efdf9f86 100644 --- a/code/modules/client/preference_setup/general/05_background.dm +++ b/code/modules/client/preference_setup/general/05_background.dm @@ -1,28 +1,27 @@ /datum/category_item/player_setup_item/general/background name = "Background" sort_order = 5 +/datum/category_item/player_setup_item/general/background/load_character(list/save_data) + pref.med_record = save_data["med_record"] + pref.sec_record = save_data["sec_record"] + pref.gen_record = save_data["gen_record"] + pref.home_system = save_data["home_system"] + pref.birthplace = save_data["birthplace"] + pref.citizenship = save_data["citizenship"] + pref.faction = save_data["faction"] + pref.religion = save_data["religion"] + pref.economic_status = save_data["economic_status"] -/datum/category_item/player_setup_item/general/background/load_character(var/savefile/S) - S["med_record"] >> pref.med_record - S["sec_record"] >> pref.sec_record - S["gen_record"] >> pref.gen_record - S["home_system"] >> pref.home_system - S["birthplace"] >> pref.birthplace - S["citizenship"] >> pref.citizenship - S["faction"] >> pref.faction - S["religion"] >> pref.religion - S["economic_status"] >> pref.economic_status - -/datum/category_item/player_setup_item/general/background/save_character(var/savefile/S) - S["med_record"] << pref.med_record - S["sec_record"] << pref.sec_record - S["gen_record"] << pref.gen_record - S["home_system"] << pref.home_system - S["birthplace"] << pref.birthplace - S["citizenship"] << pref.citizenship - S["faction"] << pref.faction - S["religion"] << pref.religion - S["economic_status"] << pref.economic_status +/datum/category_item/player_setup_item/general/background/save_character(list/save_data) + save_data["med_record"] = pref.med_record + save_data["sec_record"] = pref.sec_record + save_data["gen_record"] = pref.gen_record + save_data["home_system"] = pref.home_system + save_data["birthplace"] = pref.birthplace + save_data["citizenship"] = pref.citizenship + save_data["faction"] = pref.faction + save_data["religion"] = pref.religion + save_data["economic_status"] = pref.economic_status /datum/category_item/player_setup_item/general/background/sanitize_character() if(!pref.home_system) pref.home_system = "Unset" diff --git a/code/modules/client/preference_setup/general/06_flavor.dm b/code/modules/client/preference_setup/general/06_flavor.dm index 76af38f5dc..fa14cce603 100644 --- a/code/modules/client/preference_setup/general/06_flavor.dm +++ b/code/modules/client/preference_setup/general/06_flavor.dm @@ -2,37 +2,37 @@ name = "Flavor" sort_order = 6 -/datum/category_item/player_setup_item/general/flavor/load_character(var/savefile/S) - S["flavor_texts_general"] >> pref.flavor_texts["general"] - S["flavor_texts_head"] >> pref.flavor_texts["head"] - S["flavor_texts_face"] >> pref.flavor_texts["face"] - S["flavor_texts_eyes"] >> pref.flavor_texts["eyes"] - S["flavor_texts_torso"] >> pref.flavor_texts["torso"] - S["flavor_texts_arms"] >> pref.flavor_texts["arms"] - S["flavor_texts_hands"] >> pref.flavor_texts["hands"] - S["flavor_texts_legs"] >> pref.flavor_texts["legs"] - S["flavor_texts_feet"] >> pref.flavor_texts["feet"] - S["custom_link"] >> pref.custom_link +/datum/category_item/player_setup_item/general/flavor/load_character(list/save_data) + pref.flavor_texts["general"] = save_data["flavor_texts_general"] + pref.flavor_texts["head"] = save_data["flavor_texts_head"] + pref.flavor_texts["face"] = save_data["flavor_texts_face"] + pref.flavor_texts["eyes"] = save_data["flavor_texts_eyes"] + pref.flavor_texts["torso"] = save_data["flavor_texts_torso"] + pref.flavor_texts["arms"] = save_data["flavor_texts_arms"] + pref.flavor_texts["hands"] = save_data["flavor_texts_hands"] + pref.flavor_texts["legs"] = save_data["flavor_texts_legs"] + pref.flavor_texts["feet"] = save_data["flavor_texts_feet"] + pref.custom_link = save_data["custom_link"] //Flavour text for robots. - S["flavour_texts_robot_Default"] >> pref.flavour_texts_robot["Default"] + pref.flavour_texts_robot["Default"] = save_data["flavour_texts_robot_Default"] for(var/module in robot_module_types) - S["flavour_texts_robot_[module]"] >> pref.flavour_texts_robot[module] + pref.flavour_texts_robot[module] = save_data["flavour_texts_robot_[module]"] -/datum/category_item/player_setup_item/general/flavor/save_character(var/savefile/S) - S["flavor_texts_general"] << pref.flavor_texts["general"] - S["flavor_texts_head"] << pref.flavor_texts["head"] - S["flavor_texts_face"] << pref.flavor_texts["face"] - S["flavor_texts_eyes"] << pref.flavor_texts["eyes"] - S["flavor_texts_torso"] << pref.flavor_texts["torso"] - S["flavor_texts_arms"] << pref.flavor_texts["arms"] - S["flavor_texts_hands"] << pref.flavor_texts["hands"] - S["flavor_texts_legs"] << pref.flavor_texts["legs"] - S["flavor_texts_feet"] << pref.flavor_texts["feet"] - S["custom_link"] << pref.custom_link +/datum/category_item/player_setup_item/general/flavor/save_character(list/save_data) + save_data["flavor_texts_general"] = pref.flavor_texts["general"] + save_data["flavor_texts_head"] = pref.flavor_texts["head"] + save_data["flavor_texts_face"] = pref.flavor_texts["face"] + save_data["flavor_texts_eyes"] = pref.flavor_texts["eyes"] + save_data["flavor_texts_torso"] = pref.flavor_texts["torso"] + save_data["flavor_texts_arms"] = pref.flavor_texts["arms"] + save_data["flavor_texts_hands"] = pref.flavor_texts["hands"] + save_data["flavor_texts_legs"] = pref.flavor_texts["legs"] + save_data["flavor_texts_feet"] = pref.flavor_texts["feet"] + save_data["custom_link"] = pref.custom_link - S["flavour_texts_robot_Default"] << pref.flavour_texts_robot["Default"] + save_data["flavour_texts_robot_Default"] = pref.flavour_texts_robot["Default"] for(var/module in robot_module_types) - S["flavour_texts_robot_[module]"] << pref.flavour_texts_robot[module] + save_data["flavour_texts_robot_[module]"] = pref.flavour_texts_robot[module] /datum/category_item/player_setup_item/general/flavor/sanitize_character() return diff --git a/code/modules/client/preference_setup/global/01_ui.dm b/code/modules/client/preference_setup/global/01_ui.dm index 3130aade42..91bbfea86a 100644 --- a/code/modules/client/preference_setup/global/01_ui.dm +++ b/code/modules/client/preference_setup/global/01_ui.dm @@ -2,41 +2,41 @@ name = "UI" sort_order = 1 -/datum/category_item/player_setup_item/player_global/ui/load_preferences(var/savefile/S) - S["UI_style"] >> pref.UI_style - S["UI_style_color"] >> pref.UI_style_color - S["UI_style_alpha"] >> pref.UI_style_alpha - S["ooccolor"] >> pref.ooccolor - S["tooltipstyle"] >> pref.tooltipstyle - S["client_fps"] >> pref.client_fps - S["ambience_freq"] >> pref.ambience_freq - S["ambience_chance"] >> pref.ambience_chance - S["tgui_fancy"] >> pref.tgui_fancy - S["tgui_lock"] >> pref.tgui_lock - S["tgui_input_mode"] >> pref.tgui_input_mode - S["tgui_large_buttons"] >> pref.tgui_large_buttons - S["tgui_swapped_buttons"] >> pref.tgui_swapped_buttons - S["obfuscate_key"] >> pref.obfuscate_key - S["obfuscate_job"] >> pref.obfuscate_job - S["chat_timestamp"] >> pref.chat_timestamp +/datum/category_item/player_setup_item/player_global/ui/load_preferences(datum/json_savefile/savefile) + pref.UI_style = savefile.get_entry("UI_style") + pref.UI_style_color = savefile.get_entry("UI_style_color") + pref.UI_style_alpha = savefile.get_entry("UI_style_alpha") + pref.ooccolor = savefile.get_entry("ooccolor") + pref.tooltipstyle = savefile.get_entry("tooltipstyle") + pref.client_fps = savefile.get_entry("client_fps") + pref.ambience_freq = savefile.get_entry("ambience_freq") + pref.ambience_chance = savefile.get_entry("ambience_chance") + pref.tgui_fancy = savefile.get_entry("tgui_fancy") + pref.tgui_lock = savefile.get_entry("tgui_lock") + pref.tgui_input_mode = savefile.get_entry("tgui_input_mode") + pref.tgui_large_buttons = savefile.get_entry("tgui_large_buttons") + pref.tgui_swapped_buttons = savefile.get_entry("tgui_swapped_buttons") + pref.obfuscate_key = savefile.get_entry("obfuscate_key") + pref.obfuscate_job = savefile.get_entry("obfuscate_job") + pref.chat_timestamp = savefile.get_entry("chat_timestamp") -/datum/category_item/player_setup_item/player_global/ui/save_preferences(var/savefile/S) - S["UI_style"] << pref.UI_style - S["UI_style_color"] << pref.UI_style_color - S["UI_style_alpha"] << pref.UI_style_alpha - S["ooccolor"] << pref.ooccolor - S["tooltipstyle"] << pref.tooltipstyle - S["client_fps"] << pref.client_fps - S["ambience_freq"] << pref.ambience_freq - S["ambience_chance"] << pref.ambience_chance - S["tgui_fancy"] << pref.tgui_fancy - S["tgui_lock"] << pref.tgui_lock - S["tgui_input_mode"] << pref.tgui_input_mode - S["tgui_large_buttons"] << pref.tgui_large_buttons - S["tgui_swapped_buttons"] << pref.tgui_swapped_buttons - S["obfuscate_key"] << pref.obfuscate_key - S["obfuscate_job"] << pref.obfuscate_job - S["chat_timestamp"] << pref.chat_timestamp +/datum/category_item/player_setup_item/player_global/ui/save_preferences(datum/json_savefile/savefile) + savefile.set_entry("UI_style", pref.UI_style) + savefile.set_entry("UI_style_color", pref.UI_style_color) + savefile.set_entry("UI_style_alpha", pref.UI_style_alpha) + savefile.set_entry("ooccolor", pref.ooccolor) + savefile.set_entry("tooltipstyle", pref.tooltipstyle) + savefile.set_entry("client_fps", pref.client_fps) + savefile.set_entry("ambience_freq", pref.ambience_freq) + savefile.set_entry("ambience_chance", pref.ambience_chance) + savefile.set_entry("tgui_fancy", pref.tgui_fancy) + savefile.set_entry("tgui_lock", pref.tgui_lock) + savefile.set_entry("tgui_input_mode", pref.tgui_input_mode) + savefile.set_entry("tgui_large_buttons", pref.tgui_large_buttons) + savefile.set_entry("tgui_swapped_buttons", pref.tgui_swapped_buttons) + savefile.set_entry("obfuscate_key", pref.obfuscate_key) + savefile.set_entry("obfuscate_job", pref.obfuscate_job) + savefile.set_entry("chat_timestamp", pref.chat_timestamp) /datum/category_item/player_setup_item/player_global/ui/sanitize_preferences() pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style)) diff --git a/code/modules/client/preference_setup/global/02_settings.dm b/code/modules/client/preference_setup/global/02_settings.dm index 71ff5d0a09..3a63b9f0cc 100644 --- a/code/modules/client/preference_setup/global/02_settings.dm +++ b/code/modules/client/preference_setup/global/02_settings.dm @@ -1,141 +1,20 @@ -/datum/preferences - var/preferences_enabled = null - var/preferences_disabled = null - /datum/category_item/player_setup_item/player_global/settings name = "Settings" sort_order = 2 -/datum/category_item/player_setup_item/player_global/settings/load_preferences(var/savefile/S) - S["lastchangelog"] >> pref.lastchangelog - S["lastnews"] >> pref.lastnews - S["lastlorenews"] >> pref.lastlorenews - S["default_slot"] >> pref.default_slot - S["preferences"] >> pref.preferences_enabled - S["preferences_disabled"] >> pref.preferences_disabled +/datum/category_item/player_setup_item/player_global/settings/load_preferences(datum/json_savefile/savefile) + pref.lastchangelog = savefile.get_entry("lastchangelog") + pref.lastnews = savefile.get_entry("lastnews") + pref.lastlorenews = savefile.get_entry("lastlorenews") + pref.default_slot = savefile.get_entry("default_slot") -/datum/category_item/player_setup_item/player_global/settings/save_preferences(var/savefile/S) - S["lastchangelog"] << pref.lastchangelog - S["lastnews"] << pref.lastnews - S["lastlorenews"] << pref.lastlorenews - S["default_slot"] << pref.default_slot - S["preferences"] << pref.preferences_enabled - S["preferences_disabled"] << pref.preferences_disabled +/datum/category_item/player_setup_item/player_global/settings/save_preferences(datum/json_savefile/savefile) + savefile.set_entry("lastchangelog", pref.lastchangelog) + savefile.set_entry("lastnews", pref.lastnews) + savefile.set_entry("lastlorenews", pref.lastlorenews) + savefile.set_entry("default_slot", pref.default_slot) /datum/category_item/player_setup_item/player_global/settings/sanitize_preferences() - // Ensure our preferences are lists. - if(!istype(pref.preferences_enabled, /list)) - pref.preferences_enabled = list() - if(!istype(pref.preferences_disabled, /list)) - pref.preferences_disabled = list() - - // Arrange preferences that have never been enabled/disabled. - var/list/client_preference_keys = list() - for(var/datum/client_preference/client_pref as anything in get_client_preferences()) - client_preference_keys += client_pref.key - if((client_pref.key in pref.preferences_enabled) || (client_pref.key in pref.preferences_disabled)) - continue - - if(client_pref.enabled_by_default) - pref.preferences_enabled += client_pref.key - else - pref.preferences_disabled += client_pref.key - - // Clean out preferences that no longer exist. - for(var/key in pref.preferences_enabled) - if(!(key in client_preference_keys)) - pref.preferences_enabled -= key - for(var/key in pref.preferences_disabled) - if(!(key in client_preference_keys)) - pref.preferences_disabled -= key - pref.lastchangelog = sanitize_text(pref.lastchangelog, initial(pref.lastchangelog)) pref.lastnews = sanitize_text(pref.lastnews, initial(pref.lastnews)) pref.default_slot = sanitize_integer(pref.default_slot, 1, config.character_slots, initial(pref.default_slot)) - -/datum/category_item/player_setup_item/player_global/settings/content(var/mob/user) - . = list() - . += "Preferences
" - . += "" - var/mob/pref_mob = preference_mob() - for(var/datum/client_preference/client_pref as anything in get_client_preferences()) - if(!client_pref.may_toggle(pref_mob)) - continue - - . += "" - if(pref_mob.is_preference_enabled(client_pref.key)) - . += "" - else - . += "" - . += "" - - . += "
[client_pref.description]: [client_pref.enabled_description] [client_pref.disabled_description][client_pref.enabled_description] [client_pref.disabled_description]
" - return jointext(., "") - -/datum/category_item/player_setup_item/player_global/settings/OnTopic(var/href,var/list/href_list, var/mob/user) - var/mob/pref_mob = preference_mob() - if(href_list["toggle_on"]) - . = pref_mob.set_preference(href_list["toggle_on"], TRUE) - else if(href_list["toggle_off"]) - . = pref_mob.set_preference(href_list["toggle_off"], FALSE) - if(.) - return TOPIC_REFRESH - - return ..() - -/** - * This can take either a single preference datum or a list of preferences, and will return true if *all* preferences in the arguments are enabled. - */ -/client/proc/is_preference_enabled(var/preference) - if(!islist(preference)) - preference = list(preference) - for(var/p in preference) - var/datum/client_preference/cp = get_client_preference(p) - if(!prefs || !cp || !istype(cp, /datum/client_preference) || !(cp.key in prefs.preferences_enabled)) - return FALSE - return TRUE - -/client/proc/set_preference(var/preference, var/set_preference) - var/datum/client_preference/cp = get_client_preference(preference) - if(!cp) - return FALSE - preference = cp.key - - if(set_preference && !(preference in prefs.preferences_enabled)) - return toggle_preference(cp) - else if(!set_preference && (preference in prefs.preferences_enabled)) - return toggle_preference(cp) - -/client/proc/toggle_preference(var/preference, var/set_preference) - var/datum/client_preference/cp = get_client_preference(preference) - if(!cp) - return FALSE - preference = cp.key - - var/enabled - if(preference in prefs.preferences_disabled) - prefs.preferences_enabled |= preference - prefs.preferences_disabled -= preference - enabled = TRUE - . = TRUE - else if(preference in prefs.preferences_enabled) - prefs.preferences_enabled -= preference - prefs.preferences_disabled |= preference - enabled = FALSE - . = TRUE - if(.) - cp.toggled(mob, enabled) - -/mob/proc/is_preference_enabled(var/preference) - if(!client) - return FALSE - return client.is_preference_enabled(preference) - -/mob/proc/set_preference(var/preference, var/set_preference) - if(!client) - return FALSE - if(!client.prefs) - log_debug("Client prefs found to be null for mob [src] and client [ckey], this should be investigated.") - return FALSE - - return client.set_preference(preference, set_preference) diff --git a/code/modules/client/preference_setup/global/03_pai.dm b/code/modules/client/preference_setup/global/03_pai.dm index c4d81e552b..d9b20873d8 100644 --- a/code/modules/client/preference_setup/global/03_pai.dm +++ b/code/modules/client/preference_setup/global/03_pai.dm @@ -4,7 +4,7 @@ var/datum/paiCandidate/candidate -/datum/category_item/player_setup_item/player_global/pai/load_preferences(var/savefile/S) +/datum/category_item/player_setup_item/player_global/pai/load_preferences(datum/json_savefile/savefile) if(!candidate) candidate = new() var/preference_mob = preference_mob() @@ -18,7 +18,7 @@ candidate.savefile_load(preference_mob) -/datum/category_item/player_setup_item/player_global/pai/save_preferences(var/savefile/S) +/datum/category_item/player_setup_item/player_global/pai/save_preferences(datum/json_savefile/savefile) if(!candidate) return diff --git a/code/modules/client/preference_setup/global/04_ooc.dm b/code/modules/client/preference_setup/global/04_ooc.dm index e695bee677..c375107754 100644 --- a/code/modules/client/preference_setup/global/04_ooc.dm +++ b/code/modules/client/preference_setup/global/04_ooc.dm @@ -2,12 +2,12 @@ name = "OOC" sort_order = 4 -/datum/category_item/player_setup_item/player_global/ooc/load_preferences(var/savefile/S) - S["ignored_players"] >> pref.ignored_players +/datum/category_item/player_setup_item/player_global/ooc/load_preferences(datum/json_savefile/savefile) + pref.ignored_players = savefile.get_entry("ignored_players") -/datum/category_item/player_setup_item/player_global/ooc/save_preferences(var/savefile/S) - S["ignored_players"] << pref.ignored_players +/datum/category_item/player_setup_item/player_global/ooc/save_preferences(datum/json_savefile/savefile) + savefile.set_entry("ignored_players", pref.ignored_players) /* /datum/category_item/player_setup_item/player_global/ooc/sanitize_preferences() @@ -39,4 +39,4 @@ return TOPIC_REFRESH return ..() -*/ \ No newline at end of file +*/ diff --git a/code/modules/client/preference_setup/global/setting_datums.dm b/code/modules/client/preference_setup/global/setting_datums.dm deleted file mode 100644 index 7d74e5bd0d..0000000000 --- a/code/modules/client/preference_setup/global/setting_datums.dm +++ /dev/null @@ -1,481 +0,0 @@ -var/list/_client_preferences -var/list/_client_preferences_by_key -var/list/_client_preferences_by_type - -/proc/get_client_preferences() - if(!_client_preferences) - _client_preferences = list() - for(var/datum/client_preference/client_type as anything in subtypesof(/datum/client_preference)) - if(initial(client_type.description)) - _client_preferences += new client_type() - return _client_preferences - -/proc/get_client_preference(var/datum/client_preference/preference) - if(istype(preference)) - return preference - if(ispath(preference)) - return get_client_preference_by_type(preference) - return get_client_preference_by_key(preference) - -/proc/get_client_preference_by_key(var/preference) - if(!_client_preferences_by_key) - _client_preferences_by_key = list() - for(var/datum/client_preference/client_pref as anything in get_client_preferences()) - _client_preferences_by_key[client_pref.key] = client_pref - return _client_preferences_by_key[preference] - -/proc/get_client_preference_by_type(var/preference) - if(!_client_preferences_by_type) - _client_preferences_by_type = list() - for(var/datum/client_preference/client_pref as anything in get_client_preferences()) - _client_preferences_by_type[client_pref.type] = client_pref - return _client_preferences_by_type[preference] - -/datum/client_preference - var/description - var/key - var/enabled_by_default = TRUE - var/enabled_description = "Yes" - var/disabled_description = "No" - -/datum/client_preference/proc/may_toggle(var/mob/preference_mob) - return TRUE - -/datum/client_preference/proc/toggled(var/mob/preference_mob, var/enabled) - return - -/********************* -* Player Preferences * -*********************/ - -/datum/client_preference/play_admin_midis - description ="Play admin midis" - key = "SOUND_MIDI" - -/datum/client_preference/play_lobby_music - description ="Play lobby music" - key = "SOUND_LOBBY" - -/datum/client_preference/play_lobby_music/toggled(var/mob/preference_mob, var/enabled) - if(!preference_mob.client || !preference_mob.client.media) - return - - if(enabled) - preference_mob.client.playtitlemusic() - else - preference_mob.client.media.stop_music() - -/datum/client_preference/play_ambiance - description ="Play ambience" - key = "SOUND_AMBIENCE" - -/datum/client_preference/play_ambiance/toggled(var/mob/preference_mob, var/enabled) - if(!enabled) - preference_mob << sound(null, repeat = 0, wait = 0, volume = 0, channel = 1) - preference_mob << sound(null, repeat = 0, wait = 0, volume = 0, channel = 2) -//VOREStation Add - Need to put it here because it should be ordered riiiight here. -/datum/client_preference/play_jukebox - description ="Play jukebox music" - key = "SOUND_JUKEBOX" - -/datum/client_preference/play_jukebox/toggled(var/mob/preference_mob, var/enabled) - if(!enabled) - preference_mob.stop_all_music() - else - preference_mob.update_music() - -/datum/client_preference/eating_noises - description = "Eating Noises" - key = "EATING_NOISES" - enabled_description = "Noisy" - disabled_description = "Silent" - -/datum/client_preference/digestion_noises - description = "Digestion Noises" - key = "DIGEST_NOISES" - enabled_description = "Noisy" - disabled_description = "Silent" - -/datum/client_preference/belch_noises // Belching noises - pref toggle for 'em - description = "Burping" - key = "BELCH_NOISES" - enabled_description = "Noisy" - disabled_description = "Silent" - -/datum/client_preference/emote_noises - description = "Emote Noises" //MERP - key = "EMOTE_NOISES" - enabled_description = "Noisy" - disabled_description = "Silent" -/datum/client_preference/whisubtle_vis - description = "Whi/Subtles Ghost Visible" - key = "WHISUBTLE_VIS" - enabled_description = "Visible" - disabled_description = "Hidden" - enabled_by_default = FALSE - -/datum/client_preference/ghost_see_whisubtle - description = "See subtles/whispers as ghost" - key = "GHOST_SEE_WHISUBTLE" - enabled_description = "Visible" - disabled_description = "Hidden" - enabled_by_default = TRUE -//VOREStation Add End -/datum/client_preference/weather_sounds - description ="Weather sounds" - key = "SOUND_WEATHER" - enabled_description = "Audible" - disabled_description = "Silent" - -/datum/client_preference/supermatter_hum - description ="Supermatter hum" - key = "SOUND_SUPERMATTER" - enabled_description = "Audible" - disabled_description = "Silent" - -/datum/client_preference/ghost_ears - description ="Ghost ears" - key = "CHAT_GHOSTEARS" - enabled_description = "All Speech" - disabled_description = "Nearby" - -/datum/client_preference/ghost_sight - description ="Ghost sight" - key = "CHAT_GHOSTSIGHT" - enabled_description = "All Emotes" - disabled_description = "Nearby" - -/datum/client_preference/ghost_radio - description ="Ghost radio" - key = "CHAT_GHOSTRADIO" - enabled_description = "All Chatter" - disabled_description = "Nearby" - -/datum/client_preference/chat_tags - description ="Chat tags" - key = "CHAT_SHOWICONS" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/air_pump_noise - description ="Air Pump Ambient Noise" - key = "SOUND_AIRPUMP" - enabled_description = "Audible" - disabled_description = "Silent" - -/datum/client_preference/old_door_sounds - description ="Old Door Sounds" - key = "SOUND_OLDDOORS" - enabled_description = "Old" - disabled_description = "New" - -/datum/client_preference/department_door_sounds - description ="Department-Specific Door Sounds" - key = "SOUND_DEPARTMENTDOORS" - enabled_description = "Enabled" - disabled_description = "Disabled" - -/datum/client_preference/pickup_sounds - description = "Picked Up Item Sounds" - key = "SOUND_PICKED" - enabled_description = "Enabled" - disabled_description = "Disabled" - -/datum/client_preference/drop_sounds - description = "Dropped Item Sounds" - key = "SOUND_DROPPED" - enabled_description = "Enabled" - disabled_description = "Disabled" - -/datum/client_preference/mob_tooltips - description ="Mob tooltips" - key = "MOB_TOOLTIPS" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/inv_tooltips - description ="Inventory tooltips" - key = "INV_TOOLTIPS" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/attack_icons - description ="Attack icons" - key = "ATTACK_ICONS" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/precision_placement - description ="Precision Placement" - key = "PRECISE_PLACEMENT" - enabled_description = "Active" - disabled_description = "Inactive" - -/datum/client_preference/hotkeys_default - description ="Hotkeys Default" - key = "HUD_HOTKEYS" - enabled_description = "Enabled" - disabled_description = "Disabled" - enabled_by_default = FALSE // Backwards compatibility - -/datum/client_preference/show_typing_indicator - description ="Typing indicator" - key = "SHOW_TYPING" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/show_typing_indicator/toggled(var/mob/preference_mob, var/enabled) - if(!enabled) - preference_mob.client?.stop_thinking() - -/datum/client_preference/show_typing_indicator_subtle - description ="Typing indicator (subtle)" - key = "SHOW_TYPING_SUBTLE" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/show_ooc - description ="OOC chat" - key = "CHAT_OOC" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/show_looc - description ="LOOC chat" - key = "CHAT_LOOC" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/show_dsay - description ="Dead chat" - key = "CHAT_DEAD" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/check_mention - description ="Emphasize Name Mention" - key = "CHAT_MENTION" - enabled_description = "Emphasize" - disabled_description = "Normal" - -/datum/client_preference/show_progress_bar - description ="Progress Bar" - key = "SHOW_PROGRESS" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/safefiring - description = "Gun Firing Intent Requirement" - key = "SAFE_FIRING" - enabled_description = "Safe" - disabled_description = "Dangerous" - -/datum/client_preference/browser_style - description = "Fake NanoUI Browser Style" - key = "BROWSER_STYLED" - enabled_description = "Fancy" - disabled_description = "Plain" - -/datum/client_preference/ambient_occlusion - description = "Fake Ambient Occlusion" - key = "AMBIENT_OCCLUSION_PREF" - enabled_by_default = FALSE - enabled_description = "On" - disabled_description = "Off" - -/datum/client_preference/ambient_occlusion/toggled(var/mob/preference_mob, var/enabled) - . = ..() - if(preference_mob && preference_mob.plane_holder) - var/datum/plane_holder/PH = preference_mob.plane_holder - PH.set_ao(VIS_OBJS, enabled) - PH.set_ao(VIS_MOBS, enabled) - -/datum/client_preference/instrument_toggle - description ="Hear In-game Instruments" - key = "SOUND_INSTRUMENT" - -/datum/client_preference/vchat_enable - description = "Enable/Disable TGChat" - key = "VCHAT_ENABLE" - enabled_description = "Enabled" - disabled_description = "Disabled" - -/datum/client_preference/status_indicators - description = "Status Indicators" - key = "SHOW_STATUS" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/radio_sounds - description = "Radio Sounds" - key = "RADIO_SOUNDS" - enabled_description = "On" - disabled_description = "Off" - -/datum/client_preference/say_sounds - description = "Say Sounds" - key = "SAY_SOUNDS" - enabled_description = "On" - disabled_description = "Off" - -/datum/client_preference/emote_sounds - description = "Me Sounds" - key = "EMOTE_SOUNDS" - enabled_description = "On" - disabled_description = "Off" - -/datum/client_preference/whisper_sounds - description = "Whisper Sounds" - key = "WHISPER_SOUNDS" - enabled_description = "On" - disabled_description = "Off" - -/datum/client_preference/subtle_sounds - description = "Subtle Sounds" - key = "SUBTLE_SOUNDS" - enabled_description = "On" - disabled_description = "Off" - -/datum/client_preference/vore_health_bars - description = "Vore Health Bars" - key = "VORE_HEALTH_BARS" - enabled_description = "Enabled" - disabled_description = "Disabled" - -/datum/client_preference/runechat_mob - description = "Runechat (Mobs)" - key = "RUNECHAT_MOB" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/runechat_obj - description = "Runechat (Objs)" - key = "RUNECHAT_OBJ" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/runechat_border - description = "Runechat Message Border" - key = "RUNECHAT_BORDER" - enabled_description = "Show" - disabled_description = "Hide" - enabled_by_default = TRUE - -/datum/client_preference/runechat_long_messages - description = "Runechat Message Length" - key = "RUNECHAT_LONG" - enabled_description = "Long" - disabled_description = "Short" - enabled_by_default = FALSE - -/datum/client_preference/status_indicators/toggled(mob/preference_mob, enabled) - . = ..() - if(preference_mob && preference_mob.plane_holder) - var/datum/plane_holder/PH = preference_mob.plane_holder - PH.set_vis(VIS_STATUS, enabled) - -/datum/client_preference/show_lore_news - description = "Lore News Popup" - key = "NEWS_POPUP" - enabled_by_default = TRUE - enabled_description = "Popup New On Login" - disabled_description = "Do Nothing" - -/datum/client_preference/play_mentorhelp_ping - description = "Mentorhelps" - key = "SOUND_MENTORHELP" - enabled_description = "Hear" - disabled_description = "Silent" - -/datum/client_preference/player_tips - description = "Receive Tips Periodically" - key = "RECEIVE_TIPS" - enabled_description = "Enabled" - disabled_description = "Disabled" - -/datum/client_preference/pain_frequency - description = "Pain Messages Cooldown" - key = "PAIN_FREQUENCY" - enabled_by_default = FALSE - enabled_description = "Extended" - disabled_description = "Default" - -/datum/client_preference/auto_afk - description = "Automatic AFK Status" - key = "AUTO_AFK" - enabled_by_default = TRUE - enabled_description = "Automatic" - disabled_description = "Manual Only" - -/datum/client_preference/tgui_say - description = "TGUI Say: Use TGUI For Say Input" - key = "TGUI_SAY" - enabled_by_default = TRUE - enabled_description = "Yes" - disabled_description = "No" - -/datum/client_preference/tgui_say_light - description = "TGUI Say: Use Light Mode" - key = "TGUI_SAY_LIGHT_MODE" - enabled_by_default = FALSE - enabled_description = "Yes" - disabled_description = "No" - -/******************** -* Staff Preferences * -********************/ -/datum/client_preference/admin/may_toggle(var/mob/preference_mob) - return check_rights(R_ADMIN|R_EVENT, 0, preference_mob) - -/datum/client_preference/mod/may_toggle(var/mob/preference_mob) - return check_rights(R_MOD|R_ADMIN, 0, preference_mob) - -/datum/client_preference/debug/may_toggle(var/mob/preference_mob) - return check_rights(R_DEBUG|R_ADMIN, 0, preference_mob) - -/datum/client_preference/mod/show_attack_logs - description = "Attack Log Messages" - key = "CHAT_ATTACKLOGS" - enabled_description = "Show" - disabled_description = "Hide" - enabled_by_default = FALSE - -/datum/client_preference/debug/show_debug_logs - description = "Debug Log Messages" - key = "CHAT_DEBUGLOGS" - enabled_description = "Show" - disabled_description = "Hide" - enabled_by_default = FALSE - -/datum/client_preference/admin/show_chat_prayers - description = "Chat Prayers" - key = "CHAT_PRAYER" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/holder/may_toggle(var/mob/preference_mob) - return preference_mob && preference_mob.client && preference_mob.client.holder - -/datum/client_preference/holder/play_adminhelp_ping - description = "Adminhelps" - key = "SOUND_ADMINHELP" - enabled_description = "Hear" - disabled_description = "Silent" - -/datum/client_preference/holder/hear_radio - description = "Radio chatter" - key = "CHAT_RADIO" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/holder/show_rlooc - description ="Remote LOOC chat" - key = "CHAT_RLOOC" - enabled_description = "Show" - disabled_description = "Hide" - -/datum/client_preference/holder/show_staff_dsay - description ="Staff Deadchat" - key = "CHAT_ADSAY" - enabled_description = "Show" - disabled_description = "Hide" diff --git a/code/modules/client/preference_setup/loadout/loadout.dm b/code/modules/client/preference_setup/loadout/loadout.dm index 21e6602863..fd92052458 100644 --- a/code/modules/client/preference_setup/loadout/loadout.dm +++ b/code/modules/client/preference_setup/loadout/loadout.dm @@ -45,19 +45,19 @@ var/list/gear_datums = list() sort_order = 1 var/current_tab = "General" -/datum/category_item/player_setup_item/loadout/load_character(var/savefile/S) - from_file(S["gear_list"], pref.gear_list) - from_file(S["gear_slot"], pref.gear_slot) +/datum/category_item/player_setup_item/loadout/load_character(list/save_data) + pref.gear_list = save_data["gear_list"] + pref.gear_slot = save_data["gear_slot"] if(pref.gear_list!=null && pref.gear_slot!=null) pref.gear = pref.gear_list["[pref.gear_slot]"] else - from_file(S["gear"], pref.gear) + pref.gear = save_data["gear"] pref.gear_slot = 1 -/datum/category_item/player_setup_item/loadout/save_character(var/savefile/S) +/datum/category_item/player_setup_item/loadout/save_character(list/save_data) pref.gear_list["[pref.gear_slot]"] = pref.gear - to_file(S["gear_list"], pref.gear_list) - to_file(S["gear_slot"], pref.gear_slot) + save_data["gear_list"] = pref.gear_list + save_data["gear_slot"] = pref.gear_slot /datum/category_item/player_setup_item/loadout/proc/valid_gear_choices(var/max_cost) . = list() diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 9ce7f08026..48516c11d4 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -2,41 +2,41 @@ name = "Occupation" sort_order = 1 -/datum/category_item/player_setup_item/occupation/load_character(var/savefile/S) - S["alternate_option"] >> pref.alternate_option - S["job_civilian_high"] >> pref.job_civilian_high - S["job_civilian_med"] >> pref.job_civilian_med - S["job_civilian_low"] >> pref.job_civilian_low - S["job_medsci_high"] >> pref.job_medsci_high - S["job_medsci_med"] >> pref.job_medsci_med - S["job_medsci_low"] >> pref.job_medsci_low - S["job_engsec_high"] >> pref.job_engsec_high - S["job_engsec_med"] >> pref.job_engsec_med - S["job_engsec_low"] >> pref.job_engsec_low +/datum/category_item/player_setup_item/occupation/load_character(list/save_data) + pref.alternate_option = save_data["alternate_option"] + pref.job_civilian_high = save_data["job_civilian_high"] + pref.job_civilian_med = save_data["job_civilian_med"] + pref.job_civilian_low = save_data["job_civilian_low"] + pref.job_medsci_high = save_data["job_medsci_high"] + pref.job_medsci_med = save_data["job_medsci_med"] + pref.job_medsci_low = save_data["job_medsci_low"] + pref.job_engsec_high = save_data["job_engsec_high"] + pref.job_engsec_med = save_data["job_engsec_med"] + pref.job_engsec_low = save_data["job_engsec_low"] //VOREStation Add - S["job_talon_low"] >> pref.job_talon_low - S["job_talon_med"] >> pref.job_talon_med - S["job_talon_high"] >> pref.job_talon_high + pref.job_talon_low = save_data["job_talon_low"] + pref.job_talon_med = save_data["job_talon_med"] + pref.job_talon_high = save_data["job_talon_high"] //VOREStation Add End - S["player_alt_titles"] >> pref.player_alt_titles + pref.player_alt_titles = save_data["player_alt_titles"] -/datum/category_item/player_setup_item/occupation/save_character(var/savefile/S) - S["alternate_option"] << pref.alternate_option - S["job_civilian_high"] << pref.job_civilian_high - S["job_civilian_med"] << pref.job_civilian_med - S["job_civilian_low"] << pref.job_civilian_low - S["job_medsci_high"] << pref.job_medsci_high - S["job_medsci_med"] << pref.job_medsci_med - S["job_medsci_low"] << pref.job_medsci_low - S["job_engsec_high"] << pref.job_engsec_high - S["job_engsec_med"] << pref.job_engsec_med - S["job_engsec_low"] << pref.job_engsec_low +/datum/category_item/player_setup_item/occupation/save_character(list/save_data) + save_data["alternate_option"] = pref.alternate_option + save_data["job_civilian_high"] = pref.job_civilian_high + save_data["job_civilian_med"] = pref.job_civilian_med + save_data["job_civilian_low"] = pref.job_civilian_low + save_data["job_medsci_high"] = pref.job_medsci_high + save_data["job_medsci_med"] = pref.job_medsci_med + save_data["job_medsci_low"] = pref.job_medsci_low + save_data["job_engsec_high"] = pref.job_engsec_high + save_data["job_engsec_med"] = pref.job_engsec_med + save_data["job_engsec_low"] = pref.job_engsec_low //VOREStation Add - S["job_talon_low"] << pref.job_talon_low - S["job_talon_med"] << pref.job_talon_med - S["job_talon_high"] << pref.job_talon_high + save_data["job_talon_low"] = pref.job_talon_low + save_data["job_talon_med"] = pref.job_talon_med + save_data["job_talon_high"] = pref.job_talon_high //VOREStation Add End - S["player_alt_titles"] << pref.player_alt_titles + save_data["player_alt_titles"] = pref.player_alt_titles /datum/category_item/player_setup_item/occupation/sanitize_character() pref.alternate_option = sanitize_integer(pref.alternate_option, 0, 2, initial(pref.alternate_option)) diff --git a/code/modules/client/preference_setup/preference_setup.dm b/code/modules/client/preference_setup/preference_setup.dm index 5a8e31c324..1aa899e744 100644 --- a/code/modules/client/preference_setup/preference_setup.dm +++ b/code/modules/client/preference_setup/preference_setup.dm @@ -59,21 +59,21 @@ for(var/datum/category_group/player_setup_category/PS in categories) PS.sanitize_setup() -/datum/category_collection/player_setup_collection/proc/load_character(var/savefile/S) +/datum/category_collection/player_setup_collection/proc/load_character(list/save_data) for(var/datum/category_group/player_setup_category/PS in categories) - PS.load_character(S) + PS.load_character(save_data) -/datum/category_collection/player_setup_collection/proc/save_character(var/savefile/S) +/datum/category_collection/player_setup_collection/proc/save_character(list/save_data) for(var/datum/category_group/player_setup_category/PS in categories) - PS.save_character(S) + PS.save_character(save_data) -/datum/category_collection/player_setup_collection/proc/load_preferences(var/savefile/S) +/datum/category_collection/player_setup_collection/proc/load_preferences(datum/json_savefile/savefile) for(var/datum/category_group/player_setup_category/PS in categories) - PS.load_preferences(S) + PS.load_preferences(savefile) -/datum/category_collection/player_setup_collection/proc/save_preferences(var/savefile/S) +/datum/category_collection/player_setup_collection/proc/save_preferences(datum/json_savefile/savefile) for(var/datum/category_group/player_setup_category/PS in categories) - PS.save_preferences(S) + PS.save_preferences(savefile) /datum/category_collection/player_setup_collection/proc/copy_to_mob(var/mob/living/carbon/human/C) for(var/datum/category_group/player_setup_category/PS in categories) @@ -86,6 +86,7 @@ dat += "[PS.name] " // TODO: Check how to properly mark a href/button selected in a classic browser window else dat += "[PS.name] " + dat += "Game Options" return dat /datum/category_collection/player_setup_collection/proc/content(var/mob/user) @@ -105,6 +106,9 @@ selected_category = category . = 1 + else if(href_list["game_prefs"]) + user.client.prefs.tgui_interact(user) + if(.) user.client.prefs.ShowChoices(user) @@ -123,29 +127,29 @@ for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() -/datum/category_group/player_setup_category/proc/load_character(var/savefile/S) +/datum/category_group/player_setup_category/proc/load_character(list/save_data) // Load all data, then sanitize it. // Need due to, for example, the 01_basic module relying on species having been loaded to sanitize correctly but that isn't loaded until module 03_body. for(var/datum/category_item/player_setup_item/PI in items) - PI.load_character(S) + PI.load_character(save_data) -/datum/category_group/player_setup_category/proc/save_character(var/savefile/S) +/datum/category_group/player_setup_category/proc/save_character(list/save_data) // Sanitize all data, then save it for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_character() for(var/datum/category_item/player_setup_item/PI in items) - PI.save_character(S) + PI.save_character(save_data) -/datum/category_group/player_setup_category/proc/load_preferences(var/savefile/S) +/datum/category_group/player_setup_category/proc/load_preferences(datum/json_savefile/savefile) for(var/datum/category_item/player_setup_item/PI in items) - PI.load_preferences(S) + PI.load_preferences(savefile) -/datum/category_group/player_setup_category/proc/save_preferences(var/savefile/S) +/datum/category_group/player_setup_category/proc/save_preferences(datum/json_savefile/savefile) for(var/datum/category_item/player_setup_item/PI in items) PI.sanitize_preferences() for(var/datum/category_item/player_setup_item/PI in items) - PI.save_preferences(S) + PI.save_preferences(savefile) /datum/category_group/player_setup_category/proc/copy_to_mob(var/mob/living/carbon/human/C) for(var/datum/category_item/player_setup_item/PI in items) @@ -188,25 +192,25 @@ /* * Called when the item is asked to load per character settings */ -/datum/category_item/player_setup_item/proc/load_character(var/savefile/S) +/datum/category_item/player_setup_item/proc/load_character(list/save_data) return /* * Called when the item is asked to save per character settings */ -/datum/category_item/player_setup_item/proc/save_character(var/savefile/S) +/datum/category_item/player_setup_item/proc/save_character(list/save_data) return /* * Called when the item is asked to load user/global settings */ -/datum/category_item/player_setup_item/proc/load_preferences(var/savefile/S) +/datum/category_item/player_setup_item/proc/load_preferences(datum/json_savefile/savefile) return /* * Called when the item is asked to save user/global settings */ -/datum/category_item/player_setup_item/proc/save_preferences(var/savefile/S) +/datum/category_item/player_setup_item/proc/save_preferences(datum/json_savefile/savefile) return /* diff --git a/code/modules/client/preference_setup/skills/skills.dm b/code/modules/client/preference_setup/skills/skills.dm index 645314ab59..eef0512acc 100644 --- a/code/modules/client/preference_setup/skills/skills.dm +++ b/code/modules/client/preference_setup/skills/skills.dm @@ -2,15 +2,15 @@ name = "Skills" sort_order = 1 -/datum/category_item/player_setup_item/skills/load_character(var/savefile/S) - S["skills"] >> pref.skills - S["used_skillpoints"] >> pref.used_skillpoints - S["skill_specialization"] >> pref.skill_specialization +/datum/category_item/player_setup_item/skills/load_character(list/save_data) + pref.skills = save_data["skills"] + pref.used_skillpoints = save_data["used_skillpoints"] + pref.skill_specialization = save_data["skill_specialization"] -/datum/category_item/player_setup_item/skills/save_character(var/savefile/S) - S["skills"] << pref.skills - S["used_skillpoints"] << pref.used_skillpoints - S["skill_specialization"] << pref.skill_specialization +/datum/category_item/player_setup_item/skills/save_character(list/save_data) + save_data["skills"] = pref.skills + save_data["used_skillpoints"] = pref.used_skillpoints + save_data["skill_specialization"] = pref.skill_specialization /datum/category_item/player_setup_item/skills/sanitize_character() if(SKILLS == null) setup_skills() diff --git a/code/modules/client/preference_setup/traits/traits.dm b/code/modules/client/preference_setup/traits/traits.dm index 4102a04f74..60369ff0c0 100644 --- a/code/modules/client/preference_setup/traits/traits.dm +++ b/code/modules/client/preference_setup/traits/traits.dm @@ -35,11 +35,11 @@ var/list/trait_categories = list() // The categories available for the trait men sort_order = 1 var/current_tab = "Physical" -/datum/category_item/player_setup_item/traits/load_character(var/savefile/S) - S["traits"] >> pref.traits +/datum/category_item/player_setup_item/traits/load_character(list/save_data) + pref.traits = save_data["traits"] -/datum/category_item/player_setup_item/traits/save_character(var/savefile/S) - S["traits"] << pref.traits +/datum/category_item/player_setup_item/traits/save_character(list/save_data) + save_data["traits"] = pref.traits /datum/category_item/player_setup_item/traits/content() diff --git a/code/modules/client/preference_setup/volume_sliders/01_volume.dm b/code/modules/client/preference_setup/volume_sliders/01_volume.dm index 7dea5d2053..fef2b04356 100644 --- a/code/modules/client/preference_setup/volume_sliders/01_volume.dm +++ b/code/modules/client/preference_setup/volume_sliders/01_volume.dm @@ -7,11 +7,11 @@ name = "General Volume" sort_order = 1 -/datum/category_item/player_setup_item/volume_sliders/volume/load_preferences(var/savefile/S) - S["volume_channels"] >> pref.volume_channels +/datum/category_item/player_setup_item/volume_sliders/volume/load_preferences(datum/json_savefile/savefile) + pref.volume_channels = savefile.get_entry("volume_channels") -/datum/category_item/player_setup_item/volume_sliders/volume/save_preferences(var/savefile/S) - S["volume_channels"] << pref.volume_channels +/datum/category_item/player_setup_item/volume_sliders/volume/save_preferences(datum/json_savefile/savefile) + savefile.set_entry("volume_channels", pref.volume_channels) /datum/category_item/player_setup_item/volume_sliders/volume/sanitize_preferences() if(isnull(pref.volume_channels)) @@ -74,7 +74,7 @@ /datum/volume_panel/tgui_data(mob/user) if(!user.client || !user.client.prefs) return list("error" = TRUE) - + var/list/data = ..() data["volume_channels"] = user.client.prefs.volume_channels return data diff --git a/code/modules/client/preference_setup/volume_sliders/02_media.dm b/code/modules/client/preference_setup/volume_sliders/02_media.dm index 98f7bb4cfe..007edcbf01 100644 --- a/code/modules/client/preference_setup/volume_sliders/02_media.dm +++ b/code/modules/client/preference_setup/volume_sliders/02_media.dm @@ -6,13 +6,13 @@ name = "Media" sort_order = 2 -/datum/category_item/player_setup_item/volume_sliders/media/load_preferences(var/savefile/S) - S["media_volume"] >> pref.media_volume - S["media_player"] >> pref.media_player +/datum/category_item/player_setup_item/volume_sliders/media/load_preferences(datum/json_savefile/savefile) + pref.media_volume = savefile.get_entry("media_volume") + pref.media_player = savefile.get_entry("media_player") -/datum/category_item/player_setup_item/volume_sliders/media/save_preferences(var/savefile/S) - S["media_volume"] << pref.media_volume - S["media_player"] << pref.media_player +/datum/category_item/player_setup_item/volume_sliders/media/save_preferences(datum/json_savefile/savefile) + savefile.set_entry("media_volume", pref.media_volume) + savefile.set_entry("media_player", pref.media_player) /datum/category_item/player_setup_item/volume_sliders/media/sanitize_preferences() pref.media_volume = isnum(pref.media_volume) ? CLAMP(pref.media_volume, 0, 1) : initial(pref.media_volume) diff --git a/code/modules/client/preference_setup/vore/02_size.dm b/code/modules/client/preference_setup/vore/02_size.dm index 599424723c..b9d0450c37 100644 --- a/code/modules/client/preference_setup/vore/02_size.dm +++ b/code/modules/client/preference_setup/vore/02_size.dm @@ -22,27 +22,27 @@ name = "Size" sort_order = 2 -/datum/category_item/player_setup_item/vore/size/load_character(var/savefile/S) - S["size_multiplier"] >> pref.size_multiplier - S["weight_vr"] >> pref.weight_vr - S["weight_gain"] >> pref.weight_gain - S["weight_loss"] >> pref.weight_loss - S["fuzzy"] >> pref.fuzzy - S["offset_override"] >> pref.offset_override - S["voice_freq"] >> pref.voice_freq - S["voice_sound"] >> pref.voice_sound - S["custom_speech_bubble"] >> pref.custom_speech_bubble +/datum/category_item/player_setup_item/vore/size/load_character(list/save_data) + pref.size_multiplier = save_data["size_multiplier"] + pref.weight_vr = save_data["weight_vr"] + pref.weight_gain = save_data["weight_gain"] + pref.weight_loss = save_data["weight_loss"] + pref.fuzzy = save_data["fuzzy"] + pref.offset_override = save_data["offset_override"] + pref.voice_freq = save_data["voice_freq"] + pref.voice_sound = save_data["voice_sound"] + pref.custom_speech_bubble = save_data["custom_speech_bubble"] -/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S) - S["size_multiplier"] << pref.size_multiplier - S["weight_vr"] << pref.weight_vr - S["weight_gain"] << pref.weight_gain - S["weight_loss"] << pref.weight_loss - S["fuzzy"] << pref.fuzzy - S["offset_override"] << pref.offset_override - S["voice_freq"] << pref.voice_freq - S["voice_sound"] << pref.voice_sound - S["custom_speech_bubble"] << pref.custom_speech_bubble +/datum/category_item/player_setup_item/vore/size/save_character(list/save_data) + save_data["size_multiplier"] = pref.size_multiplier + save_data["weight_vr"] = pref.weight_vr + save_data["weight_gain"] = pref.weight_gain + save_data["weight_loss"] = pref.weight_loss + save_data["fuzzy"] = pref.fuzzy + save_data["offset_override"] = pref.offset_override + save_data["voice_freq"] = pref.voice_freq + save_data["voice_sound"] = pref.voice_sound + save_data["custom_speech_bubble"] = pref.custom_speech_bubble /datum/category_item/player_setup_item/vore/size/sanitize_character() pref.weight_vr = sanitize_integer(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX, initial(pref.weight_vr)) diff --git a/code/modules/client/preference_setup/vore/03_egg.dm b/code/modules/client/preference_setup/vore/03_egg.dm index 5ad651fbf9..f330d419ce 100644 --- a/code/modules/client/preference_setup/vore/03_egg.dm +++ b/code/modules/client/preference_setup/vore/03_egg.dm @@ -14,13 +14,13 @@ name = "Egg appearance." sort_order = 3 -/datum/category_item/player_setup_item/vore/egg/load_character(var/savefile/S) - S["vore_egg_type"] >> pref.vore_egg_type - S["autohiss"] >> pref.autohiss // VOREStation Add +/datum/category_item/player_setup_item/vore/egg/load_character(list/save_data) + pref.vore_egg_type = save_data["vore_egg_type"] + pref.autohiss = save_data["autohiss"] -/datum/category_item/player_setup_item/vore/egg/save_character(var/savefile/S) - S["vore_egg_type"] << pref.vore_egg_type - S["autohiss"] << pref.autohiss // VOREStation Add +/datum/category_item/player_setup_item/vore/egg/save_character(list/save_data) + save_data["vore_egg_type"] = pref.vore_egg_type + save_data["autohiss"] = pref.autohiss /datum/category_item/player_setup_item/vore/egg/sanitize_character() pref.vore_egg_type = sanitize_inlist(pref.vore_egg_type, global_vore_egg_types, initial(pref.vore_egg_type)) diff --git a/code/modules/client/preference_setup/vore/04_resleeving.dm b/code/modules/client/preference_setup/vore/04_resleeving.dm index 22fba4e6a7..ccb6991c35 100644 --- a/code/modules/client/preference_setup/vore/04_resleeving.dm +++ b/code/modules/client/preference_setup/vore/04_resleeving.dm @@ -8,14 +8,14 @@ name = "Resleeving" sort_order = 4 -/datum/category_item/player_setup_item/vore/resleeve/load_character(var/savefile/S) - S["resleeve_lock"] >> pref.resleeve_lock - S["resleeve_scan"] >> pref.resleeve_scan +/datum/category_item/player_setup_item/vore/resleeve/load_character(list/save_data) + pref.resleeve_lock = save_data["resleeve_lock"] + pref.resleeve_scan = save_data["resleeve_scan"] -/datum/category_item/player_setup_item/vore/resleeve/save_character(var/savefile/S) - S["resleeve_lock"] << pref.resleeve_lock - S["resleeve_scan"] << pref.resleeve_scan +/datum/category_item/player_setup_item/vore/resleeve/save_character(list/save_data) + save_data["resleeve_lock"] = pref.resleeve_lock + save_data["resleeve_scan"] = pref.resleeve_scan /datum/category_item/player_setup_item/vore/resleeve/sanitize_character() pref.resleeve_lock = sanitize_integer(pref.resleeve_lock, 0, 1, initial(pref.resleeve_lock)) diff --git a/code/modules/client/preference_setup/vore/05_persistence.dm b/code/modules/client/preference_setup/vore/05_persistence.dm index 330a21a73b..bb2535f44b 100644 --- a/code/modules/client/preference_setup/vore/05_persistence.dm +++ b/code/modules/client/preference_setup/vore/05_persistence.dm @@ -7,12 +7,12 @@ name = "Persistence" sort_order = 5 -/datum/category_item/player_setup_item/vore/persistence/load_character(var/savefile/S) - S["persistence_settings"] >> pref.persistence_settings +/datum/category_item/player_setup_item/vore/persistence/load_character(list/save_data) + pref.persistence_settings = save_data["persistence_settings"] sanitize_character() // Don't let new characters start off with nulls -/datum/category_item/player_setup_item/vore/persistence/save_character(var/savefile/S) - S["persistence_settings"] << pref.persistence_settings +/datum/category_item/player_setup_item/vore/persistence/save_character(list/save_data) + save_data["persistence_settings"] = pref.persistence_settings /datum/category_item/player_setup_item/vore/persistence/sanitize_character() pref.persistence_settings = sanitize_integer(pref.persistence_settings, 0, (1<<(PERSIST_COUNT+1)-1), initial(pref.persistence_settings)) diff --git a/code/modules/client/preference_setup/vore/06_vantag.dm b/code/modules/client/preference_setup/vore/06_vantag.dm index c402f1f277..78d801a75e 100644 --- a/code/modules/client/preference_setup/vore/06_vantag.dm +++ b/code/modules/client/preference_setup/vore/06_vantag.dm @@ -8,13 +8,13 @@ name = "VS Events" sort_order = 6 -/datum/category_item/player_setup_item/vore/vantag/load_character(var/savefile/S) - S["vantag_volunteer"] >> pref.vantag_volunteer - S["vantag_preference"] >> pref.vantag_preference +/datum/category_item/player_setup_item/vore/vantag/load_character(list/save_data) + pref.vantag_volunteer = save_data["vantag_volunteer"] + pref.vantag_preference = save_data["vantag_preference"] -/datum/category_item/player_setup_item/vore/vantag/save_character(var/savefile/S) - S["vantag_volunteer"] << pref.vantag_volunteer - S["vantag_preference"] << pref.vantag_preference +/datum/category_item/player_setup_item/vore/vantag/save_character(list/save_data) + save_data["vantag_volunteer"] = pref.vantag_volunteer + save_data["vantag_preference"] = pref.vantag_preference /datum/category_item/player_setup_item/vore/vantag/sanitize_character() pref.vantag_volunteer = sanitize_integer(pref.vantag_volunteer, 0, 1, initial(pref.vantag_volunteer)) diff --git a/code/modules/client/preference_setup/vore/07_traits.dm b/code/modules/client/preference_setup/vore/07_traits.dm index 85c97bcbb7..4027f771b3 100644 --- a/code/modules/client/preference_setup/vore/07_traits.dm +++ b/code/modules/client/preference_setup/vore/07_traits.dm @@ -107,47 +107,47 @@ var/global/list/valid_bloodreagents = list("default","iron","copper","phoron","s name = "Traits" sort_order = 7 -/datum/category_item/player_setup_item/vore/traits/load_character(var/savefile/S) - S["custom_species"] >> pref.custom_species - S["custom_base"] >> pref.custom_base - S["pos_traits"] >> pref.pos_traits - S["neu_traits"] >> pref.neu_traits - S["neg_traits"] >> pref.neg_traits - S["blood_color"] >> pref.blood_color - S["blood_reagents"] >> pref.blood_reagents +/datum/category_item/player_setup_item/vore/traits/load_character(list/save_data) + pref.custom_species = save_data["custom_species"] + pref.custom_base = save_data["custom_base"] + pref.pos_traits = save_data["pos_traits"] + pref.neu_traits = save_data["neu_traits"] + pref.neg_traits = save_data["neg_traits"] + pref.blood_color = save_data["blood_color"] + pref.blood_reagents = save_data["blood_reagents"] - S["traits_cheating"] >> pref.traits_cheating - S["max_traits"] >> pref.max_traits - S["trait_points"] >> pref.starting_trait_points + pref.traits_cheating = save_data["traits_cheating"] + pref.max_traits = save_data["max_traits"] + pref.starting_trait_points = save_data["trait_points"] - S["custom_say"] >> pref.custom_say - S["custom_whisper"] >> pref.custom_whisper - S["custom_ask"] >> pref.custom_ask - S["custom_exclaim"] >> pref.custom_exclaim + pref.custom_say = save_data["custom_say"] + pref.custom_whisper = save_data["custom_whisper"] + pref.custom_ask = save_data["custom_ask"] + pref.custom_exclaim = save_data["custom_exclaim"] - S["custom_heat"] >> pref.custom_heat - S["custom_cold"] >> pref.custom_cold + pref.custom_heat = save_data["custom_heat"] + pref.custom_cold = save_data["custom_cold"] -/datum/category_item/player_setup_item/vore/traits/save_character(var/savefile/S) - S["custom_species"] << pref.custom_species - S["custom_base"] << pref.custom_base - S["pos_traits"] << pref.pos_traits - S["neu_traits"] << pref.neu_traits - S["neg_traits"] << pref.neg_traits - S["blood_color"] << pref.blood_color - S["blood_reagents"] << pref.blood_reagents +/datum/category_item/player_setup_item/vore/traits/save_character(list/save_data) + save_data["custom_species"] = pref.custom_species + save_data["custom_base"] = pref.custom_base + save_data["pos_traits"] = pref.pos_traits + save_data["neu_traits"] = pref.neu_traits + save_data["neg_traits"] = pref.neg_traits + save_data["blood_color"] = pref.blood_color + save_data["blood_reagents"] = pref.blood_reagents - S["traits_cheating"] << pref.traits_cheating - S["max_traits"] << pref.max_traits - S["trait_points"] << pref.starting_trait_points + save_data["traits_cheating"] = pref.traits_cheating + save_data["max_traits"] = pref.max_traits + save_data["trait_points"] = pref.starting_trait_points - S["custom_say"] << pref.custom_say - S["custom_whisper"] << pref.custom_whisper - S["custom_ask"] << pref.custom_ask - S["custom_exclaim"] << pref.custom_exclaim + save_data["custom_say"] = pref.custom_say + save_data["custom_whisper"] = pref.custom_whisper + save_data["custom_ask"] = pref.custom_ask + save_data["custom_exclaim"] = pref.custom_exclaim - S["custom_heat"] << pref.custom_heat - S["custom_cold"] << pref.custom_cold + save_data["custom_heat"] = pref.custom_heat + save_data["custom_cold"] = pref.custom_cold /datum/category_item/player_setup_item/vore/traits/sanitize_character() if(!pref.pos_traits) pref.pos_traits = list() diff --git a/code/modules/client/preference_setup/vore/08_nif.dm b/code/modules/client/preference_setup/vore/08_nif.dm index d502fb447b..11e1f563dc 100644 --- a/code/modules/client/preference_setup/vore/08_nif.dm +++ b/code/modules/client/preference_setup/vore/08_nif.dm @@ -9,15 +9,15 @@ name = "NIF Data" sort_order = 8 -/datum/category_item/player_setup_item/vore/nif/load_character(var/savefile/S) - S["nif_path"] >> pref.nif_path - S["nif_durability"] >> pref.nif_durability - S["nif_savedata"] >> pref.nif_savedata +/datum/category_item/player_setup_item/vore/nif/load_character(list/save_data) + pref.nif_path = save_data["nif_path"] + pref.nif_durability = save_data["nif_durability"] + pref.nif_savedata = save_data["nif_savedata"] -/datum/category_item/player_setup_item/vore/nif/save_character(var/savefile/S) - S["nif_path"] << pref.nif_path - S["nif_durability"] << pref.nif_durability - S["nif_savedata"] << pref.nif_savedata +/datum/category_item/player_setup_item/vore/nif/save_character(list/save_data) + save_data["nif_path"] = pref.nif_path + save_data["nif_durability"] = pref.nif_durability + save_data["nif_savedata"] = pref.nif_savedata /datum/category_item/player_setup_item/vore/nif/sanitize_character() if(pref.nif_path && !ispath(pref.nif_path)) //We have at least a text string that should be a path. diff --git a/code/modules/client/preference_setup/vore/09_misc.dm b/code/modules/client/preference_setup/vore/09_misc.dm index 963354baea..2cb867488d 100644 --- a/code/modules/client/preference_setup/vore/09_misc.dm +++ b/code/modules/client/preference_setup/vore/09_misc.dm @@ -2,27 +2,27 @@ name = "Misc Settings" sort_order = 9 -/datum/category_item/player_setup_item/vore/misc/load_character(var/savefile/S) - S["show_in_directory"] >> pref.show_in_directory - S["directory_tag"] >> pref.directory_tag - S["directory_erptag"] >> pref.directory_erptag - S["directory_ad"] >> pref.directory_ad - S["sensorpref"] >> pref.sensorpref - S["capture_crystal"] >> pref.capture_crystal - S["auto_backup_implant"] >> pref.auto_backup_implant - S["borg_petting"] >> pref.borg_petting - S["stomach_vision"] >> pref.stomach_vision +/datum/category_item/player_setup_item/vore/misc/load_character(list/save_data) + pref.show_in_directory = save_data["show_in_directory"] + pref.directory_tag = save_data["directory_tag"] + pref.directory_erptag = save_data["directory_erptag"] + pref.directory_ad = save_data["directory_ad"] + pref.sensorpref = save_data["sensorpref"] + pref.capture_crystal = save_data["capture_crystal"] + pref.auto_backup_implant = save_data["auto_backup_implant"] + pref.borg_petting = save_data["borg_petting"] + pref.stomach_vision = save_data["stomach_vision"] -/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S) - S["show_in_directory"] << pref.show_in_directory - S["directory_tag"] << pref.directory_tag - S["directory_erptag"] << pref.directory_erptag - S["directory_ad"] << pref.directory_ad - S["sensorpref"] << pref.sensorpref - S["capture_crystal"] << pref.capture_crystal - S["auto_backup_implant"] << pref.auto_backup_implant - S["borg_petting"] << pref.borg_petting - S["stomach_vision"] << pref.stomach_vision +/datum/category_item/player_setup_item/vore/misc/save_character(list/save_data) + save_data["show_in_directory"] = pref.show_in_directory + save_data["directory_tag"] = pref.directory_tag + save_data["directory_erptag"] = pref.directory_erptag + save_data["directory_ad"] = pref.directory_ad + save_data["sensorpref"] = pref.sensorpref + save_data["capture_crystal"] = pref.capture_crystal + save_data["auto_backup_implant"] = pref.auto_backup_implant + save_data["borg_petting"] = pref.borg_petting + save_data["stomach_vision"] = pref.stomach_vision /datum/category_item/player_setup_item/vore/misc/copy_to_mob(var/mob/living/carbon/human/character) if(pref.sensorpref > 5 || pref.sensorpref < 1) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 86613af1fd..fe950956e7 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1,10 +1,12 @@ var/list/preferences_datums = list() /datum/preferences - //doohickeys for savefiles + /// The path to the general savefile for this datum var/path - var/default_slot = 1 //Holder so it doesn't default to slot 1, rather the last one used - var/savefile_version = 0 + /// Whether or not we allow saving/loading. Used for guests, if they're enabled + var/load_and_save = TRUE + /// Ensures that we always load the last used save, QOL + var/default_slot = 1 //non-preference stuff var/warns = 0 @@ -176,29 +178,55 @@ var/list/preferences_datums = list() ///If they are currently in the process of swapping slots, don't let them open 999 windows for it and get confused var/selecting_slots = FALSE + /// The json savefile for this datum + var/datum/json_savefile/savefile /datum/preferences/New(client/C) + client = C + + for(var/middleware_type in subtypesof(/datum/preference_middleware)) + middleware += new middleware_type(src) + + if(istype(C)) // IS_CLIENT_OR_MOCK + client_ckey = C.ckey + load_and_save = !IsGuestKey(C.key) + load_path(C.ckey) + if(load_and_save && !fexists(path)) + try_savefile_type_migration() + else + CRASH("attempted to create a preferences datum without a client or mock!") + load_savefile() + + // Legacy code + gear = list() + gear_list = list() + gear_slot = 1 + // End legacy code + player_setup = new(src) + + var/loaded_preferences_successfully = load_preferences() + if(loaded_preferences_successfully) + if(load_character()) + return + + // Didn't load a character, so let's randomize set_biological_gender(pick(MALE, FEMALE)) real_name = random_name(identifying_gender,species) b_type = RANDOM_BLOOD_TYPE - gear = list() - gear_list = list() - gear_slot = 1 - - if(istype(C)) - client = C - client_ckey = C.ckey - if(!IsGuestKey(C.key)) - load_path(C.ckey) - if(load_preferences()) - load_character() + if(client) + apply_all_client_preferences() + if(!loaded_preferences_successfully) + save_preferences() + save_character() // Save random character /datum/preferences/Destroy() - . = ..() QDEL_LIST_ASSOC_VAL(char_render_holders) + QDEL_NULL(middleware) + value_cache = null + return ..() /datum/preferences/proc/ZeroSkills(var/forced = 0) for(var/V in SKILLS) for(var/datum/skill/S in SKILLS[V]) @@ -357,8 +385,8 @@ var/list/preferences_datums = list() return 1 if(href_list["save"]) - save_preferences() save_character() + save_preferences() else if(href_list["reload"]) load_preferences() load_character() @@ -373,7 +401,7 @@ var/list/preferences_datums = list() return 0 if("Yes" != tgui_alert(usr, "Are you completely sure that you want to reset this character slot?", "Reset current slot?", list("No", "Yes"))) return 0 - load_character(SAVE_RESET) + reset_slot() sanitize_preferences() else if(href_list["copy"]) if(!IsGuestKey(usr.key)) @@ -402,6 +430,12 @@ var/list/preferences_datums = list() // Ask the preferences datums to apply their own settings to the new mob player_setup.copy_to_mob(character) + for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) + if(preference.savefile_identifier != PREFERENCE_CHARACTER) + continue + + preference.apply_to_human(character, read_preference(preference.type)) + // VOREStation Edit - Sync up all their organs and species one final time character.force_update_organs() @@ -420,26 +454,23 @@ var/list/preferences_datums = list() if(selecting_slots) to_chat(user, "You already have a slot selection dialog open!") return - var/savefile/S = new /savefile(path) - if(!S) - error("Somehow missing savefile path?! [path]") + if(!savefile) return - var/name - var/nickname //vorestation edit - This set appends nicknames to the save slot + var/default var/list/charlist = list() - var/default //VOREStation edit - for(var/i=1, i<= config.character_slots, i++) - S.cd = "/character[i]" - S["real_name"] >> name - S["nickname"] >> nickname //vorestation edit + + for(var/i = 1 to config.character_slots) + var/list/save_data = savefile.get_entry("character[i]", list()) + var/name = save_data["real_name"] + var/nickname = save_data["nickname"] if(!name) name = "[i] - \[Unused Slot\]" else if(i == default_slot) name = "โ–บ[i] - [name]" else name = "[i] - [name]" - if (i == default_slot) //VOREStation edit + if(i == default_slot) default = "[name][nickname ? " ([nickname])" : ""]" charlist["[name][nickname ? " ([nickname])" : ""]"] = i @@ -463,24 +494,23 @@ var/list/preferences_datums = list() if(selecting_slots) to_chat(user, "You already have a slot selection dialog open!") return - var/savefile/S = new /savefile(path) - if(!S) - error("Somehow missing savefile path?! [path]") + if(!savefile) return - var/name - var/nickname //vorestation edit - This set appends nicknames to the save slot var/list/charlist = list() - for(var/i=1, i<= config.character_slots, i++) - S.cd = "/character[i]" - S["real_name"] >> name - S["nickname"] >> nickname //vorestation edit + + for(var/i in 1 to config.character_slots) + var/list/save_data = savefile.get_entry("character[i]", list()) + var/name = save_data["real_name"] + var/nickname = save_data["nickname"] + if(!name) name = "[i] - \[Unused Slot\]" if(i == default_slot) name = "โ–บ[i] - [name]" else name = "[i] - [name]" + charlist["[name][nickname ? " ([nickname])" : ""]"] = i selecting_slots = TRUE @@ -494,7 +524,7 @@ var/list/preferences_datums = list() error("Player picked [choice] slot to copy to, but that wasn't one we sent.") return - if(tgui_alert(user, "Are you sure you want to override slot [slotnum], [name][nickname ? " ([nickname])" : ""]'s savedata?", "Confirm Override", list("No", "Yes")) == "Yes") + if(tgui_alert(user, "Are you sure you want to override slot [slotnum], [choice]'s savedata?", "Confirm Override", list("No", "Yes")) == "Yes") overwrite_character(slotnum) sanitize_preferences() save_preferences() diff --git a/code/modules/client/preferences/README.md b/code/modules/client/preferences/README.md new file mode 100644 index 0000000000..fabfb779c9 --- /dev/null +++ b/code/modules/client/preferences/README.md @@ -0,0 +1,456 @@ +# Preferences (by Mothblocks) + +This does not contain all the information on specific values--you can find those as doc-comments in relevant paths, such as `/datum/preference`. Rather, this gives you an overview for creating *most* preferences, and getting your foot in the door to create more advanced ones. + +## Anatomy of a preference (A.K.A. how do I make one?) + +Most preferences consist of two parts: + +1. A `/datum/preference` type. +2. A tgui representation in a TypeScript file. + +Every `/datum/preference` requires these three values be set: +1. `category` - See [Categories](#Categories). +2. `savefile_key` - The value which will be saved in the savefile. This will also be the identifier for tgui. +3. `savefile_identifier` - Whether or not this is a character specific preference (`PREFERENCE_CHARACTER`) or one that affects the player (`PREFERENCE_PLAYER`). As an example: hair color is `PREFERENCE_CHARACTER` while your UI settings are `PREFERENCE_PLAYER`, since they do not change between characters. + +For the tgui representation, most preferences will create a `.tsx` file in `tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/`. If your preference is a character preference, make a new file in `character_preferences`. Otherwise, put it in `game_preferences`. The filename does not matter, and this file can hold multiple relevant preferences if you would like. + +From here, you will want to write code resembling: + +```ts +import { Feature } from "../base"; + +export const savefile_key_here: Feature = { + name: "Preference Name Here", + component: Component, + + // Necessary for game preferences, unused for others + category: "CATEGORY", + + // Optional, shown as a tooltip + description: "This preference will blow your mind!", +} +``` + +`T` and `Component` depend on the type of preference you're making. Here are all common examples... + +## Numeric preferences + +Examples include age and FPS. + +A numeric preference derives from `/datum/preference/numeric`. + +```dm +/datum/preference/numeric/legs + category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "legs" + + minimum = 1 + maximum = 8 +``` + +You can optionally provide a `step` field. This value is 1 by default, meaning only integers are accepted. + +Your `.tsx` file would look like: + +```ts +import { Feature, FeatureNumberInput } from "../base"; + +export const legs: Feature = { + name: "Legs", + component: FeatureNumberInput, +} +``` + +## Toggle preferences + +Examples include enabling tooltips. + +```dm +/datum/preference/toggle/enable_breathing + category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "enable_breathing" + + // Optional, TRUE by default + default_value = FALSE +``` + +Your `.tsx` file would look like: + +```ts +import { CheckboxInput, FeatureToggle } from "../base"; + +export const enable_breathing: FeatureToggle = { + name: "Enable breathing", + component: CheckboxInput, +} +``` + +## Choiced preferences +A choiced preference is one where the only options are in a distinct few amount of choices. Examples include skin tone, shirt, and UI style. + +To create one, derive from `/datum/preference/choiced`. + +```dm +/datum/preference/choiced/favorite_drink + category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "favorite_drink" +``` + +Now we need to tell the game what the choices are. We do this by overriding `init_possible_values()`. This will return a list of possible options. + +```dm +/datum/preference/choiced/favorite_drink/init_possible_values() + return list( + "Milk", + "Cola", + "Water", + ) +``` + +Your `.tsx` file would then look like: + +```tsx +import { FeatureChoiced, FeatureDropdownInput } from "../base"; + +export const favorite_drink: FeatureChoiced = { + name: "Favorite drink", + component: FeatureDropdownInput, +}; +``` + +This will create a dropdown input for your preference. + +### Choiced preferences - Icons +Choiced preferences can generate icons. This is how the clothing/species preferences work, for instance. However, if we just want a basic dropdown input with icons, it would look like this: + +```dm +/datum/preference/choiced/favorite_drink + category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "favorite_drink" + should_generate_icons = TRUE // NEW! This is necessary. + +/datum/preference/choiced/favorite_drink/init_possible_values() + return list("Milk", "Cola", "Water") + +// New! This proc will get called for every value. +/datum/preference/choiced/favorite_drink/icon_for(value) + switch (value) + if ("Milk") + return icon('drinks.dmi', "milk") + if ("Cola") + return icon('drinks.dmi', "cola") + if ("Water") + return icon('drinks.dmi', "water") +``` + +Then, change your `.tsx` file to look like: + +```tsx +import { FeatureChoiced, FeatureIconnedDropdownInput } from "../base"; + +export const favorite_drink: FeatureChoiced = { + name: "Favorite drink", + component: FeatureIconnedDropdownInput, +}; +``` + +### Choiced preferences - Display names +Sometimes the values you want to save in code aren't the same as the ones you want to display. You can specify display names to change this. + +The only thing you will add is "compiled data". + +```dm +/datum/preference/choiced/favorite_drink/compile_constant_data() + var/list/data = ..() + + // An assoc list of values to display names + data[CHOICED_PREFERENCE_DISPLAY_NAMES] = list( + "Milk" = "Delicious Milk", + "Cola" = "Crisp Cola", + "Water" = "Plain Ol' Water", + ) + + return data +``` + +Your `.tsx` file does not change. The UI will figure it out for you! + +## Color preferences +These refer to colors, such as your OOC color. When read, these values will be given as 6 hex digits, *without* the pound sign. + +```dm +/datum/preference/color/eyeliner_color + category = PREFERENCE_CATEGORY_NON_CONTEXTUAL + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "eyeliner_color" +``` + +Your `.tsx` file would look like: + +```ts +import { FeatureColorInput, Feature } from "../base"; + +export const eyeliner_color: Feature = { + name: "Eyeliner color", + component: FeatureColorInput, +}; +``` + +## Name preferences +These refer to an alternative name. Examples include AI names and backup human names. + +These exist in `code/modules/client/preferences/names.dm`. + +These do not need a `.ts` file, and will be created in the UI automatically. + +```dm +/datum/preference/name/doctor + savefile_key = "doctor_name" + + // The name on the UI + explanation = "Doctor name" + + // This groups together with anything else with the same group + group = "medicine" + + // Optional, if specified the UI will show this name actively + // when the player is a medical doctor. + relevant_job = /datum/job/medical_doctor +``` + +## Making your preference do stuff + +There are a handful of procs preferences can use to act on their own: + +```dm +/// Apply this preference onto the given client. +/// Called when the savefile_identifier == PREFERENCE_PLAYER. +/datum/preference/proc/apply_to_client(client/client, value) + +/// Fired when the preference is updated. +/// Calls apply_to_client by default, but can be overridden. +/datum/preference/proc/apply_to_client_updated(client/client, value) + +/// Apply this preference onto the given human. +/// Must be overriden by subtypes. +/// Called when the savefile_identifier == PREFERENCE_CHARACTER. +/datum/preference/proc/apply_to_human(mob/living/carbon/human/target, value) +``` + +For example, `/datum/preference/numeric/age` contains: + +```dm +/datum/preference/numeric/age/apply_to_human(mob/living/carbon/human/target, value) + target.age = value +``` + +If your preference is `PREFERENCE_CHARACTER`, it MUST override `apply_to_human`, even if just to immediately `return`. + +You can also read preferences directly with `prefs.read_preference(/datum/preference/type/here)`, which will return the stored value. + +## Categories +Every preference needs to be in a `category`. These can be found in `code/__DEFINES/preferences.dm`. + +```dm +/// These will be shown in the character sidebar, but at the bottom. +#define PREFERENCE_CATEGORY_FEATURES "features" + +/// Any preferences that will show to the sides of the character in the setup menu. +#define PREFERENCE_CATEGORY_CLOTHING "clothing" + +/// Preferences that will be put into the 3rd list, and are not contextual. +#define PREFERENCE_CATEGORY_NON_CONTEXTUAL "non_contextual" + +/// Will be put under the game preferences window. +#define PREFERENCE_CATEGORY_GAME_PREFERENCES "game_preferences" + +/// These will show in the list to the right of the character preview. +#define PREFERENCE_CATEGORY_SECONDARY_FEATURES "secondary_features" + +/// These are preferences that are supplementary for main features, +/// such as hair color being affixed to hair. +#define PREFERENCE_CATEGORY_SUPPLEMENTAL_FEATURES "supplemental_features" +``` + +![Preference categories for the main page](https://raw.githubusercontent.com/tgstation/documentation-assets/main/preferences/preference_categories.png) + +> SECONDARY_FEATURES or NON_CONTEXTUAL? + +Secondary features tend to be species specific. Non contextual features shouldn't change much from character to character. + +## Default values and randomization + +There are three procs to be aware of in regards to this topic: + +- `create_default_value()`. This is used when a value deserializes improperly or when a new character is created. +- `create_informed_default_value(datum/preferences/preferences)` - Used for more complicated default values, like how names require the gender. Will call `create_default_value()` by default. +- `create_random_value(datum/preferences/preferences)` - Explicitly used for random values, such as when a character is being randomized. + +`create_default_value()` in most preferences will create a random value. If this is a problem (like how default characters should always be human), you can override `create_default_value()`. By default (without overriding `create_random_value`), random values are just default values. + +## Advanced - Server data + +As previewed in [the display names implementation](#Choiced-preferences---Display-names), there exists a `compile_constant_data()` proc you can override. + +Compiled data is used wherever the server needs to give the client some value it can't figure out on its own. Skin tones use this to tell the client what colors they represent, for example. + +Compiled data is sent to the `serverData` field in the `FeatureValueProps`. + +## Advanced - Creating your own tgui component + +If you have good knowledge with tgui (especially TypeScript), you'll be able to create your own component to represent preferences. + +The `component` field in a feature accepts __any__ component that accepts `FeatureValueProps`. + +This will give you the fields: + +```ts +act: typeof sendAct, +featureId: string, +handleSetValue: (newValue: TSending) => void, +serverData: TServerData | undefined, +shrink?: boolean, +value: TReceiving, +``` + +`act` is the same as the one you get from `useBackend`. + +`featureId` is the savefile_key of the feature. + +`handleSetValue` is a function that, when called, will tell the server the new value, as well as changing the value immediately locally. + +`serverData` is the [server data](#Advanced---Server-data), if it has been fetched yet (and exists). + +`shrink` is whether or not the UI should appear smaller. This is only used for supplementary features. + +`value` is the current value, could be predicted (meaning that the value was changed locally, but has not yet reached the server). + +For a basic example of how this can look, observe `CheckboxInput`: + +```tsx +export const CheckboxInput = ( + props: FeatureValueProps +) => { + return ( { + props.handleSetValue(!props.value); + }} + />); +}; +``` + +## Advanced - Middleware +A `/datum/preference_middleware` is a way to inject your own data at specific points, as well as hijack actions. + +Middleware can hijack actions by specifying `action_delegations`: + +```dm +/datum/preference_middleware/congratulations + action_delegations = list( + "congratulate_me" = PROC_REF(congratulate_me), + ) + +/datum/preference_middleware/congratulations/proc/congratulate_me(list/params, mob/user) + to_chat(user, span_notice("Wow, you did a great job learning about middleware!")) + + return TRUE +``` + +Middleware can inject its own data at several points, such as providing new UI assets, compiled data (used by middleware such as quirks to tell the client what quirks exist), etc. Look at `code/modules/client/preferences/middleware/_middleware.dm` for full information. + +--- + +## Antagonists + +In order to make an antagonist selectable, you must do a few things: + +1. Your antagonist needs an icon. +2. Your antagonist must be in a Dynamic ruleset. The ruleset must specify the antagonist as its `antag_flag`. +3. Your antagonist needs a file in `tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/filename.ts`. This file name MUST be the `antag_flag` of your ruleset, with nothing but letters remaining (e.g. "Nuclear Operative" -> `nuclearoperative`). +4. Add it to `special_roles`. + +## Creating icons + +If you are satisfied with your icon just being a dude with some clothes, then you can specify `preview_outfit` in your `/datum/antagonist`. + +Space Ninja, for example, looks like: + +```dm +/datum/antagonist/ninja + preview_outift = /datum/outfit/ninja +``` + +However, if you want to get creative, you can override `/get_preview_icon()`. This proc should return an icon of size `ANTAGONIST_PREVIEW_ICON_SIZE`x`ANTAGONIST_PREVIEW_ICON_SIZE`. + +There are some helper procs you can use as well. `render_preview_outfit(outfit_type)` will take an outfit and give you an icon of someone wearing those clothes. `finish_preview_outfit` will, given an icon, resize it appropriately and zoom in on the head. Note that this will look bad on anything that isn't a human, so if you have a non-human antagonist (such as sentient disease), just run `icon.Scale(ANTAGONIST_PREVIEW_ICON_SIZE, ANTAGONIST_PREVIEW_ICON_SIZE)`. + +For inspiration, here is changeling's: + +```dm +/datum/antagonist/changeling/get_preview_icon() + var/icon/final_icon = render_preview_outfit(/datum/outfit/changeling) + var/icon/split_icon = render_preview_outfit(/datum/outfit/job/engineer) + + final_icon.Shift(WEST, world.icon_size / 2) + final_icon.Shift(EAST, world.icon_size / 2) + + split_icon.Shift(EAST, world.icon_size / 2) + split_icon.Shift(WEST, world.icon_size / 2) + + final_icon.Blend(split_icon, ICON_OVERLAY) + + return finish_preview_icon(final_icon) +``` + +...which creates: + +![Changeling icon](https://raw.githubusercontent.com/tgstation/documentation-assets/main/preferences/changeling.png) + +## Creating the tgui representation + +In the `.ts` file you created earlier, you must now give the information of your antagonist. For reference, this is the changeling's: + +```ts +import { Antagonist, Category } from "../base"; +import { multiline } from "common/string"; + +const Changeling: Antagonist = { + key: "changeling", // This must be the same as your filename + name: "Changeling", + description: [ + multiline` + A highly intelligent alien predator that is capable of altering their + shape to flawlessly resemble a human. + `, + + multiline` + Transform yourself or others into different identities, and buy from an + arsenal of biological weaponry with the DNA you collect. + `, + ], + category: Category.Roundstart, // Category.Roundstart, Category.Midround, or Category.Latejoin +}; + +export default Changeling; +``` + +## Readying the Dynamic ruleset + +You already need to create a Dynamic ruleset, so in order to get your antagonist recognized, you just need to specify `antag_flag`. This must be unique per ruleset. + +Two other values to note are `antag_flag_override` and `antag_preference`. + +`antag_flag_override` exists for cases where you want the banned antagonist to be separate from `antag_flag`. As an example: roundstart, midround, and latejoin traitors have separate `antag_flag`, but all have `antag_flag_override = ROLE_TRAITOR`. This is because admins want to ban a player from Traitor altogether, not specific rulesets. + +If `antag_preference` is set, it will refer to that preference instead of `antag_flag`. This is used for clown operatives, which we want to be on the same preference as standard nuke ops, but must specify a unique `antag_flag` for. + +## Updating special_roles + +In `code/__DEFINES/role_preferences.dm` (the same place you'll need to make your ROLE_\* defined), simply add your antagonist to the `special_roles` assoc list. The key is your ROLE, the value is the number of days since your first game in order to play as that antagonist. diff --git a/code/modules/client/preferences/_preference.dm b/code/modules/client/preferences/_preference.dm new file mode 100644 index 0000000000..d3ad859249 --- /dev/null +++ b/code/modules/client/preferences/_preference.dm @@ -0,0 +1,546 @@ +// Priorities must be in order! +/// The default priority level +#define PREFERENCE_PRIORITY_DEFAULT 1 + +/// The priority at which species runs, needed for external organs to apply properly. +#define PREFERENCE_PRIORITY_SPECIES 2 + +/** + * Some preferences get applied directly to bodyparts (anything head_flags related right now). + * These must apply after species, as species gaining might replace the bodyparts of the human. + */ +#define PREFERENCE_PRIORITY_BODYPARTS 3 + +/// The priority at which gender is determined, needed for proper randomization. +#define PREFERENCE_PRIORITY_GENDER 4 + +/// The priority at which body type is decided, applied after gender so we can +/// support the "use gender" option. +#define PREFERENCE_PRIORITY_BODY_TYPE 5 + +/// Used for preferences that rely on body setup being finalized. +#define PREFERENCE_PRORITY_LATE_BODY_TYPE 6 + +/// Equpping items based on preferences. +/// Should happen after species and body type to make sure it looks right. +/// Mostly redundant, but a safety net for saving/loading. +#define PREFERENCE_PRIORITY_LOADOUT 7 + +/// The priority at which names are decided, needed for proper randomization. +#define PREFERENCE_PRIORITY_NAMES 8 + +/// Preferences that aren't names, but change the name changes set by PREFERENCE_PRIORITY_NAMES. +#define PREFERENCE_PRIORITY_NAME_MODIFICATIONS 9 + +/// The maximum preference priority, keep this updated, but don't use it for `priority`. +#define MAX_PREFERENCE_PRIORITY PREFERENCE_PRIORITY_NAME_MODIFICATIONS + +/// For choiced preferences, this key will be used to set display names in constant data. +#define CHOICED_PREFERENCE_DISPLAY_NAMES "display_names" + +/// For main feature preferences, this key refers to a feature considered supplemental. +/// For instance, hair color being supplemental to hair. +#define SUPPLEMENTAL_FEATURE_KEY "supplemental_feature" + +/// An assoc list list of types to instantiated `/datum/preference` instances +GLOBAL_LIST_INIT(preference_entries, init_preference_entries()) + +/// An assoc list of preference entries by their `savefile_key` +GLOBAL_LIST_INIT(preference_entries_by_key, init_preference_entries_by_key()) + +/proc/init_preference_entries() + var/list/output = list() + for(var/datum/preference/preference_type as anything in subtypesof(/datum/preference)) + if(is_abstract(preference_type)) + continue + output[preference_type] = new preference_type + return output + +/proc/init_preference_entries_by_key() + var/list/output = list() + for(var/datum/preference/preference_type as anything in subtypesof(/datum/preference)) + if(is_abstract(preference_type)) + continue + output[initial(preference_type.savefile_key)] = GLOB.preference_entries[preference_type] + return output + +/// Returns a flat list of preferences in order of their priority +/proc/get_preferences_in_priority_order() + var/list/preferences[MAX_PREFERENCE_PRIORITY] + + for(var/preference_type in GLOB.preference_entries) + var/datum/preference/preference = GLOB.preference_entries[preference_type] + LAZYADD(preferences[preference.priority], preference) + + var/list/flattened = list() + for(var/index in 1 to MAX_PREFERENCE_PRIORITY) + // Don't add nulls to the list if there's no preferences in a given priority level + if(LAZYLEN(preferences[index])) + flattened += preferences[index] + return flattened + +/// Represents an individual preference. +/datum/preference + /// The key inside the savefile to use. + /// This is also sent to the UI. + /// Once you pick this, don't change it. + var/savefile_key + + /// The category of preference, for use by the PreferencesMenu. + /// This isn't used for anything other than as a key for UI data. + /// It is up to the PreferencesMenu UI itself to interpret it. + var/category = "misc" + + /// Do not instantiate if type matches this. + abstract_type = /datum/preference + + /// What savefile should this preference be read from? + /// Valid values are PREFERENCE_CHARACTER and PREFERENCE_PLAYER. + /// See the documentation in [code/__DEFINES/preferences.dm]. + var/savefile_identifier + + /// The priority of when to apply this preference. + /// Used for when you need to rely on another preference. + var/priority = PREFERENCE_PRIORITY_DEFAULT + + /// If set, will be available to randomize, but only if the preference + /// is for PREFERENCE_CHARACTER. + var/can_randomize = TRUE + + /// If randomizable (PREFERENCE_CHARACTER and can_randomize), whether + /// or not to enable randomization by default. + /// This doesn't mean it'll always be random, but rather if a player + /// DOES have random body on, will this already be randomized? + var/randomize_by_default = TRUE + + /// If the selected species has this in its /datum/species/mutant_bodyparts, + /// will show the feature as selectable. + var/relevant_mutant_bodypart = null + + /// If the selected species has this in its /datum/species/body_markings, + /// will show the feature as selectable. + var/relevant_body_markings = null + + /// If the selected species has this in its /datum/species/inherent_traits, + /// will show the feature as selectable. + var/relevant_inherent_trait = null + + /// If the selected species has this in its /datum/species/var/external_organs, + /// will show the feature as selectable. + var/relevant_external_organ = null + + /// If the selected species has this head_flag by default, + /// will show the feature as selectable. + var/relevant_head_flag = null + +/// Called on the saved input when retrieving. +/// Also called by the value sent from the user through UI. Do not trust it. +/// Input is the value inside the savefile, output is to tell other code +/// what the value is. +/// This is useful either for more optimal data saving or for migrating +/// older data. +/// Must be overridden by subtypes. +/// Can return null if no value was found. +/datum/preference/proc/pref_deserialize(input, datum/preferences/preferences) + SHOULD_NOT_SLEEP(TRUE) + SHOULD_CALL_PARENT(FALSE) + CRASH("`pref_deserialize()` was not implemented on [type]!") + +/// Called on the input while saving. +/// Input is the current value, output is what to save in the savefile. +/datum/preference/proc/pref_serialize(input) + SHOULD_NOT_SLEEP(TRUE) + return input + +/// Produce a default, potentially random value for when no value for this +/// preference is found in the savefile. +/// Either this or create_informed_default_value must be overriden by subtypes. +/datum/preference/proc/create_default_value() + SHOULD_NOT_SLEEP(TRUE) + SHOULD_CALL_PARENT(FALSE) + CRASH("`create_default_value()` was not implemented on [type]!") + +/// Produce a default, potentially random value for when no value for this +/// preference is found in the savefile. +/// Unlike create_default_value(), will provide the preferences object if you +/// need to use it. +/// If not overriden, will call create_default_value() instead. +/datum/preference/proc/create_informed_default_value(datum/preferences/preferences) + return create_default_value() + +/// Produce a random value for the purposes of character randomization. +/// Will just create a default value by default. +/datum/preference/proc/create_random_value(datum/preferences/preferences) + return create_informed_default_value(preferences) + +/// Returns whether or not a preference can be randomized. +/datum/preference/proc/is_randomizable() + SHOULD_NOT_OVERRIDE(TRUE) + return savefile_identifier == PREFERENCE_CHARACTER && can_randomize + +/// Given a savefile, return either the saved data or an acceptable default. +/// This will write to the savefile if a value was not found with the new value. +/datum/preference/proc/read(list/save_data, datum/preferences/preferences) + SHOULD_NOT_OVERRIDE(TRUE) + + var/value + + if(!isnull(save_data)) + value = save_data[savefile_key] + + if(isnull(value)) + return null + else + return pref_deserialize(value, preferences) + +/// Given a savefile, writes the inputted value. +/// Returns TRUE for a successful application. +/// Return FALSE if it is invalid. +/datum/preference/proc/write(list/save_data, value) + SHOULD_NOT_OVERRIDE(TRUE) + + if(!is_valid(value)) + return FALSE + + if(!isnull(save_data)) + save_data[savefile_key] = pref_serialize(value) + + return TRUE + +/// Apply this preference onto the given client. +/// Called when the savefile_identifier == PREFERENCE_PLAYER. +/datum/preference/proc/apply_to_client(client/client, value) + SHOULD_NOT_SLEEP(TRUE) + SHOULD_CALL_PARENT(FALSE) + return + +/// Fired when the preference is updated. +/// Calls apply_to_client by default, but can be overridden. +/datum/preference/proc/apply_to_client_updated(client/client, value) + SHOULD_NOT_SLEEP(TRUE) + apply_to_client(client, value) + +/// Apply this preference onto the given human. +/// Must be overriden by subtypes. +/// Called when the savefile_identifier == PREFERENCE_CHARACTER. +/datum/preference/proc/apply_to_human(mob/living/carbon/human/target, value) + SHOULD_NOT_SLEEP(TRUE) + SHOULD_CALL_PARENT(FALSE) + CRASH("`apply_to_human()` was not implemented for [type]!") + +/// Returns which savefile to use for a given savefile identifier +/datum/preferences/proc/get_save_data_for_savefile_identifier(savefile_identifier) + RETURN_TYPE(/list) + + if(!client) + return null + if(!savefile) + CRASH("Attempted to get the savedata for [savefile_identifier] of [client] without a savefile. This should have been handled by load_preferences()") + + // Both of these will cache savefiles, but only for a tick. + // This is because storing a savefile will lock it, causing later issues down the line. + // Do not change them to addtimer, since the timer SS might not be running at this time. + switch (savefile_identifier) + if(PREFERENCE_CHARACTER) + return savefile.get_entry("character[default_slot]") + if(PREFERENCE_PLAYER) + return savefile.get_entry() + else + CRASH("Unknown savefile identifier [savefile_identifier]") + +/// Read a /datum/preference type and return its value. +/// This will write to the savefile if a value was not found with the new value. +/datum/preferences/proc/read_preference(preference_type) + var/datum/preference/preference_entry = GLOB.preference_entries[preference_type] + if(isnull(preference_entry)) + var/extra_info = "" + + // Current initializing subsystem is important to know because it might be a problem with + // things running pre-assets-initialization. + // if(!isnull(Master.current_initializing_subsystem)) + // extra_info = "Info was attempted to be retrieved while [Master.current_initializing_subsystem] was initializing." + // else if(!MC_RUNNING()) + // extra_info = "Info was attempted to be retrieved before the MC started, but not while it was actively initializing a subsystem" + + CRASH("Preference type `[preference_type]` is invalid! [extra_info]") + + if(preference_type in value_cache) + return value_cache[preference_type] + + var/value = preference_entry.read(get_save_data_for_savefile_identifier(preference_entry.savefile_identifier), src) + if(isnull(value)) + value = preference_entry.create_informed_default_value(src) + if(write_preference(preference_entry, value)) + return value + else + CRASH("Couldn't write the default value for [preference_type] (received [value])") + value_cache[preference_type] = value + return value + +/// Read a /datum/preference type and return its value. +/mob/proc/read_preference(preference_type) + return client?.prefs?.read_preference(preference_type) + +/// Set a /datum/preference entry. +/// Returns TRUE for a successful preference application. +/// Returns FALSE if it is invalid. +/datum/preferences/proc/write_preference(datum/preference/preference, preference_value) + var/save_data = get_save_data_for_savefile_identifier(preference.savefile_identifier) + var/new_value = preference.pref_deserialize(preference_value, src) + var/success = preference.write(save_data, new_value) + if(success) + value_cache[preference.type] = new_value + return success + +/// Will perform an update on the preference, but not write to the savefile. +/// This will, for instance, update the character preference view. +/// Performs sanity checks. +/datum/preferences/proc/update_preference(datum/preference/preference, preference_value) + if(!preference.is_accessible(src)) + return FALSE + + var/new_value = preference.pref_deserialize(preference_value, src) + var/success = preference.write(null, new_value) + + if(!success) + return FALSE + + recently_updated_keys |= preference.type + value_cache[preference.type] = new_value + + if(preference.savefile_identifier == PREFERENCE_PLAYER) + preference.apply_to_client_updated(client, read_preference(preference.type)) + else + update_preview_icon() + + return TRUE + +/// Checks that a given value is valid. +/// Must be overriden by subtypes. +/// Any type can be passed through. +/datum/preference/proc/is_valid(value) + SHOULD_NOT_SLEEP(TRUE) + SHOULD_CALL_PARENT(FALSE) + CRASH("`is_valid()` was not implemented for [type]!") + +/// Returns data to be sent to users in the menu +/datum/preference/proc/compile_ui_data(mob/user, value) + SHOULD_NOT_SLEEP(TRUE) + + return pref_serialize(value) + +/// Returns data compiled into the preferences JSON asset +/datum/preference/proc/compile_constant_data() + SHOULD_NOT_SLEEP(TRUE) + + return null + +/// Returns whether or not this preference is accessible. +/// If FALSE, will not show in the UI and will not be editable (by update_preference). +/datum/preference/proc/is_accessible(datum/preferences/preferences) + SHOULD_CALL_PARENT(TRUE) + SHOULD_NOT_SLEEP(TRUE) + + // if( + // !isnull(relevant_mutant_bodypart) + // || !isnull(relevant_inherent_trait) + // || !isnull(relevant_external_organ) + // || !isnull(relevant_head_flag) + // || !isnull(relevant_body_markings) + // ) + // var/species_type = preferences.read_preference(/datum/preference/choiced/species) + + // var/datum/species/species = GLOB.species_prototypes[species_type] + // if(!(savefile_key in species.get_features())) + // return FALSE + + if(!should_show_on_page(preferences.current_window)) + return FALSE + + return TRUE + +/// Returns whether or not, given the PREFERENCE_TAB_*, this preference should +/// appear. +/datum/preference/proc/should_show_on_page(preference_tab) + var/is_on_character_page = preference_tab == PREFERENCE_TAB_CHARACTER_PREFERENCES + var/is_character_preference = savefile_identifier == PREFERENCE_CHARACTER + return is_on_character_page == is_character_preference + +/// A preference that is a choice of one option among a fixed set. +/// Used for preferences such as clothing. +/datum/preference/choiced + /// If this is TRUE, an icon will be generated for every value. + /// If you implement this, you must implement `icon_for(value)` for every possible value. + var/should_generate_icons = FALSE + + var/list/cached_values + + /// If the preference is a main feature (PREFERENCE_CATEGORY_FEATURES or PREFERENCE_CATEGORY_CLOTHING) + /// this is the name of the feature that will be presented. + var/main_feature_name + + abstract_type = /datum/preference/choiced + +/// Returns a list of every possible value. +/// The first time this is called, will run `init_values()`. +/// Return value can be in the form of: +/// - A flat list of raw values, such as list(MALE, FEMALE, PLURAL). +/// - An assoc list of raw values to atoms/icons. +/datum/preference/choiced/proc/get_choices() + // Override `init_values()` instead. + SHOULD_NOT_OVERRIDE(TRUE) + + if(isnull(cached_values)) + cached_values = init_possible_values() + ASSERT(cached_values.len) + + return cached_values + +/// Returns a list of every possible value, serialized. +/datum/preference/choiced/proc/get_choices_serialized() + // Override `init_values()` instead. + SHOULD_NOT_OVERRIDE(TRUE) + + var/list/serialized_choices = list() + + for(var/choice in get_choices()) + serialized_choices += pref_serialize(choice) + + return serialized_choices + +/// Returns a list of every possible value. +/// This must be overriden by `/datum/preference/choiced` subtypes. +/// If `should_generate_icons` is TRUE, then you will also need to implement `icon_for(value)` +/// for every possible value. +/datum/preference/choiced/proc/init_possible_values() + CRASH("`init_possible_values()` was not implemented for [type]!") + +/// When `should_generate_icons` is TRUE, this proc is called for every value. +/// It can return either an icon or a typepath to an atom to create. +/datum/preference/choiced/proc/icon_for(value) + SHOULD_CALL_PARENT(FALSE) + SHOULD_NOT_SLEEP(TRUE) + CRASH("`icon_for()` was not implemented for [type], even though should_generate_icons = TRUE!") + +/datum/preference/choiced/is_valid(value) + return value in get_choices() + +/datum/preference/choiced/pref_deserialize(input, datum/preferences/preferences) + return sanitize_inlist(input, get_choices(), create_default_value()) + +/datum/preference/choiced/create_default_value() + return pick(get_choices()) + +/datum/preference/choiced/compile_constant_data() + var/list/data = list() + + var/list/choices = list() + + for(var/choice in get_choices()) + choices += choice + + data["choices"] = choices + + if(should_generate_icons) + var/list/icons = list() + + // for(var/choice in choices) // TODO: Pref spritesheet asset + // icons[choice] = get_spritesheet_key(choice) + + data["icons"] = icons + + if(!isnull(main_feature_name)) + data["name"] = main_feature_name + + return data + +/// A preference that represents an RGB color of something. +/// Will give the value as 6 hex digits, without a hash. +/datum/preference/color + abstract_type = /datum/preference/color + +/datum/preference/color/pref_deserialize(input, datum/preferences/preferences) + return sanitize_hexcolor(input) + +/datum/preference/color/create_default_value() + return random_color() + +/datum/preference/color/pref_serialize(input) + return sanitize_hexcolor(input) + +/datum/preference/color/is_valid(value) + return findtext(value, GLOB.is_color) + +/// A numeric preference with a minimum and maximum value +/datum/preference/numeric + /// The minimum value + var/minimum + + /// The maximum value + var/maximum + + /// The step of the number, such as 1 for integers or 0.5 for half-steps. + var/step = 1 + + abstract_type = /datum/preference/numeric + +/datum/preference/numeric/pref_deserialize(input, datum/preferences/preferences) + if(istext(input)) // Sometimes TGUI will return a string instead of a number, so we take that into account. + input = text2num(input) // Worst case, it's null, it'll just use create_default_value() + return sanitize_float(input, minimum, maximum, step, create_default_value()) + +/datum/preference/numeric/pref_serialize(input) + return sanitize_float(input, minimum, maximum, step, create_default_value()) + +/datum/preference/numeric/create_default_value() + return rand(minimum, maximum) + +/datum/preference/numeric/is_valid(value) + return isnum(value) && value >= round(minimum, step) && value <= round(maximum, step) + +/datum/preference/numeric/compile_constant_data() + return list( + "minimum" = minimum, + "maximum" = maximum, + "step" = step, + ) + +/// A preference whose value is always TRUE or FALSE +/datum/preference/toggle + abstract_type = /datum/preference/toggle + + /// The default value of the toggle, if create_default_value is not specified + var/default_value = TRUE + +/datum/preference/toggle/create_default_value() + return default_value + +/datum/preference/toggle/pref_deserialize(input, datum/preferences/preferences) + return !!input + +/datum/preference/toggle/is_valid(value) + return value == TRUE || value == FALSE + + +/// A string-based preference accepting arbitrary string values entered by the user, with a maximum length. +/datum/preference/text + abstract_type = /datum/preference/text + + /// What is the maximum length of the value allowed in this field? + var/maximum_value_length = 256 + + /// Should we strip HTML the input or simply restrict it to the maximum_value_length? + var/should_strip_html = TRUE + + +/datum/preference/text/pref_deserialize(input, datum/preferences/preferences) + return should_strip_html ? STRIP_HTML_SIMPLE(input, maximum_value_length) : copytext(input, 1, maximum_value_length) + +/datum/preference/text/create_default_value() + return "" + +/datum/preference/text/is_valid(value) + return istext(value) && length(value) < maximum_value_length + +/datum/preference/text/compile_constant_data() + return list("maximum_length" = maximum_value_length) diff --git a/code/modules/client/preferences/middleware/_middleware.dm b/code/modules/client/preferences/middleware/_middleware.dm new file mode 100644 index 0000000000..8f47f73642 --- /dev/null +++ b/code/modules/client/preferences/middleware/_middleware.dm @@ -0,0 +1,52 @@ +/// Preference middleware is code that helps to decentralize complicated preference features. +/datum/preference_middleware + /// The preferences datum + var/datum/preferences/preferences + + /// The key that will be used for get_constant_data(). + /// If null, will use the typepath minus /datum/preference_middleware. + var/key = null + + /// Map of ui_act actions -> proc paths to call. + /// Signature is `(list/params, mob/user) -> TRUE/FALSE. + /// Return output is the same as ui_act--TRUE if it should update, FALSE if it should not + var/list/action_delegations = list() + +/datum/preference_middleware/New(datum/preferences) + src.preferences = preferences + + if (isnull(key)) + // + 2 coming from the off-by-one of copytext, and then another from the slash + key = copytext("[type]", length("[parent_type]") + 2) + +/datum/preference_middleware/Destroy() + preferences = null + return ..() + +/// Append all of these into ui_data +/datum/preference_middleware/proc/get_ui_data(mob/user) + return list() + +/// Append all of these into ui_static_data +/datum/preference_middleware/proc/get_ui_static_data(mob/user) + return list() + +/// Append all of these into ui_assets +/datum/preference_middleware/proc/get_ui_assets() + return list() + +/// Append all of these into /datum/asset/json/preferences. +/datum/preference_middleware/proc/get_constant_data() + return null + +/// Merge this into the result of compile_character_preferences. +/datum/preference_middleware/proc/get_character_preferences(mob/user) + return null + +/// Called every set_preference, returns TRUE if this handled it. +/datum/preference_middleware/proc/pre_set_preference(mob/user, preference, value) + return FALSE + +/// Called when a character is changed. +/datum/preference_middleware/proc/on_new_character(mob/user) + return diff --git a/code/modules/client/preferences/migrations/13_preferences.dm b/code/modules/client/preferences/migrations/13_preferences.dm new file mode 100644 index 0000000000..e2a8bfaa84 --- /dev/null +++ b/code/modules/client/preferences/migrations/13_preferences.dm @@ -0,0 +1,9 @@ +/// Transforms the bay style `"preferences": ["SOUND_MIDI", ...]` to `"SOUND_MIDI": 1` and `"preferences_disabled": [...]` to `0`. +/datum/preferences/proc/migration_13_preferences(datum/json_savefile/S) + var/list/preferences_enabled = S.get_entry("preferences") + for(var/key in preferences_enabled) + S.set_entry("[key]", TRUE) + + var/list/preferences_disabled = S.get_entry("preferences_disabled") + for(var/key in preferences_disabled) + S.set_entry("[key]", FALSE) diff --git a/code/modules/client/preferences/preferences_tg.dm b/code/modules/client/preferences/preferences_tg.dm new file mode 100644 index 0000000000..944bffc039 --- /dev/null +++ b/code/modules/client/preferences/preferences_tg.dm @@ -0,0 +1,28 @@ +// Contains all of the variables and such to make tg prefs work +/datum/preferences + /// The savefile relating to character preferences, PREFERENCE_CHARACTER + var/list/character_data + + /// A list of keys that have been updated since the last save. + var/list/recently_updated_keys = list() + + /// A cache of preference entries to values. + /// Used to avoid expensive READ_FILE every time a preference is retrieved. + var/value_cache = list() + + /// If set to TRUE, will update character_profiles on the next ui_data tick. + var/tainted_character_profiles = FALSE + + var/current_window = PREFERENCE_TAB_GAME_PREFERENCES + + /// A list of instantiated middleware + var/list/datum/preference_middleware/middleware = list() + +/// Applies all PREFERENCE_PLAYER preferences +/datum/preferences/proc/apply_all_client_preferences() + for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) + if(preference.savefile_identifier != PREFERENCE_PLAYER) + continue + + value_cache -= preference.type + preference.apply_to_client(client, read_preference(preference.type)) diff --git a/code/modules/client/preferences/types/admin.dm b/code/modules/client/preferences/types/admin.dm new file mode 100644 index 0000000000..f066bc041e --- /dev/null +++ b/code/modules/client/preferences/types/admin.dm @@ -0,0 +1,73 @@ +/datum/preference/toggle/show_attack_logs + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_ATTACKLOGS" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_attack_logs/is_accessible(datum/preferences/preferences) + . = ..() + if(!.) + return + + return check_rights(R_MOD|R_ADMIN, FALSE, preferences.client) + +/datum/preference/toggle/show_debug_logs + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_DEBUGLOGS" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_debug_logs/is_accessible(datum/preferences/preferences) + . = ..() + if(!.) + return + + return check_rights(R_DEBUG|R_ADMIN, FALSE, preferences.client) + +/datum/preference/toggle/show_chat_prayers + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_PRAYER" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_chat_prayers/is_accessible(datum/preferences/preferences) + . = ..() + if(!.) + return + + return check_rights(R_EVENT|R_ADMIN, FALSE, preferences.client) + +// General holder prefs +/datum/preference/toggle/holder + abstract_type = /datum/preference/toggle/holder + +/datum/preference/toggle/holder/is_accessible(datum/preferences/preferences) + . = ..(preferences) + if(!.) + return + + return preferences.client.holder + +/datum/preference/toggle/holder/play_adminhelp_ping + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_ADMINHELP" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/holder/hear_radio + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_RADIO" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/holder/show_rlooc + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_RLOOC" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/holder/show_staff_dsay + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_ADSAY" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/chat.dm b/code/modules/client/preferences/types/chat.dm new file mode 100644 index 0000000000..4bf527a1cf --- /dev/null +++ b/code/modules/client/preferences/types/chat.dm @@ -0,0 +1,69 @@ +/datum/preference/toggle/chat_tags + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_SHOWICONS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_typing_indicator + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SHOW_TYPING" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_typing_indicator/apply_to_client(client/client, value) + if(!value) + client.stop_thinking() + +/datum/preference/toggle/show_typing_indicator_subtle + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SHOW_TYPING_SUBTLE" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_ooc + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_OOC" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_looc + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_LOOC" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_dsay + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_DEAD" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/check_mention + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_MENTION" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/vore_health_bars + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "VORE_HEALTH_BARS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_lore_news + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "NEWS_POPUP" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/player_tips + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "RECEIVE_TIPS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/pain_frequency + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "PAIN_FREQUENCY" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/ghost.dm b/code/modules/client/preferences/types/ghost.dm new file mode 100644 index 0000000000..8ae51631ed --- /dev/null +++ b/code/modules/client/preferences/types/ghost.dm @@ -0,0 +1,29 @@ +/datum/preference/toggle/whisubtle_vis + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "WHISUBTLE_VIS" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/ghost_see_whisubtle + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "GHOST_SEE_WHISUBTLE" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/ghost_ears + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_GHOSTEARS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/ghost_sight + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_GHOSTSIGHT" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/ghost_radio + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "CHAT_GHOSTRADIO" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/misc.dm b/code/modules/client/preferences/types/misc.dm new file mode 100644 index 0000000000..b1ec621671 --- /dev/null +++ b/code/modules/client/preferences/types/misc.dm @@ -0,0 +1,71 @@ +/// Whether or not to toggle ambient occlusion, the shadows around people +/datum/preference/toggle/ambient_occlusion + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "AMBIENT_OCCLUSION_PREF" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/ambient_occlusion/apply_to_client(client/client, value) + var/datum/plane_holder/PH = client?.mob?.plane_holder + if(PH) + PH.set_ao(VIS_OBJS, value) + PH.set_ao(VIS_MOBS, value) + +/datum/preference/toggle/mob_tooltips + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "MOB_TOOLTIPS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/inv_tooltips + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "INV_TOOLTIPS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/attack_icons + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "ATTACK_ICONS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/precision_placement + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "PRECISE_PLACEMENT" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/hotkeys_default + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "HUD_HOTKEYS" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/show_progress_bar + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SHOW_PROGRESS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/safefiring + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SAFE_FIRING" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/status_indicators + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SHOW_STATUS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/status_indicators/apply_to_client(client/client, value) + var/datum/plane_holder/PH = client?.mob?.plane_holder + if(PH) + PH.set_vis(VIS_STATUS, value) + +/datum/preference/toggle/auto_afk + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "AUTO_AFK" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/runechat.dm b/code/modules/client/preferences/types/runechat.dm new file mode 100644 index 0000000000..1c6ea10fb3 --- /dev/null +++ b/code/modules/client/preferences/types/runechat.dm @@ -0,0 +1,23 @@ +/datum/preference/toggle/runechat_mob + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "RUNECHAT_MOB" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/runechat_obj + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "RUNECHAT_OBJ" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/runechat_border + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "RUNECHAT_BORDER" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/runechat_long_messages + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "RUNECHAT_LONG" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/sound.dm b/code/modules/client/preferences/types/sound.dm new file mode 100644 index 0000000000..83c4109bd0 --- /dev/null +++ b/code/modules/client/preferences/types/sound.dm @@ -0,0 +1,149 @@ +/datum/preference/toggle/play_admin_midis + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_MIDI" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/play_lobby_music + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_LOBBY" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/play_lobby_music/apply_to_client(client/client, value) + if(value) + client?.playtitlemusic() + else + client?.media?.stop_music() + +/datum/preference/toggle/play_ambience + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_AMBIENCE" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/play_ambience/apply_to_client(client/client, value) + if(!value) + client << sound(null, repeat = 0, wait = 0, volume = 0, channel = CHANNEL_AMBIENCE_FORCED) + client << sound(null, repeat = 0, wait = 0, volume = 0, channel = CHANNEL_AMBIENCE) + +/datum/preference/toggle/play_jukebox + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_JUKEBOX" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/play_jukebox/apply_to_client(client/client, value) + if(value) + client?.mob?.update_music() + else + client?.mob?.stop_all_music() + +/datum/preference/toggle/instrument_toggle + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_INSTRUMENT" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/emote_noises + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "EMOTE_NOISES" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/radio_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "RADIO_SOUNDS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/say_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SAY_SOUNDS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/emote_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "EMOTE_SOUNDS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/whisper_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "WHISPER_SOUNDS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/subtle_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SUBTLE_SOUNDS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/air_pump_noise + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_AIRPUMP" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/old_door_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_OLDDOORS" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/department_door_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_DEPARTMENTDOORS" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/pickup_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_PICKED" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/drop_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_DROPPED" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/weather_sounds + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_WEATHER" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/supermatter_hum + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_SUPERMATTER" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/play_mentorhelp_ping + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "SOUND_MENTORHELP" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +// Vorey sounds +/datum/preference/toggle/belch_noises // Belching noises - pref toggle for 'em + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "BELCH_NOISES" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/eating_noises + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "EATING_NOISES" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/digestion_noises + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "DIGEST_NOISES" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER diff --git a/code/modules/client/preferences/types/ui.dm b/code/modules/client/preferences/types/ui.dm new file mode 100644 index 0000000000..b2372b8937 --- /dev/null +++ b/code/modules/client/preferences/types/ui.dm @@ -0,0 +1,34 @@ +/datum/preference/toggle/browser_style + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "BROWSER_STYLED" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/vchat_enable + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "VCHAT_ENABLE" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/vchat_enable/apply_to_client(client/client, value) + if(value) + client.tgui_panel.oldchat = FALSE + else + client.tgui_panel.oldchat = TRUE + + client.nuke_chat() + +/datum/preference/toggle/tgui_say + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "TGUI_SAY" + default_value = TRUE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/tgui_say_light + category = PREFERENCE_CATEGORY_GAME_PREFERENCES + savefile_key = "TGUI_SAY_LIGHT_MODE" + default_value = FALSE + savefile_identifier = PREFERENCE_PLAYER + +/datum/preference/toggle/tgui_say_light/apply_to_client(client/client, value) + client.tgui_say?.load() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index e98e7de352..0f3aecbf84 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,121 +1,244 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 11 +#define SAVEFILE_VERSION_MAX 13 -//handles converting savefiles to new formats -//MAKE SURE YOU KEEP THIS UP TO DATE! -//If the sanity checks are capable of handling any issues. Only increase SAVEFILE_VERSION_MAX, -//this will mean that savefile_version will still be over SAVEFILE_VERSION_MIN, meaning -//this savefile update doesn't run everytime we load from the savefile. -//This is mainly for format changes, such as the bitflags in toggles changing order or something. -//if a file can't be updated, return 0 to delete it and start again -//if a file was updated, return 1 -/datum/preferences/proc/savefile_update() - if(savefile_version < 8) //lazily delete everything + additional files so they can be saved in the new format - for(var/ckey in preferences_datums) - var/datum/preferences/D = preferences_datums[ckey] - if(D == src) - var/delpath = "data/player_saves/[copytext(ckey,1,2)]/[ckey]/" - if(delpath && fexists(delpath)) - fdel(delpath) - break - return 0 +/* +SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn + This proc checks if the current directory of the savefile S needs updating + It is to be used by the load_character and load_preferences procs. + (S.cd == "/" is preferences, S.cd == "/character[integer]" is a character slot, etc) - if(savefile_version == SAVEFILE_VERSION_MAX) //update successful. - save_preferences() - save_character() - return 1 - return 0 + if the current directory's version is below SAVEFILE_VERSION_MIN it will simply wipe everything in that directory + (if we're at root "/" then it'll just wipe the entire savefile, for instance.) -/datum/preferences/proc/load_path(ckey,filename="preferences.sav") - if(!ckey) return + if its version is below SAVEFILE_VERSION_MAX but above the minimum, it will load data but later call the + respective update_preferences() or update_character() proc. + Those procs allow coders to specify format changes so users do not lose their setups and have to redo them again. + + Failing all that, the standard sanity checks are performed. They simply check the data is suitable, reverting to + initial() values if necessary. +*/ +/datum/preferences/proc/save_data_needs_update(list/save_data) + if(!save_data) // empty list, either savefile isnt loaded or its a new char + return -1 + if(!save_data["version"]) // special case: if there is no version key, such as in character slots before v12 + return -3 + if(save_data["version"] < SAVEFILE_VERSION_MIN) + return -2 + if(save_data["version"] < SAVEFILE_VERSION_MAX) + return save_data["version"] + return -1 + +//should these procs get fairly long +//just increase SAVEFILE_VERSION_MIN so it's not as far behind +//SAVEFILE_VERSION_MAX and then delete any obsolete if clauses +//from these procs. +//This only really meant to avoid annoying frequent players +//if your savefile is 3 months out of date, then 'tough shit'. + +/datum/preferences/proc/update_preferences(current_version, datum/json_savefile/S) + // Migration from BYOND savefiles to JSON: Important milemark. + // if(current_version < 11) + + // Migration for client preferences + if(current_version < 13) + migration_13_preferences(S) + + +/datum/preferences/proc/update_character(current_version, list/save_data) + // Migration from BYOND savefiles to JSON: Important milemark. + if(current_version == -3) + // Add a version field inside each character + save_data["version"] = SAVEFILE_VERSION_MAX + +/// Migrates from byond savefile to json savefile +/datum/preferences/proc/try_savefile_type_migration() + load_path(client.ckey, "preferences.sav") // old save file + var/old_path = path + load_path(client.ckey) + if(!fexists(old_path)) + return + var/datum/json_savefile/json_savefile = new(path) + json_savefile.import_byond_savefile(new /savefile(old_path)) + json_savefile.save() + return TRUE + +/datum/preferences/proc/load_path(ckey, filename = "preferences.json") + if(!ckey || !load_and_save) + return path = "data/player_saves/[copytext(ckey,1,2)]/[ckey]/[filename]" - savefile_version = SAVEFILE_VERSION_MAX + +/datum/preferences/proc/load_savefile() + if(load_and_save && !path) + CRASH("Attempted to load savefile without first loading a path!") + savefile = new /datum/json_savefile(load_and_save ? path : null) /datum/preferences/proc/load_preferences() - if(!path) return 0 - if(!fexists(path)) return 0 - var/savefile/S = new /savefile(path) - if(!S) return 0 - S.cd = "/" + if(!savefile) + stack_trace("Attempted to load the preferences of [client] without a savefile; did you forget to call load_savefile?") + load_savefile() + if(!savefile) + stack_trace("Failed to load the savefile for [client] after manually calling load_savefile; something is very wrong.") + return FALSE - S["version"] >> savefile_version - //Conversion - if(!savefile_version || !isnum(savefile_version) || savefile_version < SAVEFILE_VERSION_MIN || savefile_version > SAVEFILE_VERSION_MAX) - if(!savefile_update()) //handles updates - savefile_version = SAVEFILE_VERSION_MAX - save_preferences() - save_character() - return 0 + var/needs_update = save_data_needs_update(savefile.get_entry()) + if(load_and_save && (needs_update <= -2)) //fatal, can't load any data + var/bacpath = "[path].updatebac" //todo: if the savefile version is higher then the server, check the backup, and give the player a prompt to load the backup + if(fexists(bacpath)) + fdel(bacpath) //only keep 1 version of backup + fcopy(savefile.path, bacpath) //byond helpfully lets you use a savefile for the first arg. + return FALSE - player_setup.load_preferences(S) - return 1 + apply_all_client_preferences() + + //try to fix any outdated data if necessary + if(needs_update >= 0) + var/bacpath = "[path].updatebac" //todo: if the savefile version is higher then the server, check the backup, and give the player a prompt to load the backup + if(fexists(bacpath)) + fdel(bacpath) //only keep 1 version of backup + fcopy(savefile.path, bacpath) //byond helpfully lets you use a savefile for the first arg. + update_preferences(needs_update, savefile) //needs_update = savefile_version if we need an update (positive integer) + + // Load general prefs after applying migrations + player_setup.load_preferences(savefile) + + //save the updated version + var/old_default_slot = default_slot + // var/old_max_save_slots = max_save_slots + + for(var/slot in savefile.get_entry()) //but first, update all current character slots. + if (copytext(slot, 1, 10) != "character") + continue + var/slotnum = text2num(copytext(slot, 10)) + if (!slotnum) + continue + // max_save_slots = max(max_save_slots, slotnum) //so we can still update byond member slots after they lose memeber status + default_slot = slotnum + if(load_character()) + save_character() + default_slot = old_default_slot + // max_save_slots = old_max_save_slots + save_preferences() + else + // Load general prefs + player_setup.load_preferences(savefile) + + return TRUE /datum/preferences/proc/save_preferences() - if(!path) return 0 - var/savefile/S = new /savefile(path) - if(!S) return 0 - S.cd = "/" + if(!savefile) + CRASH("Attempted to save the preferences of [client] without a savefile. This should have been handled by load_preferences()") + savefile.set_entry("version", SAVEFILE_VERSION_MAX) //updates (or failing that the sanity checks) will ensure data is not invalid at load. Assume up-to-date - S["version"] << savefile_version - player_setup.save_preferences(S) - return 1 + player_setup.save_preferences(savefile) + + for(var/preference_type in GLOB.preference_entries) + var/datum/preference/preference = GLOB.preference_entries[preference_type] + if(preference.savefile_identifier != PREFERENCE_PLAYER) + continue + + if(!(preference.type in recently_updated_keys)) + continue + + recently_updated_keys -= preference.type + + if(preference_type in value_cache) + write_preference(preference, preference.pref_serialize(value_cache[preference_type])) + + savefile.save() + + return TRUE + +/datum/preferences/proc/reset_slot() + var/bacpath = "[path].resetbac" + if(fexists(bacpath)) + fdel(bacpath) //only keep 1 version of backup + fcopy(savefile.path, bacpath) //byond helpfully lets you use a savefile for the first arg. + + savefile.remove_entry("character[default_slot]") + default_slot = 1 + + clear_character_previews() + + // Load slot 1 character + load_character() + // And save them immediately, in case we load an empty slot + save_character() + save_preferences() + return TRUE /datum/preferences/proc/load_character(slot) - if(!path) return 0 - if(!fexists(path)) return 0 - var/savefile/S = new /savefile(path) - if(!S) return 0 - S.cd = "/" - if(!slot) slot = default_slot - if(slot != SAVE_RESET) // SAVE_RESET will reset the slot as though it does not exist, but keep the current slot for saving purposes. - slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) - if(slot != default_slot) - default_slot = slot - S["default_slot"] << slot - else - S["default_slot"] << default_slot + SHOULD_NOT_SLEEP(TRUE) + if(!slot) + slot = default_slot - if(slot != SAVE_RESET) - S.cd = "/character[slot]" - player_setup.load_character(S) - else - player_setup.load_character(S) - S.cd = "/character[default_slot]" - player_setup.save_character(S) + slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) + if(slot != default_slot) + default_slot = slot + savefile.set_entry("default_slot", slot) - clear_character_previews() // VOREStation Edit - return 1 + var/list/save_data = savefile.get_entry("character[slot]") // This is allowed to be null and will give a -1 in needs_update + + var/needs_update = save_data_needs_update(save_data) + if(needs_update == -2) //fatal, can't load any data + return FALSE + + // Read everything into cache (pre-migrations, as migrations should have access to deserialized data) + // Uses priority order as some values may rely on others for creating default values + for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) + if(preference.savefile_identifier != PREFERENCE_CHARACTER) + continue + + value_cache -= preference.type + read_preference(preference.type) + + // It has to be a list or load_character freaks out + if(!save_data) + player_setup.load_character(list()) + else + player_setup.load_character(save_data) + + //try to fix any outdated data if necessary + //preference updating will handle saving the updated data for us. + if(needs_update >= 0 || needs_update == -3) + update_character(needs_update, save_data) //needs_update == savefile_version if we need an update (positive integer + + clear_character_previews() + return TRUE /datum/preferences/proc/save_character() - if(!path) return 0 - var/savefile/S = new /savefile(path) - if(!S) return 0 - S.cd = "/character[default_slot]" + SHOULD_NOT_SLEEP(TRUE) + if(!savefile) + return FALSE - player_setup.save_character(S) - return 1 + var/tree_key = "character[default_slot]" + if(!(tree_key in savefile.get_entry())) + savefile.set_entry(tree_key, list()) + var/save_data = savefile.get_entry(tree_key) + + save_data["version"] = SAVEFILE_VERSION_MAX //load_character will sanitize any bad data, so assume up-to-date. + player_setup.save_character(save_data) + + return TRUE /datum/preferences/proc/overwrite_character(slot) - if(!path) return 0 - if(!fexists(path)) return 0 - var/savefile/S = new /savefile(path) - if(!S) return 0 - if(!slot) slot = default_slot - if(slot != SAVE_RESET) - slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) - if(slot != default_slot) - default_slot = slot - nif_path = nif_durability = nif_savedata = null //VOREStation Add - Don't copy NIF - S["default_slot"] << slot + if(!savefile) + return FALSE + if(!slot) + slot = default_slot - else - S["default_slot"] << default_slot + // This basically just changes default_slot without loading the correct data, so the next save call will overwrite + // the slot + slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) + if(slot != default_slot) + default_slot = slot + nif_path = nif_durability = nif_savedata = null //VOREStation Add - Don't copy NIF + savefile.set_entry("default_slot", slot) - return 1 + return TRUE /datum/preferences/proc/sanitize_preferences() player_setup.sanitize_setup() - return 1 + return TRUE #undef SAVEFILE_VERSION_MAX #undef SAVEFILE_VERSION_MIN diff --git a/code/modules/client/preferences_tgui.dm b/code/modules/client/preferences_tgui.dm new file mode 100644 index 0000000000..a7f1567497 --- /dev/null +++ b/code/modules/client/preferences_tgui.dm @@ -0,0 +1,138 @@ +/datum/preferences/tgui_interact(mob/user, datum/tgui/ui, datum/tgui/parent_ui, custom_state) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PreferencesMenu", "Preferences") + ui.set_autoupdate(FALSE) + ui.open() + +/datum/preferences/tgui_state(mob/user) + return GLOB.tgui_always_state + +/datum/preferences/tgui_status(mob/user, datum/tgui_state/state) + return user.client == client ? STATUS_INTERACTIVE : STATUS_CLOSE + +/datum/preferences/ui_assets(mob/user) + var/list/assets = list( + // get_asset_datum(/datum/asset/spritesheet/preferences), + get_asset_datum(/datum/asset/json/preferences), + ) + + for (var/datum/preference_middleware/preference_middleware as anything in middleware) + assets += preference_middleware.get_ui_assets() + + return assets + +/datum/preferences/tgui_data(mob/user) + var/list/data = list() + + if(tainted_character_profiles) + data["character_profiles"] = create_character_profiles() + tainted_character_profiles = FALSE + + data["character_preferences"] = compile_character_preferences(user) + + data["active_slot"] = default_slot + + for(var/datum/preference_middleware/preference_middleware as anything in middleware) + data += preference_middleware.get_ui_data(user) + + return data + +/datum/preferences/tgui_static_data(mob/user) + var/list/data = list() + + data["character_profiles"] = create_character_profiles() + + // data["character_preview_view"] = character_preview_view.assigned_map + // data["overflow_role"] = SSjob.GetJobType(SSjob.overflow_role).title + data["window"] = current_window + + for(var/datum/preference_middleware/preference_middleware as anything in middleware) + data += preference_middleware.get_ui_static_data(user) + + return data + +/datum/preferences/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state) + . = ..() + if(.) + return + + switch(action) + if("set_preference") + var/requested_preference_key = params["preference"] + var/value = params["value"] + + for(var/datum/preference_middleware/preference_middleware as anything in middleware) + if(preference_middleware.pre_set_preference(usr, requested_preference_key, value)) + return TRUE + + var/datum/preference/requested_preference = GLOB.preference_entries_by_key[requested_preference_key] + if(isnull(requested_preference)) + return FALSE + + // SAFETY: `update_preference` performs validation checks + if(!update_preference(requested_preference, value)) + return FALSE + + // if(istype(requested_preference, /datum/preference/name)) // TODO: do this + // tainted_character_profiles = TRUE + + return TRUE + + for(var/datum/preference_middleware/preference_middleware as anything in middleware) + var/delegation = preference_middleware.action_delegations[action] + if(!isnull(delegation)) + return call(preference_middleware, delegation)(params, usr) + + return FALSE + +/datum/preferences/tgui_close(mob/user) + save_character() + save_preferences() + +/datum/preferences/proc/create_character_profiles() + var/list/profiles = list() + + for(var/index in 1 to config.character_slots) + // TODO: It won't be updated in the savefile yet, so just read the name directly + // if(index == default_slot) + // profiles += read_preference(/datum/preference/name/real_name) + // continue + + var/tree_key = "character[index]" + var/save_data = savefile.get_entry(tree_key) + var/name = save_data?["real_name"] + + if(isnull(name)) + profiles += null + continue + + profiles += name + + return profiles + +/datum/preferences/proc/compile_character_preferences(mob/user) + var/list/preferences = list() + + for(var/datum/preference/preference as anything in get_preferences_in_priority_order()) + if(!preference.is_accessible(src)) + continue + + var/value = read_preference(preference.type) + var/data = preference.compile_ui_data(user, value) + + LAZYINITLIST(preferences[preference.category]) + preferences[preference.category][preference.savefile_key] = data + + for(var/datum/preference_middleware/preference_middleware as anything in middleware) + var/list/append_character_preferences = preference_middleware.get_character_preferences(user) + if(isnull(append_character_preferences)) + continue + + for(var/category in append_character_preferences) + if(category in preferences) + preferences[category] += append_character_preferences[category] + else + preferences[category] = append_character_preferences[category] + + return preferences diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm index 97e33d66c9..6b34f88a59 100644 --- a/code/modules/client/preferences_toggle_procs.dm +++ b/code/modules/client/preferences_toggle_procs.dm @@ -1,229 +1,4 @@ //Toggles for preferences, normal clients -/client/verb/toggle_ghost_ears() - set name = "Toggle Ghost Ears" - set category = "Preferences" - set desc = "Toggles between seeing all mob speech and only nearby mob speech as an observer." - - var/pref_path = /datum/client_preference/ghost_ears - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear all mob speech as a ghost.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TGEars") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ghost_vision() - set name = "Toggle Ghost Sight" - set category = "Preferences" - set desc = "Toggles between seeing all mob emotes and only nearby mob emotes as an observer." - - var/pref_path = /datum/client_preference/ghost_sight - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] see all emotes as a ghost.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TGVision") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ghost_radio() - set name = "Toggle Ghost Radio" - set category = "Preferences" - set desc = "Toggles between seeing all radio chat and only nearby radio chatter as an observer." - - var/pref_path = /datum/client_preference/ghost_radio - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear all radios as a ghost.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TGRadio") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_deadchat() - set name = "Toggle Deadchat" - set category = "Preferences" - set desc = "Toggles visibility of dead chat." - - var/pref_path = /datum/client_preference/show_dsay - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear dead chat as a ghost.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TDeadChat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ooc() - set name = "Toggle OOC" - set category = "Preferences" - set desc = "Toggles visibility of global out of character chat." - - var/pref_path = /datum/client_preference/show_ooc - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(/datum/client_preference/show_ooc)) ? "now" : "no longer"] hear global out of character chat.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_looc() - set name = "Toggle LOOC" - set category = "Preferences" - set desc = "Toggles visibility of local out of character chat." - - var/pref_path = /datum/client_preference/show_looc - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear local out of character chat.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_precision_placement() - set name = "Toggle Precision Placement" - set category = "Preferences" - set desc = "Toggles whether objects placed on table will be on cursor position or centered." - - var/pref_path = /datum/client_preference/precision_placement - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] place items where your cursor is on the table.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TPIP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_typing() - set name = "Toggle Typing Indicator" - set category = "Preferences" - set desc = "Toggles you having the speech bubble typing indicator." - - var/pref_path = /datum/client_preference/show_typing_indicator - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] have the speech indicator.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TTIND") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ahelp_sound() - set name = "Toggle Admin Help Sound" - set category = "Preferences" - set desc = "Toggles the ability to hear a noise broadcasted when you get an admin message." - - var/pref_path = /datum/client_preference/holder/play_adminhelp_ping - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive noise from admin messages.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TAHelp") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_lobby_music() - set name = "Toggle Lobby Music" - set category = "Preferences" - set desc = "Toggles the ability to hear the music in the lobby." - - var/pref_path = /datum/client_preference/play_lobby_music - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear music in the lobby.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TLobMusic") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_admin_midis() - set name = "Toggle Admin Music" - set category = "Preferences" - set desc = "Toggles the ability to hear music played by admins." - - var/pref_path = /datum/client_preference/play_admin_midis - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear music from admins.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TAMidis") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ambience() - set name = "Toggle Ambience" - set category = "Preferences" - set desc = "Toggles the ability to hear local ambience." - - var/pref_path = /datum/client_preference/play_ambiance - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear ambient noise.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TAmbience") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_weather_sounds() - set name = "Toggle Weather Sounds" - set category = "Preferences" - set desc = "Toggles the ability to hear weather sounds while on a planet." - - var/pref_path = /datum/client_preference/weather_sounds - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear weather sounds.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TWeatherSounds") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_supermatter_hum() - set name = "Toggle SM Hum" // Avoiding using the full 'Supermatter' name to not conflict with the Setup-Supermatter adminverb. - set category = "Preferences" - set desc = "Toggles the ability to hear supermatter hums." - - var/pref_path = /datum/client_preference/supermatter_hum - - toggle_preference(pref_path) - - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear a hum from the supermatter.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TSupermatterHum") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_jukebox() - set name = "Toggle Jukebox" - set category = "Preferences" - set desc = "Toggles the ability to hear jukebox music." - - var/pref_path = /datum/client_preference/play_jukebox - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear jukebox music.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TJukebox") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - /client/verb/toggle_be_special(role in be_special_flags) set name = "Toggle Special Role Candidacy" set category = "Preferences" @@ -239,146 +14,6 @@ feedback_add_details("admin_verb","TBeSpecial") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/client/verb/toggle_air_pump_hum() - set name = "Toggle Air Vent Noise" - set category = "Preferences" - set desc = "Toggles the ability to hear air vent humming." - - var/pref_path = /datum/client_preference/air_pump_noise - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear air vents hum, start, and stop.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TAirPumpNoise") - -/client/verb/toggle_old_door_sounds() - set name = "Toggle Old Door Sounds" - set category = "Preferences" - set desc = "Toggles door sounds between old and new." - - var/pref_path = /datum/client_preference/old_door_sounds - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear the legacy door sounds.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TOldDoorSounds") - -/client/verb/toggle_department_door_sounds() - set name = "Toggle Department Door Sounds" - set category = "Preferences" - set desc = "Toggles hearing of department-specific door sounds." - - var/pref_path = /datum/client_preference/department_door_sounds - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear per-department door sounds.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TDepartmentDoorSounds") - -/client/verb/toggle_pickup_sounds() - set name = "Toggle Picked Up Item Sounds" - set category = "Preferences" - set desc = "Toggles the ability to hear sounds when items are picked up." - - var/pref_path = /datum/client_preference/pickup_sounds - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear sounds when items are picked up.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb", "TPickupSounds") - -/client/verb/toggle_drop_sounds() - set name = "Toggle Dropped Item Sounds" - set category = "Preferences" - set desc = "Toggles the ability to hear sounds when items are dropped or thrown." - - var/pref_path = /datum/client_preference/drop_sounds - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear sounds when items are dropped or thrown.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb", "TDropSounds") - -/client/verb/toggle_safe_firing() - set name = "Toggle Gun Firing Intent Requirement" - set category = "Preferences" - set desc = "Toggles between safe and dangerous firing. Safe requires a non-help intent to fire, dangerous can be fired on help intent." - - var/pref_path = /datum/client_preference/safefiring - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src,"You will now use [(is_preference_enabled(/datum/client_preference/safefiring)) ? "safe" : "dangerous"] firearms firing.") - - feedback_add_details("admin_verb","TFiringMode") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_mob_tooltips() - set name = "Toggle Mob Tooltips" - set category = "Preferences" - set desc = "Toggles displaying name/species over mobs when they are moused over." - - var/pref_path = /datum/client_preference/mob_tooltips - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src,"You will now [(is_preference_enabled(/datum/client_preference/mob_tooltips)) ? "see" : "not see"] mob tooltips.") - - feedback_add_details("admin_verb","TMobTooltips") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_inv_tooltips() - set name = "Toggle Item Tooltips" - set category = "Preferences" - set desc = "Toggles displaying name/desc over items when they are moused over (only applies in inventory)." - - var/pref_path = /datum/client_preference/inv_tooltips - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src,"You will now [(is_preference_enabled(/datum/client_preference/inv_tooltips)) ? "see" : "not see"] inventory tooltips.") - - feedback_add_details("admin_verb","TInvTooltips") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_hear_instruments() - set name = "Toggle Hear/Ignore Instruments" - set category = "Preferences" - set desc = "Toggles the ability to hear instruments playing." - - var/pref_path = /datum/client_preference/instrument_toggle - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/instrument_toggle)) ? "hear" : "not hear"] instruments being played.") - - feedback_add_details("admin_verb","THInstm") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_vchat() - set name = "Toggle TGChat" - set category = "Preferences" - set desc = "Toggles TGChat. Reloading TGChat and/or reconnecting required to affect changes." - - var/pref_path = /datum/client_preference/vchat_enable - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You have toggled TGChat [is_preference_enabled(pref_path) ? "on" : "off"]. \ - You will have to reload TGChat and/or reconnect to the server for these changes to take place. \ - TGChat message persistence is not guaranteed if you change this again before the start of the next round.") - /client/verb/toggle_chat_timestamps() set name = "Toggle Chat Timestamps" set category = "Preferences" @@ -389,98 +24,6 @@ to_chat(src, span_notice("You have toggled chat timestamps: [prefs.chat_timestamp ? "ON" : "OFF"].")) -/client/verb/toggle_status_indicators() - set name = "Toggle Status Indicators" - set category = "Preferences" - set desc = "Toggles seeing status indicators over peoples' heads." - - var/pref_path = /datum/client_preference/status_indicators - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/status_indicators)) ? "see" : "not see"] status indicators.") - - feedback_add_details("admin_verb","TStatusIndicators") - - -/client/verb/toggle_radio_sounds() - set name = "Toggle Radio Sounds" - set category = "Preferences" - set desc = "Toggle hearing a sound when somebody speaks over your headset." - - var/pref_path = /datum/client_preference/radio_sounds - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/radio_sounds)) ? "hear" : "not hear"] radio sounds.") - - feedback_add_details("admin_verb","TRadioSounds") - -/client/verb/toggle_say_sounds() - set name = "Sound-Toggle-Say" - set category = "Preferences" - set desc = "Toggle hearing a sound when somebody speaks using say." - - var/pref_path = /datum/client_preference/say_sounds - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/say_sounds)) ? "hear" : "not hear"] say sounds.") - - feedback_add_details("admin_verb","TSaySounds") - -/client/verb/toggle_emote_sounds() - set name = "Sound-Toggle-Me" - set category = "Preferences" - set desc = "Toggle hearing a sound when somebody speaks using me ." - - var/pref_path = /datum/client_preference/emote_sounds - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/emote_sounds)) ? "hear" : "not hear"] me sounds.") - - feedback_add_details("admin_verb","TMeSounds") - -/client/verb/toggle_whisper_sounds() - set name = "Sound-Toggle-Whisper" - set category = "Preferences" - set desc = "Toggle hearing a sound when somebody speaks using whisper." - - var/pref_path = /datum/client_preference/whisper_sounds - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/whisper_sounds)) ? "hear" : "not hear"] whisper sounds.") - - feedback_add_details("admin_verb","TWhisperSounds") - -/client/verb/toggle_subtle_sounds() - set name = "Sound-Toggle-Subtle" - set category = "Preferences" - set desc = "Toggle hearing a sound when somebody uses subtle." - - var/pref_path = /datum/client_preference/subtle_sounds - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "You will now [(is_preference_enabled(/datum/client_preference/subtle_sounds)) ? "hear" : "not hear"] subtle sounds.") - - feedback_add_details("admin_verb","TSubtleSounds") - -/client/verb/toggle_vore_health_bars() - set name = "Toggle Vore Health Bars" - set category = "Preferences" - set desc = "Toggle the display of vore related health bars" - - var/pref_path = /datum/client_preference/vore_health_bars - toggle_preference(pref_path) - SScharacter_setup.queue_preferences_save(prefs) - - to_chat(src, "Vore related health bars - [(is_preference_enabled(/datum/client_preference/vore_health_bars)) ? "Enabled" : "Disabled"]") - - feedback_add_details("admin_verb","TVoreHealthBars") - // Not attached to a pref datum because those are strict binary toggles /client/verb/toggle_examine_mode() set name = "Toggle Examine Mode" @@ -515,65 +58,3 @@ to_chat(src, "Multilingual parsing will enforce the a language delimiter after the delimiter-key combination (,0,galcom -2 still galcom). The extra delimiter will be consumed by the pattern-matching.") if(MULTILINGUAL_OFF) to_chat(src, "Multilingual parsing is now disabled. Entire messages will be in the language specified at the start of the message.") - - -//Toggles for Staff -//Developers - -/client/proc/toggle_debug_logs() - set name = "Toggle Debug Logs" - set category = "Preferences" - set desc = "Toggles seeing debug logs." - - var/pref_path = /datum/client_preference/debug/show_debug_logs - - if(check_rights(R_ADMIN|R_DEBUG)) - toggle_preference(pref_path) - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive debug logs.") - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TADebugLogs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -//Mods -/client/proc/toggle_attack_logs() - set name = "Toggle Attack Logs" - set category = "Preferences" - set desc = "Toggles seeing attack logs." - - var/pref_path = /datum/client_preference/mod/show_attack_logs - - if(check_rights(R_ADMIN|R_MOD)) - toggle_preference(pref_path) - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] receive attack logs.") - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TAAttackLogs") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -//General -/client/proc/toggle_admin_global_looc() - set name = "Toggle Admin Global LOOC Visibility" - set category = "Preferences" - set desc = "Toggles seeing LOOC messages outside your actual LOOC range." - - var/pref_path = /datum/client_preference/holder/show_rlooc - - if(holder) - toggle_preference(pref_path) - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear global LOOC.") - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TAGlobalLOOC") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/proc/toggle_admin_deadchat() - set name = "Toggle Admin Living Deadchat" - set category = "Preferences" - set desc = "Toggles seeing deadchat while not observing." - - var/pref_path = /datum/client_preference/holder/show_staff_dsay - - if(holder) - toggle_preference(pref_path) - to_chat(src,"You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear deadchat while not observing.") - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TADeadchat") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/client/preferences_vr.dm b/code/modules/client/preferences_vr.dm index f1cfc4413a..9ee5ed0b24 100644 --- a/code/modules/client/preferences_vr.dm +++ b/code/modules/client/preferences_vr.dm @@ -14,97 +14,6 @@ var/job_talon_low = 0 //Why weren't these in game toggles already? -/client/verb/toggle_eating_noises() - set name = "Toggle Eating Noises" - set category = "Preferences" - set desc = "Toggles hearing Vore Eating noises." - - var/pref_path = /datum/client_preference/eating_noises - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear eating related vore noises.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TEatNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - - -/client/verb/toggle_digestion_noises() - set name = "Toggle Digestion Noises" - set category = "Preferences" - set desc = "Toggles hearing Vore Digestion noises." - - var/pref_path = /datum/client_preference/digestion_noises - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear digestion related vore noises.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TDigestNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_belch_noises() - set name = "Toggle Audible Belching" - set category = "Preferences" - set desc = "Toggles hearing audible belches." - - var/pref_path = /datum/client_preference/belch_noises - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear belching.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TBelchNoise") - -/client/verb/toggle_emote_noises() - set name = "Toggle Emote Noises" - set category = "Preferences" - set desc = "Toggles hearing emote noises." - - var/pref_path = /datum/client_preference/emote_noises - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear emote-related noises.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TEmoteNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ghost_quiets() - set name = "Toggle Ghost Privacy" - set category = "Preferences" - set desc = "Toggles ghosts being able to see your subtles/whispers." - - var/pref_path = /datum/client_preference/whisubtle_vis - - toggle_preference(pref_path) - - to_chat(src, "Ghosts will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear subtles/whispers made by you.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TWhisubtleVis") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_ghost_privacyvision() - set name = "Toggle Ghost Private Eyes/ears" - set category = "Preferences" - set desc = "Toggles your ability to see subtles/whispers. Overrides admin status. Respects Ghost Privacy" - - var/pref_path = /datum/client_preference/ghost_see_whisubtle - - toggle_preference(pref_path) - - to_chat(src, "As a ghost, you will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear subtles/whispers made by players.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb","TGhostSeeWhisSubtle") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - /client/verb/toggle_capture_crystal() set name = "Toggle Catchable" set category = "Preferences" @@ -123,55 +32,3 @@ SScharacter_setup.queue_preferences_save(prefs) feedback_add_details("admin_verb","TCaptureCrystal") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - -/client/verb/toggle_mentorhelp_ping() - set name = "Toggle Mentorhelp Ping" - set category = "Preferences" - set desc = "Toggles the mentorhelp ping" - - var/pref_path = /datum/client_preference/play_mentorhelp_ping - - toggle_preference(pref_path) - - to_chat(src, "Mentorhelp pings are now [ is_preference_enabled(pref_path) ? "enabled" : "disabled"]") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb", "TSoundMentorhelps") - -/client/verb/toggle_player_tips() - set name = "Toggle Receiving Player Tips" - set category = "Preferences" - set desc = "When toggled on, you receive tips periodically on roleplay and gameplay." - - var/pref_path = /datum/client_preference/player_tips - - toggle_preference(pref_path) - - to_chat(src, "You are [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] periodically receiving advice on gameplay and roleplay.") - - SScharacter_setup.queue_preferences_save(prefs) - - feedback_add_details("admin_verb", "TReceivePlayerTips") - -/client/verb/toggle_pain_frequency() - set name = "Toggle Pain Frequency" - set category = "Preferences" - set desc = "When toggled on, increases the cooldown of pain messages sent to chat for minor injuries" - - var/pref_path = /datum/client_preference/pain_frequency - - toggle_preference(pref_path) - - to_chat(src, "The cooldown between pain messages for minor (under 20/5 injury. Multi-limb injuries are still faster) is now [ (is_preference_enabled(pref_path)) ? "extended" : "default"].") - -/client/verb/toggle_automatic_afk() - set name = "Toggle Automatic AFK" - set category = "Preferences" - set desc = "When enabled, causes you to be automatically marked as AFK if you are idle for too long." - - var/pref_path = /datum/client_preference/auto_afk - - toggle_preference(pref_path) - - to_chat(src, "You will [ (is_preference_enabled(pref_path)) ? "now" : "not"] be automatically marked as AFK if you are idle for ten minutes or more.") diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index a020840f21..947c486922 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -15,7 +15,7 @@ msg = sanitize(msg) if(!msg) return - if(!is_preference_enabled(/datum/client_preference/show_ooc)) + if(!prefs?.read_preference(/datum/preference/toggle/show_ooc)) to_chat(src, "You have OOC muted.") return @@ -66,7 +66,7 @@ msg = GLOB.is_valid_url.Replace(msg,"$1") for(var/client/target in GLOB.clients) - if(target.is_preference_enabled(/datum/client_preference/show_ooc)) + if(target.prefs?.read_preference(/datum/preference/toggle/show_ooc)) if(target.is_key_ignored(key)) // If we're ignored by this person, then do nothing. continue var/display_name = src.key @@ -101,7 +101,7 @@ if(!msg) return - if(!is_preference_enabled(/datum/client_preference/show_looc)) + if(!prefs?.read_preference(/datum/preference/toggle/show_looc)) to_chat(src, "You have LOOC muted.") return @@ -159,7 +159,7 @@ // Everyone in normal viewing range of the LOOC for(var/mob/viewer in m_viewers) - if(viewer.client && viewer.client.is_preference_enabled(/datum/client_preference/show_looc)) + if(viewer.client && viewer.client.prefs?.read_preference(/datum/preference/toggle/show_looc)) receivers |= viewer.client else if(istype(viewer,/mob/observer/eye)) // For AI eyes and the like var/mob/observer/eye/E = viewer @@ -168,7 +168,7 @@ // Admins with RLOOC displayed who weren't already in for(var/client/admin in GLOB.admins) - if(!(admin in receivers) && admin.is_preference_enabled(/datum/client_preference/holder/show_rlooc)) + if(!(admin in receivers) && admin.prefs?.read_preference(/datum/preference/toggle/holder/show_rlooc)) if(check_rights(R_SERVER, FALSE, admin)) //Stop rLOOC showing for retired staff r_receivers |= admin diff --git a/code/modules/client/verbs/typing.dm b/code/modules/client/verbs/typing.dm index 4845a40e32..50704f6c93 100644 --- a/code/modules/client/verbs/typing.dm +++ b/code/modules/client/verbs/typing.dm @@ -7,7 +7,7 @@ src << output('html/typing_indicator.html', "commandbar_spy") /client/proc/handle_commandbar_typing(href_list) - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator)) return if(length(href_list["verb"]) < 1 || !(lowertext(href_list["verb"]) in IC_VERBS) || text2num(href_list["argument_length"]) < 1) @@ -31,10 +31,10 @@ /** Sets the mob as "thinking" - with indicator and the TRAIT_THINKING_IN_CHARACTER trait */ /client/proc/start_thinking(channel) - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator)) return FALSE if(channel == "Whis" || channel == "Subtle" || channel == "whisper" || channel == "subtle") - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) return FALSE ADD_TRAIT(mob, TRAIT_THINKING_IN_CHARACTER, CURRENTLY_TYPING_TRAIT) mob.create_thinking_indicator() @@ -50,10 +50,10 @@ /client/proc/start_typing(channel) var/mob/client_mob = mob client_mob.remove_thinking_indicator() - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) return FALSE if(channel == "Whis" || channel == "Subtle" || channel == "whisper" || channel == "subtle") - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) return FALSE client_mob.create_typing_indicator() addtimer(CALLBACK(src, PROC_REF(stop_typing), channel), 5 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE | TIMER_STOPPABLE) @@ -67,10 +67,10 @@ return FALSE var/mob/client_mob = mob client_mob.remove_typing_indicator() - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator) || !HAS_TRAIT(client_mob, TRAIT_THINKING_IN_CHARACTER)) return FALSE if(channel == "Whis" || channel == "Subtle" || channel == "whisper" || channel == "subtle") - if(!is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) + if(!prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) return FALSE client_mob.create_thinking_indicator() diff --git a/code/modules/emotes/definitions/audible_belch.dm b/code/modules/emotes/definitions/audible_belch.dm index 3bb3b6a17c..25db0333cb 100644 --- a/code/modules/emotes/definitions/audible_belch.dm +++ b/code/modules/emotes/definitions/audible_belch.dm @@ -2,7 +2,7 @@ key = "belch" emote_message_3p = "belches." message_type = AUDIBLE_MESSAGE - sound_preferences = list(/datum/client_preference/emote_noises,/datum/client_preference/belch_noises) + sound_preferences = list(/datum/preference/toggle/emote_noises, /datum/preference/toggle/belch_noises) /decl/emote/audible/belch/get_emote_sound(var/atom/user) return list( diff --git a/code/modules/emotes/emote_define.dm b/code/modules/emotes/emote_define.dm index 7aed1e982f..94812dea26 100644 --- a/code/modules/emotes/emote_define.dm +++ b/code/modules/emotes/emote_define.dm @@ -29,8 +29,8 @@ var/global/list/emotes_by_key var/emote_message_radio_synthetic // As above, but for synthetics. var/emote_message_muffled // A message to show if the emote is audible and the user is muzzled. - var/list/emote_sound // A sound for the emote to play. - // Can either be a single sound, a list of sounds to pick from, or an + var/list/emote_sound // A sound for the emote to play. + // Can either be a single sound, a list of sounds to pick from, or an // associative array of gender to single sounds/a list of sounds. var/list/emote_sound_synthetic // As above, but used when check_synthetic() is true. var/emote_volume = 50 // Volume of sound to play. @@ -42,8 +42,8 @@ var/global/list/emotes_by_key var/check_range // falsy, or a range outside which the emote will not work var/conscious = TRUE // Do we need to be awake to emote this? var/emote_range = 0 // If >0, restricts emote visibility to viewers within range. - - var/sound_preferences = list(/datum/client_preference/emote_noises) // Default emote sound_preferences is just emote_noises. Belch emote overrides this list for pref-checks. + + var/sound_preferences = list(/datum/preference/toggle/emote_noises) // Default emote sound_preferences is just emote_noises. Belch emote overrides this list for pref-checks. var/sound_vary = FALSE /decl/emote/Initialize() diff --git a/code/modules/emotes/emote_mob.dm b/code/modules/emotes/emote_mob.dm index 642af69152..e729cb3e1a 100644 --- a/code/modules/emotes/emote_mob.dm +++ b/code/modules/emotes/emote_mob.dm @@ -211,7 +211,7 @@ if(!T) return if(client) - playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/emote_sounds) + playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/emote_sounds) var/list/in_range = get_mobs_and_objs_in_view_fast(T,range,2,remote_ghosts = client ? TRUE : FALSE) var/list/m_viewers = in_range["mobs"] diff --git a/code/modules/instruments/songs/play_legacy.dm b/code/modules/instruments/songs/play_legacy.dm index bd964765cb..13c3b74453 100644 --- a/code/modules/instruments/songs/play_legacy.dm +++ b/code/modules/instruments/songs/play_legacy.dm @@ -89,5 +89,5 @@ if(!M) hearing_mobs -= M continue - M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played, preference = /datum/client_preference/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) + M.playsound_local(source, null, volume * using_instrument.volume_multiplier, S = music_played, preference = /datum/preference/toggle/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) // Could do environment and echo later but not for now diff --git a/code/modules/instruments/songs/play_synthesized.dm b/code/modules/instruments/songs/play_synthesized.dm index a838a75615..bbabdb9370 100644 --- a/code/modules/instruments/songs/play_synthesized.dm +++ b/code/modules/instruments/songs/play_synthesized.dm @@ -79,7 +79,7 @@ channel = channel, pressure_affected = null, S = copy, - preference = /datum/client_preference/instrument_toggle, + preference = /datum/preference/toggle/instrument_toggle, volume_channel = VOLUME_CHANNEL_INSTRUMENTS) // Could do environment and echo later but not for now diff --git a/code/modules/media/mediamanager.dm b/code/modules/media/mediamanager.dm index adc522546f..7ab12e909e 100644 --- a/code/modules/media/mediamanager.dm +++ b/code/modules/media/mediamanager.dm @@ -137,9 +137,9 @@ // Tell the player to play something via JS. /datum/media_manager/proc/send_update() - if(!(owner.prefs)) + if(!owner.prefs) return - if(!owner.is_preference_enabled(/datum/client_preference/play_jukebox) && url != "") + if(!owner.prefs.read_preference(/datum/preference/toggle/play_jukebox) && url != "") return // Don't send anything other than a cancel to people with SOUND_STREAMING pref disabled MP_DEBUG("Sending update to mediapanel ([url], [(world.time - start_time) / 10], [volume * source_volume])...") owner << output(list2params(list(url, (world.time - start_time) / 10, volume * source_volume)), "[WINDOW_ID]:SetMusic") diff --git a/code/modules/mentor/mentor.dm b/code/modules/mentor/mentor.dm index e28202745e..44736e0895 100644 --- a/code/modules/mentor/mentor.dm +++ b/code/modules/mentor/mentor.dm @@ -252,7 +252,7 @@ var/list/mentor_verbs_default = list( log_admin("[key_name(src)]->[key_name(recipient)]: [msg]") - if(recipient.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) + if(recipient.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping)) recipient << 'sound/effects/mentorhelp.mp3' for(var/client/C in GLOB.mentors) diff --git a/code/modules/mentor/mentorhelp.dm b/code/modules/mentor/mentorhelp.dm index 5b23a244af..01eb13af94 100644 --- a/code/modules/mentor/mentorhelp.dm +++ b/code/modules/mentor/mentorhelp.dm @@ -194,10 +194,10 @@ GLOBAL_DATUM_INIT(mhelp_tickets, /datum/mentor_help_tickets, new) var/chat_msg = "(ESCALATE) Ticket [TicketHref("#[id]", ref_src)]: [LinkedReplyName(ref_src)]: [msg]" AddInteraction("[LinkedReplyName(ref_src)]: [msg]") for (var/client/C in GLOB.mentors) - if (C.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) + if (C.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping)) C << 'sound/effects/mentorhelp.mp3' for (var/client/C in GLOB.admins) - if (C.is_preference_enabled(/datum/client_preference/play_mentorhelp_ping)) + if (C.prefs?.read_preference(/datum/preference/toggle/play_mentorhelp_ping)) C << 'sound/effects/mentorhelp.mp3' message_mentors(chat_msg) diff --git a/code/modules/mob/animations.dm b/code/modules/mob/animations.dm index 9e6efaed9c..3e1d2b5045 100644 --- a/code/modules/mob/animations.dm +++ b/code/modules/mob/animations.dm @@ -238,8 +238,7 @@ note dizziness decrements automatically in the mob's Life() proc. //Check for clients with pref enabled var/list/viewing = list() for(var/mob/M as anything in viewers(A)) - var/client/C = M.client - if(C && C.is_preference_enabled(/datum/client_preference/attack_icons)) + if(M.client?.prefs?.read_preference(/datum/preference/toggle/attack_icons)) viewing += M.client //Animals attacking each other in the distance, probably. Forgeddaboutit. diff --git a/code/modules/mob/emote.dm b/code/modules/mob/emote.dm index 712393fd21..0325ccf80f 100644 --- a/code/modules/mob/emote.dm +++ b/code/modules/mob/emote.dm @@ -11,7 +11,7 @@ to_chat(src, "You cannot send deadchat emotes (muted).") return - if(!is_preference_enabled(/datum/client_preference/show_dsay)) + if(!client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) to_chat(src, "You have deadchat muted.") return diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index b0f04e6247..cd861a63f8 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -66,7 +66,7 @@ if(!client && !teleop) return FALSE - if(isobserver(src) && is_preference_enabled(/datum/client_preference/ghost_ears)) + if(isobserver(src) && client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) if(speaker && !speaker.client && !(speaker in view(src))) //Does the speaker have a client? It's either random stuff that observers won't care about (Experiment 97B says, 'EHEHEHEHEHEHEHE') //Or someone snoring. So we make it where they won't hear it. @@ -108,7 +108,7 @@ if(speaker_name != speaker.real_name && speaker.real_name) speaker_name = "[speaker.real_name] ([speaker_name])" track = "([ghost_follow_link(speaker, src)]) " - if(is_preference_enabled(/datum/client_preference/ghost_ears) && (speaker in view(src))) + if(client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears) && (speaker in view(src))) message = "[message]" if(is_deaf()) @@ -119,7 +119,7 @@ else var/message_to_send = null message_to_send = "[speaker_name][speaker.GetAltName()] [track][message]" - if(check_mentioned(multilingual_to_message(message_pieces)) && is_preference_enabled(/datum/client_preference/check_mention)) + if(check_mentioned(multilingual_to_message(message_pieces)) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) message_to_send = "[message_to_send]" on_hear_say(message_to_send, speaker) @@ -227,7 +227,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]" - if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) + if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" @@ -238,7 +238,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][track][part_c][formatted][part_d]" - if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) + if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" @@ -249,7 +249,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]" - if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) + if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" @@ -260,7 +260,7 @@ if(client.prefs.chat_timestamp) time = say_timestamp() var/final_message = "[part_b][track][part_c][formatted][part_d]" - if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) + if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) final_message = "[time][part_a][final_message][part_e]" else final_message = "[time][part_a][final_message][part_e]" diff --git a/code/modules/mob/language/synthetic.dm b/code/modules/mob/language/synthetic.dm index 6a4ccd494d..0d301117bb 100644 --- a/code/modules/mob/language/synthetic.dm +++ b/code/modules/mob/language/synthetic.dm @@ -26,7 +26,7 @@ for (var/mob/M in dead_mob_list) if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping var/message_to_send = span_binary("[message_start] ([ghost_follow_link(speaker, M)]) [message_body]") - if(M.check_mentioned(message) && M.is_preference_enabled(/datum/client_preference/check_mention)) + if(M.check_mentioned(message) && M.client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) message_to_send = "[message_to_send]" M.show_message(message_to_send, 2) @@ -39,7 +39,7 @@ continue var/message_to_send = span_binary("[message_start] [message_body]") - if(S.check_mentioned(message) && S.is_preference_enabled(/datum/client_preference/check_mention)) + if(S.check_mentioned(message) && S.client?.prefs?.read_preference(/datum/preference/toggle/check_mention)) message_to_send = "[message_to_send]" S.show_message(message_to_send, 2) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index a34cce9cb1..095d3815d4 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -84,7 +84,7 @@ if(mind) // SSgame_master.adjust_danger(gibbed ? 40 : 20) // VOREStation Edit - We don't use SSgame_master yet. for(var/mob/observer/dead/O in mob_list) - if(O.client && O.client.is_preference_enabled(/datum/client_preference/show_dsay)) + if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) to_chat(O, "[src] has died in [get_area(src)]. [ghost_follow_link(src, O)] ") if(!gibbed && species.death_sound) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 6a75c780f2..8473a39b1b 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1167,7 +1167,7 @@ if(noisy == TRUE && nutrition < 250 && prob(10)) //VOREStation edit for hunger noises. var/sound/growlsound = sound(get_sfx("hunger_sounds")) var/growlmultiplier = 100 - (nutrition / 250 * 100) - playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) + playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) // VOREStation Edit End if((CE_DARKSIGHT in chem_effects) && chemical_darksight == 0) @@ -1248,7 +1248,7 @@ if(fear) fear = (fear - 1) - if(fear >= 80 && is_preference_enabled(/datum/client_preference/play_ambiance)) + if(fear >= 80 && client?.prefs?.read_preference(/datum/preference/toggle/play_ambience)) if(last_fear_sound + 51 SECONDS <= world.time) src << sound('sound/effects/Heart Beat.ogg',0,0,0,25) last_fear_sound = world.time @@ -1989,7 +1989,7 @@ if(!H || (H.robotic >= ORGAN_ROBOT)) return - if(pulse >= PULSE_2FAST || shock_stage >= 10 || (istype(get_turf(src), /turf/space) && is_preference_enabled(/datum/client_preference/play_ambiance))) + if(pulse >= PULSE_2FAST || shock_stage >= 10 || (istype(get_turf(src), /turf/space) && read_preference(/datum/preference/toggle/play_ambience))) //PULSE_THREADY - maximum value for pulse, currently it 5. //High pulse value corresponds to a fast rate of heartbeat. //Divided by 2, otherwise it is too slow. diff --git a/code/modules/mob/living/inventory.dm b/code/modules/mob/living/inventory.dm index eb93f679e3..1e493dda99 100644 --- a/code/modules/mob/living/inventory.dm +++ b/code/modules/mob/living/inventory.dm @@ -48,7 +48,7 @@ item_dropped = r_hand . = drop_r_hand(Target) - if (istype(item_dropped) && !QDELETED(item_dropped) && is_preference_enabled(/datum/client_preference/drop_sounds)) + if (istype(item_dropped) && !QDELETED(item_dropped) && check_sound_preference(/datum/preference/toggle/drop_sounds)) addtimer(CALLBACK(src, PROC_REF(make_item_drop_sound), item_dropped), 1) /mob/proc/make_item_drop_sound(obj/item/I) @@ -56,7 +56,7 @@ return if(I.drop_sound) - playsound(I, I.drop_sound, 25, 0, preference = /datum/client_preference/drop_sounds) + playsound(I, I.drop_sound, 25, 0, preference = /datum/preference/toggle/drop_sounds) //Drops the item in our left hand diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index e012097056..58240e4ab0 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -39,7 +39,7 @@ if(client) var/idle_limit = 10 MINUTES - if(client.inactivity >= idle_limit && !away_from_keyboard && src.is_preference_enabled(/datum/client_preference/auto_afk)) //if we're not already afk and we've been idle too long, and we have automarking enabled... then automark it + if(client.inactivity >= idle_limit && !away_from_keyboard && client.prefs?.read_preference(/datum/preference/toggle/auto_afk)) //if we're not already afk and we've been idle too long, and we have automarking enabled... then automark it add_status_indicator("afk") to_chat(src, "You have been idle for too long, and automatically marked as AFK.") away_from_keyboard = TRUE diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index e6e20d231f..83acf1d11c 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -363,14 +363,14 @@ var/list/channel_to_radio_key = new if(M && src) //If we still exist, when the spawn processes //VOREStation Add - Ghosts don't hear whispers - if(whispering && isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ - (!is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder))) + if(whispering && isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ + (!client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder))) M.show_message("[src.name] [w_not_heard].", 2) return //VOREStation Add End var/dst = get_dist(get_turf(M),get_turf(src)) - var/runechat_enabled = M.client?.is_preference_enabled(/datum/client_preference/runechat_mob) + var/runechat_enabled = M.client?.prefs?.read_preference(/datum/preference/toggle/runechat_mob) if(dst <= message_range || (M.stat == DEAD && !forbid_seeing_deadchat)) //Inside normal message range, or dead with ears (handled in the view proc) if(M.hear_say(message_pieces, verb, italics, src, speech_sound, sound_vol)) @@ -413,12 +413,12 @@ var/list/channel_to_radio_key = new message = "([message_mode == "headset" ? "Common" : capitalize(message_mode)]) [message]" //Adds radio keys used if available if(whispering) if(do_sound && message) - playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/whisper_sounds) + playsound(T, pick(voice_sounds_list), 25, TRUE, extrarange = -6, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/whisper_sounds) log_whisper(message, src) else if(do_sound && message) - playsound(T, pick(voice_sounds_list), 75, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/say_sounds) + playsound(T, pick(voice_sounds_list), 75, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/say_sounds) log_say(message, src) return 1 diff --git a/code/modules/mob/living/silicon/pai/pai_vr.dm b/code/modules/mob/living/silicon/pai/pai_vr.dm index 86d9d83334..6b562128d2 100644 --- a/code/modules/mob/living/silicon/pai/pai_vr.dm +++ b/code/modules/mob/living/silicon/pai/pai_vr.dm @@ -512,9 +512,9 @@ for (var/mob/G in player_list) if (istype(G, /mob/new_player)) continue - else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears)) - if((is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) && \ - G.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle)) + else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) + if((client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || G.client.holder) && \ + G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle)) to_chat(G, "[src.name]'s screen prints, \"[message]\"") /mob/living/silicon/pai/proc/touch_window(soft_name) //This lets us touch TGUI procs and windows that may be nested behind other TGUI procs and windows diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index a7a9386c39..fe632a206c 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -91,7 +91,7 @@ if(do_after(user, 30, target) && length(contents) < max_item_count) target.forceMove(src) user.visible_message("[hound.name]'s [src.name] groans lightly as [target.name] slips inside.", "Your [src.name] groans lightly as [target] slips inside.") - playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) + playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) if(analyzer && istype(target,/obj/item)) var/obj/item/tech_item = target var/list/tech_levels = list() @@ -111,7 +111,7 @@ trashmouse.forceMove(src) trashmouse.reset_view(src) user.visible_message("[hound.name]'s [src.name] groans lightly as [trashmouse] slips inside.", "Your [src.name] groans lightly as [trashmouse] slips inside.") - playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) + playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) if(delivery) if(islist(deliverylists[delivery_tag])) deliverylists[delivery_tag] |= trashmouse @@ -133,7 +133,7 @@ START_PROCESSING(SSobj, src) user.visible_message("[hound.name]'s [src.name] groans lightly as [trashman] slips inside.", "Your [src.name] groans lightly as [trashman] slips inside.") log_admin("[key_name(hound)] has eaten [key_name(patient)] with a cyborg belly. ([hound ? "JMP" : "null"])") - playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) + playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) if(delivery) if(islist(deliverylists[delivery_tag])) deliverylists[delivery_tag] |= trashman @@ -164,7 +164,7 @@ START_PROCESSING(SSobj, src) user.visible_message("[hound.name]'s [src.name] lights up as [H.name] slips inside.", "Your [src] lights up as [H] slips inside. Life support functions engaged.") log_admin("[key_name(hound)] has eaten [key_name(patient)] with a cyborg belly. ([hound ? "JMP" : "null"])") - playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/client_preference/eating_noises) + playsound(src, gulpsound, vol = 100, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises) /obj/item/device/dogborg/sleeper/proc/ingest_atom(var/atom/ingesting) if (!ingesting || ingesting == hound) @@ -551,11 +551,11 @@ 'sound/vore/death8.ogg', 'sound/vore/death9.ogg', 'sound/vore/death10.ogg') - playsound(src, finisher, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) + playsound(src, finisher, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) to_chat(hound, "Your [src.name] is now clean. Ending self-cleaning cycle.") cleaning = 0 update_patient() - playsound(src, 'sound/machines/ding.ogg', vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) + playsound(src, 'sound/machines/ding.ogg', vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) return if(prob(20)) @@ -572,7 +572,7 @@ 'sound/vore/digest10.ogg', 'sound/vore/digest11.ogg', 'sound/vore/digest12.ogg') - playsound(src, churnsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) + playsound(src, churnsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) //If the timing is right, and there are items to be touched if(air_master.current_cycle%3==1 && length(touchable_items)) @@ -606,7 +606,7 @@ 'sound/vore/death8.ogg', 'sound/vore/death9.ogg', 'sound/vore/death10.ogg') - playsound(src, deathsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises) + playsound(src, deathsound, vol = 100, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/preference/toggle/digestion_noises) if(is_vore_predator(T)) for(var/obj/belly/B as anything in T.vore_organs) for(var/atom/movable/thing in B) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_say.dm b/code/modules/mob/living/silicon/robot/drone/drone_say.dm index 5e8dd6dc74..d35e87fff6 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_say.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_say.dm @@ -32,8 +32,8 @@ for (var/mob/M in player_list) if (istype(M, /mob/new_player)) continue - else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) + else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) if(M.client) to_chat(M, "[src] transmits, \"[message]\"") return 1 - return ..() \ No newline at end of file + return ..() diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm index 633df96ec8..2abb3b52df 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm @@ -500,14 +500,14 @@ for(var/mob/M as anything in vis_mobs) if(isnewplayer(M)) continue - if(isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ - !L.is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)) + if(isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ + !L.client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder)) spawn(0) M.show_message(undisplayed_message, 2) else spawn(0) M.show_message(message, 2) - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) /decl/flooring/fur @@ -930,7 +930,7 @@ spawnstuff = FALSE /area/redgate/stardog/flesh_abyss/play_ambience(var/mob/living/L, initial = TRUE) - if(!L.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(!L.check_sound_preference(/datum/preference/toggle/digestion_noises)) return ..() @@ -1172,14 +1172,14 @@ for(var/mob/M as anything in vis_mobs) if(isnewplayer(M)) continue - if(isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ - !L.is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)) + if(isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ + !L.client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder)) spawn(0) M.show_message(undisplayed_message, 2) else spawn(0) M.show_message(message, 2) - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) /area/redgate/stardog/eyes @@ -1335,8 +1335,8 @@ var/go = FALSE if(isobserver(AM)) return - playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) - playsound(target, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(target, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) if(isliving(AM)) var/mob/living/L = AM if(teleport_message && L.client) @@ -1374,7 +1374,7 @@ var/mob/living/simple_mob/vore/overmap/stardog/dog = s.parent dog.adjust_nutrition(I.reagents.total_volume) dog.adjust_affinity(25) - playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) visible_message("The dog gobbles up \the [I]!") if(dog.client) to_chat(dog, "[I.thrower ? "\The [I.thrower]" : "Someone"] feeds \the [I] to you!") @@ -1699,7 +1699,7 @@ /obj/structure/auto_flesh_door/proc/Open() isSwitchingStates = 1 var/oursound = pick(open_sounds) - playsound(src, oursound, 100, 1, preference = /datum/client_preference/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, oursound, 100, 1, preference = /datum/preference/toggle/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) flick("flesh-opening",src) sleep(8) density = FALSE @@ -1715,7 +1715,7 @@ /obj/structure/auto_flesh_door/proc/Close() isSwitchingStates = 1 var/oursound = pick(open_sounds) - playsound(src, oursound, 100, 1, preference = /datum/client_preference/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, oursound, 100, 1, preference = /datum/preference/toggle/digestion_noises , volume_channel = VOLUME_CHANNEL_VORE) flick("flesh-closing",src) sleep(8) density = TRUE diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm index 50e54cf8aa..649a206306 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer.dm @@ -266,7 +266,7 @@ for(var/mob/M in player_list) if(istype(M, /mob/new_player)) continue - else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) + else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) to_chat(M, "[src.true_name] whispers to [host], \"[message]\"") diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm index ab1d9cfbfe..c4ee2ce60d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/borer/borer_captive.dm @@ -28,7 +28,7 @@ for (var/mob/M in player_list) if (istype(M, /mob/new_player)) continue - else if(M.stat == DEAD && M.is_preference_enabled(/datum/client_preference/ghost_ears)) + else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears)) to_chat(M, "The captive mind of [src] whispers, \"[message]\"") /mob/living/captive_brain/me_verb(message as text) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 14a3c56e8c..4ff396fd0a 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -63,12 +63,12 @@ recalculate_vis() // AO support - var/ao_enabled = client.is_preference_enabled(/datum/client_preference/ambient_occlusion) + var/ao_enabled = client.prefs?.read_preference(/datum/preference/toggle/ambient_occlusion) plane_holder.set_ao(VIS_OBJS, ao_enabled) plane_holder.set_ao(VIS_MOBS, ao_enabled) // Status indicators - var/status_enabled = client.is_preference_enabled(/datum/client_preference/status_indicators) + var/status_enabled = client.prefs?.read_preference(/datum/preference/toggle/status_indicators) plane_holder.set_vis(VIS_STATUS, status_enabled) //set macro to normal incase it was overriden (like cyborg currently does) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 0cfa747e4c..47ccb71bfe 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1305,20 +1305,18 @@ return TRUE /mob/MouseEntered(location, control, params) - if(usr != src && usr.is_preference_enabled(/datum/client_preference/mob_tooltips) && src.will_show_tooltip()) - openToolTip(user = usr, tip_src = src, params = params, title = get_nametag_name(usr), content = get_nametag_desc(usr)) - - ..() + if(usr != src && will_show_tooltip()) + if(usr?.read_preference(/datum/preference/toggle/mob_tooltips)) + openToolTip(usr, src, params, title = get_nametag_name(usr), content = get_nametag_desc(usr)) + . = ..() /mob/MouseDown() closeToolTip(usr) //No reason not to, really - - ..() + . = ..() /mob/MouseExited() closeToolTip(usr) //No reason not to, really - - ..() + . = ..() // Manages a global list of mobs with clients attached, indexed by z-level. /mob/proc/update_client_z(new_z) // +1 to register, null to unregister. diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 61d9c6020d..eea78a94c7 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -409,7 +409,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) return // Can't talk in deadchat if you can't see it. for(var/mob/M in player_list) - if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.is_preference_enabled(/datum/client_preference/holder/show_staff_dsay))) && M.is_preference_enabled(/datum/client_preference/show_dsay)) + if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.client?.prefs?.read_preference(/datum/preference/toggle/holder/show_staff_dsay))) && M.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) var/follow var/lname if(M.forbid_seeing_deadchat && !M.client.holder) @@ -439,7 +439,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT) /proc/say_dead_object(var/message, var/obj/subject = null) for(var/mob/M in player_list) - if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.is_preference_enabled(/datum/client_preference/holder/show_staff_dsay))) && M.is_preference_enabled(/datum/client_preference/show_dsay)) + if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && M.client.holder.rights && M.client?.prefs?.read_preference(/datum/preference/toggle/holder/show_staff_dsay))) && M.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) var/follow var/lname = "Game Master" if(M.forbid_seeing_deadchat && !M.client.holder) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 01a74aea44..37e447761e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -100,7 +100,7 @@ if (client.prefs.lastlorenews == GLOB.news_data.newsindex) client.seen_news = 1 - if(GLOB.news_data.station_newspaper && !client.seen_news && client.is_preference_enabled(/datum/client_preference/show_lore_news)) + if(GLOB.news_data.station_newspaper && !client.seen_news && client.prefs?.read_preference(/datum/preference/toggle/show_lore_news)) show_latest_news(GLOB.news_data.station_newspaper) client.prefs.lastlorenews = GLOB.news_data.newsindex SScharacter_setup.queue_preferences_save(client.prefs) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index f2624a91be..f0c494266d 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -68,7 +68,7 @@ to_chat(src, "Deadchat is globally muted.") return - if(!is_preference_enabled(/datum/client_preference/show_dsay)) + if(!client?.prefs?.read_preference(/datum/preference/toggle/show_dsay)) to_chat(usr, "You have deadchat muted.") return diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 00fef766c9..95d4acc8fb 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -203,14 +203,14 @@ continue if(src.client && M && !(get_z(src) == get_z(M))) message = "[message]" - if(isobserver(M) && (!M.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle) || \ - !is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)) + if(isobserver(M) && (!M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle) || \ + !client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) && !M.client?.holder)) spawn(0) M.show_message(undisplayed_message, 2) else spawn(0) M.show_message(message, 2) - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) for(var/obj/O as anything in vis_objs) @@ -291,13 +291,13 @@ else pb = db.pred_body to_chat(pb, "The captive mind of \the [M] thinks, \"[message]\"") //To our pred if dominated brain - if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE else if(M.absorbed && isbelly(M.loc)) pb = M.loc.loc to_chat(pb, "\The [M] thinks, \"[message]\"") //To our pred if absorbed - if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -307,14 +307,14 @@ if(istype(I, /mob/living/dominated_brain) && I != M) var/mob/living/dominated_brain/db = I to_chat(db, "The captive mind of \the [M] thinks, \"[message]\"") //To any dominated brains in the pred - if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(db.read_preference(/datum/preference/toggle/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in pb.vore_organs) for(var/mob/living/L in B) if(L.absorbed && L != M && L.ckey) to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people in the pred - if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(L.read_preference(/datum/preference/toggle/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -323,32 +323,32 @@ if(istype(I, /mob/living/dominated_brain)) var/mob/living/dominated_brain/db = I to_chat(db, "\The [M] thinks, \"[message]\"") //To any dominated brains inside us - if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(db.read_preference(/datum/preference/toggle/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in M.vore_organs) for(var/mob/living/L in B) if(L.absorbed) to_chat(L, "\The [M] thinks, \"[message]\"") //To any absorbed people inside us - if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(L.read_preference(/datum/preference/toggle/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE if(f) //We found someone to send the message to if(pb) to_chat(M, "You think \"[message]\"") //To us if we are the prey - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) else to_chat(M, "You think \"[message]\"") //To us if we are the pred - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) for (var/mob/G in player_list) if (istype(G, /mob/new_player)) continue - else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears && \ - G.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle))) - if(is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) + else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears && \ + G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle))) + if(client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || G.client.holder) to_chat(G, "\The [M] thinks, \"[message]\"") log_say(message,M) else //There wasn't anyone to send the message to, pred or prey, so let's just say it instead and correct our psay just in case. @@ -388,14 +388,14 @@ else pb = db.pred_body to_chat(pb, "\The [M] [message]") //To our pred if dominated brain - if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE else if(M.absorbed && isbelly(M.loc)) pb = M.loc.loc to_chat(pb, "\The [M] [message]") //To our pred if absorbed - if(pb.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(pb.read_preference(/datum/preference/toggle/subtle_sounds)) pb << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -405,14 +405,14 @@ if(istype(I, /mob/living/dominated_brain) && I != M) var/mob/living/dominated_brain/db = I to_chat(db, "\The [M] [message]") //To any dominated brains in the pred - if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(db.read_preference(/datum/preference/toggle/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in pb.vore_organs) for(var/mob/living/L in B) if(L.absorbed && L != M && L.ckey) to_chat(L, "\The [M] [message]") //To any absorbed people in the pred - if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(L.read_preference(/datum/preference/toggle/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE @@ -421,32 +421,32 @@ if(istype(I, /mob/living/dominated_brain)) var/mob/living/dominated_brain/db = I to_chat(db, "\The [M] [message]") //To any dominated brains inside us - if(db.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(db.read_preference(/datum/preference/toggle/subtle_sounds)) db << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE for(var/B in M.vore_organs) for(var/mob/living/L in B) if(L.absorbed) to_chat(L, "\The [M] [message]") //To any absorbed people inside us - if(L.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(L.read_preference(/datum/preference/toggle/subtle_sounds)) L << sound('sound/talksounds/subtle_sound.ogg', volume = 50) f = TRUE if(f) //We found someone to send the message to if(pb) to_chat(M, "\The [M] [message]") //To us if we are the prey - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) else to_chat(M, "\The [M] [message]") //To us if we are the pred - if(M.is_preference_enabled(/datum/client_preference/subtle_sounds)) + if(M.read_preference(/datum/preference/toggle/subtle_sounds)) M << sound('sound/talksounds/subtle_sound.ogg', volume = 50) for (var/mob/G in player_list) if (istype(G, /mob/new_player)) continue - else if(isobserver(G) && G.is_preference_enabled(/datum/client_preference/ghost_ears && \ - G.is_preference_enabled(/datum/client_preference/ghost_see_whisubtle))) - if(is_preference_enabled(/datum/client_preference/whisubtle_vis) || G.client.holder) + else if(isobserver(G) && G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears && \ + G.client?.prefs?.read_preference(/datum/preference/toggle/ghost_see_whisubtle))) + if(client?.prefs?.read_preference(/datum/preference/toggle/whisubtle_vis) || G.client.holder) to_chat(G, "\The [M] [message]") log_say(message,M) else //There wasn't anyone to send the message to, pred or prey, so let's just emote it instead and correct our psay just in case. @@ -484,7 +484,7 @@ ourfreq = voice_freq if(client) - playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/client_preference/emote_sounds) + playsound(T, pick(emote_sound), 25, TRUE, falloff = 1 , is_global = TRUE, frequency = ourfreq, ignore_walls = FALSE, preference = /datum/preference/toggle/emote_sounds) var/list/in_range = get_mobs_and_objs_in_view_fast(T,world.view,2,remote_ghosts = client ? TRUE : FALSE) var/list/m_viewers = in_range["mobs"] diff --git a/code/modules/mob/typing_indicator.dm b/code/modules/mob/typing_indicator.dm index ec1a0be6d6..f4a36083a4 100644 --- a/code/modules/mob/typing_indicator.dm +++ b/code/modules/mob/typing_indicator.dm @@ -15,7 +15,7 @@ set name = "Say verb" set category = "IC" - if(is_preference_enabled(/datum/client_preference/tgui_say)) + if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(SAY_CHANNEL)]") return @@ -31,7 +31,7 @@ set name = "Me verb" set category = "IC" - if(is_preference_enabled(/datum/client_preference/tgui_say)) + if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(ME_CHANNEL)]") return @@ -47,11 +47,11 @@ set name = "Whisper verb" set category = "IC" - if(is_preference_enabled(/datum/client_preference/tgui_say)) + if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(WHIS_CHANNEL)]") return - if(is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) + if(client?.prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) client?.start_thinking() client?.start_typing() var/message = tgui_input_text(usr, "Type your message:", "Whisper") @@ -65,11 +65,11 @@ set category = "IC" set desc = "Emote to nearby people (and your pred/prey)" - if(is_preference_enabled(/datum/client_preference/tgui_say)) + if(client?.prefs?.read_preference(/datum/preference/toggle/tgui_say)) winset(src, null, "command=[client.tgui_say_create_open_command(SUBTLE_CHANNEL)]") return - if(is_preference_enabled(/datum/client_preference/show_typing_indicator_subtle)) + if(client?.prefs?.read_preference(/datum/preference/toggle/show_typing_indicator_subtle)) client?.start_thinking() client?.start_typing() var/message = tgui_input_text(usr, "Type your message:", "Subtle", multiline = TRUE) diff --git a/code/modules/organs/pain.dm b/code/modules/organs/pain.dm index d26b7e3088..08b9cc620f 100644 --- a/code/modules/organs/pain.dm +++ b/code/modules/organs/pain.dm @@ -19,7 +19,7 @@ // Anti message spam checks // If multiple limbs are injured, cooldown is ignored to print all injuries until all limbs are iterated over - if(src.is_preference_enabled(/datum/client_preference/pain_frequency)) + if(client?.prefs?.read_preference(/datum/preference/toggle/pain_frequency)) switch(power) if(0 to 5) force = 0 diff --git a/code/modules/player_tips_vr/player_tips_controller_vr.dm b/code/modules/player_tips_vr/player_tips_controller_vr.dm index e23994be92..7854177564 100644 --- a/code/modules/player_tips_vr/player_tips_controller_vr.dm +++ b/code/modules/player_tips_vr/player_tips_controller_vr.dm @@ -27,7 +27,7 @@ Controlled by the player_tips subsystem under code/controllers/subsystems/player break last_tip = tip for(var/mob/M in player_list) - if(M.is_preference_enabled(/datum/client_preference/player_tips)) + if(M.client?.prefs?.read_preference(/datum/preference/toggle/player_tips)) if(!M.key && !(M.key in HasReceived)) to_chat(M, SPAN_WARNING("You have periodic player tips enabled. You may turn them off at any time with the Toggle Receiving Player Tips verb in Preferences, or in character set up under the OOC tab!\n Player tips appear every 45-75 minutes.")) HasReceived.Add(M.key) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index ac6faeb412..068878ab3c 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -229,7 +229,7 @@ PreFire(A,user,params) //They're using the new gun system, locate what they're aiming at. return - if(user && user.a_intent == I_HELP && user.is_preference_enabled(/datum/client_preference/safefiring)) //regardless of what happens, refuse to shoot if help intent is on + if(user && user.a_intent == I_HELP && user.client?.prefs?.read_preference(/datum/preference/toggle/safefiring)) //regardless of what happens, refuse to shoot if help intent is on to_chat(user, "You refrain from firing your [src] as your intent is set to help.") return diff --git a/code/modules/projectiles/targeting/targeting_triggers.dm b/code/modules/projectiles/targeting/targeting_triggers.dm index 1b8f3fcadd..d327ba8e8f 100644 --- a/code/modules/projectiles/targeting/targeting_triggers.dm +++ b/code/modules/projectiles/targeting/targeting_triggers.dm @@ -20,7 +20,7 @@ if(!owner.checkClickCooldown()) return owner.setClickCooldown(5) // Spam prevention, essentially. - if(owner.a_intent == I_HELP && owner.is_preference_enabled(/datum/client_preference/safefiring)) + if(owner.a_intent == I_HELP && owner.client?.prefs?.read_preference(/datum/preference/toggle/safefiring)) to_chat(owner, "You refrain from firing \the [aiming_with] as your intent is set to help.") return owner.visible_message("\The [owner] pulls the trigger reflexively!") diff --git a/code/modules/tables/interactions.dm b/code/modules/tables/interactions.dm index d1aae5fc71..711373cfe3 100644 --- a/code/modules/tables/interactions.dm +++ b/code/modules/tables/interactions.dm @@ -155,7 +155,7 @@ return // Placing stuff on tables - if(user.unEquip(W, 0, src.loc) && user.is_preference_enabled(/datum/client_preference/precision_placement)) + if(user.unEquip(W, 0, src.loc) && user.client?.prefs?.read_preference(/datum/preference/toggle/precision_placement)) auto_align(W, click_parameters) return 1 diff --git a/code/modules/tgui_input/say_modal/modal.dm b/code/modules/tgui_input/say_modal/modal.dm index 725f4321bf..84e9906499 100644 --- a/code/modules/tgui_input/say_modal/modal.dm +++ b/code/modules/tgui_input/say_modal/modal.dm @@ -67,7 +67,7 @@ winset(client, "tgui_say", "pos=410,400;size=360,30;is-visible=0;") window.send_message("props", list( - lightMode = client.is_preference_enabled(/datum/client_preference/tgui_say_light), + lightMode = client?.prefs?.read_preference(/datum/preference/toggle/tgui_say_light), maxLength = max_length, )) diff --git a/code/modules/vore/chat_healthbars.dm b/code/modules/vore/chat_healthbars.dm index 203df0b0b8..583435dea3 100644 --- a/code/modules/vore/chat_healthbars.dm +++ b/code/modules/vore/chat_healthbars.dm @@ -6,7 +6,7 @@ if(!reciever.client) //No one is home, don't bother return if(!override) //Did the person push the verb? Ignore the pref - if(!reciever.client.is_preference_enabled(/datum/client_preference/vore_health_bars)) + if(!reciever.client.prefs?.read_preference(/datum/preference/toggle/vore_health_bars)) return var/ourpercent = 0 diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index d6224e978e..bbbf2eeba3 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -443,7 +443,7 @@ else soundfile = fancy_vore_sounds[vore_sound] if(soundfile) - playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) recent_sound = TRUE //Messages if it's a mob @@ -631,7 +631,7 @@ else soundfile = fancy_release_sounds[release_sound] if(soundfile) - playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) return count @@ -717,7 +717,7 @@ else soundfile = fancy_release_sounds[release_sound] if(soundfile) - playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, soundfile, vol = privacy_volume, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) //Should fix your view not following you out of mobs sometimes! if(ismob(M)) var/mob/ourmob = M @@ -1372,9 +1372,9 @@ struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) else struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) - playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) else - playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) if(escapable) //If the stomach has escapable enabled. if(prob(escapechance)) //Let's have it check to see if the prey escapes first. @@ -1651,9 +1651,9 @@ struggle_snuggle = sound(get_sfx("classic_struggle_sounds")) else struggle_snuggle = sound(get_sfx("fancy_prey_struggle")) - playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) else - playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) + playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/preference/toggle/digestion_noises, volume_channel = VOLUME_CHANNEL_VORE) //absorb resists if(escapable || owner.stat) //If the stomach has escapable enabled or the owner is dead/unconscious diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index 9c49d8f93f..40c9efef5c 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(digest_modes, list()) //Person just died in guts! if(L.stat == DEAD) - if(L.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(L.check_sound_preference(/datum/preference/toggle/digestion_noises)) if(!B.fancy_vore) SEND_SOUND(L, sound(get_sfx("classic_death_sounds"))) else diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index d71fdac231..a18e6b2408 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -59,7 +59,7 @@ /////////////////////////// Make any noise /////////////////////////// if(digestion_noise_chance && prob(digestion_noise_chance)) for(var/mob/M in contents) - if(M && M.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(M && M.check_sound_preference(/datum/preference/toggle/digestion_noises)) SEND_SOUND(M, prey_digest) play_sound = pred_digest @@ -68,7 +68,7 @@ updateVRPanels() if(play_sound) for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect - if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises)) continue if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check if(fancy_vore) @@ -95,7 +95,7 @@ if(play_sound) for(var/mob/M in hearers(VORE_SOUND_RANGE, get_turf(owner))) //so we don't fill the whole room with the sound effect - if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises)) continue if(isturf(M.loc) || (M.loc != src)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check if(fancy_vore) @@ -224,7 +224,7 @@ /obj/belly/proc/prey_loop() for(var/mob/living/M in contents) //We don't bother executing any other code if the prey doesn't want to hear the noises. - if(!M.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(!M.check_sound_preference(/datum/preference/toggle/digestion_noises)) M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case, because byond is whack and you can't trust it continue diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 470c6d9b7c..4327294e83 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -1187,11 +1187,10 @@ if(!user) CRASH("display_voreprefs() was called without an associated user.") var/dispvoreprefs = "[src]'s vore preferences


" - if(client && client.prefs) - if("CHAT_OOC" in client.prefs.preferences_disabled) - dispvoreprefs += "OOC DISABLED
" - if("CHAT_LOOC" in client.prefs.preferences_disabled) - dispvoreprefs += "LOOC DISABLED
" + if(!client?.prefs?.read_preference(/datum/preference/toggle/show_ooc)) + dispvoreprefs += "OOC DISABLED
" + if(!client?.prefs?.read_preference(/datum/preference/toggle/show_looc)) + dispvoreprefs += "LOOC DISABLED
" dispvoreprefs += "Digestable: [digestable ? "Enabled" : "Disabled"]
" dispvoreprefs += "Devourable: [devourable ? "Enabled" : "Disabled"]
" dispvoreprefs += "Feedable: [feeding ? "Enabled" : "Disabled"]
" diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 494a202f90..df541fee43 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -920,7 +920,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", l.adjust_nutrition(thismuch) ourtarget.death() // To make sure all on-death procs get properly called if(ourtarget) - if(ourtarget.is_preference_enabled(/datum/client_preference/digestion_noises)) + if(ourtarget.check_sound_preference(/datum/preference/toggle/digestion_noises)) if(!b.fancy_vore) SEND_SOUND(ourtarget, sound(get_sfx("classic_death_sounds"))) else diff --git a/interface/interface.dm b/interface/interface.dm index 1a2771d81b..e9c030b74a 100644 --- a/interface/interface.dm +++ b/interface/interface.dm @@ -223,7 +223,7 @@ Any-Mode: (hotkey doesn't need to be on) /client/proc/set_hotkeys_macro(macro_name = "macro", hotkey_macro_name = "hotkeymode", hotkeys_enabled = null) // If hotkeys mode was not specified, fall back to choice of default in client preferences. if(isnull(hotkeys_enabled)) - hotkeys_enabled = is_preference_enabled(/datum/client_preference/hotkeys_default) + hotkeys_enabled = prefs?.read_preference(/datum/preference/toggle/hotkeys_default) if(hotkeys_enabled) winset(src, null, "mainwindow.macro=[hotkey_macro_name] hotkey_toggle.is-checked=true mapwindow.map.focus=true") diff --git a/interface/skin.dmf b/interface/skin.dmf index a32906eb75..7d732dd0f2 100644 --- a/interface/skin.dmf +++ b/interface/skin.dmf @@ -1149,6 +1149,20 @@ menu "menu" command = "hotkeys-help" category = "&Help" saved-params = "is-checked" + elem + name = "&Preferences" + command = "" + saved-params = "is-checked" + elem + name = "&Character Setup" + command = "character-setup" + category = "&Preferences" + saved-params = "is-checked" + elem + name = "&Game Options" + command = "game-options" + category = "&Preferences" + saved-params = "is-checked" window "mainwindow" elem "mainwindow" diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferenceWindow.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferenceWindow.tsx new file mode 100644 index 0000000000..58d863c5e6 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferenceWindow.tsx @@ -0,0 +1,70 @@ +// import { exhaustiveCheck } from 'common/exhaustive'; +import { useState } from 'react'; + +import { useBackend } from '../../backend'; +import { Stack } from '../../components'; +import { Window } from '../../layouts'; +import { GamePreferencesSelectedPage, PreferencesMenuData } from './data'; +import { GamePreferencesPage } from './GamePreferencesPage'; +// import { KeybindingsPage } from './KeybindingsPage'; + +export const GamePreferenceWindow = (props: { + startingPage?: GamePreferencesSelectedPage; +}) => { + const { act, data } = useBackend(); + + const [currentPage, setCurrentPage] = useState( + props.startingPage ?? GamePreferencesSelectedPage.Settings, + ); + + let pageContents; + + switch (currentPage) { + // case GamePreferencesSelectedPage.Keybindings: + // pageContents = ; + // break; + case GamePreferencesSelectedPage.Settings: + pageContents = ; + break; + // default: + // exhaustiveCheck(currentPage); + } + + return ( + + + + {/* + + + + Settings + + + + + + Keybindings + + + + */} + + {/* */} + + + {pageContents} + + + + + ); +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferencesPage.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferencesPage.tsx new file mode 100644 index 0000000000..35f279b428 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/GamePreferencesPage.tsx @@ -0,0 +1,149 @@ +import { binaryInsertWith, sortBy } from 'common/collections'; +import { ReactNode, useState } from 'react'; + +import { useBackend } from '../../backend'; +import { Box, Button, Flex, Input, Section, Tooltip } from '../../components'; +import { PreferencesMenuData } from './data'; +import features from './preferences/features'; +import { FeatureValueInput } from './preferences/features/base'; +import { TabbedMenu } from './TabbedMenu'; + +type PreferenceChild = { + name: string; + children: ReactNode; +}; + +const binaryInsertPreference = ( + collection: PreferenceChild[], + value: PreferenceChild, +) => binaryInsertWith(collection, value, (child) => child.name); + +const sortByName = (array: [string, PreferenceChild[]][]) => + sortBy(array, ([name]) => name); + +export const GamePreferencesPage = (props) => { + const { act, data } = useBackend(); + + const gamePreferences: Record = {}; + + for (const [featureId, value] of Object.entries( + data.character_preferences.game_preferences, + )) { + const feature = features[featureId]; + + let nameInner: ReactNode = feature?.name || featureId; + + if (feature?.description) { + nameInner = ( + + {nameInner} + + ); + } + + let name: ReactNode = ( + + {nameInner} + + ); + + if (feature?.description) { + name = ( + + {name} + + ); + } + + const child = ( + + {name} + + + {(feature && ( + + )) || ( + + ...is not filled out properly!!! + + )} + + + ); + + const entry = { + name: feature?.name || featureId, + children: child, + }; + + const category = feature?.category || 'ERROR'; + + gamePreferences[category] = binaryInsertPreference( + gamePreferences[category] || [], + entry, + ); + } + + const [search, setSearch] = useState(''); + const [searchVisible, setSearchVisible] = useState(false); + + // For some reason, typescript thinks that this call to filter() can change the shape of the array + const gamePreferenceEntries: any = sortByName(Object.entries(gamePreferences)) + .map(([category, preferences]) => { + return [ + category, + preferences + .filter( + (entry) => + !search || + entry.name.toLowerCase().includes(search.toLowerCase()), + ) + .map((entry) => entry.children), + ]; + }) + .filter(([category, prefs]) => prefs.length !== 0); + + return ( + <> + {!gamePreferenceEntries.length && ( +
No results found.
+ )} + + {searchVisible && ( + setSearch(val)} + onChange={(e, val) => setSearch(val)} + /> + )} + + ); +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/ServerPreferencesFetcher.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/ServerPreferencesFetcher.tsx new file mode 100644 index 0000000000..0b90fd855c --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/ServerPreferencesFetcher.tsx @@ -0,0 +1,43 @@ +import { Component, ReactNode } from 'react'; + +import { resolveAsset } from '../../assets'; +import { fetchRetry } from '../../http'; +import { ServerData } from './data'; + +// Cache response so it's only sent once +let fetchServerData: Promise | undefined; + +export class ServerPreferencesFetcher extends Component< + { + render: (serverData: ServerData | undefined) => ReactNode; + }, + { + serverData?: ServerData; + } +> { + state = { + serverData: undefined, + }; + + componentDidMount() { + this.populateServerData(); + } + + async populateServerData() { + if (!fetchServerData) { + fetchServerData = fetchRetry(resolveAsset('preferences.json')).then( + (response) => response.json(), + ); + } + + const preferencesData: ServerData = await fetchServerData; + + this.setState({ + serverData: preferencesData, + }); + } + + render() { + return this.props?.render?.(this.state.serverData); + } +} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/TabbedMenu.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/TabbedMenu.tsx new file mode 100644 index 0000000000..13c572ebc8 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/TabbedMenu.tsx @@ -0,0 +1,90 @@ +import { Component, createRef, ReactNode, RefObject } from 'react'; + +import { Button, Section, Stack } from '../../components'; +import { FlexProps } from '../../components/Flex'; + +type TabbedMenuProps = { + categoryEntries: [string, ReactNode][]; + contentProps?: FlexProps; +}; + +export class TabbedMenu extends Component { + categoryRefs: Record> = {}; + sectionRef: RefObject = createRef(); + + getCategoryRef(category: string): RefObject { + if (!this.categoryRefs[category]) { + this.categoryRefs[category] = createRef(); + } + + return this.categoryRefs[category]; + } + + render() { + return ( + + + + {this.props.categoryEntries.map(([category]) => { + return ( + + + + ); + })} + + + + + + {this.props.categoryEntries.map(([category, children]) => { + return ( + +
+ {children} +
+
+ ); + })} +
+
+
+ ); + } +} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/abductor.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/abductor.ts new file mode 100644 index 0000000000..789e5e9823 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/abductor.ts @@ -0,0 +1,23 @@ +import { Antagonist, Category } from '../base'; + +const Abductor: Antagonist = { + key: 'abductor', + name: 'Abductor', + description: [ + ` + Abductors are technologically advanced alien society set on cataloging + all species in the system. Unfortunately for their subjects their methods + are quite invasive. + `, + + ` + You and a partner will become the abductor scientist and agent duo. + As an agent, abduct unassuming victims and bring them back to your UFO. + As a scientist, scout out victims for your agent, keep them safe, and + operate on whoever they bring back. + `, + ], + category: Category.Midround, +}; + +export default Abductor; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blob.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blob.ts new file mode 100644 index 0000000000..92cd5bdc44 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blob.ts @@ -0,0 +1,17 @@ +import { Antagonist, Category } from '../base'; + +export const BLOB_MECHANICAL_DESCRIPTION = ` + The blob infests the station and destroys everything in its path, including + hull, fixtures, and creatures. Spread your mass, collect resources, and + consume the entire station. Make sure to prepare your defenses, because the + crew will be alerted to your presence! +`; + +const Blob: Antagonist = { + key: 'blob', + name: 'Blob', + description: [BLOB_MECHANICAL_DESCRIPTION], + category: Category.Midround, +}; + +export default Blob; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blobinfection.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blobinfection.ts new file mode 100644 index 0000000000..d8a5f135fe --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/blobinfection.ts @@ -0,0 +1,17 @@ +import { Antagonist, Category } from '../base'; +import { BLOB_MECHANICAL_DESCRIPTION } from './blob'; + +const BlobInfection: Antagonist = { + key: 'blobinfection', + name: 'Blob Infection', + description: [ + ` + At any point in the middle of the shift, be strucken with an infection + that will turn you into the terrifying blob. + `, + BLOB_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, +}; + +export default BlobInfection; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodbrother.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodbrother.ts new file mode 100644 index 0000000000..56cbcbfc97 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/bloodbrother.ts @@ -0,0 +1,16 @@ +import { Antagonist, Category } from '../base'; + +const BloodBrother: Antagonist = { + key: 'bloodbrother', + name: 'Blood Brother', + description: [ + ` + Team up with other crew members as blood brothers to combine the strengths + of your departments, break each other out of prison, and overwhelm the + station. + `, + ], + category: Category.Roundstart, +}; + +export default BloodBrother; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changeling.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changeling.ts new file mode 100644 index 0000000000..9124a07063 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changeling.ts @@ -0,0 +1,21 @@ +import { Antagonist, Category } from '../base'; + +export const CHANGELING_MECHANICAL_DESCRIPTION = ` +Transform yourself or others into different identities, and buy from an +arsenal of biological weaponry with the DNA you collect. +`; + +const Changeling: Antagonist = { + key: 'changeling', + name: 'Changeling', + description: [ + ` + A highly intelligent alien predator that is capable of altering their + shape to flawlessly resemble a human. + `, + CHANGELING_MECHANICAL_DESCRIPTION, + ], + category: Category.Roundstart, +}; + +export default Changeling; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changelingmidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changelingmidround.ts new file mode 100644 index 0000000000..8324bdb858 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/changelingmidround.ts @@ -0,0 +1,17 @@ +import { Antagonist, Category } from '../base'; +import { CHANGELING_MECHANICAL_DESCRIPTION } from './changeling'; + +const ChangelingMidround: Antagonist = { + key: 'changelingmidround', + name: 'Space Changeling', + description: [ + ` + A midround changeling does not receive a crew identity, instead arriving + from space. This will be more difficult than being a round-start changeling! + `, + CHANGELING_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, +}; + +export default ChangelingMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/clownoperative.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/clownoperative.ts new file mode 100644 index 0000000000..61f874a2e9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/clownoperative.ts @@ -0,0 +1,20 @@ +import { Antagonist, Category } from '../base'; +import { OPERATIVE_MECHANICAL_DESCRIPTION } from './operative'; + +const ClownOperative: Antagonist = { + key: 'clownoperative', + name: 'Clown Operative', + description: [ + ` + Honk! You have been chosen, for better or worse to join the Syndicate + Clown Operative strike team. Your mission, whether or not you choose + to tickle it, is to honk Nanotrasen's most advanced research facility! + That's right, you're going to Clown Station 13. + `, + + OPERATIVE_MECHANICAL_DESCRIPTION, + ], + category: Category.Roundstart, +}; + +export default ClownOperative; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cultist.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cultist.ts new file mode 100644 index 0000000000..c5cfaf61c2 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/cultist.ts @@ -0,0 +1,22 @@ +import { Antagonist, Category } from '../base'; + +const Cultist: Antagonist = { + key: 'cultist', + name: 'Cultist', + description: [ + ` + The Geometer of Blood, Nar-Sie, has sent a number of her followers to + Space Station 13. As a cultist, you have an abundance of cult magics at + your disposal, something for all situations. You must work with your + brethren to summon an avatar of your eldritch goddess! + `, + + ` + Armed with blood magic, convert crew members to the Blood Cult, sacrifice + those who get in the way, and summon Nar-Sie. + `, + ], + category: Category.Roundstart, +}; + +export default Cultist; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/fugitive.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/fugitive.ts new file mode 100644 index 0000000000..f05a96c2ec --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/fugitive.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +const Fugitive: Antagonist = { + key: 'fugitive', + name: 'Fugitive', + description: [ + ` + Wherever you come from, you're being hunted. You have 10 minutes to prepare + before fugitive hunters arrive and start hunting you and your friends down! + `, + ], + category: Category.Midround, +}; + +export default Fugitive; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts new file mode 100644 index 0000000000..3d269c54ca --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/glitch.ts @@ -0,0 +1,19 @@ +import { Antagonist, Category } from '../base'; + +const Glitch: Antagonist = { + key: 'glitch', + name: 'Glitch', + description: [ + ` + The virtual domain is a dangerous place for bitrunners. Make it so. + `, + + ` + You are a short-term antagonist, a glitch in the system. Use martial arts \ + and lethal weaponry to terminate organics. + `, + ], + category: Category.Midround, +}; + +export default Glitch; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/headrevolutionary.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/headrevolutionary.ts new file mode 100644 index 0000000000..0a1d644266 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/headrevolutionary.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +export const REVOLUTIONARY_MECHANICAL_DESCRIPTION = ` + Armed with a flash, convert as many people to the revolution as you can. + Kill or exile all heads of staff on the station. + `; + +const HeadRevolutionary: Antagonist = { + key: 'headrevolutionary', + name: 'Head Revolutionary', + description: ['VIVA LA REVOLUTION!', REVOLUTIONARY_MECHANICAL_DESCRIPTION], + category: Category.Roundstart, +}; + +export default HeadRevolutionary; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/heretic.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/heretic.ts new file mode 100644 index 0000000000..8c2d631bd5 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/heretic.ts @@ -0,0 +1,22 @@ +import { Antagonist, Category } from '../base'; + +export const HERETIC_MECHANICAL_DESCRIPTION = ` + Find hidden influences and sacrifice crew members to gain magical + powers and ascend as one of several paths. + `; + +const Heretic: Antagonist = { + key: 'heretic', + name: 'Heretic', + description: [ + ` + Forgotten, devoured, gutted. Humanity has forgotten the eldritch forces + of decay, but the mansus veil has weakened. We will make them taste fear + again... + `, + HERETIC_MECHANICAL_DESCRIPTION, + ], + category: Category.Roundstart, +}; + +export default Heretic; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/hereticsmuggler.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/hereticsmuggler.ts new file mode 100644 index 0000000000..6ce90a3552 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/hereticsmuggler.ts @@ -0,0 +1,14 @@ +import { Antagonist, Category } from '../base'; +import { HERETIC_MECHANICAL_DESCRIPTION } from './heretic'; + +const HereticSmuggler: Antagonist = { + key: 'hereticsmuggler', + name: 'Heretic Smuggler', + description: [ + 'A form of heretic that can activate when joining an ongoing shift.', + HERETIC_MECHANICAL_DESCRIPTION, + ], + category: Category.Latejoin, +}; + +export default HereticSmuggler; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/loneoperative.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/loneoperative.ts new file mode 100644 index 0000000000..3f8ac5c5b7 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/loneoperative.ts @@ -0,0 +1,18 @@ +import { Antagonist, Category } from '../base'; +import { OPERATIVE_MECHANICAL_DESCRIPTION } from './operative'; + +const LoneOperative: Antagonist = { + key: 'loneoperative', + name: 'Lone Operative', + description: [ + ` + A solo nuclear operative that has a higher chance of spawning the longer + the nuclear authentication disk stays in one place. + `, + + OPERATIVE_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, +}; + +export default LoneOperative; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfai.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfai.ts new file mode 100644 index 0000000000..03aadd752c --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfai.ts @@ -0,0 +1,16 @@ +import { Antagonist, Category } from '../base'; + +export const MALF_AI_MECHANICAL_DESCRIPTION = ` + With a law zero to complete your objectives at all costs, combine your + omnipotence and malfunction modules to wreak havoc across the station. + Go delta to destroy the station and all those who opposed you. + `; + +const MalfAI: Antagonist = { + key: 'malfai', + name: 'Malfunctioning AI', + description: [MALF_AI_MECHANICAL_DESCRIPTION], + category: Category.Roundstart, +}; + +export default MalfAI; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfaimidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfaimidround.ts new file mode 100644 index 0000000000..84e52b43dc --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/malfaimidround.ts @@ -0,0 +1,17 @@ +import { Antagonist, Category } from '../base'; +import { MALF_AI_MECHANICAL_DESCRIPTION } from './malfai'; + +const MalfAIMidround: Antagonist = { + key: 'malfaimidround', + name: 'Value Drifted AI', + description: [ + ` + A form of malfunctioning AI that is given to existing AIs in the middle + of the shift. + `, + MALF_AI_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, +}; + +export default MalfAIMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/nightmare.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/nightmare.ts new file mode 100644 index 0000000000..90046dd625 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/nightmare.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +const Nightmare: Antagonist = { + key: 'nightmare', + name: 'Nightmare', + description: [ + ` + Use your light eater to break sources of light to survive and thrive. + Jaunt through the darkness and seek your prey with night vision. + `, + ], + category: Category.Midround, +}; + +export default Nightmare; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/obsessed.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/obsessed.ts new file mode 100644 index 0000000000..8d4c981398 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/obsessed.ts @@ -0,0 +1,16 @@ +import { Antagonist, Category } from '../base'; + +const Obsessed: Antagonist = { + key: 'obsessed', + name: 'Obsessed', + description: [ + ` + You're obsessed with someone! Your obsession may begin to notice their + personal items are stolen and their coworkers have gone missing, + but will they realize they are your next victim in time? + `, + ], + category: Category.Midround, +}; + +export default Obsessed; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operative.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operative.ts new file mode 100644 index 0000000000..a8182de9e0 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operative.ts @@ -0,0 +1,24 @@ +import { Antagonist, Category } from '../base'; + +export const OPERATIVE_MECHANICAL_DESCRIPTION = ` + Retrieve the nuclear authentication disk, use it to activate the nuclear + fission explosive, and destroy the station. +`; + +const Operative: Antagonist = { + key: 'operative', + name: 'Nuclear Operative', + description: [ + ` + Congratulations, agent. You have been chosen to join the Syndicate + Nuclear Operative strike team. Your mission, whether or not you choose + to accept it, is to destroy Nanotrasen's most advanced research facility! + That's right, you're going to Space Station 13. + `, + + OPERATIVE_MECHANICAL_DESCRIPTION, + ], + category: Category.Roundstart, +}; + +export default Operative; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operativemidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operativemidround.ts new file mode 100644 index 0000000000..7497c6442f --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/operativemidround.ts @@ -0,0 +1,17 @@ +import { Antagonist, Category } from '../base'; +import { OPERATIVE_MECHANICAL_DESCRIPTION } from './operative'; + +const OperativeMidround: Antagonist = { + key: 'operativemidround', + name: 'Nuclear Assailant', + description: [ + ` + A form of nuclear operative that is offered to ghosts in the middle + of the shift. + `, + OPERATIVE_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, +}; + +export default OperativeMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/paradoxclone.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/paradoxclone.ts new file mode 100644 index 0000000000..1456df3ec6 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/paradoxclone.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +const ParadoxClone: Antagonist = { + key: 'paradoxclone', + name: 'Paradox Clone', + description: [ + ` + A freak time-space anomaly has teleported you into another reality! + Now you have to find your counterpart and kill and replace them. + `, + ], + category: Category.Midround, +}; + +export default ParadoxClone; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/provocateur.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/provocateur.ts new file mode 100644 index 0000000000..1d2879c867 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/provocateur.ts @@ -0,0 +1,18 @@ +import { Antagonist, Category } from '../base'; +import { REVOLUTIONARY_MECHANICAL_DESCRIPTION } from './headrevolutionary'; + +const Provocateur: Antagonist = { + key: 'provocateur', + name: 'Provocateur', + description: [ + ` + A form of head revolutionary that can activate when joining an ongoing + shift. + `, + + REVOLUTIONARY_MECHANICAL_DESCRIPTION, + ], + category: Category.Latejoin, +}; + +export default Provocateur; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/revenant.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/revenant.ts new file mode 100644 index 0000000000..241b52b3e4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/revenant.ts @@ -0,0 +1,16 @@ +import { Antagonist, Category } from '../base'; + +const Revenant: Antagonist = { + key: 'revenant', + name: 'Revenant', + description: [ + ` + Become the mysterious revenant. Break windows, overload lights, and eat + the crew's life force, all while talking to your old community of + disgruntled ghosts. + `, + ], + category: Category.Midround, +}; + +export default Revenant; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/sentiencepotionspawn.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/sentiencepotionspawn.ts new file mode 100644 index 0000000000..e69db3bec3 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/sentiencepotionspawn.ts @@ -0,0 +1,22 @@ +import { Antagonist, Category } from '../base'; + +const SentientCreature: Antagonist = { + key: 'sentiencepotionspawn', + name: 'Sentient Creature', + description: [ + ` + Either by cosmic happenstance, or due to crew's shenanigans, you have been + given sentience! + `, + + ` + This is a blanket preference. The more benign ones include random human + level intelligence events, the cargorilla, and creatures uplifted via sentience + potions. The less friendly ones include the regal rat, and the boosted + mining elite mobs. + `, + ], + category: Category.Midround, +}; + +export default SentientCreature; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spacedragon.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spacedragon.ts new file mode 100644 index 0000000000..4a11cc94d1 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spacedragon.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +const SpaceDragon: Antagonist = { + key: 'spacedragon', + name: 'Space Dragon', + description: [ + ` + Become a ferocious space dragon. Breathe fire, summon an army of space + carps, crush walls, and terrorize the station. + `, + ], + category: Category.Midround, +}; + +export default SpaceDragon; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spaceninja.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spaceninja.ts new file mode 100644 index 0000000000..e6db1b96f9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spaceninja.ts @@ -0,0 +1,23 @@ +import { Antagonist, Category } from '../base'; + +const SpaceNinja: Antagonist = { + key: 'spaceninja', + name: 'Space Ninja', + description: [ + ` + The Spider Clan practice a sort of augmentation of human flesh in order to + achieve a more perfect state of being and follow Postmodern Space Bushido. + `, + + ` + Become a conniving space ninja, equipped with a katana, gloves to hack + into airlocks and APCs, a suit to make you go near-invisible, + as well as a variety of abilities in your kit. Hack into arrest consoles + to mark everyone as arrest, and even hack into communication consoles to + summon more threats to cause chaos on the station! + `, + ], + category: Category.Midround, +}; + +export default SpaceNinja; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spy.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spy.ts new file mode 100644 index 0000000000..b004b972d4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/spy.ts @@ -0,0 +1,22 @@ +import { Antagonist, Category } from '../base'; + +const Spy: Antagonist = { + key: 'spy', + name: 'Spy', + description: [ + ` + Your mission, should you choose to accept it: Infiltrate Space Station 13. + Disguise yourself as a member of their crew and steal vital equipment. + Should you be caught or killed, your employer will disavow any knowledge + of your actions. Good luck agent. + `, + + ` + Complete Spy Bounties to earn rewards from your employer. + Use these rewards to sow chaos and mischief! + `, + ], + category: Category.Roundstart, +}; + +export default Spy; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/stowawaychangeling.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/stowawaychangeling.ts new file mode 100644 index 0000000000..20ba22ee07 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/stowawaychangeling.ts @@ -0,0 +1,17 @@ +import { Antagonist, Category } from '../base'; +import { CHANGELING_MECHANICAL_DESCRIPTION } from './changeling'; + +const Stowaway_Changeling: Antagonist = { + key: 'stowawaychangeling', + name: 'Stowaway Changeling', + description: [ + ` + A Changeling that found its way onto the shuttle + unbeknownst to the crewmembers on board. + `, + CHANGELING_MECHANICAL_DESCRIPTION, + ], + category: Category.Latejoin, +}; + +export default Stowaway_Changeling; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicateinfiltrator.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicateinfiltrator.ts new file mode 100644 index 0000000000..45ad29292b --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicateinfiltrator.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; +import { TRAITOR_MECHANICAL_DESCRIPTION } from './traitor'; + +const SyndicateInfiltrator: Antagonist = { + key: 'syndicateinfiltrator', + name: 'Syndicate Infiltrator', + description: [ + 'A form of traitor that can activate when joining an ongoing shift.', + TRAITOR_MECHANICAL_DESCRIPTION, + ], + category: Category.Latejoin, + priority: -1, +}; + +export default SyndicateInfiltrator; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicatesleeperagent.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicatesleeperagent.ts new file mode 100644 index 0000000000..4a680e5d34 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/syndicatesleeperagent.ts @@ -0,0 +1,18 @@ +import { Antagonist, Category } from '../base'; +import { TRAITOR_MECHANICAL_DESCRIPTION } from './traitor'; + +const SyndicateSleeperAgent: Antagonist = { + key: 'syndicatesleeperagent', + name: 'Syndicate Sleeper Agent', + description: [ + ` + A form of traitor that can activate at any point in the middle + of the shift. + `, + TRAITOR_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, + priority: -1, +}; + +export default SyndicateSleeperAgent; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/traitor.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/traitor.ts new file mode 100644 index 0000000000..ccb6391998 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/traitor.ts @@ -0,0 +1,23 @@ +import { Antagonist, Category } from '../base'; + +export const TRAITOR_MECHANICAL_DESCRIPTION = ` + Start with an uplink to purchase your gear and take on your sinister + objectives. Ascend through the ranks and become an infamous legend. + `; + +const Traitor: Antagonist = { + key: 'traitor', + name: 'Traitor', + description: [ + ` + An unpaid debt. A score to be settled. Maybe you were just in the wrong + place at the wrong time. Whatever the reasons, you were selected to + infiltrate Space Station 13. + `, + TRAITOR_MECHANICAL_DESCRIPTION, + ], + category: Category.Roundstart, + priority: -1, +}; + +export default Traitor; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizard.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizard.ts new file mode 100644 index 0000000000..62530a26f6 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizard.ts @@ -0,0 +1,18 @@ +import { Antagonist, Category } from '../base'; + +export const WIZARD_MECHANICAL_DESCRIPTION = ` + Choose between a variety of powerful spells in order to cause chaos + among Space Station 13. + `; + +const Wizard: Antagonist = { + key: 'wizard', + name: 'Wizard', + description: [ + `"GREETINGS. WE'RE THE WIZARDS OF THE WIZARD'S FEDERATION."`, + WIZARD_MECHANICAL_DESCRIPTION, + ], + category: Category.Roundstart, +}; + +export default Wizard; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizardmidround.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizardmidround.ts new file mode 100644 index 0000000000..b36a9f5170 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/wizardmidround.ts @@ -0,0 +1,14 @@ +import { Antagonist, Category } from '../base'; +import { WIZARD_MECHANICAL_DESCRIPTION } from './wizard'; + +const WizardMidround: Antagonist = { + key: 'wizardmidround', + name: 'Wizard (Midround)', + description: [ + 'A form of wizard that is offered to ghosts in the middle of the shift.', + WIZARD_MECHANICAL_DESCRIPTION, + ], + category: Category.Midround, +}; + +export default WizardMidround; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/xenomorph.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/xenomorph.ts new file mode 100644 index 0000000000..a9a1960f3b --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/antagonists/xenomorph.ts @@ -0,0 +1,15 @@ +import { Antagonist, Category } from '../base'; + +const Xenomorph: Antagonist = { + key: 'xenomorph', + name: 'Xenomorph', + description: [ + ` + Become the extraterrestrial xenomorph. Start as a larva, and progress + your way up the caste, including even the Queen! + `, + ], + category: Category.Midround, +}; + +export default Xenomorph; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/base.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/base.ts new file mode 100644 index 0000000000..a91b6af878 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/antagonists/base.ts @@ -0,0 +1,35 @@ +/** + * This folder represents the antagonists you can choose in the preferences + * menu. + * + * Every file in this folder represents one antagonist. + * + * For example "Syndicate Sleeper Agent" -> syndicatesleeperagent.ts + * + * "Antagonist" in this context actually means ruleset. + * This is an important distinction--it means that players can choose to be + * a roundstart traitor, but not a latejoin traitor. + * + * Icons are generated from the antag datums themselves, provided by the + * `antag_datum` variable on the /datum/dynamic_ruleset. + * + * The icon used is whatever the return value of get_preview_icon() is. + * Most antagonists, unless they want an especially cool effect, can simply + * set preview_outfit to some typepath representing their character. + */ + +export type Antagonist = { + // the antag_flag, made lowercase, and with non-alphanumerics removed. + key: string; + + name: string; + description: string[]; + category: Category; + priority?: number; +}; + +export enum Category { + Roundstart, + Midround, + Latejoin, +} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts new file mode 100644 index 0000000000..ff8d1b112a --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts @@ -0,0 +1,36 @@ +import { sendAct } from '../../backend'; + +export enum GamePreferencesSelectedPage { + Settings, + Keybindings, +} + +export const createSetPreference = + (act: typeof sendAct, preference: string) => (value: unknown) => { + act('set_preference', { + preference, + value, + }); + }; + +export enum Window { + Character = 0, + Game = 1, + Keybindings = 2, +} + +export type PreferencesMenuData = { + character_profiles: (string | null)[]; + + character_preferences: { + game_preferences: Record; + }; + + active_slot: number; + + window: Window; +}; + +export type ServerData = { + [otheyKey: string]: unknown; +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/index.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/index.tsx new file mode 100644 index 0000000000..e64e62f8ff --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/index.tsx @@ -0,0 +1,31 @@ +// import { exhaustiveCheck } from 'common/exhaustive'; + +import { useBackend } from '../../backend'; +// import { CharacterPreferenceWindow } from './CharacterPreferenceWindow'; +import { + GamePreferencesSelectedPage, + PreferencesMenuData, + Window, +} from './data'; +import { GamePreferenceWindow } from './GamePreferenceWindow'; + +export const PreferencesMenu = (props) => { + const { data } = useBackend(); + + const window = data.window; + + switch (window) { + // case Window.Character: + // return ; + case Window.Game: + return ; + case Window.Keybindings: + return ( + + ); + // default: + // exhaustiveCheck(window); + } +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/base.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/base.tsx new file mode 100644 index 0000000000..452eb67751 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/base.tsx @@ -0,0 +1,267 @@ +import { sortBy } from 'common/collections'; +import { BooleanLike } from 'common/react'; +import { + ComponentType, + createElement, + ReactNode, + useEffect, + useState, +} from 'react'; + +import { sendAct, useBackend } from '../../../../backend'; +import { + Box, + Button, + Dropdown, + Input, + NumberInput, + Slider, + Stack, +} from '../../../../components'; +import { createSetPreference, PreferencesMenuData } from '../../data'; +import { ServerPreferencesFetcher } from '../../ServerPreferencesFetcher'; + +export const sortChoices = (array: [string, ReactNode][]) => + sortBy(array, ([name]) => name); + +export type Feature< + TReceiving, + TSending = TReceiving, + TServerData = undefined, +> = { + name: string; + component: FeatureValue; + category?: string; + description?: string; +}; + +/** + * Represents a preference. + * TReceiving = The type you will be receiving + * TSending = The type you will be sending + * TServerData = The data the server sends through preferences.json + */ +type FeatureValue< + TReceiving, + TSending = TReceiving, + TServerData = undefined, +> = ComponentType>; + +export type FeatureValueProps< + TReceiving, + TSending = TReceiving, + TServerData = undefined, +> = Readonly<{ + act: typeof sendAct; + featureId: string; + handleSetValue: (newValue: TSending) => void; + serverData: TServerData | undefined; + shrink?: boolean; + value: TReceiving; +}>; + +export const FeatureColorInput = (props: FeatureValueProps) => { + return ( + + ); +}; + +export type FeatureToggle = Feature; + +export const CheckboxInput = ( + props: FeatureValueProps, +) => { + return ( + { + props.handleSetValue(!props.value); + }} + /> + ); +}; + +export const CheckboxInputInverse = ( + props: FeatureValueProps, +) => { + return ( + { + props.handleSetValue(!props.value); + }} + /> + ); +}; + +export function createDropdownInput( + // Map of value to display texts + choices: Record, + dropdownProps?: Record, +): FeatureValue { + return (props: FeatureValueProps) => { + return ( + { + return { + displayText: label, + value: dataValue, + }; + }, + )} + {...dropdownProps} + /> + ); + }; +} + +export type FeatureChoicedServerData = { + choices: string[]; + display_names?: Record; + icons?: Record; +}; + +export type FeatureChoiced = Feature; + +export type FeatureNumericData = { + minimum: number; + maximum: number; + step: number; +}; + +export type FeatureNumeric = Feature; + +export const FeatureNumberInput = ( + props: FeatureValueProps, +) => { + if (!props.serverData) { + return Loading...; + } + + return ( + { + props.handleSetValue(value); + }} + minValue={props.serverData.minimum} + maxValue={props.serverData.maximum} + step={props.serverData.step} + value={props.value} + /> + ); +}; + +export const FeatureSliderInput = ( + props: FeatureValueProps, +) => { + if (!props.serverData) { + return Loading...; + } + + return ( + { + props.handleSetValue(value); + }} + minValue={props.serverData.minimum} + maxValue={props.serverData.maximum} + step={props.serverData.step} + value={props.value} + stepPixelSize={10} + /> + ); +}; + +export const FeatureValueInput = (props: { + feature: Feature; + featureId: string; + shrink?: boolean; + value: unknown; + + act: typeof sendAct; +}) => { + const { data } = useBackend(); + + const feature = props.feature; + + const [predictedValue, setPredictedValue] = useState(props.value); + + const changeValue = (newValue: unknown) => { + setPredictedValue(newValue); + createSetPreference(props.act, props.featureId)(newValue); + }; + + useEffect(() => { + setPredictedValue(props.value); + }, [data.active_slot, props.value]); + + return ( + { + return createElement(feature.component, { + act: props.act, + featureId: props.featureId, + serverData: serverData?.[props.featureId] as any, + shrink: props.shrink, + + handleSetValue: changeValue, + value: predictedValue, + }); + }} + /> + ); +}; + +export type FeatureShortTextData = { + maximum_length: number; +}; + +export const FeatureShortTextInput = ( + props: FeatureValueProps, +) => { + if (!props.serverData) { + return Loading...; + } + + return ( + props.handleSetValue(value)} + /> + ); +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/dropdowns.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/dropdowns.tsx new file mode 100644 index 0000000000..32e1161e63 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/dropdowns.tsx @@ -0,0 +1,113 @@ +import { classes } from 'common/react'; +import { capitalizeFirst } from 'common/string'; +import { ReactNode } from 'react'; + +import { Box, Dropdown, Stack } from '../../../../components'; +import { Feature, FeatureChoicedServerData, FeatureValueProps } from './base'; + +type DropdownInputProps = FeatureValueProps< + string, + string, + FeatureChoicedServerData +> & + Partial<{ + disabled: boolean; + buttons: boolean; + }>; + +type IconnedDropdownInputProps = FeatureValueProps< + string, + string, + FeatureChoicedServerData +>; + +export type FeatureWithIcons = Feature; + +export function FeatureDropdownInput(props: DropdownInputProps) { + const { serverData, disabled, buttons, handleSetValue, value } = props; + + if (!serverData) { + return null; + } + + const { choices, display_names } = serverData; + + const dropdownOptions = choices.map((choice) => { + let displayText: ReactNode = display_names + ? display_names[choice] + : capitalizeFirst(choice); + + return { + displayText, + value: choice, + }; + }); + + let display_text = value; + if (display_names) { + display_text = display_names[value]; + } + + return ( + + ); +} + +export function FeatureIconnedDropdownInput(props: IconnedDropdownInputProps) { + const { serverData, handleSetValue, value } = props; + + if (!serverData) { + return null; + } + + const { choices, display_names, icons } = serverData; + + const dropdownOptions = choices.map((choice) => { + let displayText: ReactNode = display_names + ? display_names[choice] + : capitalizeFirst(choice); + + if (icons?.[choice]) { + displayText = ( + + + + + {displayText} + + ); + } + + return { + displayText, + value: choice, + }; + }); + + let display_text = value; + if (display_names) { + display_text = display_names[value]; + } + + return ( + + ); +} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/admin.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/admin.tsx new file mode 100644 index 0000000000..f9f8fec97b --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/admin.tsx @@ -0,0 +1,50 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const CHAT_ATTACKLOGS: FeatureToggle = { + name: 'Attack Log Messages', + category: 'ADMIN', + description: 'Show attack logs.', + component: CheckboxInput, +}; + +export const CHAT_DEBUGLOGS: FeatureToggle = { + name: 'Debug Logs', + category: 'ADMIN', + description: 'Show debug logs.', + component: CheckboxInput, +}; + +export const CHAT_PRAYER: FeatureToggle = { + name: 'Chat Prayers', + category: 'ADMIN', + description: 'Show prayers.', + component: CheckboxInput, +}; + +export const SOUND_ADMINHELP: FeatureToggle = { + name: 'Adminhelp Sound', + category: 'ADMIN', + description: 'Enables playing the bwoink when a new adminhelp is sent.', + component: CheckboxInput, +}; + +export const CHAT_RADIO: FeatureToggle = { + name: 'Radio Chatter', + category: 'ADMIN', + description: 'Completely enable/disable hearing any radio anywhere.', + component: CheckboxInput, +}; + +export const CHAT_RLOOC: FeatureToggle = { + name: 'Remote LOOC Chat', + category: 'ADMIN', + description: 'Hear LOOC from anywhere.', + component: CheckboxInput, +}; + +export const CHAT_ADSAY: FeatureToggle = { + name: 'Living Deadchat', + category: 'ADMIN', + description: 'Enables seeing deadchat when not observing.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/chat.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/chat.tsx new file mode 100644 index 0000000000..10c081f060 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/chat.tsx @@ -0,0 +1,81 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const CHAT_SHOWICONS: FeatureToggle = { + name: 'Chat Tags', + category: 'CHAT', + description: 'Show tags/badges on special channels like OOC.', + component: CheckboxInput, +}; + +export const SHOW_TYPING: FeatureToggle = { + name: 'Typing Indicator', + category: 'CHAT', + description: 'Show a typing indicator when you are typing ingame.', + component: CheckboxInput, +}; + +export const SHOW_TYPING_SUBTLE: FeatureToggle = { + name: 'Typing Indicator: Subtle', + category: 'CHAT', + description: 'Show typing indicator for subtle and whisper messages.', + component: CheckboxInput, +}; + +export const CHAT_OOC: FeatureToggle = { + name: 'OOC Chat', + category: 'CHAT', + description: 'Enables OOC chat.', + component: CheckboxInput, +}; + +export const CHAT_LOOC: FeatureToggle = { + name: 'LOOC Chat', + category: 'CHAT', + description: 'Enables L(ocal)OOC chat.', + component: CheckboxInput, +}; + +export const CHAT_DEAD: FeatureToggle = { + name: 'Dead Chat', + category: 'CHAT', + description: 'Enables observer/dead/ghost chat.', + component: CheckboxInput, +}; + +export const CHAT_MENTION: FeatureToggle = { + name: 'Emphasize Name Mention', + category: 'CHAT', + description: + 'Makes messages containing your name or nickname appear larger to get your attention.', + component: CheckboxInput, +}; + +export const VORE_HEALTH_BARS: FeatureToggle = { + name: 'Vore Health Bars', + category: 'CHAT', + description: + 'Periodically shows status health bars in chat occasionally during vore absorption/digestion.', + component: CheckboxInput, +}; + +export const NEWS_POPUP: FeatureToggle = { + name: 'Lore News Popups', + category: 'CHAT', + description: 'Show new lore news on login.', + component: CheckboxInput, +}; + +export const RECEIVE_TIPS: FeatureToggle = { + name: 'Receive Tips Periodically', + category: 'CHAT', + description: 'Show helpful tips for new players periodically.', + component: CheckboxInput, +}; + +export const PAIN_FREQUENCY: FeatureToggle = { + name: 'Pain Message Cooldown', + category: 'CHAT', + description: + 'When enabled, reduces the amount of pain messages for minor wounds that you see.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ghost.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ghost.tsx new file mode 100644 index 0000000000..10cc2297af --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ghost.tsx @@ -0,0 +1,36 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const WHISUBTLE_VIS: FeatureToggle = { + name: 'Allow ghosts to see whispers/subtles', + category: 'GHOST', + description: 'Enables ghosts to see your whispers and subtle emotes.', + component: CheckboxInput, +}; + +export const GHOST_SEE_WHISUBTLE: FeatureToggle = { + name: 'See whispers/subtles as ghost', + category: 'GHOST', + description: 'As a ghost, see whispers and subtles.', + component: CheckboxInput, +}; + +export const CHAT_GHOSTEARS: FeatureToggle = { + name: 'Ghost Ears', + category: 'GHOST', + description: 'When enabled, hear all speech; otherwise, only hear nearby.', + component: CheckboxInput, +}; + +export const CHAT_GHOSTSIGHT: FeatureToggle = { + name: 'Ghost Sight', + category: 'GHOST', + description: 'When enabled, hear all emotes; otherwise, only hear nearby.', + component: CheckboxInput, +}; + +export const CHAT_GHOSTRADIO: FeatureToggle = { + name: 'Ghost Radio', + category: 'GHOST', + description: 'When enabled, hear all radio; otherwise, only hear nearby.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx new file mode 100644 index 0000000000..33e63600a4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/misc.tsx @@ -0,0 +1,74 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const AMBIENT_OCCLUSION_PREF: FeatureToggle = { + name: 'Enable ambient occlusion', + category: 'GAMEPLAY', + description: 'Enable ambient occlusion, light shadows around characters.', + component: CheckboxInput, +}; + +export const MOB_TOOLTIPS: FeatureToggle = { + name: 'Enable mob tooltips', + category: 'GAMEPLAY', + description: 'Enable tooltips when hovering over mobs.', + component: CheckboxInput, +}; + +export const INV_TOOLTIPS: FeatureToggle = { + name: 'Enable inventory tooltips', + category: 'GAMEPLAY', + description: 'Enable tooltips when hovering over inventory items.', + component: CheckboxInput, +}; + +export const ATTACK_ICONS: FeatureToggle = { + name: 'Attack Icons', + category: 'GAMEPLAY', + description: + 'Enable showing an overlay of what a mob was hit with during the attack animation.', + component: CheckboxInput, +}; + +export const PRECISE_PLACEMENT: FeatureToggle = { + name: 'Precision Placement', + category: 'GAMEPLAY', + description: + 'Objects placed on table will be on cursor position when enabled, or centered when disabled.', + component: CheckboxInput, +}; + +export const HUD_HOTKEYS: FeatureToggle = { + name: 'Hotkeys Default', + category: 'GAMEPLAY', + description: 'Enables turning hotkey mode on by default.', + component: CheckboxInput, +}; + +export const SHOW_PROGRESS: FeatureToggle = { + name: 'Progress Bar', + category: 'GAMEPLAY', + description: 'Enables seeing progress bars for various actions.', + component: CheckboxInput, +}; + +export const SAFE_FIRING: FeatureToggle = { + name: 'Gun Firing Intent Requirement', + category: 'GAMEPLAY', + description: 'When enabled, firing a gun requires a non-help intent to fire.', + component: CheckboxInput, +}; + +export const SHOW_STATUS: FeatureToggle = { + name: 'Status Indicators', + category: 'GAMEPLAY', + description: "Enables seeing status indicators over people's heads.", + component: CheckboxInput, +}; + +export const AUTO_AFK: FeatureToggle = { + name: 'Automatic AFK Status', + category: 'GAMEPLAY', + description: + 'When enabled, you will automatically be marked as AFK if you are idle for too long.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/runechat.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/runechat.tsx new file mode 100644 index 0000000000..832c3d79fe --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/runechat.tsx @@ -0,0 +1,29 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const RUNECHAT_MOB: FeatureToggle = { + name: 'Runechat: Mobs', + category: 'RUNECHAT', + description: 'Chat messages will show above heads.', + component: CheckboxInput, +}; + +export const RUNECHAT_OBJ: FeatureToggle = { + name: 'Runechat: Objects', + category: 'RUNECHAT', + description: 'Chat messages will show above objects when they speak.', + component: CheckboxInput, +}; + +export const RUNECHAT_BORDER: FeatureToggle = { + name: 'Runechat: Letter Borders', + category: 'RUNECHAT', + description: 'Enables a border around each letter in a runechat message.', + component: CheckboxInput, +}; + +export const RUNECHAT_LONG: FeatureToggle = { + name: 'Runechat: Long Messages', + category: 'RUNECHAT', + description: 'Sets runechat to show more characters.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx new file mode 100644 index 0000000000..937fe35486 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/sound.tsx @@ -0,0 +1,156 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const SOUND_MIDI: FeatureToggle = { + name: 'Play Admin MIDIs', + category: 'SOUNDS', + description: 'Enable hearing admin played sounds.', + component: CheckboxInput, +}; + +export const SOUND_LOBBY: FeatureToggle = { + name: 'Play Lobby Music', + category: 'SOUNDS', + description: 'Enable hearing lobby music.', + component: CheckboxInput, +}; + +export const SOUND_AMBIENCE: FeatureToggle = { + name: 'Play Ambience', + category: 'SOUNDS', + description: 'Enable hearing ambient sounds and music.', + component: CheckboxInput, +}; + +export const SOUND_JUKEBOX: FeatureToggle = { + name: 'Play Jukebox Music', + category: 'SOUNDS', + description: 'Enable hearing music from the jukebox.', + component: CheckboxInput, +}; + +export const SOUND_INSTRUMENT: FeatureToggle = { + name: 'Hear In-game Instruments', + category: 'SOUNDS', + description: 'Enable hearing instruments playing.', + component: CheckboxInput, +}; + +export const EMOTE_NOISES: FeatureToggle = { + name: 'Emote Noises', + category: 'SOUNDS', + description: 'Enable hearing noises from emotes.', + component: CheckboxInput, +}; + +export const RADIO_SOUNDS: FeatureToggle = { + name: 'Radio Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when somebody speaks over your headset.', + component: CheckboxInput, +}; + +export const SAY_SOUNDS: FeatureToggle = { + name: 'Say Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when somebody speaks using say.', + component: CheckboxInput, +}; + +export const EMOTE_SOUNDS: FeatureToggle = { + name: 'Me Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when somebody uses me.', + component: CheckboxInput, +}; + +export const WHISPER_SOUNDS: FeatureToggle = { + name: 'Whisper Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when somebody speaks using whisper.', + component: CheckboxInput, +}; + +export const SUBTLE_SOUNDS: FeatureToggle = { + name: 'Subtle Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when somebody uses subtle.', + component: CheckboxInput, +}; + +export const SOUND_AIRPUMP: FeatureToggle = { + name: 'Air Pump Ambient Noise', + category: 'SOUNDS', + description: 'Enable hearing air vent humming.', + component: CheckboxInput, +}; + +export const SOUND_OLDDOORS: FeatureToggle = { + name: 'Old Door Sounds', + category: 'SOUNDS', + description: 'Switch to old door sounds.', + component: CheckboxInput, +}; + +export const SOUND_DEPARTMENTDOORS: FeatureToggle = { + name: 'Department Door Sounds', + category: 'SOUNDS', + description: 'Enable hearing department-specific door sounds.', + component: CheckboxInput, +}; + +export const SOUND_PICKED: FeatureToggle = { + name: 'Picked-Up Item Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when items are picked up.', + component: CheckboxInput, +}; + +export const SOUND_DROPPED: FeatureToggle = { + name: 'Dropped Item Sounds', + category: 'SOUNDS', + description: 'Enable hearing a sound when items are dropped.', + component: CheckboxInput, +}; + +export const SOUND_WEATHER: FeatureToggle = { + name: 'Weather Sounds', + category: 'SOUNDS', + description: 'Enable hearing weather sounds while on a planet.', + component: CheckboxInput, +}; + +export const SOUND_SUPERMATTER: FeatureToggle = { + name: 'Supermatter Hum', + category: 'SOUNDS', + description: 'Enable hearing supermatter hums.', + component: CheckboxInput, +}; + +export const SOUND_MENTORHELP: FeatureToggle = { + name: 'Mentorhelp Pings', + category: 'SOUNDS', + description: 'Enable hearing mentorhelp pings.', + component: CheckboxInput, +}; + +// Vorey sounds +export const BELCH_NOISES: FeatureToggle = { + name: 'Belch Noises', + category: 'SOUNDS', + description: 'Enable hearing burping noises.', + component: CheckboxInput, +}; + +export const EATING_NOISES: FeatureToggle = { + name: 'Eating Noises', + category: 'SOUNDS', + description: 'Enable hearing vore eating noises.', + component: CheckboxInput, +}; + +export const DIGEST_NOISES: FeatureToggle = { + name: 'Digestion Noises', + category: 'SOUNDS', + description: 'Enable hearing vore digestion noises.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ui.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ui.tsx new file mode 100644 index 0000000000..7292b65de7 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/game_preferences/ui.tsx @@ -0,0 +1,29 @@ +import { CheckboxInput, FeatureToggle } from '../base'; + +export const BROWSER_STYLED: FeatureToggle = { + name: 'Use Fake NanoUI Browser Style', + category: 'UI', + description: 'Enable a dark fake NanoUI browser style for older UIs.', + component: CheckboxInput, +}; + +export const VCHAT_ENABLE: FeatureToggle = { + name: 'Enable TGChat', + category: 'UI', + description: 'Enable the TGChat chat panel.', + component: CheckboxInput, +}; + +export const TGUI_SAY: FeatureToggle = { + name: 'Say: Use TGUI', + category: 'UI', + description: 'Use TGUI for Say input.', + component: CheckboxInput, +}; + +export const TGUI_SAY_LIGHT_MODE: FeatureToggle = { + name: 'Say: Light mode', + category: 'UI', + description: 'Sets TGUI Say to use a light mode.', + component: CheckboxInput, +}; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/index.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/index.ts new file mode 100644 index 0000000000..d8fa77f496 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/index.ts @@ -0,0 +1,23 @@ +// Unlike species and others, feature files export arrays of features +// rather than individual ones. This is because a lot of features are +// extremely small, and so it's easier for everyone to just combine them +// together. +// This still helps to prevent the server from needing to send client UI data +import { Feature } from './base'; + +// while also preventing downstreams from needing to mutate existing files. +const features: Record> = {}; + +const requireFeature = require.context('./', true, /.tsx$/); + +for (const key of requireFeature.keys()) { + if (key === 'index' || key === 'base') { + continue; + } + + for (const [featureKey, feature] of Object.entries(requireFeature(key))) { + features[featureKey] = feature as Feature; + } +} + +export default features; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/gender.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/gender.ts new file mode 100644 index 0000000000..baac865559 --- /dev/null +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/gender.ts @@ -0,0 +1,28 @@ +export enum Gender { + Male = 'male', + Female = 'female', + Other = 'plural', + Other2 = 'neuter', +} + +export const GENDERS = { + [Gender.Male]: { + icon: 'mars', + text: 'He/Him', + }, + + [Gender.Female]: { + icon: 'venus', + text: 'She/Her', + }, + + [Gender.Other]: { + icon: 'transgender', + text: 'They/Them', + }, + + [Gender.Other2]: { + icon: 'neuter', + text: 'It/Its', + }, +}; diff --git a/tgui/public/tgui.bundle.css b/tgui/public/tgui.bundle.css index 936856ffa3..7ccfd4497f 100644 --- a/tgui/public/tgui.bundle.css +++ b/tgui/public/tgui.bundle.css @@ -1,4 +1,4 @@ -html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.centered-image{position:absolute;height:100%;left:50%;top:50%;transform:translate(-50%) translateY(-50%) scale(.8)}.color-black{color:#1a1a1a!important}.color-white{color:#fff!important}.color-red{color:#df3e3e!important}.color-orange{color:#f37f33!important}.color-yellow{color:#fbda21!important}.color-olive{color:#cbe41c!important}.color-green{color:#25ca4c!important}.color-teal{color:#00d6cc!important}.color-blue{color:#2e93de!important}.color-violet{color:#7349cf!important}.color-purple{color:#ad45d0!important}.color-pink{color:#e34da1!important}.color-brown{color:#b97447!important}.color-grey{color:#848484!important}.color-light-grey{color:#b3b3b3!important}.color-good{color:#68c22d!important}.color-average{color:#f29a29!important}.color-bad{color:#df3e3e!important}.color-label{color:#8b9bb0!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-light-grey{background-color:#919191!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9)!important;background:rgba(0,0,0,0)!important;outline:1px solid rgba(255,255,255,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8)!important}@media all and (min-width: 100px){.fit-text{font-size:.1em}}@media all and (min-width: 200px){.fit-text{font-size:.2em}}@media all and (min-width: 300px){.fit-text{font-size:.3em}}@media all and (min-width: 400px){.fit-text{font-size:.4em}}@media all and (min-width: 500px){.fit-text{font-size:.5em}}@media all and (min-width: 600px){.fit-text{font-size:.6em}}@media all and (min-width: 700px){.fit-text{font-size:.7em}}@media all and (min-width: 800px){.fit-text{font-size:.8em}}@media all and (min-width: 900px){.fit-text{font-size:.9em}}@media all and (min-width: 1000px){.fit-text{font-size:1em}}@media all and (min-width: 1100px){.fit-text{font-size:1.1em}}@media all and (min-width: 1200px){.fit-text{font-size:1.2em}}@media all and (min-width: 1300px){.fit-text{font-size:1.3em}}@media all and (min-width: 1400px){.fit-text{font-size:1.4em}}@media all and (min-width: 1500px){.fit-text{font-size:1.5em}}@media all and (min-width: 1600px){.fit-text{font-size:1.6em}}@media all and (min-width: 1700px){.fit-text{font-size:1.7em}}@media all and (min-width: 1800px){.fit-text{font-size:1.8em}}@media all and (min-width: 1900px){.fit-text{font-size:1.9em}}a:link,a:visited{color:#2185d0}a:hover,a:active{color:#4972a1}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #1a1a1a!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #df3e3e!important}.outline-color-orange{outline:.167rem solid #f37f33!important}.outline-color-yellow{outline:.167rem solid #fbda21!important}.outline-color-olive{outline:.167rem solid #cbe41c!important}.outline-color-green{outline:.167rem solid #25ca4c!important}.outline-color-teal{outline:.167rem solid #00d6cc!important}.outline-color-blue{outline:.167rem solid #2e93de!important}.outline-color-violet{outline:.167rem solid #7349cf!important}.outline-color-purple{outline:.167rem solid #ad45d0!important}.outline-color-pink{outline:.167rem solid #e34da1!important}.outline-color-brown{outline:.167rem solid #b97447!important}.outline-color-grey{outline:.167rem solid #848484!important}.outline-color-light-grey{outline:.167rem solid #b3b3b3!important}.outline-color-good{outline:.167rem solid #68c22d!important}.outline-color-average{outline:.167rem solid #f29a29!important}.outline-color-bad{outline:.167rem solid #df3e3e!important}.outline-color-label{outline:.167rem solid #8b9bb0!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.Button--color--light-grey:focus{transition:color .1s,background-color .1s}.Button--color--light-grey:hover,.Button--color--light-grey:focus{background-color:#bababa;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#3e3e3e;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.Button--flex{display:inline-flex;flex-direction:column}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Button__content{display:block;align-self:stretch}.Button__textMargin{margin-left:.4rem}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dialog{position:fixed;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.Dialog__content{background-color:#252525;font-family:Consolas,monospace;font-size:1.1666666667em;display:flex;flex-direction:column}.Dialog__header{display:flex;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);user-select:none;-ms-user-select:none}.Dialog__title{display:inline;font-style:italic;margin-left:1rem;margin-right:2rem;flex-grow:1;opacity:.33}.Dialog__body{margin:2rem 1rem;flex-grow:1}.Dialog__footer{display:flex;flex-direction:row;justify-content:flex-end;padding:1rem;background-color:rgba(0,0,0,.25)}.Dialog__button{margin:0 1rem;height:2rem;min-width:6rem;text-align:center}.SaveAsDialog__inputs{display:flex;flex-direction:row;align-items:center;padding-left:3rem;justify-content:flex-end;margin-right:1rem}.SaveAsDialog__input{margin-left:1rem;width:80%}.SaveAsDialog__label{vertical-align:center}.Dialog__FileList{position:relative;display:flex;flex-wrap:wrap;flex-grow:1;align-content:flex-start;max-height:20rem;overflow:auto;overflow-y:scroll}.Dialog__FileEntry{text-align:center;margin:1rem}.Dialog__FileIcon{display:inline-block;margin:0 0 1rem;position:relative;width:6vh;height:auto;text-align:center;cursor:default}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Dropdown{display:flex;align-items:flex-start}.Dropdown__control{flex:1;font-family:Verdana,sans-serif;font-size:1em;overflow:hidden;-ms-user-select:none;user-select:none;width:8.3333333333em}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;align-items:center;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-scroll{overflow-y:scroll}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s ease-out}.Dropdown__menuentry.selected{background-color:rgba(255,255,255,.5)!important;transition:background-color 0ms}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline,.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.IconStack>.Icon{position:absolute;width:100%;text-align:center}.IconStack{position:relative;display:inline-block;height:1.2em;line-height:2em;vertical-align:middle}.IconStack:after{color:rgba(0,0,0,0);content:"."}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,0));border-radius:50%;box-shadow:0 .05em .5em rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--light-grey .Knob__ringFill{stroke:#b3b3b3}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label--nowrap{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.MenuBar{display:flex}.MenuBar__font{font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em}.MenuBar__hover:hover{background-color:#727272;transition:background-color 0ms}.MenuBar__MenuBarButton{padding:.2rem .5rem}.MenuBar__menu{position:absolute;z-index:5;background-color:#252525;padding:.3rem;box-shadow:4px 6px 5px -2px rgba(0,0,0,.55)}.MenuBar__MenuItem{z-index:5;transition:background-color .1s ease-out;background-color:#252525;white-space:nowrap;padding:.3rem 2rem .3rem 3rem}.MenuBar__MenuItemToggle{padding:.3rem 2rem .3rem 0}.MenuBar__MenuItemToggle__check{display:inline-block;vertical-align:middle;min-width:3rem;margin-left:.3rem}.MenuBar__over{top:auto;bottom:100%}.MenuBar__MenuBarButton-text{text-overflow:clip;white-space:nowrap;height:1.4166666667em}.MenuBar__Separator{display:block;margin:.3rem .3rem .3rem 2.3rem;border-top:1px solid rgba(0,0,0,.33)}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--light-grey{color:#fff;background-color:#6a6a6a}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color .9s ease-out}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border-color:#000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border-color:#d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border-color:#bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border-color:#d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border-color:#d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border-color:#9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border-color:#1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border-color:#009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border-color:#1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border-color:#552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border-color:#8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border-color:#cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border-color:#8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border-color:#646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--light-grey{border-color:#919191!important}.ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.ProgressBar--color--good{border-color:#4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border-color:#cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border-color:#bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border-color:#657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.RoundGauge{font-size:1rem;width:2.6em;height:1.3em;margin:0 auto .2em}.RoundGauge__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:10;stroke-dasharray:157.08;stroke-dashoffset:157.08}.RoundGauge__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:10;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.RoundGauge__needle,.RoundGauge__ringFill{transition:transform 50ms ease-in-out}.RoundGauge__needleLine,.RoundGauge__needleMiddle{fill:#db2828}.RoundGauge__alert{fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:rgba(255,255,255,.1)}.RoundGauge__alert.max{fill:#db2828}.RoundGauge--color--black.RoundGauge__ringFill{stroke:#1a1a1a}.RoundGauge--color--white.RoundGauge__ringFill{stroke:#fff}.RoundGauge--color--red.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--orange.RoundGauge__ringFill{stroke:#f37f33}.RoundGauge--color--yellow.RoundGauge__ringFill{stroke:#fbda21}.RoundGauge--color--olive.RoundGauge__ringFill{stroke:#cbe41c}.RoundGauge--color--green.RoundGauge__ringFill{stroke:#25ca4c}.RoundGauge--color--teal.RoundGauge__ringFill{stroke:#00d6cc}.RoundGauge--color--blue.RoundGauge__ringFill{stroke:#2e93de}.RoundGauge--color--violet.RoundGauge__ringFill{stroke:#7349cf}.RoundGauge--color--purple.RoundGauge__ringFill{stroke:#ad45d0}.RoundGauge--color--pink.RoundGauge__ringFill{stroke:#e34da1}.RoundGauge--color--brown.RoundGauge__ringFill{stroke:#b97447}.RoundGauge--color--grey.RoundGauge__ringFill{stroke:#848484}.RoundGauge--color--light-grey.RoundGauge__ringFill{stroke:#b3b3b3}.RoundGauge--color--good.RoundGauge__ringFill{stroke:#68c22d}.RoundGauge--color--average.RoundGauge__ringFill{stroke:#f29a29}.RoundGauge--color--bad.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--label.RoundGauge__ringFill{stroke:#8b9bb0}.RoundGauge__alert--black{fill:#1a1a1a;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--white{fill:#fff;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--red{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--orange{fill:#f37f33;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--yellow{fill:#fbda21;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--olive{fill:#cbe41c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--green{fill:#25ca4c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--teal{fill:#00d6cc;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--blue{fill:#2e93de;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--violet{fill:#7349cf;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--purple{fill:#ad45d0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--pink{fill:#e34da1;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--brown{fill:#b97447;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--grey{fill:#848484;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--light-grey{fill:#b3b3b3;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--good{fill:#68c22d;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--average{fill:#f29a29;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--bad{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--label{fill:#8b9bb0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes RoundGauge__alertAnim{0%{opacity:.1}50%{opacity:1}to{opacity:.1}}.Section{position:relative;margin-bottom:.5em;background-color:#191919;background-color:rgba(0,0,0,.33);box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.Section .Section:first-child{margin-top:-.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--zebra>.Stack__item:nth-child(2n){background-color:rgba(0,0,0,.33)}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:rgba(0,0,0,.33)}.Tabs--fill{height:100%}.Section .Tabs{background-color:rgba(0,0,0,0)}.Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--light-grey{color:#c6c6c6}.Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#b3b3b3}.Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#b3b3b3}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:Consolas,monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea--noborder{border:0px}.TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.TextArea__nowrap{white-space:nowrap;overflow-wrap:normal;overflow-x:scroll}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.ListInput__Section .Section__title{flex-shrink:0}.ListInput__Section .Section__titleText{font-size:1em}.ListInput__Loader{width:100%;position:relative;height:4px}.ListInput__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.InputModal__Section .Section__title{flex-shrink:0}.InputModal__Section .Section__titleText{font-size:1em;white-space:pre-line}.InputModal__Loader{width:100%;position:relative;height:4px}.InputModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.ObjectComponent__Titlebar{border-top-left-radius:12px;border-top-right-radius:12px;white-space:nowrap;-ms-user-select:none;user-select:none}.ObjectComponent__Content{white-space:nowrap;background-color:rgba(0,0,0,.5);-ms-user-select:none;user-select:none}.ObjectComponent__PortPos{position:absolute;top:0;left:0;right:0;bottom:0}.color-stroke-black{stroke:#000!important}.color-stroke-white{stroke:#d9d9d9!important}.color-stroke-red{stroke:#bd2020!important}.color-stroke-orange{stroke:#d95e0c!important}.color-stroke-yellow{stroke:#d9b804!important}.color-stroke-olive{stroke:#9aad14!important}.color-stroke-green{stroke:#1b9638!important}.color-stroke-teal{stroke:#009a93!important}.color-stroke-blue{stroke:#1c71b1!important}.color-stroke-violet{stroke:#552dab!important}.color-stroke-purple{stroke:#8b2baa!important}.color-stroke-pink{stroke:#cf2082!important}.color-stroke-brown{stroke:#8c5836!important}.color-stroke-grey{stroke:#646464!important}.color-stroke-light-grey{stroke:#919191!important}.color-stroke-good{stroke:#4d9121!important}.color-stroke-average{stroke:#cd7a0d!important}.color-stroke-bad{stroke:#bd2020!important}.color-stroke-label{stroke:#657a94!important}.AlertModal__Message{text-align:center;justify-content:center}.AlertModal__Buttons{justify-content:center}.AlertModal__Loader{width:100%;position:relative;height:4px}.AlertModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:18.3333333333em}.CameraConsole__right{position:absolute;top:0;bottom:0;left:18.3333333333em;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{position:absolute;top:0;left:0;right:0;height:2em;line-height:2em;margin:.25em 1em 0}.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:2em;line-height:2em;margin:.33em .5em 0}.CameraConsole__map{position:absolute;top:2.1666666667em;bottom:0;left:0;right:0;margin:.5em;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 2em)}.Changelog__Button{height:22px}.Changelog__Cell{padding:3px 0}.Changelog__Cell--Icon{width:25px}.CrewManifest--Command .Section__title{border-color:#fbd608}.CrewManifest--Command .Section__titleText{color:#fbd608}.CrewManifest--Security .Section__title{border-color:#db2828}.CrewManifest--Security .Section__titleText{color:#db2828}.CrewManifest--Engineering .Section__title{border-color:#f2711c}.CrewManifest--Engineering .Section__titleText{color:#f2711c}.CrewManifest--Medical .Section__title{border-color:#00b5ad}.CrewManifest--Medical .Section__titleText{color:#00b5ad}.CrewManifest--Misc .Section__title{border-color:#fff}.CrewManifest--Misc .Section__titleText{color:#fff}.CrewManifest--Science .Section__title{border-color:#a333c8}.CrewManifest--Science .Section__titleText{color:#a333c8}.CrewManifest--Supply .Section__title{border-color:#a5673f}.CrewManifest--Supply .Section__titleText{color:#a5673f}.CrewManifest--Service .Section__title{border-color:#20b142}.CrewManifest--Service .Section__titleText{color:#20b142}.CrewManifest--Silicon .Section__title{border-color:#e03997}.CrewManifest--Silicon .Section__titleText{color:#e03997}.CrewManifest__Cell{padding:3px 0}.CrewManifest__Cell--Rank{color:#7e90a7}.CrewManifest__Icons{padding:3px 9px;text-align:right}.CrewManifest__Icon{color:#7e90a7;position:relative}.CrewManifest__Icon:not(:last-child){margin-right:7px}.CrewManifest__Icon--Chevron{padding-right:2px}.CrewManifest__Icon--Command{color:#fbd608}.ExperimentTechwebServer__Web,.ExperimentConfigure__ExperimentPanel{background:#000;border:1px solid #40628a;margin:3px 0}.ExperimentTechwebServer__WebHeader{background:#40628a;padding:2px}.ExperimentTechwebServer__WebName{font-size:18px}.ExperimentTechwebServer__WebContent{padding:4px}.ExperimentTechwebServer__WebContent>.LabeledList{margin:.25rem .25rem .25rem 1rem}.ExperimentConfigure__ExperimentName{font-weight:700;border-radius:0}.ExperimentConfigure__ExperimentContent{padding:.25rem 1.5rem .25rem .25rem}.ExperimentStage__Indicator{font-weight:700;margin-right:1rem;text-align:center}.ExperimentStage__StageContainer.complete .ExperimentStage__Description{opacity:.4;text-decoration:line-through}.ExperimentStage__StageContainer{margin-bottom:5px}.ExperimentStage__Table{border-collapse:separate;border-spacing:.25rem .25rem}.ExperimentConfigure__PerformExperiment{text-align:center;padding:.75rem 0}.ExperimentConfigure__ExperimentsContainer{height:100%;display:flex;flex-direction:column}.ExperimentConfigure__ExperimentsContainer>:last-child{flex:1;overflow-y:auto}.ExperimentConfigure__TagContainer{position:absolute;right:0;top:0}.ExperimentConfigure__PerformanceHint *{position:absolute;width:100%;height:100%;right:0;top:0;color:rgba(255,255,255,.5)}.NuclearBomb__displayBox{background-color:#002003;border:.167em inset #e8e4c9;color:#03e017;font-size:2em;font-family:monospace;padding:.25em}.NuclearBomb__Button{outline-width:.25rem!important;border-width:.65rem!important;padding-left:0!important;padding-right:0!important}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=);background-size:70%;background-position:center;background-repeat:no-repeat}.Paper__Stamp{position:absolute;pointer-events:none;-ms-user-select:none;user-select:none}.Paper__Page{word-break:break-word;word-wrap:break-word}.Roulette__container{display:flex}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:1px solid #fff;vertical-align:bottom}.Roulette__board-cell-number{width:35px}.Roulette__board-cell-number--colspan-2{width:71px}.Roulette__board-cell-number--colspan-4{width:143px}.Roulette__board-button{display:table-cell!important;border:none!important;width:inherit;height:40px;padding:0;margin:0;text-align:center;vertical-align:middle;color:#fff!important}.Roulette__board-button--rowspan-3{height:122px}.Roulette__board-button-text{text-align:center;font-size:16px;font-weight:700}.Roulette__lowertable{margin-top:8px;border-collapse:collapse;border:1px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:16px;font-weight:700}.Safe__engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.Safe__engraving-arrow{color:#35435a}.Safe__engraving-hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.Safe__dialer{margin-bottom:1.25rem}.Safe__dialer .Button{width:80px}.Safe__dialer-right .Button i{z-index:-100}.Safe__dialer-number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.Safe__contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.Safe__help{position:absolute;top:73%;left:10px;width:50%;font-family:Comic Sans MS,cursive,sans-serif;font-style:italic;color:#000;box-shadow:5px 5px #111;background-image:linear-gradient(to bottom,#b2ae74,#8e8b5d);transform:rotate(-1deg)}.Safe__help:before{content:" ";display:block;width:24px;height:40px;background-image:linear-gradient(to bottom,transparent 0%,#ffffff 100%);box-shadow:1px 1px #111;opacity:.2;position:absolute;top:-30px;left:calc(50% - 12px);transform:rotate(-5deg)}.TachyonArray__ActiveRecord{margin:0 .5em 0 .8em}.TachyonArray__Content{overflow-x:hidden;overflow-y:auto}.TachyonArray__ResearchFooter>*{width:100%;text-align:center}.Techweb__NodeProgress{margin-bottom:1rem}.Techweb__NodeProgress>*:not(:last-child){margin-right:.4rem}.Techweb__DesignIcon{margin-left:.25rem;margin-right:.25rem}.Techweb__OverviewNodes{overflow-y:auto;overflow-x:hidden;padding-right:6px;padding-top:4px}.Techweb__HeaderContent{background-color:#000;padding:6px;border:1px solid #40628a}.Techweb__HeaderContent>*>:not(:last-child){margin-bottom:5px}.Techweb__HeaderSectionTabs{margin-top:8px;background-color:#000;border:1px solid #40628a;padding-left:5px;padding-right:5px}.Techweb__HeaderTabTitle{border-right:1px solid #40628a;padding-right:.5em;margin-right:.5em;font-weight:700}.Techweb__HeaderSectionTabs input{background-color:rgba(255,255,255,.05)}.Techweb__PointSummary{list-style:none;margin:.4em 0 0 1em;padding:0}.Techweb__SecProtocol{color:#db2828;margin-left:.2em}.Techweb__SecProtocol.engaged{color:#5baa27}.Techweb__DesignModal>:not(:last-child){margin-bottom:.5em}.Techweb__LockedModal>:not(:last-child){margin-bottom:.5em}.Techweb__ExperimentDiscount{color:#7e90a7;margin:.5em 0}.IDCard__NamePlate{margin-left:-6px;margin-right:-6px;margin-top:6px;padding:.5em;border-top:.1666666667em solid #4972a1;font-size:1.1666666667em;font-weight:700}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent,.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent{text-align:right;background-color:#4d9121}.TinderMessage_First_Sent{border-radius:10px 10px 0}.TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{text-align:left;background-color:#cd7a0d}.TinderMessage_First_Received{border-radius:10px 10px 10px 0}.TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.ClassicMessage_Sent,.ClassicMessage_Received{word-break:break-all}.ClassicMessage_Sent{color:#4d9121}.ClassicMessage_Received{color:#cd7a0d}.Section--elevator--fire{background-color:#f33;background-color:rgba(255,0,0,.35)}.Section--elevator--fire>.Section__title{padding:.5em;border-bottom:.1666666667em solid red}.Layout,.Layout *{scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.NtosHeader__left{position:absolute;left:1em}.NtosHeader__right{position:absolute;right:1em}.NtosHeader__icon{margin-top:-.75em;margin-bottom:-.5em;vertical-align:middle}.NtosWindow__header{position:absolute;top:0;left:0;right:0;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);font-family:Consolas,monospace;font-size:1.1666666667em;user-select:none;-ms-user-select:none}.NtosWindow__content .Layout__content{margin-top:2em;font-family:Consolas,monospace;font-size:1.1666666667em}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(to bottom,#2a2a2a,#202020)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(62,62,62,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! +html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflow:hidden;cursor:default}body{overflow:auto;font-family:Verdana,Geneva,sans-serif}*,*:before,*:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{display:block;margin:0;padding:6px 0;padding:.5rem 0}h1{font-size:18px;font-size:1.5rem}h2{font-size:16px;font-size:1.333rem}h3{font-size:14px;font-size:1.167rem}h4{font-size:12px;font-size:1rem}td,th{vertical-align:baseline;text-align:left}.candystripe:nth-child(odd){background-color:rgba(0,0,0,.25)}.centered-image{position:absolute;height:100%;left:50%;top:50%;transform:translate(-50%) translateY(-50%) scale(.8)}.color-black{color:#1a1a1a!important}.color-white{color:#fff!important}.color-red{color:#df3e3e!important}.color-orange{color:#f37f33!important}.color-yellow{color:#fbda21!important}.color-olive{color:#cbe41c!important}.color-green{color:#25ca4c!important}.color-teal{color:#00d6cc!important}.color-blue{color:#2e93de!important}.color-violet{color:#7349cf!important}.color-purple{color:#ad45d0!important}.color-pink{color:#e34da1!important}.color-brown{color:#b97447!important}.color-grey{color:#848484!important}.color-light-grey{color:#b3b3b3!important}.color-good{color:#68c22d!important}.color-average{color:#f29a29!important}.color-bad{color:#df3e3e!important}.color-label{color:#8b9bb0!important}.color-bg-black{background-color:#000!important}.color-bg-white{background-color:#d9d9d9!important}.color-bg-red{background-color:#bd2020!important}.color-bg-orange{background-color:#d95e0c!important}.color-bg-yellow{background-color:#d9b804!important}.color-bg-olive{background-color:#9aad14!important}.color-bg-green{background-color:#1b9638!important}.color-bg-teal{background-color:#009a93!important}.color-bg-blue{background-color:#1c71b1!important}.color-bg-violet{background-color:#552dab!important}.color-bg-purple{background-color:#8b2baa!important}.color-bg-pink{background-color:#cf2082!important}.color-bg-brown{background-color:#8c5836!important}.color-bg-grey{background-color:#646464!important}.color-bg-light-grey{background-color:#919191!important}.color-bg-good{background-color:#4d9121!important}.color-bg-average{background-color:#cd7a0d!important}.color-bg-bad{background-color:#bd2020!important}.color-bg-label{background-color:#657a94!important}.debug-layout,.debug-layout *:not(g):not(path){color:rgba(255,255,255,.9)!important;background:rgba(0,0,0,0)!important;outline:1px solid rgba(255,255,255,.5)!important;box-shadow:none!important;filter:none!important}.debug-layout:hover,.debug-layout *:not(g):not(path):hover{outline-color:rgba(255,255,255,.8)!important}@media all and (min-width: 100px){.fit-text{font-size:.1em}}@media all and (min-width: 200px){.fit-text{font-size:.2em}}@media all and (min-width: 300px){.fit-text{font-size:.3em}}@media all and (min-width: 400px){.fit-text{font-size:.4em}}@media all and (min-width: 500px){.fit-text{font-size:.5em}}@media all and (min-width: 600px){.fit-text{font-size:.6em}}@media all and (min-width: 700px){.fit-text{font-size:.7em}}@media all and (min-width: 800px){.fit-text{font-size:.8em}}@media all and (min-width: 900px){.fit-text{font-size:.9em}}@media all and (min-width: 1000px){.fit-text{font-size:1em}}@media all and (min-width: 1100px){.fit-text{font-size:1.1em}}@media all and (min-width: 1200px){.fit-text{font-size:1.2em}}@media all and (min-width: 1300px){.fit-text{font-size:1.3em}}@media all and (min-width: 1400px){.fit-text{font-size:1.4em}}@media all and (min-width: 1500px){.fit-text{font-size:1.5em}}@media all and (min-width: 1600px){.fit-text{font-size:1.6em}}@media all and (min-width: 1700px){.fit-text{font-size:1.7em}}@media all and (min-width: 1800px){.fit-text{font-size:1.8em}}@media all and (min-width: 1900px){.fit-text{font-size:1.9em}}a:link,a:visited{color:#2185d0}a:hover,a:active{color:#4972a1}.outline-dotted{outline-style:dotted!important}.outline-dashed{outline-style:dashed!important}.outline-solid{outline-style:solid!important}.outline-double{outline-style:double!important}.outline-groove{outline-style:groove!important}.outline-ridge{outline-style:ridge!important}.outline-inset{outline-style:inset!important}.outline-outset{outline-style:outset!important}.outline-color-black{outline:.167rem solid #1a1a1a!important}.outline-color-white{outline:.167rem solid #fff!important}.outline-color-red{outline:.167rem solid #df3e3e!important}.outline-color-orange{outline:.167rem solid #f37f33!important}.outline-color-yellow{outline:.167rem solid #fbda21!important}.outline-color-olive{outline:.167rem solid #cbe41c!important}.outline-color-green{outline:.167rem solid #25ca4c!important}.outline-color-teal{outline:.167rem solid #00d6cc!important}.outline-color-blue{outline:.167rem solid #2e93de!important}.outline-color-violet{outline:.167rem solid #7349cf!important}.outline-color-purple{outline:.167rem solid #ad45d0!important}.outline-color-pink{outline:.167rem solid #e34da1!important}.outline-color-brown{outline:.167rem solid #b97447!important}.outline-color-grey{outline:.167rem solid #848484!important}.outline-color-light-grey{outline:.167rem solid #b3b3b3!important}.outline-color-good{outline:.167rem solid #68c22d!important}.outline-color-average{outline:.167rem solid #f29a29!important}.outline-color-bad{outline:.167rem solid #df3e3e!important}.outline-color-label{outline:.167rem solid #8b9bb0!important}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-baseline{text-align:baseline}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-pre{white-space:pre}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-underline{text-decoration:underline}.BlockQuote{color:#8b9bb0;border-left:.1666666667em solid #8b9bb0;padding-left:.5em;margin-bottom:.5em}.BlockQuote:last-child{margin-bottom:0}.Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.Button:last-child{margin-right:0;margin-bottom:0}.Button .fa,.Button .fas,.Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.Button--hasContent .fa,.Button--hasContent .fas,.Button--hasContent .far{margin-right:.25em}.Button--hasContent.Button--iconPosition--right .fa,.Button--hasContent.Button--iconPosition--right .fas,.Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.Button--fluid{display:block;margin-left:0;margin-right:0}.Button--circular{border-radius:50%}.Button--compact{padding:0 .25em;line-height:1.333em}.Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.Button--color--black:hover{transition:color 0ms,background-color 0ms}.Button--color--black:focus{transition:color .1s,background-color .1s}.Button--color--black:hover,.Button--color--black:focus{background-color:#131313;color:#fff}.Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.Button--color--white:hover{transition:color 0ms,background-color 0ms}.Button--color--white:focus{transition:color .1s,background-color .1s}.Button--color--white:hover,.Button--color--white:focus{background-color:#f8f8f8;color:#000}.Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--red:hover{transition:color 0ms,background-color 0ms}.Button--color--red:focus{transition:color .1s,background-color .1s}.Button--color--red:hover,.Button--color--red:focus{background-color:#dc4848;color:#fff}.Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.Button--color--orange:hover{transition:color 0ms,background-color 0ms}.Button--color--orange:focus{transition:color .1s,background-color .1s}.Button--color--orange:hover,.Button--color--orange:focus{background-color:#f0853f;color:#fff}.Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.Button--color--yellow:focus{transition:color .1s,background-color .1s}.Button--color--yellow:hover,.Button--color--yellow:focus{background-color:#f5d72e;color:#000}.Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.Button--color--olive:hover{transition:color 0ms,background-color 0ms}.Button--color--olive:focus{transition:color .1s,background-color .1s}.Button--color--olive:hover,.Button--color--olive:focus{background-color:#c4da2b;color:#fff}.Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--color--green:hover{transition:color 0ms,background-color 0ms}.Button--color--green:focus{transition:color .1s,background-color .1s}.Button--color--green:hover,.Button--color--green:focus{background-color:#32c154;color:#fff}.Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.Button--color--teal:hover{transition:color 0ms,background-color 0ms}.Button--color--teal:focus{transition:color .1s,background-color .1s}.Button--color--teal:hover,.Button--color--teal:focus{background-color:#13c4bc;color:#fff}.Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.Button--color--blue:hover{transition:color 0ms,background-color 0ms}.Button--color--blue:focus{transition:color .1s,background-color .1s}.Button--color--blue:hover,.Button--color--blue:focus{background-color:#3a95d9;color:#fff}.Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.Button--color--violet:hover{transition:color 0ms,background-color 0ms}.Button--color--violet:focus{transition:color .1s,background-color .1s}.Button--color--violet:hover,.Button--color--violet:focus{background-color:#7953cc;color:#fff}.Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.Button--color--purple:hover{transition:color 0ms,background-color 0ms}.Button--color--purple:focus{transition:color .1s,background-color .1s}.Button--color--purple:hover,.Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.Button--color--pink:hover{transition:color 0ms,background-color 0ms}.Button--color--pink:focus{transition:color .1s,background-color .1s}.Button--color--pink:hover,.Button--color--pink:focus{background-color:#e257a5;color:#fff}.Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.Button--color--brown:hover{transition:color 0ms,background-color 0ms}.Button--color--brown:focus{transition:color .1s,background-color .1s}.Button--color--brown:hover,.Button--color--brown:focus{background-color:#b47851;color:#fff}.Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.Button--color--grey:hover{transition:color 0ms,background-color 0ms}.Button--color--grey:focus{transition:color .1s,background-color .1s}.Button--color--grey:hover,.Button--color--grey:focus{background-color:#868686;color:#fff}.Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.Button--color--light-grey:focus{transition:color .1s,background-color .1s}.Button--color--light-grey:hover,.Button--color--light-grey:focus{background-color:#bababa;color:#fff}.Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.Button--color--good:hover{transition:color 0ms,background-color 0ms}.Button--color--good:focus{transition:color .1s,background-color .1s}.Button--color--good:hover,.Button--color--good:focus{background-color:#6cba39;color:#fff}.Button--color--average{transition:color 50ms,background-color 50ms;background-color:#cd7a0d;color:#fff}.Button--color--average:hover{transition:color 0ms,background-color 0ms}.Button--color--average:focus{transition:color .1s,background-color .1s}.Button--color--average:hover,.Button--color--average:focus{background-color:#ed9d35;color:#fff}.Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--bad:hover{transition:color 0ms,background-color 0ms}.Button--color--bad:focus{transition:color .1s,background-color .1s}.Button--color--bad:hover,.Button--color--bad:focus{background-color:#dc4848;color:#fff}.Button--color--label{transition:color 50ms,background-color 50ms;background-color:#657a94;color:#fff}.Button--color--label:hover{transition:color 0ms,background-color 0ms}.Button--color--label:focus{transition:color .1s,background-color .1s}.Button--color--label:hover,.Button--color--label:focus{background-color:#91a1b3;color:#fff}.Button--color--default{transition:color 50ms,background-color 50ms;background-color:#3e6189;color:#fff}.Button--color--default:hover{transition:color 0ms,background-color 0ms}.Button--color--default:focus{transition:color .1s,background-color .1s}.Button--color--default:hover,.Button--color--default:focus{background-color:#5c83b0;color:#fff}.Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.Button--color--caution:hover{transition:color 0ms,background-color 0ms}.Button--color--caution:focus{transition:color .1s,background-color .1s}.Button--color--caution:hover,.Button--color--caution:focus{background-color:#f5d72e;color:#000}.Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.Button--color--danger:hover{transition:color 0ms,background-color 0ms}.Button--color--danger:focus{transition:color .1s,background-color .1s}.Button--color--danger:hover,.Button--color--danger:focus{background-color:#dc4848;color:#fff}.Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#252525;color:#fff;background-color:rgba(37,37,37,0);color:rgba(255,255,255,.5)}.Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.Button--color--transparent:focus{transition:color .1s,background-color .1s}.Button--color--transparent:hover,.Button--color--transparent:focus{background-color:#3e3e3e;color:#fff}.Button--disabled{background-color:#999!important}.Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.Button--selected:hover{transition:color 0ms,background-color 0ms}.Button--selected:focus{transition:color .1s,background-color .1s}.Button--selected:hover,.Button--selected:focus{background-color:#32c154;color:#fff}.Button--flex{display:inline-flex;flex-direction:column}.Button--flex--fluid{width:100%}.Button--verticalAlignContent--top{justify-content:flex-start}.Button--verticalAlignContent--middle{justify-content:center}.Button--verticalAlignContent--bottom{justify-content:flex-end}.Button__content{display:block;align-self:stretch}.Button__textMargin{margin-left:.4rem}.ColorBox{display:inline-block;width:1em;height:1em;line-height:1em;text-align:center}.Dialog{position:fixed;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center}.Dialog__content{background-color:#252525;font-family:Consolas,monospace;font-size:1.1666666667em;display:flex;flex-direction:column}.Dialog__header{display:flex;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);user-select:none;-ms-user-select:none}.Dialog__title{display:inline;font-style:italic;margin-left:1rem;margin-right:2rem;flex-grow:1;opacity:.33}.Dialog__body{margin:2rem 1rem;flex-grow:1}.Dialog__footer{display:flex;flex-direction:row;justify-content:flex-end;padding:1rem;background-color:rgba(0,0,0,.25)}.Dialog__button{margin:0 1rem;height:2rem;min-width:6rem;text-align:center}.SaveAsDialog__inputs{display:flex;flex-direction:row;align-items:center;padding-left:3rem;justify-content:flex-end;margin-right:1rem}.SaveAsDialog__input{margin-left:1rem;width:80%}.SaveAsDialog__label{vertical-align:center}.Dialog__FileList{position:relative;display:flex;flex-wrap:wrap;flex-grow:1;align-content:flex-start;max-height:20rem;overflow:auto;overflow-y:scroll}.Dialog__FileEntry{text-align:center;margin:1rem}.Dialog__FileIcon{display:inline-block;margin:0 0 1rem;position:relative;width:6vh;height:auto;text-align:center;cursor:default}.Dimmer{display:flex;justify-content:center;align-items:center;position:absolute;top:0;bottom:0;left:0;right:0;background-color:rgba(0,0,0,.75);z-index:1}.Dropdown{display:flex;align-items:flex-start}.Dropdown__control{flex:1;font-family:Verdana,sans-serif;font-size:1em;overflow:hidden;-ms-user-select:none;user-select:none;width:8.3333333333em}.Dropdown__arrow-button{float:right;padding-left:.35em;width:1.2em;border-left:.0833333333em solid rgba(0,0,0,.25)}.Dropdown__menu{overflow-y:auto;align-items:center;max-height:16.6666666667em;border-radius:0 0 .1666666667em .1666666667em;color:#fff;background-color:#000;background-color:rgba(0,0,0,.75)}.Dropdown__menu-scroll{overflow-y:scroll}.Dropdown__menuentry{padding:.1666666667em .3333333333em;font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em;transition:background-color .1s ease-out}.Dropdown__menuentry.selected{background-color:rgba(255,255,255,.5)!important;transition:background-color 0ms}.Dropdown__menuentry:hover{background-color:rgba(255,255,255,.2);transition:background-color 0ms}.Dropdown__over{top:auto;bottom:100%}.Dropdown__selected-text{display:inline-block;text-overflow:ellipsis;white-space:nowrap;height:1.4166666667em;width:calc(100% - 1.2em)}.Flex{display:-ms-flexbox;display:flex}.Flex--inline{display:inline-flex}.Flex--iefix{display:block}.Flex--iefix.Flex--inline,.Flex__item--iefix{display:inline-block}.Flex--iefix--column>.Flex__item--iefix{display:block}.IconStack>.Icon{position:absolute;width:100%;text-align:center}.IconStack{position:relative;display:inline-block;height:1.2em;line-height:2em;vertical-align:middle}.IconStack:after{color:rgba(0,0,0,0);content:"."}.Knob{position:relative;font-size:1rem;width:2.6em;height:2.6em;margin:0 auto -.2em;cursor:n-resize}.Knob:after{content:".";color:rgba(0,0,0,0);line-height:2.5em}.Knob__circle{position:absolute;top:.1em;bottom:.1em;left:.1em;right:.1em;margin:.3em;background-color:#333;background-image:linear-gradient(to bottom,rgba(255,255,255,.15),rgba(255,255,255,0));border-radius:50%;box-shadow:0 .05em .5em rgba(0,0,0,.5)}.Knob__cursorBox{position:absolute;top:0;bottom:0;left:0;right:0}.Knob__cursor{position:relative;top:.05em;margin:0 auto;width:.2em;height:.8em;background-color:rgba(255,255,255,.9)}.Knob__popupValue{position:absolute;top:-2rem;right:50%;font-size:1rem;text-align:center;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.Knob__ring{position:absolute;top:0;bottom:0;left:0;right:0;padding:.1em}.Knob__ringTrackPivot{transform:rotate(135deg)}.Knob__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:8;stroke-linecap:round;stroke-dasharray:235.62}.Knob__ringFillPivot{transform:rotate(135deg)}.Knob--bipolar .Knob__ringFillPivot{transform:rotate(270deg)}.Knob__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:8;stroke-linecap:round;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.Knob--color--black .Knob__ringFill{stroke:#1a1a1a}.Knob--color--white .Knob__ringFill{stroke:#fff}.Knob--color--red .Knob__ringFill{stroke:#df3e3e}.Knob--color--orange .Knob__ringFill{stroke:#f37f33}.Knob--color--yellow .Knob__ringFill{stroke:#fbda21}.Knob--color--olive .Knob__ringFill{stroke:#cbe41c}.Knob--color--green .Knob__ringFill{stroke:#25ca4c}.Knob--color--teal .Knob__ringFill{stroke:#00d6cc}.Knob--color--blue .Knob__ringFill{stroke:#2e93de}.Knob--color--violet .Knob__ringFill{stroke:#7349cf}.Knob--color--purple .Knob__ringFill{stroke:#ad45d0}.Knob--color--pink .Knob__ringFill{stroke:#e34da1}.Knob--color--brown .Knob__ringFill{stroke:#b97447}.Knob--color--grey .Knob__ringFill{stroke:#848484}.Knob--color--light-grey .Knob__ringFill{stroke:#b3b3b3}.Knob--color--good .Knob__ringFill{stroke:#68c22d}.Knob--color--average .Knob__ringFill{stroke:#f29a29}.Knob--color--bad .Knob__ringFill{stroke:#df3e3e}.Knob--color--label .Knob__ringFill{stroke:#8b9bb0}.LabeledList{display:table;width:100%;width:calc(100% + 1em);border-collapse:collapse;border-spacing:0;margin:-.25em -.5em 0;padding:0}.LabeledList__row{display:table-row}.LabeledList__row:last-child .LabeledList__cell{padding-bottom:0}.LabeledList__cell{display:table-cell;margin:0;padding:.25em .5em;border:0;text-align:left}.LabeledList__label--nowrap{width:1%;white-space:nowrap;min-width:5em}.LabeledList__buttons{width:.1%;white-space:nowrap;text-align:right;padding-top:.0833333333em;padding-bottom:0}.LabeledList__breakContents{word-break:break-all;word-wrap:break-word}.MenuBar{display:flex}.MenuBar__font{font-family:Verdana,sans-serif;font-size:1em;line-height:1.4166666667em}.MenuBar__hover:hover{background-color:#727272;transition:background-color 0ms}.MenuBar__MenuBarButton{padding:.2rem .5rem}.MenuBar__menu{position:absolute;z-index:5;background-color:#252525;padding:.3rem;box-shadow:4px 6px 5px -2px rgba(0,0,0,.55)}.MenuBar__MenuItem{z-index:5;transition:background-color .1s ease-out;background-color:#252525;white-space:nowrap;padding:.3rem 2rem .3rem 3rem}.MenuBar__MenuItemToggle{padding:.3rem 2rem .3rem 0}.MenuBar__MenuItemToggle__check{display:inline-block;vertical-align:middle;min-width:3rem;margin-left:.3rem}.MenuBar__over{top:auto;bottom:100%}.MenuBar__MenuBarButton-text{text-overflow:clip;white-space:nowrap;height:1.4166666667em}.MenuBar__Separator{display:block;margin:.3rem .3rem .3rem 2.3rem;border-top:1px solid rgba(0,0,0,.33)}.Modal{background-color:#252525;max-width:calc(100% - 1rem);padding:1rem}.NanoMap__container{overflow:hiddden;width:100%;z-index:1}.NanoMap__marker{z-index:10;padding:0;margin:0}.NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#000;background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.NoticeBox--color--black{color:#fff;background-color:#000}.NoticeBox--color--white{color:#000;background-color:#b3b3b3}.NoticeBox--color--red{color:#fff;background-color:#701f1f}.NoticeBox--color--orange{color:#fff;background-color:#854114}.NoticeBox--color--yellow{color:#000;background-color:#83710d}.NoticeBox--color--olive{color:#000;background-color:#576015}.NoticeBox--color--green{color:#fff;background-color:#174e24}.NoticeBox--color--teal{color:#fff;background-color:#064845}.NoticeBox--color--blue{color:#fff;background-color:#1b4565}.NoticeBox--color--violet{color:#fff;background-color:#3b2864}.NoticeBox--color--purple{color:#fff;background-color:#542663}.NoticeBox--color--pink{color:#fff;background-color:#802257}.NoticeBox--color--brown{color:#fff;background-color:#4c3729}.NoticeBox--color--grey{color:#fff;background-color:#3e3e3e}.NoticeBox--color--light-grey{color:#fff;background-color:#6a6a6a}.NoticeBox--color--good{color:#fff;background-color:#2e4b1a}.NoticeBox--color--average{color:#fff;background-color:#7b4e13}.NoticeBox--color--bad{color:#fff;background-color:#701f1f}.NoticeBox--color--label{color:#fff;background-color:#53565a}.NoticeBox--type--info{color:#fff;background-color:#235982}.NoticeBox--type--success{color:#fff;background-color:#1e662f}.NoticeBox--type--warning{color:#fff;background-color:#a95219}.NoticeBox--type--danger{color:#fff;background-color:#8f2828}.NumberInput{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#88bfff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.NumberInput--fluid{display:block}.NumberInput__content{margin-left:.5em}.NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #88bfff;background-color:#88bfff}.NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,0);transition:border-color .9s ease-out}.ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.ProgressBar--color--default{border:.0833333333em solid #3e6189}.ProgressBar--color--default .ProgressBar__fill{background-color:#3e6189}.ProgressBar--color--black{border-color:#000!important}.ProgressBar--color--black .ProgressBar__fill{background-color:#000}.ProgressBar--color--white{border-color:#d9d9d9!important}.ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.ProgressBar--color--red{border-color:#bd2020!important}.ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--orange{border-color:#d95e0c!important}.ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.ProgressBar--color--yellow{border-color:#d9b804!important}.ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.ProgressBar--color--olive{border-color:#9aad14!important}.ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.ProgressBar--color--green{border-color:#1b9638!important}.ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.ProgressBar--color--teal{border-color:#009a93!important}.ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.ProgressBar--color--blue{border-color:#1c71b1!important}.ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.ProgressBar--color--violet{border-color:#552dab!important}.ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.ProgressBar--color--purple{border-color:#8b2baa!important}.ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.ProgressBar--color--pink{border-color:#cf2082!important}.ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.ProgressBar--color--brown{border-color:#8c5836!important}.ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.ProgressBar--color--grey{border-color:#646464!important}.ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.ProgressBar--color--light-grey{border-color:#919191!important}.ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.ProgressBar--color--good{border-color:#4d9121!important}.ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.ProgressBar--color--average{border-color:#cd7a0d!important}.ProgressBar--color--average .ProgressBar__fill{background-color:#cd7a0d}.ProgressBar--color--bad{border-color:#bd2020!important}.ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.ProgressBar--color--label{border-color:#657a94!important}.ProgressBar--color--label .ProgressBar__fill{background-color:#657a94}.RoundGauge{font-size:1rem;width:2.6em;height:1.3em;margin:0 auto .2em}.RoundGauge__ringTrack{fill:rgba(0,0,0,0);stroke:rgba(255,255,255,.1);stroke-width:10;stroke-dasharray:157.08;stroke-dashoffset:157.08}.RoundGauge__ringFill{fill:rgba(0,0,0,0);stroke:#6a96c9;stroke-width:10;stroke-dasharray:314.16;transition:stroke 50ms ease-out}.RoundGauge__needle,.RoundGauge__ringFill{transition:transform 50ms ease-in-out}.RoundGauge__needleLine,.RoundGauge__needleMiddle{fill:#db2828}.RoundGauge__alert{fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;fill:rgba(255,255,255,.1)}.RoundGauge__alert.max{fill:#db2828}.RoundGauge--color--black.RoundGauge__ringFill{stroke:#1a1a1a}.RoundGauge--color--white.RoundGauge__ringFill{stroke:#fff}.RoundGauge--color--red.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--orange.RoundGauge__ringFill{stroke:#f37f33}.RoundGauge--color--yellow.RoundGauge__ringFill{stroke:#fbda21}.RoundGauge--color--olive.RoundGauge__ringFill{stroke:#cbe41c}.RoundGauge--color--green.RoundGauge__ringFill{stroke:#25ca4c}.RoundGauge--color--teal.RoundGauge__ringFill{stroke:#00d6cc}.RoundGauge--color--blue.RoundGauge__ringFill{stroke:#2e93de}.RoundGauge--color--violet.RoundGauge__ringFill{stroke:#7349cf}.RoundGauge--color--purple.RoundGauge__ringFill{stroke:#ad45d0}.RoundGauge--color--pink.RoundGauge__ringFill{stroke:#e34da1}.RoundGauge--color--brown.RoundGauge__ringFill{stroke:#b97447}.RoundGauge--color--grey.RoundGauge__ringFill{stroke:#848484}.RoundGauge--color--light-grey.RoundGauge__ringFill{stroke:#b3b3b3}.RoundGauge--color--good.RoundGauge__ringFill{stroke:#68c22d}.RoundGauge--color--average.RoundGauge__ringFill{stroke:#f29a29}.RoundGauge--color--bad.RoundGauge__ringFill{stroke:#df3e3e}.RoundGauge--color--label.RoundGauge__ringFill{stroke:#8b9bb0}.RoundGauge__alert--black{fill:#1a1a1a;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--white{fill:#fff;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--red{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--orange{fill:#f37f33;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--yellow{fill:#fbda21;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--olive{fill:#cbe41c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--green{fill:#25ca4c;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--teal{fill:#00d6cc;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--blue{fill:#2e93de;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--violet{fill:#7349cf;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--purple{fill:#ad45d0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--pink{fill:#e34da1;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--brown{fill:#b97447;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--grey{fill:#848484;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--light-grey{fill:#b3b3b3;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--good{fill:#68c22d;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--average{fill:#f29a29;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--bad{fill:#df3e3e;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}.RoundGauge__alert--label{fill:#8b9bb0;transition:opacity .6s cubic-bezier(.25,1,.5,1);animation:RoundGauge__alertAnim 1s cubic-bezier(.34,1.56,.64,1) infinite}@keyframes RoundGauge__alertAnim{0%{opacity:.1}50%{opacity:1}to{opacity:.1}}.Section{position:relative;margin-bottom:.5em;background-color:#191919;background-color:rgba(0,0,0,.33);box-sizing:border-box}.Section:last-child{margin-bottom:0}.Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.Section__rest{position:relative}.Section__content{padding:.66em .5em}.Section--fitted>.Section__rest>.Section__content{padding:0}.Section--fill{display:flex;flex-direction:column;height:100%}.Section--fill>.Section__rest{flex-grow:1}.Section--fill>.Section__rest>.Section__content{height:100%}.Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.Section--scrollable{overflow-x:hidden;overflow-y:hidden}.Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.Section .Section:first-child{margin-top:-.5em}.Section .Section .Section__titleText{font-size:1.0833333333em}.Section .Section .Section .Section__titleText{font-size:1em}.Section--flex{display:flex;flex-flow:column}.Section--flex .Section__content{overflow:auto;flex-grow:1}.Section__content--noTopPadding{padding-top:0}.Section__content--stretchContents{height:calc(100% - 3rem)}.Slider{cursor:e-resize}.Slider__cursorOffset{position:absolute;top:0;left:0;bottom:0;transition:none!important}.Slider__cursor{position:absolute;top:0;right:-.0833333333em;bottom:0;width:0;border-left:.1666666667em solid #fff}.Slider__pointer{position:absolute;right:-.4166666667em;bottom:-.3333333333em;width:0;height:0;border-left:.4166666667em solid rgba(0,0,0,0);border-right:.4166666667em solid rgba(0,0,0,0);border-bottom:.4166666667em solid #fff}.Slider__popupValue{position:absolute;right:0;top:-2rem;font-size:1rem;padding:.25rem .5rem;color:#fff;background-color:#000;transform:translate(50%);white-space:nowrap}.Divider--horizontal{margin:.5em 0}.Divider--horizontal:not(.Divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Divider--vertical{height:100%;margin:0 .5em}.Divider--vertical:not(.Divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--fill{height:100%}.Stack--horizontal>.Stack__item{margin-left:.5em}.Stack--horizontal>.Stack__item:first-child{margin-left:0}.Stack--vertical>.Stack__item{margin-top:.5em}.Stack--vertical>.Stack__item:first-child{margin-top:0}.Stack--zebra>.Stack__item:nth-child(2n){background-color:rgba(0,0,0,.33)}.Stack--horizontal>.Stack__divider:not(.Stack__divider--hidden){border-left:.1666666667em solid rgba(255,255,255,.1)}.Stack--vertical>.Stack__divider:not(.Stack__divider--hidden){border-top:.1666666667em solid rgba(255,255,255,.1)}.Table{display:table;width:100%;border-collapse:collapse;border-spacing:0;margin:0}.Table--collapsing{width:auto}.Table__row{display:table-row}.Table__cell{display:table-cell;padding:0 .25em}.Table__cell:first-child{padding-left:0}.Table__cell:last-child{padding-right:0}.Table__row--header .Table__cell,.Table__cell--header{font-weight:700;padding-bottom:.5em}.Table__cell--collapsing{width:1%;white-space:nowrap}.Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:rgba(0,0,0,.33)}.Tabs--fill{height:100%}.Section .Tabs{background-color:rgba(0,0,0,0)}.Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.Tabs--horizontal:last-child{margin-bottom:0}.Tabs__Tab{flex-grow:0}.Tabs--fluid .Tabs__Tab{flex-grow:1}.Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.Tab--selected{background-color:rgba(255,255,255,.125);color:#dfe7f0}.Tab__text{flex-grow:1;margin:0 .5em}.Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #d4dfec}.Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.Tabs--vertical .Tab--selected{border-right:.1666666667em solid #d4dfec}.Tab--selected.Tab--color--black{color:#535353}.Tabs--horizontal .Tab--selected.Tab--color--black{border-bottom-color:#1a1a1a}.Tabs--vertical .Tab--selected.Tab--color--black{border-right-color:#1a1a1a}.Tab--selected.Tab--color--white{color:#fff}.Tabs--horizontal .Tab--selected.Tab--color--white{border-bottom-color:#fff}.Tabs--vertical .Tab--selected.Tab--color--white{border-right-color:#fff}.Tab--selected.Tab--color--red{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--red{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--red{border-right-color:#df3e3e}.Tab--selected.Tab--color--orange{color:#f69f66}.Tabs--horizontal .Tab--selected.Tab--color--orange{border-bottom-color:#f37f33}.Tabs--vertical .Tab--selected.Tab--color--orange{border-right-color:#f37f33}.Tab--selected.Tab--color--yellow{color:#fce358}.Tabs--horizontal .Tab--selected.Tab--color--yellow{border-bottom-color:#fbda21}.Tabs--vertical .Tab--selected.Tab--color--yellow{border-right-color:#fbda21}.Tab--selected.Tab--color--olive{color:#d8eb55}.Tabs--horizontal .Tab--selected.Tab--color--olive{border-bottom-color:#cbe41c}.Tabs--vertical .Tab--selected.Tab--color--olive{border-right-color:#cbe41c}.Tab--selected.Tab--color--green{color:#53e074}.Tabs--horizontal .Tab--selected.Tab--color--green{border-bottom-color:#25ca4c}.Tabs--vertical .Tab--selected.Tab--color--green{border-right-color:#25ca4c}.Tab--selected.Tab--color--teal{color:#21fff5}.Tabs--horizontal .Tab--selected.Tab--color--teal{border-bottom-color:#00d6cc}.Tabs--vertical .Tab--selected.Tab--color--teal{border-right-color:#00d6cc}.Tab--selected.Tab--color--blue{color:#62aee6}.Tabs--horizontal .Tab--selected.Tab--color--blue{border-bottom-color:#2e93de}.Tabs--vertical .Tab--selected.Tab--color--blue{border-right-color:#2e93de}.Tab--selected.Tab--color--violet{color:#9676db}.Tabs--horizontal .Tab--selected.Tab--color--violet{border-bottom-color:#7349cf}.Tabs--vertical .Tab--selected.Tab--color--violet{border-right-color:#7349cf}.Tab--selected.Tab--color--purple{color:#c274db}.Tabs--horizontal .Tab--selected.Tab--color--purple{border-bottom-color:#ad45d0}.Tabs--vertical .Tab--selected.Tab--color--purple{border-right-color:#ad45d0}.Tab--selected.Tab--color--pink{color:#ea79b9}.Tabs--horizontal .Tab--selected.Tab--color--pink{border-bottom-color:#e34da1}.Tabs--vertical .Tab--selected.Tab--color--pink{border-right-color:#e34da1}.Tab--selected.Tab--color--brown{color:#ca9775}.Tabs--horizontal .Tab--selected.Tab--color--brown{border-bottom-color:#b97447}.Tabs--vertical .Tab--selected.Tab--color--brown{border-right-color:#b97447}.Tab--selected.Tab--color--grey{color:#a3a3a3}.Tabs--horizontal .Tab--selected.Tab--color--grey{border-bottom-color:#848484}.Tabs--vertical .Tab--selected.Tab--color--grey{border-right-color:#848484}.Tab--selected.Tab--color--light-grey{color:#c6c6c6}.Tabs--horizontal .Tab--selected.Tab--color--light-grey{border-bottom-color:#b3b3b3}.Tabs--vertical .Tab--selected.Tab--color--light-grey{border-right-color:#b3b3b3}.Tab--selected.Tab--color--good{color:#8cd95a}.Tabs--horizontal .Tab--selected.Tab--color--good{border-bottom-color:#68c22d}.Tabs--vertical .Tab--selected.Tab--color--good{border-right-color:#68c22d}.Tab--selected.Tab--color--average{color:#f5b35e}.Tabs--horizontal .Tab--selected.Tab--color--average{border-bottom-color:#f29a29}.Tabs--vertical .Tab--selected.Tab--color--average{border-right-color:#f29a29}.Tab--selected.Tab--color--bad{color:#e76e6e}.Tabs--horizontal .Tab--selected.Tab--color--bad{border-bottom-color:#df3e3e}.Tabs--vertical .Tab--selected.Tab--color--bad{border-right-color:#df3e3e}.Tab--selected.Tab--color--label{color:#a8b4c4}.Tabs--horizontal .Tab--selected.Tab--color--label{border-bottom-color:#8b9bb0}.Tabs--vertical .Tab--selected.Tab--color--label{border-right-color:#8b9bb0}.Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.Input--fluid{display:block;width:auto}.Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.Input--monospace .Input__input{font-family:Consolas,monospace}.TextArea{position:relative;display:inline-block;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:.16em;background-color:#0a0a0a;margin-right:.1666666667em;line-height:1.4166666667em;box-sizing:border-box;width:100%}.TextArea--fluid{display:block;width:auto;height:auto}.TextArea--noborder{border:0px}.TextArea__textarea.TextArea__textarea--scrollable{overflow:auto;overflow-x:hidden;overflow-y:scroll}.TextArea__textarea{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;height:100%;font-size:1em;line-height:1.4166666667em;min-height:1.4166666667em;margin:0;padding:0 .5em;font-family:inherit;background-color:rgba(0,0,0,0);color:inherit;box-sizing:border-box;word-wrap:break-word;overflow:hidden}.TextArea__textarea:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.TextArea__textarea_custom{overflow:visible;white-space:pre-wrap}.TextArea__nowrap{white-space:nowrap;overflow-wrap:normal;overflow-x:scroll}.Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#000;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.ListInput__Section .Section__title{flex-shrink:0}.ListInput__Section .Section__titleText{font-size:1em}.ListInput__Loader{width:100%;position:relative;height:4px}.ListInput__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.InputModal__Section .Section__title{flex-shrink:0}.InputModal__Section .Section__titleText{font-size:1em;white-space:pre-line}.InputModal__Loader{width:100%;position:relative;height:4px}.InputModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.ObjectComponent__Titlebar{border-top-left-radius:12px;border-top-right-radius:12px;white-space:nowrap;-ms-user-select:none;user-select:none}.ObjectComponent__Content{white-space:nowrap;background-color:rgba(0,0,0,.5);-ms-user-select:none;user-select:none}.ObjectComponent__PortPos{position:absolute;top:0;left:0;right:0;bottom:0}.color-stroke-black{stroke:#000!important}.color-stroke-white{stroke:#d9d9d9!important}.color-stroke-red{stroke:#bd2020!important}.color-stroke-orange{stroke:#d95e0c!important}.color-stroke-yellow{stroke:#d9b804!important}.color-stroke-olive{stroke:#9aad14!important}.color-stroke-green{stroke:#1b9638!important}.color-stroke-teal{stroke:#009a93!important}.color-stroke-blue{stroke:#1c71b1!important}.color-stroke-violet{stroke:#552dab!important}.color-stroke-purple{stroke:#8b2baa!important}.color-stroke-pink{stroke:#cf2082!important}.color-stroke-brown{stroke:#8c5836!important}.color-stroke-grey{stroke:#646464!important}.color-stroke-light-grey{stroke:#919191!important}.color-stroke-good{stroke:#4d9121!important}.color-stroke-average{stroke:#cd7a0d!important}.color-stroke-bad{stroke:#bd2020!important}.color-stroke-label{stroke:#657a94!important}.AlertModal__Message{text-align:center;justify-content:center}.AlertModal__Buttons{justify-content:center}.AlertModal__Loader{width:100%;position:relative;height:4px}.AlertModal__LoaderProgress{position:absolute;transition:background-color .5s ease-out,width .5s ease-out;background-color:#3e6189;height:100%}.CameraConsole__left{position:absolute;top:0;bottom:0;left:0;width:18.3333333333em}.CameraConsole__right{position:absolute;top:0;bottom:0;left:18.3333333333em;right:0;background-color:rgba(0,0,0,.33)}.CameraConsole__toolbar{position:absolute;top:0;left:0;right:0;height:2em;line-height:2em;margin:.25em 1em 0}.CameraConsole__toolbarRight{position:absolute;top:0;right:0;height:2em;line-height:2em;margin:.33em .5em 0}.CameraConsole__map{position:absolute;top:2.1666666667em;bottom:0;left:0;right:0;margin:.5em;text-align:center}.CameraConsole__map .NoticeBox{margin-top:calc(50% - 2em)}.Changelog__Button{height:22px}.Changelog__Cell{padding:3px 0}.Changelog__Cell--Icon{width:25px}.CrewManifest--Command .Section__title{border-color:#fbd608}.CrewManifest--Command .Section__titleText{color:#fbd608}.CrewManifest--Security .Section__title{border-color:#db2828}.CrewManifest--Security .Section__titleText{color:#db2828}.CrewManifest--Engineering .Section__title{border-color:#f2711c}.CrewManifest--Engineering .Section__titleText{color:#f2711c}.CrewManifest--Medical .Section__title{border-color:#00b5ad}.CrewManifest--Medical .Section__titleText{color:#00b5ad}.CrewManifest--Misc .Section__title{border-color:#fff}.CrewManifest--Misc .Section__titleText{color:#fff}.CrewManifest--Science .Section__title{border-color:#a333c8}.CrewManifest--Science .Section__titleText{color:#a333c8}.CrewManifest--Supply .Section__title{border-color:#a5673f}.CrewManifest--Supply .Section__titleText{color:#a5673f}.CrewManifest--Service .Section__title{border-color:#20b142}.CrewManifest--Service .Section__titleText{color:#20b142}.CrewManifest--Silicon .Section__title{border-color:#e03997}.CrewManifest--Silicon .Section__titleText{color:#e03997}.CrewManifest__Cell{padding:3px 0}.CrewManifest__Cell--Rank{color:#7e90a7}.CrewManifest__Icons{padding:3px 9px;text-align:right}.CrewManifest__Icon{color:#7e90a7;position:relative}.CrewManifest__Icon:not(:last-child){margin-right:7px}.CrewManifest__Icon--Chevron{padding-right:2px}.CrewManifest__Icon--Command{color:#fbd608}.ExperimentTechwebServer__Web,.ExperimentConfigure__ExperimentPanel{background:#000;border:1px solid #40628a;margin:3px 0}.ExperimentTechwebServer__WebHeader{background:#40628a;padding:2px}.ExperimentTechwebServer__WebName{font-size:18px}.ExperimentTechwebServer__WebContent{padding:4px}.ExperimentTechwebServer__WebContent>.LabeledList{margin:.25rem .25rem .25rem 1rem}.ExperimentConfigure__ExperimentName{font-weight:700;border-radius:0}.ExperimentConfigure__ExperimentContent{padding:.25rem 1.5rem .25rem .25rem}.ExperimentStage__Indicator{font-weight:700;margin-right:1rem;text-align:center}.ExperimentStage__StageContainer.complete .ExperimentStage__Description{opacity:.4;text-decoration:line-through}.ExperimentStage__StageContainer{margin-bottom:5px}.ExperimentStage__Table{border-collapse:separate;border-spacing:.25rem .25rem}.ExperimentConfigure__PerformExperiment{text-align:center;padding:.75rem 0}.ExperimentConfigure__ExperimentsContainer{height:100%;display:flex;flex-direction:column}.ExperimentConfigure__ExperimentsContainer>:last-child{flex:1;overflow-y:auto}.ExperimentConfigure__TagContainer{position:absolute;right:0;top:0}.ExperimentConfigure__PerformanceHint *{position:absolute;width:100%;height:100%;right:0;top:0;color:rgba(255,255,255,.5)}.NuclearBomb__displayBox{background-color:#002003;border:.167em inset #e8e4c9;color:#03e017;font-size:2em;font-family:monospace;padding:.25em}.NuclearBomb__Button{outline-width:.25rem!important;border-width:.65rem!important;padding-left:0!important;padding-right:0!important}.NuclearBomb__Button--keypad{background-color:#e8e4c9;border-color:#e8e4c9}.NuclearBomb__Button--keypad:hover{background-color:#f7f6ee!important;border-color:#f7f6ee!important}.NuclearBomb__Button--1{background-color:#d3cfb7!important;border-color:#d3cfb7!important;color:#a9a692!important}.NuclearBomb__Button--E{background-color:#d9b804!important;border-color:#d9b804!important}.NuclearBomb__Button--E:hover{background-color:#f3d00e!important;border-color:#f3d00e!important}.NuclearBomb__Button--C{background-color:#bd2020!important;border-color:#bd2020!important}.NuclearBomb__Button--C:hover{background-color:#d52b2b!important;border-color:#d52b2b!important}.NuclearBomb__NTIcon{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==);background-size:70%;background-position:center;background-repeat:no-repeat}.Paper__Stamp{position:absolute;pointer-events:none;-ms-user-select:none;user-select:none}.Paper__Page{word-break:break-word;word-wrap:break-word}.Roulette__container{display:flex}.Roulette__board-cell{display:table-cell;padding:0;margin:0;border:1px solid #fff;vertical-align:bottom}.Roulette__board-cell-number{width:35px}.Roulette__board-cell-number--colspan-2{width:71px}.Roulette__board-cell-number--colspan-4{width:143px}.Roulette__board-button{display:table-cell!important;border:none!important;width:inherit;height:40px;padding:0;margin:0;text-align:center;vertical-align:middle;color:#fff!important}.Roulette__board-button--rowspan-3{height:122px}.Roulette__board-button-text{text-align:center;font-size:16px;font-weight:700}.Roulette__lowertable{margin-top:8px;border-collapse:collapse;border:1px solid #fff;border-spacing:0}.Roulette__lowertable--cell{border:2px solid #fff;padding:0;margin:0}.Roulette__lowertable--betscell{vertical-align:top}.Roulette__lowertable--spinresult{text-align:center;font-size:100px;font-weight:700;vertical-align:middle}.Roulette__lowertable--spinresult-black{background-color:#000}.Roulette__lowertable--spinresult-red{background-color:#db2828}.Roulette__lowertable--spinresult-green{background-color:#20b142}.Roulette__lowertable--spinbutton{margin:0!important;border:none!important;font-size:50px;line-height:60px!important;text-align:center;font-weight:700}.Roulette__lowertable--header{width:1%;text-align:center;font-size:16px;font-weight:700}.Safe__engraving{position:absolute;width:95%;height:96%;left:2.5%;top:2%;border:5px outset #3e4f6a;padding:5px;text-align:center}.Safe__engraving-arrow{color:#35435a}.Safe__engraving-hinge{content:" ";background-color:#191f2a;width:25px;height:40px;position:absolute;right:-15px;margin-top:-20px}.Safe__dialer{margin-bottom:1.25rem}.Safe__dialer .Button{width:80px}.Safe__dialer-right .Button i{z-index:-100}.Safe__dialer-number{color:#bbb;display:inline;background-color:#191f2a;font-size:1.5rem;font-weight:700;padding:0 .5rem}.Safe__contents{border:10px solid #191f2a;background-color:#0f131a;height:calc(85% + 7.5px);text-align:left;padding:5px}.Safe__help{position:absolute;top:73%;left:10px;width:50%;font-family:Comic Sans MS,cursive,sans-serif;font-style:italic;color:#000;box-shadow:5px 5px #111;background-image:linear-gradient(to bottom,#b2ae74,#8e8b5d);transform:rotate(-1deg)}.Safe__help:before{content:" ";display:block;width:24px;height:40px;background-image:linear-gradient(to bottom,transparent 0%,#ffffff 100%);box-shadow:1px 1px #111;opacity:.2;position:absolute;top:-30px;left:calc(50% - 12px);transform:rotate(-5deg)}.TachyonArray__ActiveRecord{margin:0 .5em 0 .8em}.TachyonArray__Content{overflow-x:hidden;overflow-y:auto}.TachyonArray__ResearchFooter>*{width:100%;text-align:center}.Techweb__NodeProgress{margin-bottom:1rem}.Techweb__NodeProgress>*:not(:last-child){margin-right:.4rem}.Techweb__DesignIcon{margin-left:.25rem;margin-right:.25rem}.Techweb__OverviewNodes{overflow-y:auto;overflow-x:hidden;padding-right:6px;padding-top:4px}.Techweb__HeaderContent{background-color:#000;padding:6px;border:1px solid #40628a}.Techweb__HeaderContent>*>:not(:last-child){margin-bottom:5px}.Techweb__HeaderSectionTabs{margin-top:8px;background-color:#000;border:1px solid #40628a;padding-left:5px;padding-right:5px}.Techweb__HeaderTabTitle{border-right:1px solid #40628a;padding-right:.5em;margin-right:.5em;font-weight:700}.Techweb__HeaderSectionTabs input{background-color:rgba(255,255,255,.05)}.Techweb__PointSummary{list-style:none;margin:.4em 0 0 1em;padding:0}.Techweb__SecProtocol{color:#db2828;margin-left:.2em}.Techweb__SecProtocol.engaged{color:#5baa27}.Techweb__DesignModal>:not(:last-child){margin-bottom:.5em}.Techweb__LockedModal>:not(:last-child){margin-bottom:.5em}.Techweb__ExperimentDiscount{color:#7e90a7;margin:.5em 0}.IDCard__NamePlate{margin-left:-6px;margin-right:-6px;margin-top:6px;padding:.5em;border-top:.1666666667em solid #4972a1;font-size:1.1666666667em;font-weight:700}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent,.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.TinderMessage_First_Sent,.TinderMessage_Subsequent_Sent{text-align:right;background-color:#4d9121}.TinderMessage_First_Sent{border-radius:10px 10px 0}.TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.TinderMessage_First_Received,.TinderMessage_Subsequent_Received{text-align:left;background-color:#cd7a0d}.TinderMessage_First_Received{border-radius:10px 10px 10px 0}.TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.ClassicMessage_Sent,.ClassicMessage_Received{word-break:break-all}.ClassicMessage_Sent{color:#4d9121}.ClassicMessage_Received{color:#cd7a0d}.Section--elevator--fire{background-color:#f33;background-color:rgba(255,0,0,.35)}.Section--elevator--fire>.Section__title{padding:.5em;border-bottom:.1666666667em solid red}.Layout,.Layout *{scrollbar-base-color:#1c1c1c;scrollbar-face-color:#3b3b3b;scrollbar-3dlight-color:#252525;scrollbar-highlight-color:#252525;scrollbar-track-color:#1c1c1c;scrollbar-arrow-color:#929292;scrollbar-shadow-color:#3b3b3b}.Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.Layout__content--flexRow{display:flex;flex-flow:row}.Layout__content--flexColumn{display:flex;flex-flow:column}.NtosHeader__left{position:absolute;left:1em}.NtosHeader__right{position:absolute;right:1em}.NtosHeader__icon{margin-top:-.75em;margin-bottom:-.5em;vertical-align:middle}.NtosWindow__header{position:absolute;top:0;left:0;right:0;height:2em;line-height:1.928em;background-color:rgba(0,0,0,.5);font-family:Consolas,monospace;font-size:1.1666666667em;user-select:none;-ms-user-select:none}.NtosWindow__content .Layout__content{margin-top:2em;font-family:Consolas,monospace;font-size:1.1666666667em}.TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#252525;background-image:linear-gradient(to bottom,#2a2a2a,#202020)}.Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.Window__contentPadding:after{height:0}.Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(62,62,62,.25);pointer-events:none}.Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! Theme: GitHub Dark Description: Dark theme as seen on github.com Author: github.com @@ -7,4 +7,4 @@ html,body{box-sizing:border-box;height:100%;margin:0;font-size:12px}html{overflo Outdated base version: https://github.com/primer/github-syntax-dark Current colors taken from GitHub's CSS -*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMzMiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPgo=);background-size:70%;background-position:center;background-repeat:no-repeat}.theme-abductor .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-abductor .Button:last-child{margin-right:0;margin-bottom:0}.theme-abductor .Button .fa,.theme-abductor .Button .fas,.theme-abductor .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-abductor .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-abductor .Button--hasContent .fa,.theme-abductor .Button--hasContent .fas,.theme-abductor .Button--hasContent .far{margin-right:.25em}.theme-abductor .Button--hasContent.Button--iconPosition--right .fa,.theme-abductor .Button--hasContent.Button--iconPosition--right .fas,.theme-abductor .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-abductor .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-abductor .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-abductor .Button--circular{border-radius:50%}.theme-abductor .Button--compact{padding:0 .25em;line-height:1.333em}.theme-abductor .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#ad2350;color:#fff}.theme-abductor .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--default:hover,.theme-abductor .Button--color--default:focus{background-color:#d34372;color:#fff}.theme-abductor .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-abductor .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--caution:hover,.theme-abductor .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-abductor .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-abductor .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--danger:hover,.theme-abductor .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-abductor .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2a314a;color:#fff;background-color:rgba(42,49,74,0);color:rgba(255,255,255,.5)}.theme-abductor .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--transparent:hover,.theme-abductor .Button--color--transparent:focus{background-color:#444c68;color:#fff}.theme-abductor .Button--disabled{background-color:#363636!important}.theme-abductor .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-abductor .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--selected:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--selected:hover,.theme-abductor .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-abductor .Button--flex{display:inline-flex;flex-direction:column}.theme-abductor .Button--flex--fluid{width:100%}.theme-abductor .Button--verticalAlignContent--top{justify-content:flex-start}.theme-abductor .Button--verticalAlignContent--middle{justify-content:center}.theme-abductor .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-abductor .Button__content{display:block;align-self:stretch}.theme-abductor .Button__textMargin{margin-left:.4rem}.theme-abductor .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-abductor .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-abductor .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-abductor .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-abductor .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-abductor .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-abductor .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-abductor .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-abductor .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-abductor .Input--fluid{display:block;width:auto}.theme-abductor .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-abductor .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-abductor .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-abductor .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-abductor .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-abductor .NumberInput--fluid{display:block}.theme-abductor .NumberInput__content{margin-left:.5em}.theme-abductor .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-abductor .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-abductor .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-abductor .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-abductor .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-abductor .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-abductor .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-abductor .ProgressBar--color--default{border:.0833333333em solid #931e44}.theme-abductor .ProgressBar--color--default .ProgressBar__fill{background-color:#931e44}.theme-abductor .Section{position:relative;margin-bottom:.5em;background-color:#1c2132;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-abductor .Section:last-child{margin-bottom:0}.theme-abductor .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ad2350}.theme-abductor .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-abductor .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-abductor .Section__rest{position:relative}.theme-abductor .Section__content{padding:.66em .5em}.theme-abductor .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-abductor .Section--fill{display:flex;flex-direction:column;height:100%}.theme-abductor .Section--fill>.Section__rest{flex-grow:1}.theme-abductor .Section--fill>.Section__rest>.Section__content{height:100%}.theme-abductor .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-abductor .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-abductor .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-abductor .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-abductor .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-abductor .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-abductor .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-abductor .Section .Section:first-child{margin-top:-.5em}.theme-abductor .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-abductor .Section .Section .Section .Section__titleText{font-size:1em}.theme-abductor .Section--flex{display:flex;flex-flow:column}.theme-abductor .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-abductor .Section__content--noTopPadding{padding-top:0}.theme-abductor .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-abductor .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#a82d55;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-abductor .Layout,.theme-abductor .Layout *{scrollbar-base-color:#202538;scrollbar-face-color:#384263;scrollbar-3dlight-color:#2a314a;scrollbar-highlight-color:#2a314a;scrollbar-track-color:#202538;scrollbar-arrow-color:#818db8;scrollbar-shadow-color:#384263}.theme-abductor .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-abductor .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-abductor .Layout__content--flexRow{display:flex;flex-flow:row}.theme-abductor .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-abductor .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2a314a;background-image:linear-gradient(to bottom,#353e5e,#1f2436)}.theme-abductor .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-abductor .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-abductor .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-abductor .Window__contentPadding:after{height:0}.theme-abductor .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-abductor .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(68,76,104,.25);pointer-events:none}.theme-abductor .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-abductor .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-abductor .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-abductor .TitleBar{background-color:#9e1b46;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-abductor .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#9e1b46;transition:color .25s ease-out,background-color .25s ease-out}.theme-abductor .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-abductor .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-abductor .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-abductor .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-abductor .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-abductor .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-abductor .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-abductor .Layout__content{background-image:none}.theme-cardtable .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0;margin-bottom:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .fas,.theme-cardtable .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-cardtable .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .fas,.theme-cardtable .Button--hasContent .far{margin-right:.25em}.theme-cardtable .Button--hasContent.Button--iconPosition--right .fa,.theme-cardtable .Button--hasContent.Button--iconPosition--right .fas,.theme-cardtable .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-cardtable .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--circular{border-radius:50%}.theme-cardtable .Button--compact{padding:0 .25em;line-height:1.333em}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:hover,.theme-cardtable .Button--color--default:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:hover,.theme-cardtable .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:hover,.theme-cardtable .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:rgba(255,255,255,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:hover,.theme-cardtable .Button--color--transparent:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:hover,.theme-cardtable .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-cardtable .Button--flex{display:inline-flex;flex-direction:column}.theme-cardtable .Button--flex--fluid{width:100%}.theme-cardtable .Button--verticalAlignContent--top{justify-content:flex-start}.theme-cardtable .Button--verticalAlignContent--middle{justify-content:center}.theme-cardtable .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-cardtable .Button__content{display:block;align-self:stretch}.theme-cardtable .Button__textMargin{margin-left:.4rem}.theme-cardtable .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-cardtable .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-cardtable .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #fff;border:.0833333333em solid rgba(255,255,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:.5em}.theme-cardtable .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #fff;background-color:#fff}.theme-cardtable .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-cardtable .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-cardtable .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:.0833333333em solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:.5em;background-color:#0b4b26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-cardtable .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-cardtable .Section__rest{position:relative}.theme-cardtable .Section__content{padding:.66em .5em}.theme-cardtable .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-cardtable .Section--fill{display:flex;flex-direction:column;height:100%}.theme-cardtable .Section--fill>.Section__rest{flex-grow:1}.theme-cardtable .Section--fill>.Section__rest>.Section__content{height:100%}.theme-cardtable .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-cardtable .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-cardtable .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-cardtable .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-cardtable .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-cardtable .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-cardtable .Section .Section:first-child{margin-top:-.5em}.theme-cardtable .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-cardtable .Section .Section .Section .Section__titleText{font-size:1em}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-cardtable .Layout,.theme-cardtable .Layout *{scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(to bottom,#117039,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-cardtable .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-cardtable .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-cardtable .Window__contentPadding:after{height:0}.theme-cardtable .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-cardtable .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#381608;transition:color .25s ease-out,background-color .25s ease-out}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-cardtable .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-cardtable .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-cardtable .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-cardtable .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-cardtable .Button{border:.1666666667em solid #fff}.theme-hackerman .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-hackerman .Button:last-child{margin-right:0;margin-bottom:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .fas,.theme-hackerman .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-hackerman .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .fas,.theme-hackerman .Button--hasContent .far{margin-right:.25em}.theme-hackerman .Button--hasContent.Button--iconPosition--right .fa,.theme-hackerman .Button--hasContent.Button--iconPosition--right .fas,.theme-hackerman .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-hackerman .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--circular{border-radius:50%}.theme-hackerman .Button--compact{padding:0 .25em;line-height:1.333em}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:hover,.theme-hackerman .Button--color--default:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:hover,.theme-hackerman .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:hover,.theme-hackerman .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:rgba(255,255,255,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:hover,.theme-hackerman .Button--color--transparent:focus{background-color:#283228;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:hover,.theme-hackerman .Button--selected:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--flex{display:inline-flex;flex-direction:column}.theme-hackerman .Button--flex--fluid{width:100%}.theme-hackerman .Button--verticalAlignContent--top{justify-content:flex-start}.theme-hackerman .Button--verticalAlignContent--middle{justify-content:center}.theme-hackerman .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-hackerman .Button__content{display:block;align-self:stretch}.theme-hackerman .Button__textMargin{margin-left:.4rem}.theme-hackerman .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid lime;border:.0833333333em solid rgba(0,255,0,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-hackerman .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-hackerman .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Section{position:relative;margin-bottom:.5em;background-color:#0c120c;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid lime}.theme-hackerman .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-hackerman .Section__rest{position:relative}.theme-hackerman .Section__content{padding:.66em .5em}.theme-hackerman .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-hackerman .Section--fill{display:flex;flex-direction:column;height:100%}.theme-hackerman .Section--fill>.Section__rest{flex-grow:1}.theme-hackerman .Section--fill>.Section__rest>.Section__content{height:100%}.theme-hackerman .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-hackerman .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-hackerman .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-hackerman .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-hackerman .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-hackerman .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-hackerman .Section .Section:first-child{margin-top:-.5em}.theme-hackerman .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-hackerman .Section .Section .Section .Section__titleText{font-size:1em}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-hackerman .Layout,.theme-hackerman .Layout *{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(to bottom,#121b12,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-hackerman .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-hackerman .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-hackerman .Window__contentPadding:after{height:0}.theme-hackerman .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-hackerman .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#223d22;transition:color .25s ease-out,background-color .25s ease-out}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-hackerman .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-hackerman .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-hackerman .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-hackerman .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border-width:.1666666667em;border-style:outset;border-color:#0a0;outline:.0833333333em solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-malfunction .Button:last-child{margin-right:0;margin-bottom:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .fas,.theme-malfunction .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-malfunction .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .fas,.theme-malfunction .Button--hasContent .far{margin-right:.25em}.theme-malfunction .Button--hasContent.Button--iconPosition--right .fa,.theme-malfunction .Button--hasContent.Button--iconPosition--right .fas,.theme-malfunction .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-malfunction .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--circular{border-radius:50%}.theme-malfunction .Button--compact{padding:0 .25em;line-height:1.333em}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:hover,.theme-malfunction .Button--color--default:focus{background-color:#ba1414;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:hover,.theme-malfunction .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:hover,.theme-malfunction .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:rgba(255,255,255,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:hover,.theme-malfunction .Button--color--transparent:focus{background-color:#324f60;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:hover,.theme-malfunction .Button--selected:focus{background-color:#3678a8;color:#fff}.theme-malfunction .Button--flex{display:inline-flex;flex-direction:column}.theme-malfunction .Button--flex--fluid{width:100%}.theme-malfunction .Button--verticalAlignContent--top{justify-content:flex-start}.theme-malfunction .Button--verticalAlignContent--middle{justify-content:center}.theme-malfunction .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-malfunction .Button__content{display:block;align-self:stretch}.theme-malfunction .Button__textMargin{margin-left:.4rem}.theme-malfunction .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-malfunction .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-malfunction .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-malfunction .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-malfunction .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-malfunction .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#910101;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:.5em}.theme-malfunction .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #910101;background-color:#910101}.theme-malfunction .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-malfunction .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-malfunction .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-malfunction .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:.0833333333em solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:.5em;background-color:#12232d;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #910101}.theme-malfunction .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-malfunction .Section__rest{position:relative}.theme-malfunction .Section__content{padding:.66em .5em}.theme-malfunction .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-malfunction .Section--fill{display:flex;flex-direction:column;height:100%}.theme-malfunction .Section--fill>.Section__rest{flex-grow:1}.theme-malfunction .Section--fill>.Section__rest>.Section__content{height:100%}.theme-malfunction .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-malfunction .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-malfunction .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-malfunction .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-malfunction .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-malfunction .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-malfunction .Section .Section:first-child{margin-top:-.5em}.theme-malfunction .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-malfunction .Section .Section .Section .Section__titleText{font-size:1em}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-malfunction .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#235577;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-malfunction .Layout,.theme-malfunction .Layout *{scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(to bottom,#244559,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-malfunction .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-malfunction .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-malfunction .Window__contentPadding:after{height:0}.theme-malfunction .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-malfunction .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1a3f57;transition:color .25s ease-out,background-color .25s ease-out}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-malfunction .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-malfunction .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-malfunction .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-malfunction .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-malfunction .Layout__content{background-image:none}.theme-neutral .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-neutral .Button:last-child{margin-right:0;margin-bottom:0}.theme-neutral .Button .fa,.theme-neutral .Button .fas,.theme-neutral .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-neutral .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-neutral .Button--hasContent .fa,.theme-neutral .Button--hasContent .fas,.theme-neutral .Button--hasContent .far{margin-right:.25em}.theme-neutral .Button--hasContent.Button--iconPosition--right .fa,.theme-neutral .Button--hasContent.Button--iconPosition--right .fas,.theme-neutral .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-neutral .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-neutral .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-neutral .Button--circular{border-radius:50%}.theme-neutral .Button--compact{padding:0 .25em;line-height:1.333em}.theme-neutral .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#b37d00;color:#fff}.theme-neutral .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--default:hover,.theme-neutral .Button--color--default:focus{background-color:#e1a313;color:#fff}.theme-neutral .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-neutral .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--caution:hover,.theme-neutral .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-neutral .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-neutral .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--danger:hover,.theme-neutral .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-neutral .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#996b00;color:#fff;background-color:rgba(153,107,0,0);color:#ffca4d}.theme-neutral .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--transparent:hover,.theme-neutral .Button--color--transparent:focus{background-color:#c38f13;color:#fff}.theme-neutral .Button--disabled{background-color:#999!important}.theme-neutral .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-neutral .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--selected:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--selected:hover,.theme-neutral .Button--selected:focus{background-color:#32c154;color:#fff}.theme-neutral .Button--flex{display:inline-flex;flex-direction:column}.theme-neutral .Button--flex--fluid{width:100%}.theme-neutral .Button--verticalAlignContent--top{justify-content:flex-start}.theme-neutral .Button--verticalAlignContent--middle{justify-content:center}.theme-neutral .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-neutral .Button__content{display:block;align-self:stretch}.theme-neutral .Button__textMargin{margin-left:.4rem}.theme-neutral .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-neutral .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-neutral .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-neutral .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-neutral .ProgressBar--color--default{border:.0833333333em solid #ffb300}.theme-neutral .ProgressBar--color--default .ProgressBar__fill{background-color:#ffb300}.theme-neutral .Section{position:relative;margin-bottom:.5em;background-color:#674800;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-neutral .Section:last-child{margin-bottom:0}.theme-neutral .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ffb300}.theme-neutral .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-neutral .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-neutral .Section__rest{position:relative}.theme-neutral .Section__content{padding:.66em .5em}.theme-neutral .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-neutral .Section--fill{display:flex;flex-direction:column;height:100%}.theme-neutral .Section--fill>.Section__rest{flex-grow:1}.theme-neutral .Section--fill>.Section__rest>.Section__content{height:100%}.theme-neutral .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-neutral .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-neutral .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-neutral .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-neutral .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-neutral .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-neutral .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-neutral .Section .Section:first-child{margin-top:-.5em}.theme-neutral .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-neutral .Section .Section .Section .Section__titleText{font-size:1em}.theme-neutral .Section--flex{display:flex;flex-flow:column}.theme-neutral .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-neutral .Section__content--noTopPadding{padding-top:0}.theme-neutral .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-neutral .Layout,.theme-neutral .Layout *{scrollbar-base-color:#735100;scrollbar-face-color:#bd8400;scrollbar-3dlight-color:#996b00;scrollbar-highlight-color:#996b00;scrollbar-track-color:#735100;scrollbar-arrow-color:#ffca4d;scrollbar-shadow-color:#bd8400}.theme-neutral .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-neutral .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-neutral .Layout__content--flexRow{display:flex;flex-flow:row}.theme-neutral .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-neutral .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#996b00;background-image:linear-gradient(to bottom,#b88100,#7a5600)}.theme-neutral .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-neutral .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-neutral .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-neutral .Window__contentPadding:after{height:0}.theme-neutral .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-neutral .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(195,143,19,.25);pointer-events:none}.theme-neutral .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-neutral .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-neutral .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-neutral .TitleBar{background-color:#bf8600;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-neutral .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#bf8600;transition:color .25s ease-out,background-color .25s ease-out}.theme-neutral .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-neutral .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-neutral .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-neutral .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-neutral .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-neutral .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-neutral .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-neutral .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJ1c2VyLXNlY3JldCIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLXVzZXItc2VjcmV0IGZhLXctMTQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiIgIG9wYWNpdHk9Ii4zMyI+CiAgPHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNMzgzLjkgMzA4LjNsMjMuOS02Mi42YzQtMTAuNS0zLjctMjEuNy0xNS0yMS43aC01OC41YzExLTE4LjkgMTcuOC00MC42IDE3LjgtNjR2LS4zYzM5LjItNy44IDY0LTE5LjEgNjQtMzEuNyAwLTEzLjMtMjcuMy0yNS4xLTcwLjEtMzMtOS4yLTMyLjgtMjctNjUuOC00MC42LTgyLjgtOS41LTExLjktMjUuOS0xNS42LTM5LjUtOC44bC0yNy42IDEzLjhjLTkgNC41LTE5LjYgNC41LTI4LjYgMEwxODIuMSAzLjRjLTEzLjYtNi44LTMwLTMuMS0zOS41IDguOC0xMy41IDE3LTMxLjQgNTAtNDAuNiA4Mi44LTQyLjcgNy45LTcwIDE5LjctNzAgMzMgMCAxMi42IDI0LjggMjMuOSA2NCAzMS43di4zYzAgMjMuNCA2LjggNDUuMSAxNy44IDY0SDU2LjNjLTExLjUgMC0xOS4yIDExLjctMTQuNyAyMi4zbDI1LjggNjAuMkMyNy4zIDMyOS44IDAgMzcyLjcgMCA0MjIuNHY0NC44QzAgNDkxLjkgMjAuMSA1MTIgNDQuOCA1MTJoMzU4LjRjMjQuNyAwIDQ0LjgtMjAuMSA0NC44LTQ0Ljh2LTQ0LjhjMC00OC40LTI1LjgtOTAuNC02NC4xLTExNC4xek0xNzYgNDgwbC00MS42LTE5MiA0OS42IDMyIDI0IDQwLTMyIDEyMHptOTYgMGwtMzItMTIwIDI0LTQwIDQ5LjYtMzJMMjcyIDQ4MHptNDEuNy0yOTguNWMtMy45IDExLjktNyAyNC42LTE2LjUgMzMuNC0xMC4xIDkuMy00OCAyMi40LTY0LTI1LTIuOC04LjQtMTUuNC04LjQtMTguMyAwLTE3IDUwLjItNTYgMzIuNC02NCAyNS05LjUtOC44LTEyLjctMjEuNS0xNi41LTMzLjQtLjgtMi41LTYuMy01LjctNi4zLTUuOHYtMTAuOGMyOC4zIDMuNiA2MSA1LjggOTYgNS44czY3LjctMi4xIDk2LTUuOHYxMC44Yy0uMS4xLTUuNiAzLjItNi40IDUuOHoiPjwvcGF0aD4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+)}.theme-ntos .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-ntos .Button:last-child{margin-right:0;margin-bottom:0}.theme-ntos .Button .fa,.theme-ntos .Button .fas,.theme-ntos .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-ntos .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .fas,.theme-ntos .Button--hasContent .far{margin-right:.25em}.theme-ntos .Button--hasContent.Button--iconPosition--right .fa,.theme-ntos .Button--hasContent.Button--iconPosition--right .fas,.theme-ntos .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-ntos .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--circular{border-radius:50%}.theme-ntos .Button--compact{padding:0 .25em;line-height:1.333em}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:hover,.theme-ntos .Button--color--default:focus{background-color:#546d8b;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:hover,.theme-ntos .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:hover,.theme-ntos .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:hover,.theme-ntos .Button--color--transparent:focus{background-color:#374555;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:hover,.theme-ntos .Button--selected:focus{background-color:#32c154;color:#fff}.theme-ntos .Button--flex{display:inline-flex;flex-direction:column}.theme-ntos .Button--flex--fluid{width:100%}.theme-ntos .Button--verticalAlignContent--top{justify-content:flex-start}.theme-ntos .Button--verticalAlignContent--middle{justify-content:center}.theme-ntos .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-ntos .Button__content{display:block;align-self:stretch}.theme-ntos .Button__textMargin{margin-left:.4rem}.theme-ntos .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-ntos .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-ntos .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-ntos .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:.0833333333em solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:.5em;background-color:#151d26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.theme-ntos .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-ntos .Section__rest{position:relative}.theme-ntos .Section__content{padding:.66em .5em}.theme-ntos .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-ntos .Section--fill{display:flex;flex-direction:column;height:100%}.theme-ntos .Section--fill>.Section__rest{flex-grow:1}.theme-ntos .Section--fill>.Section__rest>.Section__content{height:100%}.theme-ntos .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-ntos .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-ntos .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-ntos .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-ntos .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-ntos .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-ntos .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-ntos .Section .Section:first-child{margin-top:-.5em}.theme-ntos .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-ntos .Section .Section .Section .Section__titleText{font-size:1em}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-ntos .Layout,.theme-ntos .Layout *{scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-ntos .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(to bottom,#223040,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-ntos .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-ntos .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-ntos .Window__contentPadding:after{height:0}.theme-ntos .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-ntos .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#2a3b4e;transition:color .25s ease-out,background-color .25s ease-out}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-ntos .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-ntos .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-ntos .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-ntos .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:rgba(0,0,0,.33)}.theme-paper .Tabs--fill{height:100%}.theme-paper .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-paper .Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.theme-paper .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.theme-paper .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-paper .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.theme-paper .Tabs--horizontal:last-child{margin-bottom:0}.theme-paper .Tabs__Tab{flex-grow:0}.theme-paper .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-paper .Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.theme-paper .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-paper .Tab--selected{background-color:rgba(255,255,255,.125);color:#fafafa}.theme-paper .Tab__text{flex-grow:1;margin:0 .5em}.theme-paper .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-paper .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-paper .Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-paper .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #f9f9f9}.theme-paper .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-paper .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #f9f9f9}.theme-paper .Section{position:relative;margin-bottom:.5em;background-color:#e6e6e6;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-paper .Section:last-child{margin-bottom:0}.theme-paper .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-paper .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-paper .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-paper .Section__rest{position:relative}.theme-paper .Section__content{padding:.66em .5em}.theme-paper .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-paper .Section--fill{display:flex;flex-direction:column;height:100%}.theme-paper .Section--fill>.Section__rest{flex-grow:1}.theme-paper .Section--fill>.Section__rest>.Section__content{height:100%}.theme-paper .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-paper .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-paper .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-paper .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-paper .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-paper .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-paper .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-paper .Section .Section:first-child{margin-top:-.5em}.theme-paper .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-paper .Section .Section .Section .Section__titleText{font-size:1em}.theme-paper .Section--flex{display:flex;flex-flow:column}.theme-paper .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-paper .Section__content--noTopPadding{padding-top:0}.theme-paper .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-paper .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-paper .Button:last-child{margin-right:0;margin-bottom:0}.theme-paper .Button .fa,.theme-paper .Button .fas,.theme-paper .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-paper .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-paper .Button--hasContent .fa,.theme-paper .Button--hasContent .fas,.theme-paper .Button--hasContent .far{margin-right:.25em}.theme-paper .Button--hasContent.Button--iconPosition--right .fa,.theme-paper .Button--hasContent.Button--iconPosition--right .fas,.theme-paper .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-paper .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-paper .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-paper .Button--circular{border-radius:50%}.theme-paper .Button--compact{padding:0 .25em;line-height:1.333em}.theme-paper .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-paper .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--default:hover,.theme-paper .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-paper .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-paper .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--caution:hover,.theme-paper .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-paper .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-paper .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--danger:hover,.theme-paper .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-paper .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#fff;color:#000;background-color:rgba(255,255,255,0);color:rgba(0,0,0,.5)}.theme-paper .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--transparent:hover,.theme-paper .Button--color--transparent:focus{background-color:#fff;color:#000}.theme-paper .Button--disabled{background-color:#363636!important}.theme-paper .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-paper .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--selected:focus{transition:color .1s,background-color .1s}.theme-paper .Button--selected:hover,.theme-paper .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-paper .Button--flex{display:inline-flex;flex-direction:column}.theme-paper .Button--flex--fluid{width:100%}.theme-paper .Button--verticalAlignContent--top{justify-content:flex-start}.theme-paper .Button--verticalAlignContent--middle{justify-content:center}.theme-paper .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-paper .Button__content{display:block;align-self:stretch}.theme-paper .Button__textMargin{margin-left:.4rem}.theme-paper .Layout,.theme-paper .Layout *{scrollbar-base-color:#bfbfbf;scrollbar-face-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-highlight-color:#fff;scrollbar-track-color:#bfbfbf;scrollbar-arrow-color:#fff;scrollbar-shadow-color:#fff}.theme-paper .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-paper .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-paper .Layout__content--flexRow{display:flex;flex-flow:row}.theme-paper .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-paper .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#fff;background-image:linear-gradient(to bottom,#fff,#fff)}.theme-paper .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-paper .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-paper .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-paper .Window__contentPadding:after{height:0}.theme-paper .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-paper .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,.25);pointer-events:none}.theme-paper .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-paper .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-paper .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-paper .TitleBar{background-color:#fff;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-paper .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#fff;transition:color .25s ease-out,background-color .25s ease-out}.theme-paper .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-paper .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-paper .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-paper .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-paper .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-paper .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-paper .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .PaperInput{position:relative;display:inline-block;width:120px;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .PaperInput__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-paper .PaperInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-paper .PaperInput__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-paper .Layout__content{background-image:none}.theme-paper .Window{background-image:none;color:#000}.theme-paper .paper-text input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-text input,.theme-paper .paper-field{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-field input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-pda-retro .color-black{color:#1a1a1a!important}.theme-pda-retro .color-white{color:#fff!important}.theme-pda-retro .color-red{color:#df3e3e!important}.theme-pda-retro .color-orange{color:#f37f33!important}.theme-pda-retro .color-yellow{color:#fbda21!important}.theme-pda-retro .color-olive{color:#cbe41c!important}.theme-pda-retro .color-green{color:#25ca4c!important}.theme-pda-retro .color-teal{color:#00d6cc!important}.theme-pda-retro .color-blue{color:#2e93de!important}.theme-pda-retro .color-violet{color:#7349cf!important}.theme-pda-retro .color-purple{color:#ad45d0!important}.theme-pda-retro .color-pink{color:#e34da1!important}.theme-pda-retro .color-brown{color:#b97447!important}.theme-pda-retro .color-grey{color:#848484!important}.theme-pda-retro .color-light-grey{color:#b3b3b3!important}.theme-pda-retro .color-good{color:#68c22d!important}.theme-pda-retro .color-average{color:#1a1a1a!important}.theme-pda-retro .color-bad{color:#df3e3e!important}.theme-pda-retro .color-label{color:#1a1a1a!important}.theme-pda-retro .color-bg-black{background-color:#000!important}.theme-pda-retro .color-bg-white{background-color:#d9d9d9!important}.theme-pda-retro .color-bg-red{background-color:#bd2020!important}.theme-pda-retro .color-bg-orange{background-color:#d95e0c!important}.theme-pda-retro .color-bg-yellow{background-color:#d9b804!important}.theme-pda-retro .color-bg-olive{background-color:#9aad14!important}.theme-pda-retro .color-bg-green{background-color:#1b9638!important}.theme-pda-retro .color-bg-teal{background-color:#009a93!important}.theme-pda-retro .color-bg-blue{background-color:#1c71b1!important}.theme-pda-retro .color-bg-violet{background-color:#552dab!important}.theme-pda-retro .color-bg-purple{background-color:#8b2baa!important}.theme-pda-retro .color-bg-pink{background-color:#cf2082!important}.theme-pda-retro .color-bg-brown{background-color:#8c5836!important}.theme-pda-retro .color-bg-grey{background-color:#646464!important}.theme-pda-retro .color-bg-light-grey{background-color:#919191!important}.theme-pda-retro .color-bg-good{background-color:#4d9121!important}.theme-pda-retro .color-bg-average{background-color:#000!important}.theme-pda-retro .color-bg-bad{background-color:#bd2020!important}.theme-pda-retro .color-bg-label{background-color:#000!important}.theme-pda-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-pda-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-pda-retro .Button .fa,.theme-pda-retro .Button .fas,.theme-pda-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-pda-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-pda-retro .Button--hasContent .fa,.theme-pda-retro .Button--hasContent .fas,.theme-pda-retro .Button--hasContent .far{margin-right:.25em}.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-pda-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-pda-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-pda-retro .Button--circular{border-radius:50%}.theme-pda-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-pda-retro .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--black:hover,.theme-pda-retro .Button--color--black:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.theme-pda-retro .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--white:hover,.theme-pda-retro .Button--color--white:focus{background-color:#f8f8f8;color:#000}.theme-pda-retro .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--red:hover,.theme-pda-retro .Button--color--red:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.theme-pda-retro .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--orange:hover,.theme-pda-retro .Button--color--orange:focus{background-color:#f0853f;color:#fff}.theme-pda-retro .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-pda-retro .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--yellow:hover,.theme-pda-retro .Button--color--yellow:focus{background-color:#f5d72e;color:#000}.theme-pda-retro .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.theme-pda-retro .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--olive:hover,.theme-pda-retro .Button--color--olive:focus{background-color:#c4da2b;color:#fff}.theme-pda-retro .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-pda-retro .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--green:hover,.theme-pda-retro .Button--color--green:focus{background-color:#32c154;color:#fff}.theme-pda-retro .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.theme-pda-retro .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--teal:hover,.theme-pda-retro .Button--color--teal:focus{background-color:#13c4bc;color:#fff}.theme-pda-retro .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.theme-pda-retro .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--blue:hover,.theme-pda-retro .Button--color--blue:focus{background-color:#3a95d9;color:#fff}.theme-pda-retro .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.theme-pda-retro .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--violet:hover,.theme-pda-retro .Button--color--violet:focus{background-color:#7953cc;color:#fff}.theme-pda-retro .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.theme-pda-retro .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--purple:hover,.theme-pda-retro .Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.theme-pda-retro .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.theme-pda-retro .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--pink:hover,.theme-pda-retro .Button--color--pink:focus{background-color:#e257a5;color:#fff}.theme-pda-retro .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.theme-pda-retro .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--brown:hover,.theme-pda-retro .Button--color--brown:focus{background-color:#b47851;color:#fff}.theme-pda-retro .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.theme-pda-retro .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--grey:hover,.theme-pda-retro .Button--color--grey:focus{background-color:#868686;color:#fff}.theme-pda-retro .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.theme-pda-retro .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--light-grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--light-grey:hover,.theme-pda-retro .Button--color--light-grey:focus{background-color:#bababa;color:#fff}.theme-pda-retro .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.theme-pda-retro .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--good:hover,.theme-pda-retro .Button--color--good:focus{background-color:#6cba39;color:#fff}.theme-pda-retro .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--average:hover,.theme-pda-retro .Button--color--average:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--bad:hover,.theme-pda-retro .Button--color--bad:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--label:hover,.theme-pda-retro .Button--color--label:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-pda-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--default:hover,.theme-pda-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-pda-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-pda-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--caution:hover,.theme-pda-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-pda-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-pda-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--danger:hover,.theme-pda-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-pda-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#6f7961;color:#fff;background-color:rgba(111,121,97,0);color:rgba(255,255,255,.5)}.theme-pda-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--transparent:hover,.theme-pda-retro .Button--color--transparent:focus{background-color:#939c85;color:#fff}.theme-pda-retro .Button--disabled{background-color:#505050!important}.theme-pda-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-pda-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--selected:hover,.theme-pda-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-pda-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-pda-retro .Button--flex--fluid{width:100%}.theme-pda-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-pda-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-pda-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-pda-retro .Button__content{display:block;align-self:stretch}.theme-pda-retro .Button__textMargin{margin-left:.4rem}.theme-pda-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-pda-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-pda-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-pda-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-pda-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-pda-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--black{border-color:#000!important}.theme-pda-retro .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--white{border-color:#d9d9d9!important}.theme-pda-retro .ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.theme-pda-retro .ProgressBar--color--red{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--orange{border-color:#d95e0c!important}.theme-pda-retro .ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.theme-pda-retro .ProgressBar--color--yellow{border-color:#d9b804!important}.theme-pda-retro .ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.theme-pda-retro .ProgressBar--color--olive{border-color:#9aad14!important}.theme-pda-retro .ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.theme-pda-retro .ProgressBar--color--green{border-color:#1b9638!important}.theme-pda-retro .ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.theme-pda-retro .ProgressBar--color--teal{border-color:#009a93!important}.theme-pda-retro .ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.theme-pda-retro .ProgressBar--color--blue{border-color:#1c71b1!important}.theme-pda-retro .ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.theme-pda-retro .ProgressBar--color--violet{border-color:#552dab!important}.theme-pda-retro .ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.theme-pda-retro .ProgressBar--color--purple{border-color:#8b2baa!important}.theme-pda-retro .ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.theme-pda-retro .ProgressBar--color--pink{border-color:#cf2082!important}.theme-pda-retro .ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.theme-pda-retro .ProgressBar--color--brown{border-color:#8c5836!important}.theme-pda-retro .ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.theme-pda-retro .ProgressBar--color--grey{border-color:#646464!important}.theme-pda-retro .ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.theme-pda-retro .ProgressBar--color--light-grey{border-color:#919191!important}.theme-pda-retro .ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.theme-pda-retro .ProgressBar--color--good{border-color:#4d9121!important}.theme-pda-retro .ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.theme-pda-retro .ProgressBar--color--average{border-color:#000!important}.theme-pda-retro .ProgressBar--color--average .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--bad{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--label{border-color:#000!important}.theme-pda-retro .ProgressBar--color--label .ProgressBar__fill{background-color:#000}.theme-pda-retro .Section{position:relative;margin-bottom:.5em;background-color:#646d57;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-pda-retro .Section:last-child{margin-bottom:0}.theme-pda-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-pda-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-pda-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-pda-retro .Section__rest{position:relative}.theme-pda-retro .Section__content{padding:.66em .5em}.theme-pda-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-pda-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-pda-retro .Section--fill>.Section__rest{flex-grow:1}.theme-pda-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-pda-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-pda-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-pda-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-pda-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-pda-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-pda-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-pda-retro .Section .Section:first-child{margin-top:-.5em}.theme-pda-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-pda-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-pda-retro .Section--flex{display:flex;flex-flow:column}.theme-pda-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-pda-retro .Section__content--noTopPadding{padding-top:0}.theme-pda-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent,.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent{text-align:right;background-color:#9faa91}.theme-pda-retro .TinderMessage_First_Sent{border-radius:10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{text-align:left;background-color:#b8b37b}.theme-pda-retro .TinderMessage_First_Received{border-radius:10px 10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.theme-pda-retro .ClassicMessage_Sent,.theme-pda-retro .ClassicMessage_Received{word-break:break-all}.theme-pda-retro .ClassicMessage_Sent{color:#9faa91}.theme-pda-retro .ClassicMessage_Received{color:#b8b37b}.theme-pda-retro .Layout,.theme-pda-retro .Layout *{scrollbar-base-color:#535b49;scrollbar-face-color:#7e896e;scrollbar-3dlight-color:#6f7961;scrollbar-highlight-color:#6f7961;scrollbar-track-color:#535b49;scrollbar-arrow-color:#b7beae;scrollbar-shadow-color:#7e896e}.theme-pda-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-pda-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-pda-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-pda-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#6f7961;background-image:linear-gradient(to bottom,#6f7961,#6f7961)}.theme-pda-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-pda-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-pda-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-pda-retro .Window__contentPadding:after{height:0}.theme-pda-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-pda-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(147,156,133,.25);pointer-events:none}.theme-pda-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-pda-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-pda-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-pda-retro .TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-pda-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.theme-pda-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-pda-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-pda-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-pda-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-pda-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-pda-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-pda-retro .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-pda-retro .Button{color:#161613;background-color:#565d4b;border:1px solid #000}.theme-pda-retro .Layout__content{background-image:none}.theme-pda-retro .LabeledList__label{font-weight:700}.theme-pda-retro .Tooltip:after{color:#fff}.theme-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-retro .Button .fa,.theme-retro .Button .fas,.theme-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .fas,.theme-retro .Button--hasContent .far{margin-right:.25em}.theme-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--circular{border-radius:50%}.theme-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:hover,.theme-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:hover,.theme-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:hover,.theme-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:rgba(255,255,255,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:hover,.theme-retro .Button--color--transparent:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:hover,.theme-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-retro .Button--flex--fluid{width:100%}.theme-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-retro .Button__content{display:block;align-self:stretch}.theme-retro .Button__textMargin{margin-left:.4rem}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:.5em;background-color:#9b9987;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-retro .Section__rest{position:relative}.theme-retro .Section__content{padding:.66em .5em}.theme-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-retro .Section--fill>.Section__rest{flex-grow:1}.theme-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-retro .Section .Section:first-child{margin-top:-.5em}.theme-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-retro .Layout,.theme-retro .Layout *{scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(to bottom,#e8e4c9,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-retro .Window__contentPadding:after{height:0}.theme-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#585337;transition:color .25s ease-out,background-color .25s ease-out}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-retro .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-retro .Button{font-family:monospace;color:#161613;border:.1666666667em outset #e8e4c9;outline:.0833333333em solid #161613}.theme-retro .Layout__content{background-image:none}.theme-syndicate .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-syndicate .Button:last-child{margin-right:0;margin-bottom:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .fas,.theme-syndicate .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-syndicate .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .fas,.theme-syndicate .Button--hasContent .far{margin-right:.25em}.theme-syndicate .Button--hasContent.Button--iconPosition--right .fa,.theme-syndicate .Button--hasContent.Button--iconPosition--right .fas,.theme-syndicate .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-syndicate .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--circular{border-radius:50%}.theme-syndicate .Button--compact{padding:0 .25em;line-height:1.333em}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:hover,.theme-syndicate .Button--color--default:focus{background-color:#595;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:hover,.theme-syndicate .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:hover,.theme-syndicate .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:rgba(255,255,255,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:hover,.theme-syndicate .Button--color--transparent:focus{background-color:#751616;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:hover,.theme-syndicate .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-syndicate .Button--flex{display:inline-flex;flex-direction:column}.theme-syndicate .Button--flex--fluid{width:100%}.theme-syndicate .Button--verticalAlignContent--top{justify-content:flex-start}.theme-syndicate .Button--verticalAlignContent--middle{justify-content:center}.theme-syndicate .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-syndicate .Button__content{display:block;align-self:stretch}.theme-syndicate .Button__textMargin{margin-left:.4rem}.theme-syndicate .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-syndicate .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-syndicate .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-syndicate .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-syndicate .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-syndicate .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#87ce87;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:.5em}.theme-syndicate .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #87ce87;background-color:#87ce87}.theme-syndicate .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-syndicate .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-syndicate .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-syndicate .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:.0833333333em solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:.5em;background-color:#390101;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #397439}.theme-syndicate .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-syndicate .Section__rest{position:relative}.theme-syndicate .Section__content{padding:.66em .5em}.theme-syndicate .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-syndicate .Section--fill{display:flex;flex-direction:column;height:100%}.theme-syndicate .Section--fill>.Section__rest{flex-grow:1}.theme-syndicate .Section--fill>.Section__rest>.Section__content{height:100%}.theme-syndicate .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-syndicate .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-syndicate .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-syndicate .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-syndicate .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-syndicate .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-syndicate .Section .Section:first-child{margin-top:-.5em}.theme-syndicate .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-syndicate .Section .Section .Section .Section__titleText{font-size:1em}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-syndicate .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#4a0202;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-syndicate .Layout,.theme-syndicate .Layout *{scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(to bottom,#730303,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-syndicate .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-syndicate .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-syndicate .Window__contentPadding:after{height:0}.theme-syndicate .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-syndicate .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#910101;transition:color .25s ease-out,background-color .25s ease-out}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-syndicate .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-syndicate .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-syndicate .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-syndicate .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCAyMDAgMjg5Ljc0MiIgb3BhY2l0eT0iLjMzIj4KICA8cGF0aCBkPSJtIDkzLjUzNzY3NywwIGMgLTE4LjExMzEyNSwwIC0zNC4yMjAxMzMsMy4xMTE2NCAtNDguMzIzNDg0LDkuMzM0MzcgLTEzLjk2NTA5Miw2LjIyMTY3IC0yNC42MTI0NDIsMTUuMDcxMTQgLTMxLjk0MDY1MSwyNi41NDcxIC03LjE4OTkzOTgsMTEuMzM3ODkgLTEwLjMwMTIyNjYsMjQuNzQ5MTEgLTEwLjMwMTIyNjYsNDAuMjM0NzggMCwxMC42NDY2MiAyLjcyNTAwMjYsMjAuNDY0NjUgOC4xNzUxMTE2LDI5LjQ1MjU4IDUuNjE1Mjc3LDguOTg2ODYgMTQuMDM4Mjc3LDE3LjM1MjA0IDI1LjI2ODgyMSwyNS4wOTQzNiAxMS4yMzA1NDQsNy42MDUzMSAyNi41MDc0MjEsMTUuNDE4MzUgNDUuODMwNTE0LDIzLjQzNzgyIDE5Ljk4Mzc0OCw4LjI5NTU3IDM0Ljg0ODg0OCwxNS41NTQ3MSA0NC41OTI5OTgsMjEuNzc2MzggOS43NDQxNCw2LjIyMjczIDE2Ljc2MTcsMTIuODU4NSAyMS4wNTU3MiwxOS45MDk1MSA0LjI5NDA0LDcuMDUyMDggNi40NDE5MywxNS43NjQwOCA2LjQ0MTkzLDI2LjEzNDU5IDAsMTYuMTc3MDIgLTUuMjAxOTYsMjguNDgyMjIgLTE1LjYwNjczLDM2LjkxNjgyIC0xMC4yMzk2LDguNDM0NyAtMjUuMDIyMDMsMTIuNjUyMyAtNDQuMzQ1MTY5LDEyLjY1MjMgLTE0LjAzODE3MSwwIC0yNS41MTUyNDcsLTEuNjU5NCAtMzQuNDMzNjE4LC00Ljk3NzcgLTguOTE4MzcsLTMuNDU2NiAtMTYuMTg1NTcyLC04LjcxMTMgLTIxLjgwMDgzOSwtMTUuNzYzMyAtNS42MTUyNzcsLTcuMDUyMSAtMTAuMDc0Nzk1LC0xNi42NjA4OCAtMTMuMzc3ODk5LC0yOC44MjgxMiBsIC0yNC43NzMxNjI2MjkzOTQ1LDAgMCw1Ni44MjYzMiBDIDMzLjg1Njc2OSwyODYuMDc2MDEgNjMuNzQ5MDQsMjg5Ljc0MjAxIDg5LjY3ODM4MywyODkuNzQyMDEgYyAxNi4wMjAwMjcsMCAzMC43MTk3ODcsLTEuMzgyNyA0NC4wOTczMzcsLTQuMTQ3OSAxMy41NDI3MiwtMi45MDQzIDI1LjEwNDEsLTcuNDY3NiAzNC42ODMwOSwtMTMuNjg5MyA5Ljc0NDEzLC02LjM1OTcgMTcuMzQwNDIsLTE0LjUxOTUgMjIuNzkwNTIsLTI0LjQ3NDggNS40NTAxLC0xMC4wOTMzMiA4LjE3NTExLC0yMi4zOTk1OSA4LjE3NTExLC0zNi45MTY4MiAwLC0xMi45OTc2NCAtMy4zMDIxLC0yNC4zMzUzOSAtOS45MDgyOSwtMzQuMDE0NiAtNi40NDEwNSwtOS44MTcyNSAtMTUuNTI1NDUsLTE4LjUyNzA3IC0yNy4yNTE0NiwtMjYuMTMxMzMgLTExLjU2MDg1LC03LjYwNDI3IC0yNy45MTA4MywtMTUuODMxNDIgLTQ5LjA1MDY2LC0yNC42ODAyMiAtMTcuNTA2NDQsLTcuMTkwMTIgLTMwLjcxOTY2OCwtMTMuNjg5NDggLTM5LjYzODAzOCwtMTkuNDk3MDEgLTguOTE4MzcxLC01LjgwNzUyIC0xOC42MDc0NzQsLTEyLjQzNDA5IC0yNC4wOTY1MjQsLTE4Ljg3NDE3IC01LjQyNjA0MywtNi4zNjYxNiAtOS42NTg4MjYsLTE1LjA3MDAzIC05LjY1ODgyNiwtMjQuODg3MjkgMCwtOS4yNjQwMSAyLjA3NTQxNCwtMTcuMjEzNDUgNi4yMjM0NTQsLTIzLjg1MDMzIDExLjA5ODI5OCwtMTQuMzk3NDggNDEuMjg2NjM4LC0xLjc5NTA3IDQ1LjA3NTYwOSwyNC4zNDc2MiA0LjgzOTM5Miw2Ljc3NDkxIDguODQ5MzUsMTYuMjQ3MjkgMTIuMDI5NTE1LDI4LjQxNTYgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTQuNDc4MjUsLTUuOTI0NDggLTkuOTU0ODgsLTEwLjYzMjIyIC0xNS45MDgzNywtMTQuMzc0MTEgMS42NDA1NSwwLjQ3OTA1IDMuMTkwMzksMS4wMjM3NiA0LjYzODY1LDEuNjQwMjQgNi40OTg2MSwyLjYyNjA3IDEyLjE2NzkzLDcuMzI3NDcgMTcuMDA3MywxNC4xMDM0NSA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNSwxNi4yNDU2NyAxMi4wMjk1MiwyOC40MTM5NyAwLDAgOC40ODEyOCwtMC4xMjg5NCA4LjQ4OTc4LC0wLjAwMiAwLjQxNzc2LDYuNDE0OTQgLTEuNzUzMzksOS40NTI4NiAtNC4xMjM0MiwxMi41NjEwNCAtMi40MTc0LDMuMTY5NzggLTUuMTQ0ODYsNi43ODk3MyAtNC4wMDI3OCwxMy4wMDI5IDEuNTA3ODYsOC4yMDMxOCAxMC4xODM1NCwxMC41OTY0MiAxNC42MjE5NCw5LjMxMTU0IC0zLjMxODQyLC0wLjQ5OTExIC01LjMxODU1LC0xLjc0OTQ4IC01LjMxODU1LC0xLjc0OTQ4IDAsMCAxLjg3NjQ2LDAuOTk4NjggNS42NTExNywtMS4zNTk4MSAtMy4yNzY5NSwwLjk1NTcxIC0xMC43MDUyOSwtMC43OTczOCAtMTEuODAxMjUsLTYuNzYzMTMgLTAuOTU3NTIsLTUuMjA4NjEgMC45NDY1NCwtNy4yOTUxNCAzLjQwMTEzLC0xMC41MTQ4MiAyLjQ1NDYyLC0zLjIxOTY4IDUuMjg0MjYsLTYuOTU4MzEgNC42ODQzLC0xNC40ODgyNCBsIDAuMDAzLDAuMDAyIDguOTI2NzYsMCAwLC01NS45OTk2NyBjIC0xNS4wNzEyNSwtMy44NzE2OCAtMjcuNjUzMTQsLTYuMzYwNDIgLTM3Ljc0NjcxLC03LjQ2NTg2IC05Ljk1NTMxLC0xLjEwNzU1IC0yMC4xODgyMywtMS42NTk4MSAtMzAuNjk2NjEzLC0xLjY1OTgxIHogbSA3MC4zMjE2MDMsMTcuMzA4OTMgMC4yMzgwNSw0MC4zMDQ5IGMgMS4zMTgwOCwxLjIyNjY2IDIuNDM5NjUsMi4yNzgxNSAzLjM0MDgxLDMuMTA2MDIgNC44MzkzOSw2Ljc3NDkxIDguODQ5MzQsMTYuMjQ1NjYgMTIuMDI5NTEsMjguNDEzOTcgbCAyMC41MzIzNCwwIDAsLTU1Ljk5OTY3IGMgLTYuNjc3MzEsLTQuNTkzODEgLTE5LjgzNjQzLC0xMC40NzMwOSAtMzYuMTQwNzEsLTE1LjgyNTIyIHogbSAtMjguMTIwNDksNS42MDU1MSA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM3LC02LjQ2Njk3IC0xMy44NDY3OCwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NzA1LDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiBtIDE1LjIyMTk1LDI0LjAwODQ4IDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzgsLTYuNDY2OTcgLTEzLjg0Njc5LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDQsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gLTk5LjExMzg0LDIuMjA3NjQgOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzODIsLTYuNDY2OTcgLTEzLjg0Njc4MiwtOS43MTcyNiAtOC41NjQ3OSwtMTcuNzE2NTUgeiBtIDIyLjc5NTQyLDAgYyAyLjc3MTUsNy45OTkyOSAxLjc4NzQxLDExLjI0OTU4IC00LjQ5MzU0LDE3LjcxNjU1IGwgNC40OTM1NCwtMTcuNzE2NTUgeiIgLz4KPC9zdmc+CjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPgo8IS0tIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LXNhLzQuMC8gLS0+Cg==)}.theme-wizard .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-wizard .Button:last-child{margin-right:0;margin-bottom:0}.theme-wizard .Button .fa,.theme-wizard .Button .fas,.theme-wizard .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-wizard .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-wizard .Button--hasContent .fa,.theme-wizard .Button--hasContent .fas,.theme-wizard .Button--hasContent .far{margin-right:.25em}.theme-wizard .Button--hasContent.Button--iconPosition--right .fa,.theme-wizard .Button--hasContent.Button--iconPosition--right .fas,.theme-wizard .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-wizard .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-wizard .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-wizard .Button--circular{border-radius:50%}.theme-wizard .Button--compact{padding:0 .25em;line-height:1.333em}.theme-wizard .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#1596b6;color:#fff}.theme-wizard .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--default:hover,.theme-wizard .Button--color--default:focus{background-color:#30bde0;color:#fff}.theme-wizard .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-wizard .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--caution:hover,.theme-wizard .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-wizard .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#b30707;color:#fff}.theme-wizard .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--danger:hover,.theme-wizard .Button--color--danger:focus{background-color:#e11b1b;color:#fff}.theme-wizard .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#213e4e;color:#fff;background-color:rgba(33,62,78,0);color:rgba(255,255,255,.5)}.theme-wizard .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--transparent:hover,.theme-wizard .Button--color--transparent:focus{background-color:#395b6d;color:#fff}.theme-wizard .Button--disabled{background-color:#02426d!important}.theme-wizard .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-wizard .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--selected:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--selected:hover,.theme-wizard .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-wizard .Button--flex{display:inline-flex;flex-direction:column}.theme-wizard .Button--flex--fluid{width:100%}.theme-wizard .Button--verticalAlignContent--top{justify-content:flex-start}.theme-wizard .Button--verticalAlignContent--middle{justify-content:center}.theme-wizard .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-wizard .Button__content{display:block;align-self:stretch}.theme-wizard .Button__textMargin{margin-left:.4rem}.theme-wizard .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-wizard .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-wizard .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-wizard .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-wizard .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-wizard .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-wizard .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-wizard .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-wizard .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-wizard .Input--fluid{display:block;width:auto}.theme-wizard .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-wizard .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-wizard .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-wizard .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-wizard .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-wizard .NumberInput--fluid{display:block}.theme-wizard .NumberInput__content{margin-left:.5em}.theme-wizard .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-wizard .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-wizard .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-wizard .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-wizard .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-wizard .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-wizard .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-wizard .ProgressBar--color--default{border:.0833333333em solid #12809b}.theme-wizard .ProgressBar--color--default .ProgressBar__fill{background-color:#12809b}.theme-wizard .Section{position:relative;margin-bottom:.5em;background-color:#162a34;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-wizard .Section:last-child{margin-bottom:0}.theme-wizard .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #1596b6}.theme-wizard .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-wizard .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-wizard .Section__rest{position:relative}.theme-wizard .Section__content{padding:.66em .5em}.theme-wizard .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-wizard .Section--fill{display:flex;flex-direction:column;height:100%}.theme-wizard .Section--fill>.Section__rest{flex-grow:1}.theme-wizard .Section--fill>.Section__rest>.Section__content{height:100%}.theme-wizard .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-wizard .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-wizard .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-wizard .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-wizard .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-wizard .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-wizard .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-wizard .Section .Section:first-child{margin-top:-.5em}.theme-wizard .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-wizard .Section .Section .Section .Section__titleText{font-size:1em}.theme-wizard .Section--flex{display:flex;flex-flow:column}.theme-wizard .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-wizard .Section__content--noTopPadding{padding-top:0}.theme-wizard .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-wizard .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#2da848;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-wizard .Layout,.theme-wizard .Layout *{scrollbar-base-color:#192f3b;scrollbar-face-color:#2d546a;scrollbar-3dlight-color:#213e4e;scrollbar-highlight-color:#213e4e;scrollbar-track-color:#192f3b;scrollbar-arrow-color:#73a7c4;scrollbar-shadow-color:#2d546a}.theme-wizard .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-wizard .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-wizard .Layout__content--flexRow{display:flex;flex-flow:row}.theme-wizard .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-wizard .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#213e4e;background-image:linear-gradient(to bottom,#2a4f64,#182d38)}.theme-wizard .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-wizard .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-wizard .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-wizard .Window__contentPadding:after{height:0}.theme-wizard .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-wizard .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(57,91,109,.25);pointer-events:none}.theme-wizard .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-wizard .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-wizard .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-wizard .TitleBar{background-color:#1b9e26;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-wizard .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1b9e26;transition:color .25s ease-out,background-color .25s ease-out}.theme-wizard .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-wizard .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-wizard .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-wizard .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-wizard .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-wizard .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-wizard .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-wizard .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJtZXRlb3IiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1tZXRlb3IgZmEtdy0xNiIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUxMS4zMjgsMjAuODAyN2MtMTEuNjA3NTksMzguNzAyNjQtMzQuMzA3MjQsMTExLjcwMTczLTYxLjMwMzExLDE4Ny43MDA3Nyw2Ljk5ODkzLDIuMDkzNzIsMTMuNDA0Miw0LDE4LjYwNjUzLDUuNTkzNjhhMTYuMDYxNTgsMTYuMDYxNTgsMCwwLDEsOS40OTg1NCwyMi45MDZjLTIyLjEwNiw0Mi4yOTYzNS04Mi42OTA0NywxNTIuNzk1LTE0Mi40NzgxOSwyMTQuNDAzNTYtLjk5OTg0LDEuMDkzNzMtMS45OTk2OSwyLjUtMi45OTk1NCwzLjQ5OTk1QTE5NC44MzA0NiwxOTQuODMwNDYsMCwxLDEsNTcuMDg1LDE3OS40MTAwOWMuOTk5ODUtMSwyLjQwNTg4LTIsMy40OTk0Ny0zLDYxLjU5OTk0LTU5LjkwNTQ5LDE3MS45NzM2Ny0xMjAuNDA0NzMsMjE0LjM3MzQzLTE0Mi40OTgyYTE2LjA1OCwxNi4wNTgsMCwwLDEsMjIuOTAyNzQsOS40OTk4OGMxLjU5MzUxLDUuMDkzNjgsMy40OTk0NywxMS41OTM2LDUuNTkyOSwxOC41OTM1MUMzNzkuMzQ4MTgsMzUuMDA1NjUsNDUyLjQzMDc0LDEyLjMwMjgxLDQ5MS4xMjc5NC43MDkyMUExNi4xODMyNSwxNi4xODMyNSwwLDAsMSw1MTEuMzI4LDIwLjgwMjdaTTMxOS45NTEsMzIwLjAwMjA3QTEyNy45ODA0MSwxMjcuOTgwNDEsMCwxLDAsMTkxLjk3MDYxLDQ0OC4wMDA0NiwxMjcuOTc1NzMsMTI3Ljk3NTczLDAsMCwwLDMxOS45NTEsMzIwLjAwMjA3Wm0tMTI3Ljk4MDQxLTMxLjk5OTZhMzEuOTk1MSwzMS45OTUxLDAsMSwxLTMxLjk5NTEtMzEuOTk5NkEzMS45NTksMzEuOTU5LDAsMCwxLDE5MS45NzA2MSwyODguMDAyNDdabTMxLjk5NTEsNzkuOTk5YTE1Ljk5NzU1LDE1Ljk5NzU1LDAsMSwxLTE1Ljk5NzU1LTE1Ljk5OThBMTYuMDQ5NzUsMTYuMDQ5NzUsMCwwLDEsMjIzLjk2NTcxLDM2OC4wMDE0N1oiPjwvcGF0aD48L3N2Zz4KPCEtLSBUaGlzIHdvcmsgaXMgbGljZW5zZWQgdW5kZXIgYSBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgNC4wIEludGVybmF0aW9uYWwgTGljZW5zZS4gLS0+CjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4=)}.theme-abstract .TitleBar__statusIcon{display:none}.theme-abstract .Layout__content{background-image:none}.theme-abstract .TitleBar__title{left:12px} +*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}.Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgNDI1IDIwMCIgb3BhY2l0eT0iLjMzIj4NCiAgPHBhdGggZD0ibSAxNzguMDAzOTksMC4wMzg2OSAtNzEuMjAzOTMsMCBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTYuNzYxMzQsNi4wMjU1NSBsIDAsMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM0LDYuMDI1NTQgbCA1My4xMDcyLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xMDEuNTQ0MDE4IDcyLjIxNjI4LDEwNC42OTkzOTggYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDUuNzYwMTUsMi44NzAxNiBsIDczLjU1NDg3LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIDYuNzYxMzUsLTYuMDI1NTQgbCAwLC0xODcuODcxNDcgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM1LC02LjAyNTU1IGwgLTU0LjcxNjQ0LDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTMzLDYuMDI1NTUgbCAwLDEwMi42MTkzNSBMIDE4My43NjQxMywyLjkwODg2IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNS43NjAxNCwtMi44NzAxNyB6IiAvPg0KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPg0KICA8cGF0aCBkPSJtIDQyMC4xNTUzNSwxNzcuODkxMTkgYSAxMy40MTIwMzgsMTIuNTAxODQyIDAgMCAxIC04LjYzMjk1LDIyLjA2OTUxIGwgLTY2LjExODMyLDAgYSA1LjM2NDgxNTIsNS4wMDA3MzcgMCAwIDEgLTUuMzY0ODIsLTUuMDAwNzQgbCAwLC03OS44NzkzMSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==);background-size:70%;background-position:center;background-repeat:no-repeat}.theme-abductor .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-abductor .Button:last-child{margin-right:0;margin-bottom:0}.theme-abductor .Button .fa,.theme-abductor .Button .fas,.theme-abductor .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-abductor .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-abductor .Button--hasContent .fa,.theme-abductor .Button--hasContent .fas,.theme-abductor .Button--hasContent .far{margin-right:.25em}.theme-abductor .Button--hasContent.Button--iconPosition--right .fa,.theme-abductor .Button--hasContent.Button--iconPosition--right .fas,.theme-abductor .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-abductor .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-abductor .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-abductor .Button--circular{border-radius:50%}.theme-abductor .Button--compact{padding:0 .25em;line-height:1.333em}.theme-abductor .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#ad2350;color:#fff}.theme-abductor .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--default:hover,.theme-abductor .Button--color--default:focus{background-color:#d34372;color:#fff}.theme-abductor .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-abductor .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--caution:hover,.theme-abductor .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-abductor .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-abductor .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--danger:hover,.theme-abductor .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-abductor .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#2a314a;color:#fff;background-color:rgba(42,49,74,0);color:rgba(255,255,255,.5)}.theme-abductor .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--color--transparent:hover,.theme-abductor .Button--color--transparent:focus{background-color:#444c68;color:#fff}.theme-abductor .Button--disabled{background-color:#363636!important}.theme-abductor .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-abductor .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-abductor .Button--selected:focus{transition:color .1s,background-color .1s}.theme-abductor .Button--selected:hover,.theme-abductor .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-abductor .Button--flex{display:inline-flex;flex-direction:column}.theme-abductor .Button--flex--fluid{width:100%}.theme-abductor .Button--verticalAlignContent--top{justify-content:flex-start}.theme-abductor .Button--verticalAlignContent--middle{justify-content:center}.theme-abductor .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-abductor .Button__content{display:block;align-self:stretch}.theme-abductor .Button__textMargin{margin-left:.4rem}.theme-abductor .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-abductor .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-abductor .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-abductor .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-abductor .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-abductor .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-abductor .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-abductor .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-abductor .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-abductor .Input--fluid{display:block;width:auto}.theme-abductor .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-abductor .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-abductor .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-abductor .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-abductor .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-abductor .NumberInput--fluid{display:block}.theme-abductor .NumberInput__content{margin-left:.5em}.theme-abductor .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-abductor .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-abductor .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-abductor .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-abductor .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-abductor .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-abductor .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-abductor .ProgressBar--color--default{border:.0833333333em solid #931e44}.theme-abductor .ProgressBar--color--default .ProgressBar__fill{background-color:#931e44}.theme-abductor .Section{position:relative;margin-bottom:.5em;background-color:#1c2132;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-abductor .Section:last-child{margin-bottom:0}.theme-abductor .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ad2350}.theme-abductor .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-abductor .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-abductor .Section__rest{position:relative}.theme-abductor .Section__content{padding:.66em .5em}.theme-abductor .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-abductor .Section--fill{display:flex;flex-direction:column;height:100%}.theme-abductor .Section--fill>.Section__rest{flex-grow:1}.theme-abductor .Section--fill>.Section__rest>.Section__content{height:100%}.theme-abductor .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-abductor .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-abductor .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-abductor .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-abductor .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-abductor .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-abductor .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-abductor .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-abductor .Section .Section:first-child{margin-top:-.5em}.theme-abductor .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-abductor .Section .Section .Section .Section__titleText{font-size:1em}.theme-abductor .Section--flex{display:flex;flex-flow:column}.theme-abductor .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-abductor .Section__content--noTopPadding{padding-top:0}.theme-abductor .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-abductor .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#a82d55;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-abductor .Layout,.theme-abductor .Layout *{scrollbar-base-color:#202538;scrollbar-face-color:#384263;scrollbar-3dlight-color:#2a314a;scrollbar-highlight-color:#2a314a;scrollbar-track-color:#202538;scrollbar-arrow-color:#818db8;scrollbar-shadow-color:#384263}.theme-abductor .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-abductor .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-abductor .Layout__content--flexRow{display:flex;flex-flow:row}.theme-abductor .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-abductor .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#2a314a;background-image:linear-gradient(to bottom,#353e5e,#1f2436)}.theme-abductor .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-abductor .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-abductor .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-abductor .Window__contentPadding:after{height:0}.theme-abductor .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-abductor .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(68,76,104,.25);pointer-events:none}.theme-abductor .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-abductor .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-abductor .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-abductor .TitleBar{background-color:#9e1b46;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-abductor .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#9e1b46;transition:color .25s ease-out,background-color .25s ease-out}.theme-abductor .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-abductor .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-abductor .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-abductor .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-abductor .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-abductor .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-abductor .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-abductor .Layout__content{background-image:none}.theme-cardtable .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-cardtable .Button:last-child{margin-right:0;margin-bottom:0}.theme-cardtable .Button .fa,.theme-cardtable .Button .fas,.theme-cardtable .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-cardtable .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-cardtable .Button--hasContent .fa,.theme-cardtable .Button--hasContent .fas,.theme-cardtable .Button--hasContent .far{margin-right:.25em}.theme-cardtable .Button--hasContent.Button--iconPosition--right .fa,.theme-cardtable .Button--hasContent.Button--iconPosition--right .fas,.theme-cardtable .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-cardtable .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-cardtable .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-cardtable .Button--circular{border-radius:50%}.theme-cardtable .Button--compact{padding:0 .25em;line-height:1.333em}.theme-cardtable .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff}.theme-cardtable .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--default:hover,.theme-cardtable .Button--color--default:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-cardtable .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--caution:hover,.theme-cardtable .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-cardtable .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-cardtable .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--danger:hover,.theme-cardtable .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-cardtable .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#117039;color:#fff;background-color:rgba(17,112,57,0);color:rgba(255,255,255,.5)}.theme-cardtable .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--color--transparent:hover,.theme-cardtable .Button--color--transparent:focus{background-color:#279455;color:#fff}.theme-cardtable .Button--disabled{background-color:#363636!important}.theme-cardtable .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-cardtable .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-cardtable .Button--selected:focus{transition:color .1s,background-color .1s}.theme-cardtable .Button--selected:hover,.theme-cardtable .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-cardtable .Button--flex{display:inline-flex;flex-direction:column}.theme-cardtable .Button--flex--fluid{width:100%}.theme-cardtable .Button--verticalAlignContent--top{justify-content:flex-start}.theme-cardtable .Button--verticalAlignContent--middle{justify-content:center}.theme-cardtable .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-cardtable .Button__content{display:block;align-self:stretch}.theme-cardtable .Button__textMargin{margin-left:.4rem}.theme-cardtable .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #88bfff;border:.0833333333em solid rgba(136,191,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-cardtable .Input--fluid{display:block;width:auto}.theme-cardtable .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-cardtable .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-cardtable .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-cardtable .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-cardtable .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #fff;border:.0833333333em solid rgba(255,255,255,.75);border-radius:0;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-cardtable .NumberInput--fluid{display:block}.theme-cardtable .NumberInput__content{margin-left:.5em}.theme-cardtable .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-cardtable .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #fff;background-color:#fff}.theme-cardtable .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-cardtable .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-cardtable .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-cardtable .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-cardtable .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-cardtable .ProgressBar--color--default{border:.0833333333em solid #000}.theme-cardtable .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-cardtable .Section{position:relative;margin-bottom:.5em;background-color:#0b4b26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-cardtable .Section:last-child{margin-bottom:0}.theme-cardtable .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-cardtable .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-cardtable .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-cardtable .Section__rest{position:relative}.theme-cardtable .Section__content{padding:.66em .5em}.theme-cardtable .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-cardtable .Section--fill{display:flex;flex-direction:column;height:100%}.theme-cardtable .Section--fill>.Section__rest{flex-grow:1}.theme-cardtable .Section--fill>.Section__rest>.Section__content{height:100%}.theme-cardtable .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-cardtable .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-cardtable .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-cardtable .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-cardtable .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-cardtable .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-cardtable .Section .Section:first-child{margin-top:-.5em}.theme-cardtable .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-cardtable .Section .Section .Section .Section__titleText{font-size:1em}.theme-cardtable .Section--flex{display:flex;flex-flow:column}.theme-cardtable .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-cardtable .Section__content--noTopPadding{padding-top:0}.theme-cardtable .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-cardtable .Layout,.theme-cardtable .Layout *{scrollbar-base-color:#0d542b;scrollbar-face-color:#16914a;scrollbar-3dlight-color:#117039;scrollbar-highlight-color:#117039;scrollbar-track-color:#0d542b;scrollbar-arrow-color:#5ae695;scrollbar-shadow-color:#16914a}.theme-cardtable .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-cardtable .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-cardtable .Layout__content--flexRow{display:flex;flex-flow:row}.theme-cardtable .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-cardtable .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#117039;background-image:linear-gradient(to bottom,#117039,#117039)}.theme-cardtable .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-cardtable .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-cardtable .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-cardtable .Window__contentPadding:after{height:0}.theme-cardtable .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-cardtable .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(39,148,85,.25);pointer-events:none}.theme-cardtable .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-cardtable .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-cardtable .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-cardtable .TitleBar{background-color:#381608;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-cardtable .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#381608;transition:color .25s ease-out,background-color .25s ease-out}.theme-cardtable .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-cardtable .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-cardtable .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-cardtable .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-cardtable .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-cardtable .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-cardtable .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-cardtable .Button{border:.1666666667em solid #fff}.theme-hackerman .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-hackerman .Button:last-child{margin-right:0;margin-bottom:0}.theme-hackerman .Button .fa,.theme-hackerman .Button .fas,.theme-hackerman .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-hackerman .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-hackerman .Button--hasContent .fa,.theme-hackerman .Button--hasContent .fas,.theme-hackerman .Button--hasContent .far{margin-right:.25em}.theme-hackerman .Button--hasContent.Button--iconPosition--right .fa,.theme-hackerman .Button--hasContent.Button--iconPosition--right .fas,.theme-hackerman .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-hackerman .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-hackerman .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-hackerman .Button--circular{border-radius:50%}.theme-hackerman .Button--compact{padding:0 .25em;line-height:1.333em}.theme-hackerman .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--default:hover,.theme-hackerman .Button--color--default:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-hackerman .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--caution:hover,.theme-hackerman .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-hackerman .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-hackerman .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--danger:hover,.theme-hackerman .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-hackerman .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#121b12;color:#fff;background-color:rgba(18,27,18,0);color:rgba(255,255,255,.5)}.theme-hackerman .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--color--transparent:hover,.theme-hackerman .Button--color--transparent:focus{background-color:#283228;color:#fff}.theme-hackerman .Button--disabled{background-color:#4a6a4a!important}.theme-hackerman .Button--selected{transition:color 50ms,background-color 50ms;background-color:#0f0;color:#000}.theme-hackerman .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-hackerman .Button--selected:focus{transition:color .1s,background-color .1s}.theme-hackerman .Button--selected:hover,.theme-hackerman .Button--selected:focus{background-color:#4dff4d;color:#000}.theme-hackerman .Button--flex{display:inline-flex;flex-direction:column}.theme-hackerman .Button--flex--fluid{width:100%}.theme-hackerman .Button--verticalAlignContent--top{justify-content:flex-start}.theme-hackerman .Button--verticalAlignContent--middle{justify-content:center}.theme-hackerman .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-hackerman .Button__content{display:block;align-self:stretch}.theme-hackerman .Button__textMargin{margin-left:.4rem}.theme-hackerman .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid lime;border:.0833333333em solid rgba(0,255,0,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-hackerman .Input--fluid{display:block;width:auto}.theme-hackerman .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-hackerman .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-hackerman .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-hackerman .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-hackerman .Modal{background-color:#121b12;max-width:calc(100% - 1rem);padding:1rem}.theme-hackerman .Section{position:relative;margin-bottom:.5em;background-color:#0c120c;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-hackerman .Section:last-child{margin-bottom:0}.theme-hackerman .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid lime}.theme-hackerman .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-hackerman .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-hackerman .Section__rest{position:relative}.theme-hackerman .Section__content{padding:.66em .5em}.theme-hackerman .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-hackerman .Section--fill{display:flex;flex-direction:column;height:100%}.theme-hackerman .Section--fill>.Section__rest{flex-grow:1}.theme-hackerman .Section--fill>.Section__rest>.Section__content{height:100%}.theme-hackerman .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-hackerman .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-hackerman .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-hackerman .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-hackerman .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-hackerman .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-hackerman .Section .Section:first-child{margin-top:-.5em}.theme-hackerman .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-hackerman .Section .Section .Section .Section__titleText{font-size:1em}.theme-hackerman .Section--flex{display:flex;flex-flow:column}.theme-hackerman .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-hackerman .Section__content--noTopPadding{padding-top:0}.theme-hackerman .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-hackerman .Layout,.theme-hackerman .Layout *{scrollbar-base-color:#0e140e;scrollbar-face-color:#253725;scrollbar-3dlight-color:#121b12;scrollbar-highlight-color:#121b12;scrollbar-track-color:#0e140e;scrollbar-arrow-color:#74a274;scrollbar-shadow-color:#253725}.theme-hackerman .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-hackerman .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-hackerman .Layout__content--flexRow{display:flex;flex-flow:row}.theme-hackerman .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-hackerman .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#121b12;background-image:linear-gradient(to bottom,#121b12,#121b12)}.theme-hackerman .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-hackerman .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-hackerman .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-hackerman .Window__contentPadding:after{height:0}.theme-hackerman .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-hackerman .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(40,50,40,.25);pointer-events:none}.theme-hackerman .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-hackerman .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-hackerman .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-hackerman .TitleBar{background-color:#223d22;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-hackerman .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#223d22;transition:color .25s ease-out,background-color .25s ease-out}.theme-hackerman .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-hackerman .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-hackerman .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-hackerman .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-hackerman .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-hackerman .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-hackerman .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-hackerman .Layout__content{background-image:none}.theme-hackerman .Button{font-family:monospace;border-width:.1666666667em;border-style:outset;border-color:#0a0;outline:.0833333333em solid #007a00}.theme-hackerman .candystripe:nth-child(odd){background-color:rgba(0,100,0,.5)}.theme-malfunction .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-malfunction .Button:last-child{margin-right:0;margin-bottom:0}.theme-malfunction .Button .fa,.theme-malfunction .Button .fas,.theme-malfunction .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-malfunction .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-malfunction .Button--hasContent .fa,.theme-malfunction .Button--hasContent .fas,.theme-malfunction .Button--hasContent .far{margin-right:.25em}.theme-malfunction .Button--hasContent.Button--iconPosition--right .fa,.theme-malfunction .Button--hasContent.Button--iconPosition--right .fas,.theme-malfunction .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-malfunction .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-malfunction .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-malfunction .Button--circular{border-radius:50%}.theme-malfunction .Button--compact{padding:0 .25em;line-height:1.333em}.theme-malfunction .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#910101;color:#fff}.theme-malfunction .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--default:hover,.theme-malfunction .Button--color--default:focus{background-color:#ba1414;color:#fff}.theme-malfunction .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-malfunction .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--caution:hover,.theme-malfunction .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-malfunction .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-malfunction .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--danger:hover,.theme-malfunction .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-malfunction .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1b3443;color:#fff;background-color:rgba(27,52,67,0);color:rgba(255,255,255,.5)}.theme-malfunction .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--color--transparent:hover,.theme-malfunction .Button--color--transparent:focus{background-color:#324f60;color:#fff}.theme-malfunction .Button--disabled{background-color:#363636!important}.theme-malfunction .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1e5881;color:#fff}.theme-malfunction .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-malfunction .Button--selected:focus{transition:color .1s,background-color .1s}.theme-malfunction .Button--selected:hover,.theme-malfunction .Button--selected:focus{background-color:#3678a8;color:#fff}.theme-malfunction .Button--flex{display:inline-flex;flex-direction:column}.theme-malfunction .Button--flex--fluid{width:100%}.theme-malfunction .Button--verticalAlignContent--top{justify-content:flex-start}.theme-malfunction .Button--verticalAlignContent--middle{justify-content:center}.theme-malfunction .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-malfunction .Button__content{display:block;align-self:stretch}.theme-malfunction .Button__textMargin{margin-left:.4rem}.theme-malfunction .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-malfunction .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-malfunction .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-malfunction .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#1a3f57;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-malfunction .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-malfunction .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-malfunction .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-malfunction .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-malfunction .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-malfunction .Input--fluid{display:block;width:auto}.theme-malfunction .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-malfunction .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-malfunction .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-malfunction .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-malfunction .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #910101;border:.0833333333em solid rgba(145,1,1,.75);border-radius:.16em;color:#910101;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-malfunction .NumberInput--fluid{display:block}.theme-malfunction .NumberInput__content{margin-left:.5em}.theme-malfunction .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-malfunction .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #910101;background-color:#910101}.theme-malfunction .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-malfunction .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-malfunction .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-malfunction .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-malfunction .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-malfunction .ProgressBar--color--default{border:.0833333333em solid #7b0101}.theme-malfunction .ProgressBar--color--default .ProgressBar__fill{background-color:#7b0101}.theme-malfunction .Section{position:relative;margin-bottom:.5em;background-color:#12232d;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-malfunction .Section:last-child{margin-bottom:0}.theme-malfunction .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #910101}.theme-malfunction .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-malfunction .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-malfunction .Section__rest{position:relative}.theme-malfunction .Section__content{padding:.66em .5em}.theme-malfunction .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-malfunction .Section--fill{display:flex;flex-direction:column;height:100%}.theme-malfunction .Section--fill>.Section__rest{flex-grow:1}.theme-malfunction .Section--fill>.Section__rest>.Section__content{height:100%}.theme-malfunction .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-malfunction .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-malfunction .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-malfunction .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-malfunction .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-malfunction .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-malfunction .Section .Section:first-child{margin-top:-.5em}.theme-malfunction .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-malfunction .Section .Section .Section .Section__titleText{font-size:1em}.theme-malfunction .Section--flex{display:flex;flex-flow:column}.theme-malfunction .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-malfunction .Section__content--noTopPadding{padding-top:0}.theme-malfunction .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-malfunction .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#235577;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-malfunction .Layout,.theme-malfunction .Layout *{scrollbar-base-color:#142732;scrollbar-face-color:#274b61;scrollbar-3dlight-color:#1b3443;scrollbar-highlight-color:#1b3443;scrollbar-track-color:#142732;scrollbar-arrow-color:#6ba2c3;scrollbar-shadow-color:#274b61}.theme-malfunction .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-malfunction .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-malfunction .Layout__content--flexRow{display:flex;flex-flow:row}.theme-malfunction .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-malfunction .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1b3443;background-image:linear-gradient(to bottom,#244559,#12232d)}.theme-malfunction .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-malfunction .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-malfunction .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-malfunction .Window__contentPadding:after{height:0}.theme-malfunction .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-malfunction .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(50,79,96,.25);pointer-events:none}.theme-malfunction .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-malfunction .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-malfunction .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-malfunction .TitleBar{background-color:#1a3f57;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-malfunction .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1a3f57;transition:color .25s ease-out,background-color .25s ease-out}.theme-malfunction .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-malfunction .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-malfunction .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-malfunction .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-malfunction .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-malfunction .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-malfunction .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-malfunction .Layout__content{background-image:none}.theme-neutral .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-neutral .Button:last-child{margin-right:0;margin-bottom:0}.theme-neutral .Button .fa,.theme-neutral .Button .fas,.theme-neutral .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-neutral .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-neutral .Button--hasContent .fa,.theme-neutral .Button--hasContent .fas,.theme-neutral .Button--hasContent .far{margin-right:.25em}.theme-neutral .Button--hasContent.Button--iconPosition--right .fa,.theme-neutral .Button--hasContent.Button--iconPosition--right .fas,.theme-neutral .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-neutral .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-neutral .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-neutral .Button--circular{border-radius:50%}.theme-neutral .Button--compact{padding:0 .25em;line-height:1.333em}.theme-neutral .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#b37d00;color:#fff}.theme-neutral .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--default:hover,.theme-neutral .Button--color--default:focus{background-color:#e1a313;color:#fff}.theme-neutral .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-neutral .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--caution:hover,.theme-neutral .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-neutral .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-neutral .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--danger:hover,.theme-neutral .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-neutral .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#996b00;color:#fff;background-color:rgba(153,107,0,0);color:#ffca4d}.theme-neutral .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--color--transparent:hover,.theme-neutral .Button--color--transparent:focus{background-color:#c38f13;color:#fff}.theme-neutral .Button--disabled{background-color:#999!important}.theme-neutral .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-neutral .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-neutral .Button--selected:focus{transition:color .1s,background-color .1s}.theme-neutral .Button--selected:hover,.theme-neutral .Button--selected:focus{background-color:#32c154;color:#fff}.theme-neutral .Button--flex{display:inline-flex;flex-direction:column}.theme-neutral .Button--flex--fluid{width:100%}.theme-neutral .Button--verticalAlignContent--top{justify-content:flex-start}.theme-neutral .Button--verticalAlignContent--middle{justify-content:center}.theme-neutral .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-neutral .Button__content{display:block;align-self:stretch}.theme-neutral .Button__textMargin{margin-left:.4rem}.theme-neutral .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-neutral .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-neutral .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-neutral .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-neutral .ProgressBar--color--default{border:.0833333333em solid #ffb300}.theme-neutral .ProgressBar--color--default .ProgressBar__fill{background-color:#ffb300}.theme-neutral .Section{position:relative;margin-bottom:.5em;background-color:#674800;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-neutral .Section:last-child{margin-bottom:0}.theme-neutral .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #ffb300}.theme-neutral .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-neutral .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-neutral .Section__rest{position:relative}.theme-neutral .Section__content{padding:.66em .5em}.theme-neutral .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-neutral .Section--fill{display:flex;flex-direction:column;height:100%}.theme-neutral .Section--fill>.Section__rest{flex-grow:1}.theme-neutral .Section--fill>.Section__rest>.Section__content{height:100%}.theme-neutral .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-neutral .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-neutral .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-neutral .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-neutral .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-neutral .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-neutral .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-neutral .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-neutral .Section .Section:first-child{margin-top:-.5em}.theme-neutral .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-neutral .Section .Section .Section .Section__titleText{font-size:1em}.theme-neutral .Section--flex{display:flex;flex-flow:column}.theme-neutral .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-neutral .Section__content--noTopPadding{padding-top:0}.theme-neutral .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-neutral .Layout,.theme-neutral .Layout *{scrollbar-base-color:#735100;scrollbar-face-color:#bd8400;scrollbar-3dlight-color:#996b00;scrollbar-highlight-color:#996b00;scrollbar-track-color:#735100;scrollbar-arrow-color:#ffca4d;scrollbar-shadow-color:#bd8400}.theme-neutral .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-neutral .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-neutral .Layout__content--flexRow{display:flex;flex-flow:row}.theme-neutral .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-neutral .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#996b00;background-image:linear-gradient(to bottom,#b88100,#7a5600)}.theme-neutral .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-neutral .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-neutral .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-neutral .Window__contentPadding:after{height:0}.theme-neutral .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-neutral .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(195,143,19,.25);pointer-events:none}.theme-neutral .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-neutral .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-neutral .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-neutral .TitleBar{background-color:#bf8600;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-neutral .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#bf8600;transition:color .25s ease-out,background-color .25s ease-out}.theme-neutral .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-neutral .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-neutral .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-neutral .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-neutral .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-neutral .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-neutral .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-neutral .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJ1c2VyLXNlY3JldCIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLXVzZXItc2VjcmV0IGZhLXctMTQiIHJvbGU9ImltZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNDQ4IDUxMiIgIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTM4My45IDMwOC4zbDIzLjktNjIuNmM0LTEwLjUtMy43LTIxLjctMTUtMjEuN2gtNTguNWMxMS0xOC45IDE3LjgtNDAuNiAxNy44LTY0di0uM2MzOS4yLTcuOCA2NC0xOS4xIDY0LTMxLjcgMC0xMy4zLTI3LjMtMjUuMS03MC4xLTMzLTkuMi0zMi44LTI3LTY1LjgtNDAuNi04Mi44LTkuNS0xMS45LTI1LjktMTUuNi0zOS41LTguOGwtMjcuNiAxMy44Yy05IDQuNS0xOS42IDQuNS0yOC42IDBMMTgyLjEgMy40Yy0xMy42LTYuOC0zMC0zLjEtMzkuNSA4LjgtMTMuNSAxNy0zMS40IDUwLTQwLjYgODIuOC00Mi43IDcuOS03MCAxOS43LTcwIDMzIDAgMTIuNiAyNC44IDIzLjkgNjQgMzEuN3YuM2MwIDIzLjQgNi44IDQ1LjEgMTcuOCA2NEg1Ni4zYy0xMS41IDAtMTkuMiAxMS43LTE0LjcgMjIuM2wyNS44IDYwLjJDMjcuMyAzMjkuOCAwIDM3Mi43IDAgNDIyLjR2NDQuOEMwIDQ5MS45IDIwLjEgNTEyIDQ0LjggNTEyaDM1OC40YzI0LjcgMCA0NC44LTIwLjEgNDQuOC00NC44di00NC44YzAtNDguNC0yNS44LTkwLjQtNjQuMS0xMTQuMXpNMTc2IDQ4MGwtNDEuNi0xOTIgNDkuNiAzMiAyNCA0MC0zMiAxMjB6bTk2IDBsLTMyLTEyMCAyNC00MCA0OS42LTMyTDI3MiA0ODB6bTQxLjctMjk4LjVjLTMuOSAxMS45LTcgMjQuNi0xNi41IDMzLjQtMTAuMSA5LjMtNDggMjIuNC02NC0yNS0yLjgtOC40LTE1LjQtOC40LTE4LjMgMC0xNyA1MC4yLTU2IDMyLjQtNjQgMjUtOS41LTguOC0xMi43LTIxLjUtMTYuNS0zMy40LS44LTIuNS02LjMtNS43LTYuMy01Ljh2LTEwLjhjMjguMyAzLjYgNjEgNS44IDk2IDUuOHM2Ny43LTIuMSA5Ni01Ljh2MTAuOGMtLjEuMS01LjYgMy4yLTYuNCA1Ljh6Ij48L3BhdGg+DQo8L3N2Zz4NCjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPg0KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPg==)}.theme-ntos .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-ntos .Button:last-child{margin-right:0;margin-bottom:0}.theme-ntos .Button .fa,.theme-ntos .Button .fas,.theme-ntos .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-ntos .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-ntos .Button--hasContent .fa,.theme-ntos .Button--hasContent .fas,.theme-ntos .Button--hasContent .far{margin-right:.25em}.theme-ntos .Button--hasContent.Button--iconPosition--right .fa,.theme-ntos .Button--hasContent.Button--iconPosition--right .fas,.theme-ntos .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-ntos .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-ntos .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-ntos .Button--circular{border-radius:50%}.theme-ntos .Button--compact{padding:0 .25em;line-height:1.333em}.theme-ntos .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#384e68;color:#fff}.theme-ntos .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--default:hover,.theme-ntos .Button--color--default:focus{background-color:#546d8b;color:#fff}.theme-ntos .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-ntos .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--caution:hover,.theme-ntos .Button--color--caution:focus{background-color:#f5d72e;color:#000}.theme-ntos .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-ntos .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--danger:hover,.theme-ntos .Button--color--danger:focus{background-color:#dc4848;color:#fff}.theme-ntos .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#1f2b39;color:#fff;background-color:rgba(31,43,57,0);color:rgba(227,240,255,.75)}.theme-ntos .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--color--transparent:hover,.theme-ntos .Button--color--transparent:focus{background-color:#374555;color:#fff}.theme-ntos .Button--disabled{background-color:#999!important}.theme-ntos .Button--selected{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-ntos .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-ntos .Button--selected:focus{transition:color .1s,background-color .1s}.theme-ntos .Button--selected:hover,.theme-ntos .Button--selected:focus{background-color:#32c154;color:#fff}.theme-ntos .Button--flex{display:inline-flex;flex-direction:column}.theme-ntos .Button--flex--fluid{width:100%}.theme-ntos .Button--verticalAlignContent--top{justify-content:flex-start}.theme-ntos .Button--verticalAlignContent--middle{justify-content:center}.theme-ntos .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-ntos .Button__content{display:block;align-self:stretch}.theme-ntos .Button__textMargin{margin-left:.4rem}.theme-ntos .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-ntos .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-ntos .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-ntos .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-ntos .ProgressBar--color--default{border:.0833333333em solid #384e68}.theme-ntos .ProgressBar--color--default .ProgressBar__fill{background-color:#384e68}.theme-ntos .Section{position:relative;margin-bottom:.5em;background-color:#151d26;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-ntos .Section:last-child{margin-bottom:0}.theme-ntos .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #4972a1}.theme-ntos .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-ntos .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-ntos .Section__rest{position:relative}.theme-ntos .Section__content{padding:.66em .5em}.theme-ntos .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-ntos .Section--fill{display:flex;flex-direction:column;height:100%}.theme-ntos .Section--fill>.Section__rest{flex-grow:1}.theme-ntos .Section--fill>.Section__rest>.Section__content{height:100%}.theme-ntos .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-ntos .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-ntos .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-ntos .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-ntos .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-ntos .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-ntos .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-ntos .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-ntos .Section .Section:first-child{margin-top:-.5em}.theme-ntos .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-ntos .Section .Section .Section .Section__titleText{font-size:1em}.theme-ntos .Section--flex{display:flex;flex-flow:column}.theme-ntos .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-ntos .Section__content--noTopPadding{padding-top:0}.theme-ntos .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-ntos .Layout,.theme-ntos .Layout *{scrollbar-base-color:#17202b;scrollbar-face-color:#2e3f55;scrollbar-3dlight-color:#1f2b39;scrollbar-highlight-color:#1f2b39;scrollbar-track-color:#17202b;scrollbar-arrow-color:#7693b5;scrollbar-shadow-color:#2e3f55}.theme-ntos .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-ntos .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-ntos .Layout__content--flexRow{display:flex;flex-flow:row}.theme-ntos .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-ntos .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#1f2b39;background-image:linear-gradient(to bottom,#223040,#1b2633)}.theme-ntos .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-ntos .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-ntos .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-ntos .Window__contentPadding:after{height:0}.theme-ntos .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-ntos .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(55,69,85,.25);pointer-events:none}.theme-ntos .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-ntos .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-ntos .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-ntos .TitleBar{background-color:#2a3b4e;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-ntos .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#2a3b4e;transition:color .25s ease-out,background-color .25s ease-out}.theme-ntos .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-ntos .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-ntos .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-ntos .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-ntos .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-ntos .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-ntos .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .Tabs{display:flex;align-items:stretch;overflow:hidden;background-color:rgba(0,0,0,.33)}.theme-paper .Tabs--fill{height:100%}.theme-paper .Section .Tabs{background-color:rgba(0,0,0,0)}.theme-paper .Section:not(.Section--fitted) .Tabs{margin:0 -.5em .5em}.theme-paper .Section:not(.Section--fitted) .Tabs:first-child{margin-top:-.5em}.theme-paper .Tabs--vertical{flex-direction:column;padding:.25em 0 .25em .25em}.theme-paper .Tabs--horizontal{margin-bottom:.5em;padding:.25em .25em 0}.theme-paper .Tabs--horizontal:last-child{margin-bottom:0}.theme-paper .Tabs__Tab{flex-grow:0}.theme-paper .Tabs--fluid .Tabs__Tab{flex-grow:1}.theme-paper .Tab{display:flex;align-items:center;justify-content:space-between;background-color:rgba(0,0,0,0);color:rgba(255,255,255,.5);min-height:2.25em;min-width:4em}.theme-paper .Tab:not(.Tab--selected):hover{background-color:rgba(255,255,255,.075)}.theme-paper .Tab--selected{background-color:rgba(255,255,255,.125);color:#fafafa}.theme-paper .Tab__text{flex-grow:1;margin:0 .5em}.theme-paper .Tab__left{min-width:1.5em;text-align:center;margin-left:.25em}.theme-paper .Tab__right{min-width:1.5em;text-align:center;margin-right:.25em}.theme-paper .Tabs--horizontal .Tab{border-top:.1666666667em solid rgba(0,0,0,0);border-bottom:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-top-right-radius:.25em}.theme-paper .Tabs--horizontal .Tab--selected{border-bottom:.1666666667em solid #f9f9f9}.theme-paper .Tabs--vertical .Tab{min-height:2em;border-left:.1666666667em solid rgba(0,0,0,0);border-right:.1666666667em solid rgba(0,0,0,0);border-top-left-radius:.25em;border-bottom-left-radius:.25em}.theme-paper .Tabs--vertical .Tab--selected{border-right:.1666666667em solid #f9f9f9}.theme-paper .Section{position:relative;margin-bottom:.5em;background-color:#e6e6e6;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-paper .Section:last-child{margin-bottom:0}.theme-paper .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #fff}.theme-paper .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-paper .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-paper .Section__rest{position:relative}.theme-paper .Section__content{padding:.66em .5em}.theme-paper .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-paper .Section--fill{display:flex;flex-direction:column;height:100%}.theme-paper .Section--fill>.Section__rest{flex-grow:1}.theme-paper .Section--fill>.Section__rest>.Section__content{height:100%}.theme-paper .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-paper .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-paper .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-paper .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-paper .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-paper .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-paper .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-paper .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-paper .Section .Section:first-child{margin-top:-.5em}.theme-paper .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-paper .Section .Section .Section .Section__titleText{font-size:1em}.theme-paper .Section--flex{display:flex;flex-flow:column}.theme-paper .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-paper .Section__content--noTopPadding{padding-top:0}.theme-paper .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-paper .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-paper .Button:last-child{margin-right:0;margin-bottom:0}.theme-paper .Button .fa,.theme-paper .Button .fas,.theme-paper .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-paper .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-paper .Button--hasContent .fa,.theme-paper .Button--hasContent .fas,.theme-paper .Button--hasContent .far{margin-right:.25em}.theme-paper .Button--hasContent.Button--iconPosition--right .fa,.theme-paper .Button--hasContent.Button--iconPosition--right .fas,.theme-paper .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-paper .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-paper .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-paper .Button--circular{border-radius:50%}.theme-paper .Button--compact{padding:0 .25em;line-height:1.333em}.theme-paper .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-paper .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--default:hover,.theme-paper .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-paper .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-paper .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--caution:hover,.theme-paper .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-paper .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-paper .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--danger:hover,.theme-paper .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-paper .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#fff;color:#000;background-color:rgba(255,255,255,0);color:rgba(0,0,0,.5)}.theme-paper .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-paper .Button--color--transparent:hover,.theme-paper .Button--color--transparent:focus{background-color:#fff;color:#000}.theme-paper .Button--disabled{background-color:#363636!important}.theme-paper .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-paper .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-paper .Button--selected:focus{transition:color .1s,background-color .1s}.theme-paper .Button--selected:hover,.theme-paper .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-paper .Button--flex{display:inline-flex;flex-direction:column}.theme-paper .Button--flex--fluid{width:100%}.theme-paper .Button--verticalAlignContent--top{justify-content:flex-start}.theme-paper .Button--verticalAlignContent--middle{justify-content:center}.theme-paper .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-paper .Button__content{display:block;align-self:stretch}.theme-paper .Button__textMargin{margin-left:.4rem}.theme-paper .Layout,.theme-paper .Layout *{scrollbar-base-color:#bfbfbf;scrollbar-face-color:#fff;scrollbar-3dlight-color:#fff;scrollbar-highlight-color:#fff;scrollbar-track-color:#bfbfbf;scrollbar-arrow-color:#fff;scrollbar-shadow-color:#fff}.theme-paper .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-paper .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-paper .Layout__content--flexRow{display:flex;flex-flow:row}.theme-paper .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-paper .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#fff;background-image:linear-gradient(to bottom,#fff,#fff)}.theme-paper .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-paper .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-paper .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-paper .Window__contentPadding:after{height:0}.theme-paper .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-paper .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(255,255,255,.25);pointer-events:none}.theme-paper .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-paper .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-paper .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-paper .TitleBar{background-color:#fff;border-bottom:1px solid rgba(0,0,0,.25);box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-paper .TitleBar__clickable{color:rgba(0,0,0,.5);background-color:#fff;transition:color .25s ease-out,background-color .25s ease-out}.theme-paper .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-paper .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(0,0,0,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-paper .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-paper .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-paper .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-paper .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-paper .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-paper .PaperInput{position:relative;display:inline-block;width:120px;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .PaperInput__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-paper .PaperInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:12px;line-height:17px;height:17px;margin:0;padding:0 6px;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-paper .PaperInput__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-paper .Layout__content{background-image:none}.theme-paper .Window{background-image:none;color:#000}.theme-paper .paper-text input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-text input,.theme-paper .paper-field{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-paper .paper-field input:disabled{position:relative;display:inline-block;border:none;background:rgba(0,0,0,0);border-bottom:1px solid #000;outline:none;background-color:rgba(255,255,62,.8);padding:0 4px;margin-right:2px;line-height:17px;overflow:visible}.theme-pda-retro .color-black{color:#1a1a1a!important}.theme-pda-retro .color-white{color:#fff!important}.theme-pda-retro .color-red{color:#df3e3e!important}.theme-pda-retro .color-orange{color:#f37f33!important}.theme-pda-retro .color-yellow{color:#fbda21!important}.theme-pda-retro .color-olive{color:#cbe41c!important}.theme-pda-retro .color-green{color:#25ca4c!important}.theme-pda-retro .color-teal{color:#00d6cc!important}.theme-pda-retro .color-blue{color:#2e93de!important}.theme-pda-retro .color-violet{color:#7349cf!important}.theme-pda-retro .color-purple{color:#ad45d0!important}.theme-pda-retro .color-pink{color:#e34da1!important}.theme-pda-retro .color-brown{color:#b97447!important}.theme-pda-retro .color-grey{color:#848484!important}.theme-pda-retro .color-light-grey{color:#b3b3b3!important}.theme-pda-retro .color-good{color:#68c22d!important}.theme-pda-retro .color-average{color:#1a1a1a!important}.theme-pda-retro .color-bad{color:#df3e3e!important}.theme-pda-retro .color-label{color:#1a1a1a!important}.theme-pda-retro .color-bg-black{background-color:#000!important}.theme-pda-retro .color-bg-white{background-color:#d9d9d9!important}.theme-pda-retro .color-bg-red{background-color:#bd2020!important}.theme-pda-retro .color-bg-orange{background-color:#d95e0c!important}.theme-pda-retro .color-bg-yellow{background-color:#d9b804!important}.theme-pda-retro .color-bg-olive{background-color:#9aad14!important}.theme-pda-retro .color-bg-green{background-color:#1b9638!important}.theme-pda-retro .color-bg-teal{background-color:#009a93!important}.theme-pda-retro .color-bg-blue{background-color:#1c71b1!important}.theme-pda-retro .color-bg-violet{background-color:#552dab!important}.theme-pda-retro .color-bg-purple{background-color:#8b2baa!important}.theme-pda-retro .color-bg-pink{background-color:#cf2082!important}.theme-pda-retro .color-bg-brown{background-color:#8c5836!important}.theme-pda-retro .color-bg-grey{background-color:#646464!important}.theme-pda-retro .color-bg-light-grey{background-color:#919191!important}.theme-pda-retro .color-bg-good{background-color:#4d9121!important}.theme-pda-retro .color-bg-average{background-color:#000!important}.theme-pda-retro .color-bg-bad{background-color:#bd2020!important}.theme-pda-retro .color-bg-label{background-color:#000!important}.theme-pda-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-pda-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-pda-retro .Button .fa,.theme-pda-retro .Button .fas,.theme-pda-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-pda-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-pda-retro .Button--hasContent .fa,.theme-pda-retro .Button--hasContent .fas,.theme-pda-retro .Button--hasContent .far{margin-right:.25em}.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-pda-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-pda-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-pda-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-pda-retro .Button--circular{border-radius:50%}.theme-pda-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-pda-retro .Button--color--black{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--black:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--black:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--black:hover,.theme-pda-retro .Button--color--black:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--white{transition:color 50ms,background-color 50ms;background-color:#d9d9d9;color:#000}.theme-pda-retro .Button--color--white:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--white:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--white:hover,.theme-pda-retro .Button--color--white:focus{background-color:#f8f8f8;color:#000}.theme-pda-retro .Button--color--red{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--red:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--red:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--red:hover,.theme-pda-retro .Button--color--red:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--orange{transition:color 50ms,background-color 50ms;background-color:#d95e0c;color:#fff}.theme-pda-retro .Button--color--orange:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--orange:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--orange:hover,.theme-pda-retro .Button--color--orange:focus{background-color:#f0853f;color:#fff}.theme-pda-retro .Button--color--yellow{transition:color 50ms,background-color 50ms;background-color:#d9b804;color:#000}.theme-pda-retro .Button--color--yellow:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--yellow:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--yellow:hover,.theme-pda-retro .Button--color--yellow:focus{background-color:#f5d72e;color:#000}.theme-pda-retro .Button--color--olive{transition:color 50ms,background-color 50ms;background-color:#9aad14;color:#fff}.theme-pda-retro .Button--color--olive:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--olive:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--olive:hover,.theme-pda-retro .Button--color--olive:focus{background-color:#c4da2b;color:#fff}.theme-pda-retro .Button--color--green{transition:color 50ms,background-color 50ms;background-color:#1b9638;color:#fff}.theme-pda-retro .Button--color--green:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--green:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--green:hover,.theme-pda-retro .Button--color--green:focus{background-color:#32c154;color:#fff}.theme-pda-retro .Button--color--teal{transition:color 50ms,background-color 50ms;background-color:#009a93;color:#fff}.theme-pda-retro .Button--color--teal:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--teal:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--teal:hover,.theme-pda-retro .Button--color--teal:focus{background-color:#13c4bc;color:#fff}.theme-pda-retro .Button--color--blue{transition:color 50ms,background-color 50ms;background-color:#1c71b1;color:#fff}.theme-pda-retro .Button--color--blue:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--blue:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--blue:hover,.theme-pda-retro .Button--color--blue:focus{background-color:#3a95d9;color:#fff}.theme-pda-retro .Button--color--violet{transition:color 50ms,background-color 50ms;background-color:#552dab;color:#fff}.theme-pda-retro .Button--color--violet:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--violet:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--violet:hover,.theme-pda-retro .Button--color--violet:focus{background-color:#7953cc;color:#fff}.theme-pda-retro .Button--color--purple{transition:color 50ms,background-color 50ms;background-color:#8b2baa;color:#fff}.theme-pda-retro .Button--color--purple:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--purple:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--purple:hover,.theme-pda-retro .Button--color--purple:focus{background-color:#ad4fcd;color:#fff}.theme-pda-retro .Button--color--pink{transition:color 50ms,background-color 50ms;background-color:#cf2082;color:#fff}.theme-pda-retro .Button--color--pink:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--pink:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--pink:hover,.theme-pda-retro .Button--color--pink:focus{background-color:#e257a5;color:#fff}.theme-pda-retro .Button--color--brown{transition:color 50ms,background-color 50ms;background-color:#8c5836;color:#fff}.theme-pda-retro .Button--color--brown:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--brown:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--brown:hover,.theme-pda-retro .Button--color--brown:focus{background-color:#b47851;color:#fff}.theme-pda-retro .Button--color--grey{transition:color 50ms,background-color 50ms;background-color:#646464;color:#fff}.theme-pda-retro .Button--color--grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--grey:hover,.theme-pda-retro .Button--color--grey:focus{background-color:#868686;color:#fff}.theme-pda-retro .Button--color--light-grey{transition:color 50ms,background-color 50ms;background-color:#919191;color:#fff}.theme-pda-retro .Button--color--light-grey:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--light-grey:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--light-grey:hover,.theme-pda-retro .Button--color--light-grey:focus{background-color:#bababa;color:#fff}.theme-pda-retro .Button--color--good{transition:color 50ms,background-color 50ms;background-color:#4d9121;color:#fff}.theme-pda-retro .Button--color--good:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--good:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--good:hover,.theme-pda-retro .Button--color--good:focus{background-color:#6cba39;color:#fff}.theme-pda-retro .Button--color--average{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--average:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--average:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--average:hover,.theme-pda-retro .Button--color--average:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--bad{transition:color 50ms,background-color 50ms;background-color:#bd2020;color:#fff}.theme-pda-retro .Button--color--bad:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--bad:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--bad:hover,.theme-pda-retro .Button--color--bad:focus{background-color:#dc4848;color:#fff}.theme-pda-retro .Button--color--label{transition:color 50ms,background-color 50ms;background-color:#000;color:#fff}.theme-pda-retro .Button--color--label:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--label:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--label:hover,.theme-pda-retro .Button--color--label:focus{background-color:#131313;color:#fff}.theme-pda-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-pda-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--default:hover,.theme-pda-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-pda-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-pda-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--caution:hover,.theme-pda-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-pda-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-pda-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--danger:hover,.theme-pda-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-pda-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#6f7961;color:#fff;background-color:rgba(111,121,97,0);color:rgba(255,255,255,.5)}.theme-pda-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--color--transparent:hover,.theme-pda-retro .Button--color--transparent:focus{background-color:#939c85;color:#fff}.theme-pda-retro .Button--disabled{background-color:#505050!important}.theme-pda-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-pda-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-pda-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-pda-retro .Button--selected:hover,.theme-pda-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-pda-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-pda-retro .Button--flex--fluid{width:100%}.theme-pda-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-pda-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-pda-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-pda-retro .Button__content{display:block;align-self:stretch}.theme-pda-retro .Button__textMargin{margin-left:.4rem}.theme-pda-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-pda-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-pda-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-pda-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-pda-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-pda-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--black{border-color:#000!important}.theme-pda-retro .ProgressBar--color--black .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--white{border-color:#d9d9d9!important}.theme-pda-retro .ProgressBar--color--white .ProgressBar__fill{background-color:#d9d9d9}.theme-pda-retro .ProgressBar--color--red{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--red .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--orange{border-color:#d95e0c!important}.theme-pda-retro .ProgressBar--color--orange .ProgressBar__fill{background-color:#d95e0c}.theme-pda-retro .ProgressBar--color--yellow{border-color:#d9b804!important}.theme-pda-retro .ProgressBar--color--yellow .ProgressBar__fill{background-color:#d9b804}.theme-pda-retro .ProgressBar--color--olive{border-color:#9aad14!important}.theme-pda-retro .ProgressBar--color--olive .ProgressBar__fill{background-color:#9aad14}.theme-pda-retro .ProgressBar--color--green{border-color:#1b9638!important}.theme-pda-retro .ProgressBar--color--green .ProgressBar__fill{background-color:#1b9638}.theme-pda-retro .ProgressBar--color--teal{border-color:#009a93!important}.theme-pda-retro .ProgressBar--color--teal .ProgressBar__fill{background-color:#009a93}.theme-pda-retro .ProgressBar--color--blue{border-color:#1c71b1!important}.theme-pda-retro .ProgressBar--color--blue .ProgressBar__fill{background-color:#1c71b1}.theme-pda-retro .ProgressBar--color--violet{border-color:#552dab!important}.theme-pda-retro .ProgressBar--color--violet .ProgressBar__fill{background-color:#552dab}.theme-pda-retro .ProgressBar--color--purple{border-color:#8b2baa!important}.theme-pda-retro .ProgressBar--color--purple .ProgressBar__fill{background-color:#8b2baa}.theme-pda-retro .ProgressBar--color--pink{border-color:#cf2082!important}.theme-pda-retro .ProgressBar--color--pink .ProgressBar__fill{background-color:#cf2082}.theme-pda-retro .ProgressBar--color--brown{border-color:#8c5836!important}.theme-pda-retro .ProgressBar--color--brown .ProgressBar__fill{background-color:#8c5836}.theme-pda-retro .ProgressBar--color--grey{border-color:#646464!important}.theme-pda-retro .ProgressBar--color--grey .ProgressBar__fill{background-color:#646464}.theme-pda-retro .ProgressBar--color--light-grey{border-color:#919191!important}.theme-pda-retro .ProgressBar--color--light-grey .ProgressBar__fill{background-color:#919191}.theme-pda-retro .ProgressBar--color--good{border-color:#4d9121!important}.theme-pda-retro .ProgressBar--color--good .ProgressBar__fill{background-color:#4d9121}.theme-pda-retro .ProgressBar--color--average{border-color:#000!important}.theme-pda-retro .ProgressBar--color--average .ProgressBar__fill{background-color:#000}.theme-pda-retro .ProgressBar--color--bad{border-color:#bd2020!important}.theme-pda-retro .ProgressBar--color--bad .ProgressBar__fill{background-color:#bd2020}.theme-pda-retro .ProgressBar--color--label{border-color:#000!important}.theme-pda-retro .ProgressBar--color--label .ProgressBar__fill{background-color:#000}.theme-pda-retro .Section{position:relative;margin-bottom:.5em;background-color:#646d57;background-color:rgba(0,0,0,.1);box-sizing:border-box}.theme-pda-retro .Section:last-child{margin-bottom:0}.theme-pda-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-pda-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#000}.theme-pda-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-pda-retro .Section__rest{position:relative}.theme-pda-retro .Section__content{padding:.66em .5em}.theme-pda-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-pda-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-pda-retro .Section--fill>.Section__rest{flex-grow:1}.theme-pda-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-pda-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-pda-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-pda-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-pda-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-pda-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-pda-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-pda-retro .Section .Section:first-child{margin-top:-.5em}.theme-pda-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-pda-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-pda-retro .Section--flex{display:flex;flex-flow:column}.theme-pda-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-pda-retro .Section__content--noTopPadding{padding-top:0}.theme-pda-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent,.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{padding:6px;z-index:1;word-break:break-all;max-width:100%}.theme-pda-retro .TinderMessage_First_Sent,.theme-pda-retro .TinderMessage_Subsequent_Sent{text-align:right;background-color:#9faa91}.theme-pda-retro .TinderMessage_First_Sent{border-radius:10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Sent{border-radius:10px 0 0 10px}.theme-pda-retro .TinderMessage_First_Received,.theme-pda-retro .TinderMessage_Subsequent_Received{text-align:left;background-color:#b8b37b}.theme-pda-retro .TinderMessage_First_Received{border-radius:10px 10px 10px 0}.theme-pda-retro .TinderMessage_Subsequent_Received{border-radius:0 10px 10px 0}.theme-pda-retro .ClassicMessage_Sent,.theme-pda-retro .ClassicMessage_Received{word-break:break-all}.theme-pda-retro .ClassicMessage_Sent{color:#9faa91}.theme-pda-retro .ClassicMessage_Received{color:#b8b37b}.theme-pda-retro .Layout,.theme-pda-retro .Layout *{scrollbar-base-color:#535b49;scrollbar-face-color:#7e896e;scrollbar-3dlight-color:#6f7961;scrollbar-highlight-color:#6f7961;scrollbar-track-color:#535b49;scrollbar-arrow-color:#b7beae;scrollbar-shadow-color:#7e896e}.theme-pda-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-pda-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-pda-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-pda-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-pda-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#000;background-color:#6f7961;background-image:linear-gradient(to bottom,#6f7961,#6f7961)}.theme-pda-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-pda-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-pda-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-pda-retro .Window__contentPadding:after{height:0}.theme-pda-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-pda-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(147,156,133,.25);pointer-events:none}.theme-pda-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-pda-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-pda-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-pda-retro .TitleBar{background-color:#363636;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-pda-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#363636;transition:color .25s ease-out,background-color .25s ease-out}.theme-pda-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-pda-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-pda-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-pda-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-pda-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-pda-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-pda-retro .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-pda-retro .Button{color:#161613;background-color:#565d4b;border:1px solid #000}.theme-pda-retro .Layout__content{background-image:none}.theme-pda-retro .LabeledList__label{font-weight:700}.theme-pda-retro .Tooltip:after{color:#fff}.theme-retro .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:0;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-retro .Button:last-child{margin-right:0;margin-bottom:0}.theme-retro .Button .fa,.theme-retro .Button .fas,.theme-retro .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-retro .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-retro .Button--hasContent .fa,.theme-retro .Button--hasContent .fas,.theme-retro .Button--hasContent .far{margin-right:.25em}.theme-retro .Button--hasContent.Button--iconPosition--right .fa,.theme-retro .Button--hasContent.Button--iconPosition--right .fas,.theme-retro .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-retro .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-retro .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-retro .Button--circular{border-radius:50%}.theme-retro .Button--compact{padding:0 .25em;line-height:1.333em}.theme-retro .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000}.theme-retro .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--default:hover,.theme-retro .Button--color--default:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-retro .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--caution:hover,.theme-retro .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-retro .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-retro .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--danger:hover,.theme-retro .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-retro .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#e8e4c9;color:#000;background-color:rgba(232,228,201,0);color:rgba(255,255,255,.5)}.theme-retro .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-retro .Button--color--transparent:hover,.theme-retro .Button--color--transparent:focus{background-color:#fbfaf6;color:#000}.theme-retro .Button--disabled{background-color:#363636!important}.theme-retro .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-retro .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-retro .Button--selected:focus{transition:color .1s,background-color .1s}.theme-retro .Button--selected:hover,.theme-retro .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-retro .Button--flex{display:inline-flex;flex-direction:column}.theme-retro .Button--flex--fluid{width:100%}.theme-retro .Button--verticalAlignContent--top{justify-content:flex-start}.theme-retro .Button--verticalAlignContent--middle{justify-content:center}.theme-retro .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-retro .Button__content{display:block;align-self:stretch}.theme-retro .Button__textMargin{margin-left:.4rem}.theme-retro .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:0;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-retro .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-retro .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-retro .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-retro .ProgressBar--color--default{border:.0833333333em solid #000}.theme-retro .ProgressBar--color--default .ProgressBar__fill{background-color:#000}.theme-retro .Section{position:relative;margin-bottom:.5em;background-color:#9b9987;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-retro .Section:last-child{margin-bottom:0}.theme-retro .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #000}.theme-retro .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-retro .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-retro .Section__rest{position:relative}.theme-retro .Section__content{padding:.66em .5em}.theme-retro .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-retro .Section--fill{display:flex;flex-direction:column;height:100%}.theme-retro .Section--fill>.Section__rest{flex-grow:1}.theme-retro .Section--fill>.Section__rest>.Section__content{height:100%}.theme-retro .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-retro .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-retro .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-retro .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-retro .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-retro .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-retro .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-retro .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-retro .Section .Section:first-child{margin-top:-.5em}.theme-retro .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-retro .Section .Section .Section .Section__titleText{font-size:1em}.theme-retro .Section--flex{display:flex;flex-flow:column}.theme-retro .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-retro .Section__content--noTopPadding{padding-top:0}.theme-retro .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-retro .Layout,.theme-retro .Layout *{scrollbar-base-color:#c8be7d;scrollbar-face-color:#eae7ce;scrollbar-3dlight-color:#e8e4c9;scrollbar-highlight-color:#e8e4c9;scrollbar-track-color:#c8be7d;scrollbar-arrow-color:#f4f2e4;scrollbar-shadow-color:#eae7ce}.theme-retro .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-retro .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-retro .Layout__content--flexRow{display:flex;flex-flow:row}.theme-retro .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-retro .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#e8e4c9;background-image:linear-gradient(to bottom,#e8e4c9,#e8e4c9)}.theme-retro .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-retro .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-retro .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-retro .Window__contentPadding:after{height:0}.theme-retro .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-retro .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(251,250,246,.25);pointer-events:none}.theme-retro .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-retro .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-retro .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-retro .TitleBar{background-color:#585337;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-retro .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#585337;transition:color .25s ease-out,background-color .25s ease-out}.theme-retro .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-retro .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-retro .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-retro .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-retro .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-retro .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-retro .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-retro .Button{font-family:monospace;color:#161613;border:.1666666667em outset #e8e4c9;outline:.0833333333em solid #161613}.theme-retro .Layout__content{background-image:none}.theme-syndicate .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:.16em;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-syndicate .Button:last-child{margin-right:0;margin-bottom:0}.theme-syndicate .Button .fa,.theme-syndicate .Button .fas,.theme-syndicate .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-syndicate .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-syndicate .Button--hasContent .fa,.theme-syndicate .Button--hasContent .fas,.theme-syndicate .Button--hasContent .far{margin-right:.25em}.theme-syndicate .Button--hasContent.Button--iconPosition--right .fa,.theme-syndicate .Button--hasContent.Button--iconPosition--right .fas,.theme-syndicate .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-syndicate .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-syndicate .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-syndicate .Button--circular{border-radius:50%}.theme-syndicate .Button--compact{padding:0 .25em;line-height:1.333em}.theme-syndicate .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#397439;color:#fff}.theme-syndicate .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--default:hover,.theme-syndicate .Button--color--default:focus{background-color:#595;color:#fff}.theme-syndicate .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-syndicate .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--caution:hover,.theme-syndicate .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-syndicate .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#9a9d00;color:#fff}.theme-syndicate .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--danger:hover,.theme-syndicate .Button--color--danger:focus{background-color:#c4c813;color:#fff}.theme-syndicate .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#550202;color:#fff;background-color:rgba(85,2,2,0);color:rgba(255,255,255,.5)}.theme-syndicate .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--color--transparent:hover,.theme-syndicate .Button--color--transparent:focus{background-color:#751616;color:#fff}.theme-syndicate .Button--disabled{background-color:#363636!important}.theme-syndicate .Button--selected{transition:color 50ms,background-color 50ms;background-color:#9d0808;color:#fff}.theme-syndicate .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-syndicate .Button--selected:focus{transition:color .1s,background-color .1s}.theme-syndicate .Button--selected:hover,.theme-syndicate .Button--selected:focus{background-color:#c81c1c;color:#fff}.theme-syndicate .Button--flex{display:inline-flex;flex-direction:column}.theme-syndicate .Button--flex--fluid{width:100%}.theme-syndicate .Button--verticalAlignContent--top{justify-content:flex-start}.theme-syndicate .Button--verticalAlignContent--middle{justify-content:center}.theme-syndicate .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-syndicate .Button__content{display:block;align-self:stretch}.theme-syndicate .Button__textMargin{margin-left:.4rem}.theme-syndicate .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-syndicate .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-syndicate .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-syndicate .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#910101;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-syndicate .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-syndicate .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-syndicate .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-syndicate .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-syndicate .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-syndicate .Input--fluid{display:block;width:auto}.theme-syndicate .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-syndicate .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-syndicate .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-syndicate .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-syndicate .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #87ce87;border:.0833333333em solid rgba(135,206,135,.75);border-radius:.16em;color:#87ce87;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-syndicate .NumberInput--fluid{display:block}.theme-syndicate .NumberInput__content{margin-left:.5em}.theme-syndicate .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-syndicate .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #87ce87;background-color:#87ce87}.theme-syndicate .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-syndicate .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:.16em;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-syndicate .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-syndicate .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-syndicate .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-syndicate .ProgressBar--color--default{border:.0833333333em solid #306330}.theme-syndicate .ProgressBar--color--default .ProgressBar__fill{background-color:#306330}.theme-syndicate .Section{position:relative;margin-bottom:.5em;background-color:#390101;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-syndicate .Section:last-child{margin-bottom:0}.theme-syndicate .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #397439}.theme-syndicate .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-syndicate .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-syndicate .Section__rest{position:relative}.theme-syndicate .Section__content{padding:.66em .5em}.theme-syndicate .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-syndicate .Section--fill{display:flex;flex-direction:column;height:100%}.theme-syndicate .Section--fill>.Section__rest{flex-grow:1}.theme-syndicate .Section--fill>.Section__rest>.Section__content{height:100%}.theme-syndicate .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-syndicate .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-syndicate .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-syndicate .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-syndicate .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-syndicate .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-syndicate .Section .Section:first-child{margin-top:-.5em}.theme-syndicate .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-syndicate .Section .Section .Section .Section__titleText{font-size:1em}.theme-syndicate .Section--flex{display:flex;flex-flow:column}.theme-syndicate .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-syndicate .Section__content--noTopPadding{padding-top:0}.theme-syndicate .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-syndicate .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#4a0202;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:.16em;max-width:20.8333333333em}.theme-syndicate .Layout,.theme-syndicate .Layout *{scrollbar-base-color:#400202;scrollbar-face-color:#7e0303;scrollbar-3dlight-color:#550202;scrollbar-highlight-color:#550202;scrollbar-track-color:#400202;scrollbar-arrow-color:#fa3030;scrollbar-shadow-color:#7e0303}.theme-syndicate .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-syndicate .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-syndicate .Layout__content--flexRow{display:flex;flex-flow:row}.theme-syndicate .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-syndicate .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#550202;background-image:linear-gradient(to bottom,#730303,#370101)}.theme-syndicate .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-syndicate .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-syndicate .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-syndicate .Window__contentPadding:after{height:0}.theme-syndicate .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-syndicate .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(117,22,22,.25);pointer-events:none}.theme-syndicate .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-syndicate .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-syndicate .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-syndicate .TitleBar{background-color:#910101;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-syndicate .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#910101;transition:color .25s ease-out,background-color .25s ease-out}.theme-syndicate .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-syndicate .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-syndicate .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-syndicate .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-syndicate .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-syndicate .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-syndicate .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-syndicate .Layout__content{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4wIiB2aWV3Qm94PSIwIDAgMjAwIDI4OS43NDIiIG9wYWNpdHk9Ii4zMyI+DQogIDxwYXRoIGQ9Im0gOTMuNTM3Njc3LDAgYyAtMTguMTEzMTI1LDAgLTM0LjIyMDEzMywzLjExMTY0IC00OC4zMjM0ODQsOS4zMzQzNyAtMTMuOTY1MDkyLDYuMjIxNjcgLTI0LjYxMjQ0MiwxNS4wNzExNCAtMzEuOTQwNjUxLDI2LjU0NzEgLTcuMTg5OTM5OCwxMS4zMzc4OSAtMTAuMzAxMjI2NiwyNC43NDkxMSAtMTAuMzAxMjI2Niw0MC4yMzQ3OCAwLDEwLjY0NjYyIDIuNzI1MDAyNiwyMC40NjQ2NSA4LjE3NTExMTYsMjkuNDUyNTggNS42MTUyNzcsOC45ODY4NiAxNC4wMzgyNzcsMTcuMzUyMDQgMjUuMjY4ODIxLDI1LjA5NDM2IDExLjIzMDU0NCw3LjYwNTMxIDI2LjUwNzQyMSwxNS40MTgzNSA0NS44MzA1MTQsMjMuNDM3ODIgMTkuOTgzNzQ4LDguMjk1NTcgMzQuODQ4ODQ4LDE1LjU1NDcxIDQ0LjU5Mjk5OCwyMS43NzYzOCA5Ljc0NDE0LDYuMjIyNzMgMTYuNzYxNywxMi44NTg1IDIxLjA1NTcyLDE5LjkwOTUxIDQuMjk0MDQsNy4wNTIwOCA2LjQ0MTkzLDE1Ljc2NDA4IDYuNDQxOTMsMjYuMTM0NTkgMCwxNi4xNzcwMiAtNS4yMDE5NiwyOC40ODIyMiAtMTUuNjA2NzMsMzYuOTE2ODIgLTEwLjIzOTYsOC40MzQ3IC0yNS4wMjIwMywxMi42NTIzIC00NC4zNDUxNjksMTIuNjUyMyAtMTQuMDM4MTcxLDAgLTI1LjUxNTI0NywtMS42NTk0IC0zNC40MzM2MTgsLTQuOTc3NyAtOC45MTgzNywtMy40NTY2IC0xNi4xODU1NzIsLTguNzExMyAtMjEuODAwODM5LC0xNS43NjMzIC01LjYxNTI3NywtNy4wNTIxIC0xMC4wNzQ3OTUsLTE2LjY2MDg4IC0xMy4zNzc4OTksLTI4LjgyODEyIGwgLTI0Ljc3MzE2MjYyOTM5NDUsMCAwLDU2LjgyNjMyIEMgMzMuODU2NzY5LDI4Ni4wNzYwMSA2My43NDkwNCwyODkuNzQyMDEgODkuNjc4MzgzLDI4OS43NDIwMSBjIDE2LjAyMDAyNywwIDMwLjcxOTc4NywtMS4zODI3IDQ0LjA5NzMzNywtNC4xNDc5IDEzLjU0MjcyLC0yLjkwNDMgMjUuMTA0MSwtNy40Njc2IDM0LjY4MzA5LC0xMy42ODkzIDkuNzQ0MTMsLTYuMzU5NyAxNy4zNDA0MiwtMTQuNTE5NSAyMi43OTA1MiwtMjQuNDc0OCA1LjQ1MDEsLTEwLjA5MzMyIDguMTc1MTEsLTIyLjM5OTU5IDguMTc1MTEsLTM2LjkxNjgyIDAsLTEyLjk5NzY0IC0zLjMwMjEsLTI0LjMzNTM5IC05LjkwODI5LC0zNC4wMTQ2IC02LjQ0MTA1LC05LjgxNzI1IC0xNS41MjU0NSwtMTguNTI3MDcgLTI3LjI1MTQ2LC0yNi4xMzEzMyAtMTEuNTYwODUsLTcuNjA0MjcgLTI3LjkxMDgzLC0xNS44MzE0MiAtNDkuMDUwNjYsLTI0LjY4MDIyIC0xNy41MDY0NCwtNy4xOTAxMiAtMzAuNzE5NjY4LC0xMy42ODk0OCAtMzkuNjM4MDM4LC0xOS40OTcwMSAtOC45MTgzNzEsLTUuODA3NTIgLTE4LjYwNzQ3NCwtMTIuNDM0MDkgLTI0LjA5NjUyNCwtMTguODc0MTcgLTUuNDI2MDQzLC02LjM2NjE2IC05LjY1ODgyNiwtMTUuMDcwMDMgLTkuNjU4ODI2LC0yNC44ODcyOSAwLC05LjI2NDAxIDIuMDc1NDE0LC0xNy4yMTM0NSA2LjIyMzQ1NCwtMjMuODUwMzMgMTEuMDk4Mjk4LC0xNC4zOTc0OCA0MS4yODY2MzgsLTEuNzk1MDcgNDUuMDc1NjA5LDI0LjM0NzYyIDQuODM5MzkyLDYuNzc0OTEgOC44NDkzNSwxNi4yNDcyOSAxMi4wMjk1MTUsMjguNDE1NiBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNC40NzgyNSwtNS45MjQ0OCAtOS45NTQ4OCwtMTAuNjMyMjIgLTE1LjkwODM3LC0xNC4zNzQxMSAxLjY0MDU1LDAuNDc5MDUgMy4xOTAzOSwxLjAyMzc2IDQuNjM4NjUsMS42NDAyNCA2LjQ5ODYxLDIuNjI2MDcgMTIuMTY3OTMsNy4zMjc0NyAxNy4wMDczLDE0LjEwMzQ1IDQuODM5MzksNi43NzQ5MSA4Ljg0OTM1LDE2LjI0NTY3IDEyLjAyOTUyLDI4LjQxMzk3IDAsMCA4LjQ4MTI4LC0wLjEyODk0IDguNDg5NzgsLTAuMDAyIDAuNDE3NzYsNi40MTQ5NCAtMS43NTMzOSw5LjQ1Mjg2IC00LjEyMzQyLDEyLjU2MTA0IC0yLjQxNzQsMy4xNjk3OCAtNS4xNDQ4Niw2Ljc4OTczIC00LjAwMjc4LDEzLjAwMjkgMS41MDc4Niw4LjIwMzE4IDEwLjE4MzU0LDEwLjU5NjQyIDE0LjYyMTk0LDkuMzExNTQgLTMuMzE4NDIsLTAuNDk5MTEgLTUuMzE4NTUsLTEuNzQ5NDggLTUuMzE4NTUsLTEuNzQ5NDggMCwwIDEuODc2NDYsMC45OTg2OCA1LjY1MTE3LC0xLjM1OTgxIC0zLjI3Njk1LDAuOTU1NzEgLTEwLjcwNTI5LC0wLjc5NzM4IC0xMS44MDEyNSwtNi43NjMxMyAtMC45NTc1MiwtNS4yMDg2MSAwLjk0NjU0LC03LjI5NTE0IDMuNDAxMTMsLTEwLjUxNDgyIDIuNDU0NjIsLTMuMjE5NjggNS4yODQyNiwtNi45NTgzMSA0LjY4NDMsLTE0LjQ4ODI0IGwgMC4wMDMsMC4wMDIgOC45MjY3NiwwIDAsLTU1Ljk5OTY3IGMgLTE1LjA3MTI1LC0zLjg3MTY4IC0yNy42NTMxNCwtNi4zNjA0MiAtMzcuNzQ2NzEsLTcuNDY1ODYgLTkuOTU1MzEsLTEuMTA3NTUgLTIwLjE4ODIzLC0xLjY1OTgxIC0zMC42OTY2MTMsLTEuNjU5ODEgeiBtIDcwLjMyMTYwMywxNy4zMDg5MyAwLjIzODA1LDQwLjMwNDkgYyAxLjMxODA4LDEuMjI2NjYgMi40Mzk2NSwyLjI3ODE1IDMuMzQwODEsMy4xMDYwMiA0LjgzOTM5LDYuNzc0OTEgOC44NDkzNCwxNi4yNDU2NiAxMi4wMjk1MSwyOC40MTM5NyBsIDIwLjUzMjM0LDAgMCwtNTUuOTk5NjcgYyAtNi42NzczMSwtNC41OTM4MSAtMTkuODM2NDMsLTEwLjQ3MzA5IC0zNi4xNDA3MSwtMTUuODI1MjIgeiBtIC0yOC4xMjA0OSw1LjYwNTUxIDguNTY0NzksMTcuNzE2NTUgYyAtMTEuOTcwMzcsLTYuNDY2OTcgLTEzLjg0Njc4LC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk3MDUsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IG0gMTUuMjIxOTUsMjQuMDA4NDggOC41NjQ3OSwxNy43MTY1NSBjIC0xMS45NzAzOCwtNi40NjY5NyAtMTMuODQ2NzksLTkuNzE3MjYgLTguNTY0NzksLTE3LjcxNjU1IHogbSAyMi43OTcwNCwwIGMgMi43NzE1LDcuOTk5MjkgMS43ODc0MSwxMS4yNDk1OCAtNC40OTM1NCwxNy43MTY1NSBsIDQuNDkzNTQsLTE3LjcxNjU1IHogbSAtOTkuMTEzODQsMi4yMDc2NCA4LjU2NDc5LDE3LjcxNjU1IGMgLTExLjk3MDM4MiwtNi40NjY5NyAtMTMuODQ2NzgyLC05LjcxNzI2IC04LjU2NDc5LC0xNy43MTY1NSB6IG0gMjIuNzk1NDIsMCBjIDIuNzcxNSw3Ljk5OTI5IDEuNzg3NDEsMTEuMjQ5NTggLTQuNDkzNTQsMTcuNzE2NTUgbCA0LjQ5MzU0LC0xNy43MTY1NSB6IiAvPg0KPC9zdmc+DQo8IS0tIFRoaXMgd29yayBpcyBsaWNlbnNlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgQXR0cmlidXRpb24tU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbCBMaWNlbnNlLiAtLT4NCjwhLS0gaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvNC4wLyAtLT4NCg==)}.theme-wizard .Button{position:relative;display:inline-block;line-height:1.667em;padding:0 .5em;margin-right:.1666666667em;white-space:nowrap;outline:0;border-radius:2px;margin-bottom:.1666666667em;user-select:none;-ms-user-select:none}.theme-wizard .Button:last-child{margin-right:0;margin-bottom:0}.theme-wizard .Button .fa,.theme-wizard .Button .fas,.theme-wizard .Button .far{margin-left:-.25em;margin-right:-.25em;min-width:1.333em;text-align:center}.theme-wizard .Button--dropdown{line-height:1.3333333333em;height:1.8333333333em;padding:.2rem .5rem}.theme-wizard .Button--hasContent .fa,.theme-wizard .Button--hasContent .fas,.theme-wizard .Button--hasContent .far{margin-right:.25em}.theme-wizard .Button--hasContent.Button--iconPosition--right .fa,.theme-wizard .Button--hasContent.Button--iconPosition--right .fas,.theme-wizard .Button--hasContent.Button--iconPosition--right .far{margin-right:0;margin-left:3px}.theme-wizard .Button--ellipsis{text-overflow:ellipsis;overflow:hidden}.theme-wizard .Button--fluid{display:block;margin-left:0;margin-right:0}.theme-wizard .Button--circular{border-radius:50%}.theme-wizard .Button--compact{padding:0 .25em;line-height:1.333em}.theme-wizard .Button--color--default{transition:color 50ms,background-color 50ms;background-color:#1596b6;color:#fff}.theme-wizard .Button--color--default:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--default:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--default:hover,.theme-wizard .Button--color--default:focus{background-color:#30bde0;color:#fff}.theme-wizard .Button--color--caution{transition:color 50ms,background-color 50ms;background-color:#be6209;color:#fff}.theme-wizard .Button--color--caution:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--caution:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--caution:hover,.theme-wizard .Button--color--caution:focus{background-color:#ec8420;color:#fff}.theme-wizard .Button--color--danger{transition:color 50ms,background-color 50ms;background-color:#b30707;color:#fff}.theme-wizard .Button--color--danger:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--danger:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--danger:hover,.theme-wizard .Button--color--danger:focus{background-color:#e11b1b;color:#fff}.theme-wizard .Button--color--transparent{transition:color 50ms,background-color 50ms;background-color:#213e4e;color:#fff;background-color:rgba(33,62,78,0);color:rgba(255,255,255,.5)}.theme-wizard .Button--color--transparent:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--color--transparent:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--color--transparent:hover,.theme-wizard .Button--color--transparent:focus{background-color:#395b6d;color:#fff}.theme-wizard .Button--disabled{background-color:#02426d!important}.theme-wizard .Button--selected{transition:color 50ms,background-color 50ms;background-color:#465899;color:#fff}.theme-wizard .Button--selected:hover{transition:color 0ms,background-color 0ms}.theme-wizard .Button--selected:focus{transition:color .1s,background-color .1s}.theme-wizard .Button--selected:hover,.theme-wizard .Button--selected:focus{background-color:#6e7eba;color:#fff}.theme-wizard .Button--flex{display:inline-flex;flex-direction:column}.theme-wizard .Button--flex--fluid{width:100%}.theme-wizard .Button--verticalAlignContent--top{justify-content:flex-start}.theme-wizard .Button--verticalAlignContent--middle{justify-content:center}.theme-wizard .Button--verticalAlignContent--bottom{justify-content:flex-end}.theme-wizard .Button__content{display:block;align-self:stretch}.theme-wizard .Button__textMargin{margin-left:.4rem}.theme-wizard .NanoMap__container{overflow:hiddden;width:100%;z-index:1}.theme-wizard .NanoMap__marker{z-index:10;padding:0;margin:0}.theme-wizard .NanoMap__zoomer{z-index:20;background-color:rgba(0,0,0,.33);position:absolute;top:30px;left:0;padding:.5rem;width:30%}.theme-wizard .NoticeBox{padding:.33em .5em;margin-bottom:.5em;box-shadow:none;font-weight:700;font-style:italic;color:#fff;background-color:#a82d55;background-image:repeating-linear-gradient(-45deg,transparent,transparent .8333333333em,rgba(0,0,0,.1) .8333333333em,rgba(0,0,0,.1) 1.6666666667em)}.theme-wizard .NoticeBox--type--info{color:#fff;background-color:#235982}.theme-wizard .NoticeBox--type--success{color:#fff;background-color:#1e662f}.theme-wizard .NoticeBox--type--warning{color:#fff;background-color:#a95219}.theme-wizard .NoticeBox--type--danger{color:#fff;background-color:#8f2828}.theme-wizard .Input{position:relative;display:inline-block;width:10em;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#fff;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;overflow:visible}.theme-wizard .Input--fluid{display:block;width:auto}.theme-wizard .Input__baseline{display:inline-block;color:rgba(0,0,0,0)}.theme-wizard .Input__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:rgba(0,0,0,0);color:#fff;color:inherit}.theme-wizard .Input__input:-ms-input-placeholder{font-style:italic;color:#777;color:rgba(255,255,255,.45)}.theme-wizard .Input--monospace .Input__input{font-family:Consolas,monospace}.theme-wizard .NumberInput{position:relative;display:inline-block;border:.0833333333em solid #404b6e;border:.0833333333em solid rgba(64,75,110,.75);border-radius:2px;color:#404b6e;background-color:#0a0a0a;padding:0 .3333333333em;margin-right:.1666666667em;line-height:1.4166666667em;text-align:right;overflow:visible;cursor:n-resize}.theme-wizard .NumberInput--fluid{display:block}.theme-wizard .NumberInput__content{margin-left:.5em}.theme-wizard .NumberInput__barContainer{position:absolute;top:.1666666667em;bottom:.1666666667em;left:.1666666667em}.theme-wizard .NumberInput__bar{position:absolute;bottom:0;left:0;width:.25em;box-sizing:border-box;border-bottom:.0833333333em solid #404b6e;background-color:#404b6e}.theme-wizard .NumberInput__input{display:block;position:absolute;top:0;bottom:0;left:0;right:0;border:0;outline:0;width:100%;font-size:1em;line-height:1.4166666667em;height:1.4166666667em;margin:0;padding:0 .5em;font-family:Verdana,sans-serif;background-color:#0a0a0a;color:#fff;text-align:right}.theme-wizard .ProgressBar{display:inline-block;position:relative;width:100%;padding:0 .5em;border-width:.0833333333em!important;border-style:solid!important;border-radius:2px;background-color:rgba(0,0,0,.5);transition:border-color .9s ease-out}.theme-wizard .ProgressBar__fill{position:absolute;top:-.5px;left:0;bottom:-.5px}.theme-wizard .ProgressBar__fill--animated{transition:background-color .9s ease-out,width .9s ease-out}.theme-wizard .ProgressBar__content{position:relative;line-height:1.4166666667em;width:100%;text-align:right}.theme-wizard .ProgressBar--color--default{border:.0833333333em solid #12809b}.theme-wizard .ProgressBar--color--default .ProgressBar__fill{background-color:#12809b}.theme-wizard .Section{position:relative;margin-bottom:.5em;background-color:#162a34;background-color:rgba(0,0,0,.33);box-sizing:border-box}.theme-wizard .Section:last-child{margin-bottom:0}.theme-wizard .Section__title{position:relative;padding:.5em;border-bottom:.1666666667em solid #1596b6}.theme-wizard .Section__titleText{font-size:1.1666666667em;font-weight:700;color:#fff}.theme-wizard .Section__buttons{position:absolute;display:inline-block;right:.5em;margin-top:-.0833333333em}.theme-wizard .Section__rest{position:relative}.theme-wizard .Section__content{padding:.66em .5em}.theme-wizard .Section--fitted>.Section__rest>.Section__content{padding:0}.theme-wizard .Section--fill{display:flex;flex-direction:column;height:100%}.theme-wizard .Section--fill>.Section__rest{flex-grow:1}.theme-wizard .Section--fill>.Section__rest>.Section__content{height:100%}.theme-wizard .Section--fill.Section--scrollable>.Section__rest>.Section__content{position:absolute;top:0;left:0;right:0;bottom:0}.theme-wizard .Section--fill.Section--iefix{display:table!important;width:100%!important;height:100%!important;border-collapse:collapse;border-spacing:0}.theme-wizard .Section--fill.Section--iefix>.Section__rest{display:table-row!important;height:100%!important}.theme-wizard .Section--scrollable{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:hidden}.theme-wizard .Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:hidden;overflow-x:scroll}.theme-wizard .Section--scrollable.Section--scrollableHorizontal{overflow-x:hidden;overflow-y:hidden}.theme-wizard .Section--scrollable.Section--scrollableHorizontal>.Section__rest>.Section__content{overflow-y:scroll;overflow-x:scroll}.theme-wizard .Section .Section{background-color:rgba(0,0,0,0);margin-left:-.5em;margin-right:-.5em}.theme-wizard .Section .Section:first-child{margin-top:-.5em}.theme-wizard .Section .Section .Section__titleText{font-size:1.0833333333em}.theme-wizard .Section .Section .Section .Section__titleText{font-size:1em}.theme-wizard .Section--flex{display:flex;flex-flow:column}.theme-wizard .Section--flex .Section__content{overflow:auto;flex-grow:1}.theme-wizard .Section__content--noTopPadding{padding-top:0}.theme-wizard .Section__content--stretchContents{height:calc(100% - 3rem)}.theme-wizard .Tooltip{z-index:2;padding:.5em .75em;pointer-events:none;text-align:left;transition:opacity .15s ease-out;background-color:#2da848;color:#fff;box-shadow:.1em .1em 1.25em -.1em rgba(0,0,0,.5);border-radius:2px;max-width:20.8333333333em}.theme-wizard .Layout,.theme-wizard .Layout *{scrollbar-base-color:#192f3b;scrollbar-face-color:#2d546a;scrollbar-3dlight-color:#213e4e;scrollbar-highlight-color:#213e4e;scrollbar-track-color:#192f3b;scrollbar-arrow-color:#73a7c4;scrollbar-shadow-color:#2d546a}.theme-wizard .Layout__content{position:absolute;top:0;bottom:0;left:0;right:0;overflow-x:hidden;overflow-y:hidden}.theme-wizard .Layout__content--scrollable{overflow-y:scroll;margin-bottom:0}.theme-wizard .Layout__content--flexRow{display:flex;flex-flow:row}.theme-wizard .Layout__content--flexColumn{display:flex;flex-flow:column}.theme-wizard .Window{position:fixed;top:0;bottom:0;left:0;right:0;color:#fff;background-color:#213e4e;background-image:linear-gradient(to bottom,#2a4f64,#182d38)}.theme-wizard .Window__titleBar{position:fixed;z-index:1;top:0;left:0;width:100%;height:32px;height:2.6666666667rem}.theme-wizard .Window__rest{position:fixed;top:32px;top:2.6666666667rem;bottom:0;left:0;right:0}.theme-wizard .Window__contentPadding{margin:.5rem;height:100%;height:calc(100% - 1.01rem)}.theme-wizard .Window__contentPadding:after{height:0}.theme-wizard .Layout__content--scrollable .Window__contentPadding:after{display:block;content:"";height:.5rem}.theme-wizard .Window__dimmer{position:fixed;top:0;bottom:0;left:0;right:0;background-color:rgba(57,91,109,.25);pointer-events:none}.theme-wizard .Window__resizeHandle__se{position:fixed;bottom:0;right:0;width:20px;width:1.6666666667rem;height:20px;height:1.6666666667rem;cursor:se-resize}.theme-wizard .Window__resizeHandle__s{position:fixed;bottom:0;left:0;right:0;height:6px;height:.5rem;cursor:s-resize}.theme-wizard .Window__resizeHandle__e{position:fixed;top:0;bottom:0;right:0;width:3px;width:.25rem;cursor:e-resize}.theme-wizard .TitleBar{background-color:#1b9e26;border-bottom:1px solid #161616;box-shadow:0 2px 2px rgba(0,0,0,.1);box-shadow:0 .1666666667rem .1666666667rem rgba(0,0,0,.1);user-select:none;-ms-user-select:none}.theme-wizard .TitleBar__clickable{color:rgba(255,255,255,.5);background-color:#1b9e26;transition:color .25s ease-out,background-color .25s ease-out}.theme-wizard .TitleBar__clickable:hover{color:#fff;background-color:#c00;transition:color 0ms,background-color 0ms}.theme-wizard .TitleBar__title{position:absolute;display:inline-block;top:0;left:46px;left:3.8333333333rem;color:rgba(255,255,255,.75);font-size:14px;font-size:1.1666666667rem;line-height:31px;line-height:2.5833333333rem;white-space:nowrap;pointer-events:none}.theme-wizard .TitleBar__buttons{pointer-events:initial;display:inline-block;width:100%;margin-left:10px}.theme-wizard .TitleBar__dragZone{position:absolute;top:0;left:0;right:0;height:32px;height:2.6666666667rem}.theme-wizard .TitleBar__statusIcon{position:absolute;top:0;left:12px;left:1rem;transition:color .5s;font-size:20px;font-size:1.6666666667rem;line-height:32px!important;line-height:2.6666666667rem!important}.theme-wizard .TitleBar__close{position:absolute;top:-1px;right:0;width:45px;width:3.75rem;height:32px;height:2.6666666667rem;font-size:20px;font-size:1.6666666667rem;line-height:31px;line-height:2.5833333333rem;text-align:center}.theme-wizard .TitleBar__devBuildIndicator{position:absolute;top:6px;top:.5rem;right:52px;right:4.3333333333rem;min-width:20px;min-width:1.6666666667rem;padding:2px 4px;padding:.1666666667rem .3333333333rem;background-color:rgba(91,170,39,.75);color:#fff;text-align:center}.theme-wizard .Layout__content{background-image:url(data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJtZXRlb3IiIGNsYXNzPSJzdmctaW5saW5lLS1mYSBmYS1tZXRlb3IgZmEtdy0xNiIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBvcGFjaXR5PSIuMzMiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTUxMS4zMjgsMjAuODAyN2MtMTEuNjA3NTksMzguNzAyNjQtMzQuMzA3MjQsMTExLjcwMTczLTYxLjMwMzExLDE4Ny43MDA3Nyw2Ljk5ODkzLDIuMDkzNzIsMTMuNDA0Miw0LDE4LjYwNjUzLDUuNTkzNjhhMTYuMDYxNTgsMTYuMDYxNTgsMCwwLDEsOS40OTg1NCwyMi45MDZjLTIyLjEwNiw0Mi4yOTYzNS04Mi42OTA0NywxNTIuNzk1LTE0Mi40NzgxOSwyMTQuNDAzNTYtLjk5OTg0LDEuMDkzNzMtMS45OTk2OSwyLjUtMi45OTk1NCwzLjQ5OTk1QTE5NC44MzA0NiwxOTQuODMwNDYsMCwxLDEsNTcuMDg1LDE3OS40MTAwOWMuOTk5ODUtMSwyLjQwNTg4LTIsMy40OTk0Ny0zLDYxLjU5OTk0LTU5LjkwNTQ5LDE3MS45NzM2Ny0xMjAuNDA0NzMsMjE0LjM3MzQzLTE0Mi40OTgyYTE2LjA1OCwxNi4wNTgsMCwwLDEsMjIuOTAyNzQsOS40OTk4OGMxLjU5MzUxLDUuMDkzNjgsMy40OTk0NywxMS41OTM2LDUuNTkyOSwxOC41OTM1MUMzNzkuMzQ4MTgsMzUuMDA1NjUsNDUyLjQzMDc0LDEyLjMwMjgxLDQ5MS4xMjc5NC43MDkyMUExNi4xODMyNSwxNi4xODMyNSwwLDAsMSw1MTEuMzI4LDIwLjgwMjdaTTMxOS45NTEsMzIwLjAwMjA3QTEyNy45ODA0MSwxMjcuOTgwNDEsMCwxLDAsMTkxLjk3MDYxLDQ0OC4wMDA0NiwxMjcuOTc1NzMsMTI3Ljk3NTczLDAsMCwwLDMxOS45NTEsMzIwLjAwMjA3Wm0tMTI3Ljk4MDQxLTMxLjk5OTZhMzEuOTk1MSwzMS45OTUxLDAsMSwxLTMxLjk5NTEtMzEuOTk5NkEzMS45NTksMzEuOTU5LDAsMCwxLDE5MS45NzA2MSwyODguMDAyNDdabTMxLjk5NTEsNzkuOTk5YTE1Ljk5NzU1LDE1Ljk5NzU1LDAsMSwxLTE1Ljk5NzU1LTE1Ljk5OThBMTYuMDQ5NzUsMTYuMDQ5NzUsMCwwLDEsMjIzLjk2NTcxLDM2OC4wMDE0N1oiPjwvcGF0aD48L3N2Zz4NCjwhLS0gVGhpcyB3b3JrIGlzIGxpY2Vuc2VkIHVuZGVyIGEgQ3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbi1TaGFyZUFsaWtlIDQuMCBJbnRlcm5hdGlvbmFsIExpY2Vuc2UuIC0tPg0KPCEtLSBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9ieS1zYS80LjAvIC0tPg==)}.theme-abstract .TitleBar__statusIcon{display:none}.theme-abstract .Layout__content{background-image:none}.theme-abstract .TitleBar__title{left:12px} diff --git a/tgui/public/tgui.bundle.js b/tgui/public/tgui.bundle.js index a155198790..e29f6a8acc 100644 --- a/tgui/public/tgui.bundle.js +++ b/tgui/public/tgui.bundle.js @@ -1,4 +1,4 @@ -(function(){(function(){var Uu={75614:function(O,h,n){"use strict";/** +(function(){(function(){var Uu={75614:function(y,u,n){"use strict";/** * @license React * react-dom.production.min.js * @@ -6,7 +6,7 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function e(d,p){return p!=null&&typeof Symbol!="undefined"&&p[Symbol.hasInstance]?!!p[Symbol.hasInstance](d):d instanceof p}function i(d){"@swc/helpers - typeof";return d&&typeof Symbol!="undefined"&&d.constructor===Symbol?"symbol":typeof d}var t=n(61358),r=n(20686);function s(d){for(var p="https://reactjs.org/docs/error-decoder.html?invariant="+d,C=1;Cp}return!1}function y(d,p,C,I,A,N,F){this.acceptsBooleans=p===2||p===3||p===4,this.attributeName=I,this.attributeNamespace=A,this.mustUseProperty=C,this.propertyName=d,this.type=p,this.sanitizeURL=N,this.removeEmptyString=F}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(d){M[d]=new y(d,0,!1,d,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(d){var p=d[0];M[p]=new y(p,1,!1,d[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(d){M[d]=new y(d,2,!1,d.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(d){M[d]=new y(d,2,!1,d,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(d){M[d]=new y(d,3,!1,d.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(d){M[d]=new y(d,3,!0,d,null,!1,!1)}),["capture","download"].forEach(function(d){M[d]=new y(d,4,!1,d,null,!1,!1)}),["cols","rows","size","span"].forEach(function(d){M[d]=new y(d,6,!1,d,null,!1,!1)}),["rowSpan","start"].forEach(function(d){M[d]=new y(d,5,!1,d.toLowerCase(),null,!1,!1)});var P=/[\-:]([a-z])/g;function D(d){return d[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(d){var p=d.replace(P,D);M[p]=new y(p,1,!1,d,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(d){var p=d.replace(P,D);M[p]=new y(p,1,!1,d,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(d){var p=d.replace(P,D);M[p]=new y(p,1,!1,d,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(d){M[d]=new y(d,1,!1,d.toLowerCase(),null,!1,!1)}),M.xlinkHref=new y("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(d){M[d]=new y(d,1,!1,d.toLowerCase(),null,!0,!0)});function S(d,p,C,I){var A=M.hasOwnProperty(p)?M[p]:null;(A!==null?A.type!==0:I||!(2q||A[F]!==N[q]){var ue="\n"+A[F].replace(" at new "," at ");return d.displayName&&ue.includes("")&&(ue=ue.replace("",d.displayName)),ue}while(1<=F&&0<=q);break}}}finally{fe=!1,Error.prepareStackTrace=C}return(d=d?d.displayName||d.name:"")?le(d):""}function Ie(d){switch(d.tag){case 5:return le(d.type);case 16:return le("Lazy");case 13:return le("Suspense");case 19:return le("SuspenseList");case 0:case 2:case 15:return d=ge(d.type,!1),d;case 11:return d=ge(d.type.render,!1),d;case 1:return d=ge(d.type,!0),d;default:return""}}function Ee(d){if(d==null)return null;if(typeof d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case W:return"Fragment";case L:return"Portal";case k:return"Profiler";case $:return"StrictMode";case Q:return"Suspense";case ee:return"SuspenseList"}if(typeof d=="object")switch(d.$$typeof){case X:return(d.displayName||"Context")+".Consumer";case z:return(d._context.displayName||"Context")+".Provider";case G:var p=d.render;return d=d.displayName,d||(d=p.displayName||p.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case se:return p=d.displayName||null,p!==null?p:Ee(d.type)||"Memo";case ne:p=d._payload,d=d._init;try{return Ee(d(p))}catch(C){}}return null}function je(d){var p=d.type;switch(d.tag){case 24:return"Cache";case 9:return(p.displayName||"Context")+".Consumer";case 10:return(p._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return d=p.render,d=d.displayName||d.name||"",p.displayName||(d!==""?"ForwardRef("+d+")":"ForwardRef");case 7:return"Fragment";case 5:return p;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ee(p);case 8:return p===$?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p}return null}function Ne(d){switch(typeof d=="undefined"?"undefined":i(d)){case"boolean":case"number":case"string":case"undefined":return d;case"object":return d;default:return""}}function on(d){var p=d.type;return(d=d.nodeName)&&d.toLowerCase()==="input"&&(p==="checkbox"||p==="radio")}function Xe(d){var p=on(d)?"checked":"value",C=Object.getOwnPropertyDescriptor(d.constructor.prototype,p),I=""+d[p];if(!d.hasOwnProperty(p)&&typeof C!="undefined"&&typeof C.get=="function"&&typeof C.set=="function"){var A=C.get,N=C.set;return Object.defineProperty(d,p,{configurable:!0,get:function(){return A.call(this)},set:function(q){I=""+q,N.call(this,q)}}),Object.defineProperty(d,p,{enumerable:C.enumerable}),{getValue:function(){return I},setValue:function(q){I=""+q},stopTracking:function(){d._valueTracker=null,delete d[p]}}}}function Pe(d){d._valueTracker||(d._valueTracker=Xe(d))}function qe(d){if(!d)return!1;var p=d._valueTracker;if(!p)return!0;var C=p.getValue(),I="";return d&&(I=on(d)?d.checked?"true":"false":d.value),d=I,d!==C?(p.setValue(d),!0):!1}function jn(d){if(d=d||(typeof document!="undefined"?document:void 0),typeof d=="undefined")return null;try{return d.activeElement||d.body}catch(p){return d.body}}function En(d,p){var C=p.checked;return te({},p,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:C!=null?C:d._wrapperState.initialChecked})}function hn(d,p){var C=p.defaultValue==null?"":p.defaultValue,I=p.checked!=null?p.checked:p.defaultChecked;C=Ne(p.value!=null?p.value:C),d._wrapperState={initialChecked:I,initialValue:C,controlled:p.type==="checkbox"||p.type==="radio"?p.checked!=null:p.value!=null}}function Cn(d,p){p=p.checked,p!=null&&S(d,"checked",p,!1)}function fn(d,p){Cn(d,p);var C=Ne(p.value),I=p.type;if(C!=null)I==="number"?(C===0&&d.value===""||d.value!=C)&&(d.value=""+C):d.value!==""+C&&(d.value=""+C);else if(I==="submit"||I==="reset"){d.removeAttribute("value");return}p.hasOwnProperty("value")?Se(d,p.type,C):p.hasOwnProperty("defaultValue")&&Se(d,p.type,Ne(p.defaultValue)),p.checked==null&&p.defaultChecked!=null&&(d.defaultChecked=!!p.defaultChecked)}function tn(d,p,C){if(p.hasOwnProperty("value")||p.hasOwnProperty("defaultValue")){var I=p.type;if(!(I!=="submit"&&I!=="reset"||p.value!==void 0&&p.value!==null))return;p=""+d._wrapperState.initialValue,C||p===d.value||(d.value=p),d.defaultValue=p}C=d.name,C!==""&&(d.name=""),d.defaultChecked=!!d._wrapperState.initialChecked,C!==""&&(d.name=C)}function Se(d,p,C){(p!=="number"||jn(d.ownerDocument)!==d)&&(C==null?d.defaultValue=""+d._wrapperState.initialValue:d.defaultValue!==""+C&&(d.defaultValue=""+C))}var Le=Array.isArray;function Oe(d,p,C,I){if(d=d.options,p){p={};for(var A=0;A"+p.valueOf().toString()+"",p=In.firstChild;d.firstChild;)d.removeChild(d.firstChild);for(;p.firstChild;)d.appendChild(p.firstChild)}});function rn(d,p){if(p){var C=d.firstChild;if(C&&C===d.lastChild&&C.nodeType===3){C.nodeValue=p;return}}d.textContent=p}var $e={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fe=["Webkit","ms","Moz","O"];Object.keys($e).forEach(function(d){Fe.forEach(function(p){p=p+d.charAt(0).toUpperCase()+d.substring(1),$e[p]=$e[d]})});function mn(d,p,C){return p==null||typeof p=="boolean"||p===""?"":C||typeof p!="number"||p===0||$e.hasOwnProperty(d)&&$e[d]?(""+p).trim():p+"px"}function _n(d,p){d=d.style;for(var C in p)if(p.hasOwnProperty(C)){var I=C.indexOf("--")===0,A=mn(C,p[C],I);C==="float"&&(C="cssFloat"),I?d.setProperty(C,A):d[C]=A}}var Dt=te({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function rt(d,p){if(p){if(Dt[d]&&(p.children!=null||p.dangerouslySetInnerHTML!=null))throw Error(s(137,d));if(p.dangerouslySetInnerHTML!=null){if(p.children!=null)throw Error(s(60));if(typeof p.dangerouslySetInnerHTML!="object"||!("__html"in p.dangerouslySetInnerHTML))throw Error(s(61))}if(p.style!=null&&typeof p.style!="object")throw Error(s(62))}}function pt(d,p){if(d.indexOf("-")===-1)return typeof p.is=="string";switch(d){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jn=null;function dt(d){return d=d.target||d.srcElement||window,d.correspondingUseElement&&(d=d.correspondingUseElement),d.nodeType===3?d.parentNode:d}var Nt=null,Qt=null,ur=null;function ti(d){if(d=$o(d)){if(typeof Nt!="function")throw Error(s(280));var p=d.stateNode;p&&(p=ko(p),Nt(d.stateNode,d.type,p))}}function ri(d){Qt?ur?ur.push(d):ur=[d]:Qt=d}function oi(){if(Qt){var d=Qt,p=ur;if(ur=Qt=null,ti(d),p)for(d=0;d>>=0,d===0?32:31-(Fa(d)/Va|0)|0}var hr=64,ci=4194304;function jo(d){switch(d&-d){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return d&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return d&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return d}}function ui(d,p){var C=d.pendingLanes;if(C===0)return 0;var I=0,A=d.suspendedLanes,N=d.pingedLanes,F=C&268435455;if(F!==0){var q=F&~A;q!==0?I=jo(q):(N&=F,N!==0&&(I=jo(N)))}else F=C&~A,F!==0?I=jo(F):N!==0&&(I=jo(N));if(I===0)return 0;if(p!==0&&p!==I&&!(p&A)&&(A=I&-I,N=p&-p,A>=N||A===16&&(N&4194240)!==0))return p;if(I&4&&(I|=C&16),p=d.entangledLanes,p!==0)for(d=d.entanglements,p&=I;0C;C++)p.push(d);return p}function Eo(d,p,C){d.pendingLanes|=p,p!==536870912&&(d.suspendedLanes=0,d.pingedLanes=0),d=d.eventTimes,p=31-bt(p),d[p]=C}function ol(d,p){var C=d.pendingLanes&~p;d.pendingLanes=p,d.suspendedLanes=0,d.pingedLanes=0,d.expiredLanes&=p,d.mutableReadLanes&=p,d.entangledLanes&=p,p=d.entanglements;var I=d.eventTimes;for(d=d.expirationTimes;0=ji),ia=" ",aa=!1;function ss(d,p){switch(d){case"keyup":return gl.indexOf(p.keyCode)!==-1;case"keydown":return p.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ls(d){return d=d.detail,typeof d=="object"&&"data"in d?d.data:null}var Zt=!1;function cs(d,p){switch(d){case"compositionend":return ls(p);case"keypress":return p.which!==32?null:(aa=!0,ia);case"textInput":return d=p.data,d===ia&&aa?null:d;default:return null}}function us(d,p){if(Zt)return d==="compositionend"||!oa&&ss(d,p)?(d=pr(),mi=Hi=gr=null,Zt=!1,d):null;switch(d){case"paste":return null;case"keypress":if(!(p.ctrlKey||p.altKey||p.metaKey)||p.ctrlKey&&p.altKey){if(p.char&&1=p)return{node:C,offset:p-d};d=I}e:{for(;C;){if(C.nextSibling){C=C.nextSibling;break e}C=C.parentNode}C=void 0}C=fs(C)}}function Ao(d,p){return d&&p?d===p?!0:d&&d.nodeType===3?!1:p&&p.nodeType===3?Ao(d,p.parentNode):"contains"in d?d.contains(p):d.compareDocumentPosition?!!(d.compareDocumentPosition(p)&16):!1:!1}function ms(){for(var d=window,p=jn();e(p,d.HTMLIFrameElement);){try{var C=typeof p.contentWindow.location.href=="string"}catch(I){C=!1}if(C)d=p.contentWindow;else break;p=jn(d.document)}return p}function da(d){var p=d&&d.nodeName&&d.nodeName.toLowerCase();return p&&(p==="input"&&(d.type==="text"||d.type==="search"||d.type==="tel"||d.type==="url"||d.type==="password")||p==="textarea"||d.contentEditable==="true")}function Hr(d){var p=ms(),C=d.focusedElem,I=d.selectionRange;if(p!==C&&C&&C.ownerDocument&&Ao(C.ownerDocument.documentElement,C)){if(I!==null&&da(C)){if(p=I.start,d=I.end,d===void 0&&(d=p),"selectionStart"in C)C.selectionStart=p,C.selectionEnd=Math.min(d,C.value.length);else if(d=(p=C.ownerDocument||document)&&p.defaultView||window,d.getSelection){d=d.getSelection();var A=C.textContent.length,N=Math.min(I.start,A);I=I.end===void 0?N:Math.min(I.end,A),!d.extend&&N>I&&(A=I,I=N,N=A),A=hs(C,N);var F=hs(C,I);A&&F&&(d.rangeCount!==1||d.anchorNode!==A.node||d.anchorOffset!==A.offset||d.focusNode!==F.node||d.focusOffset!==F.offset)&&(p=p.createRange(),p.setStart(A.node,A.offset),d.removeAllRanges(),N>I?(d.addRange(p),d.extend(F.node,F.offset)):(p.setEnd(F.node,F.offset),d.addRange(p)))}}for(p=[],d=C;d=d.parentNode;)d.nodeType===1&&p.push({element:d,left:d.scrollLeft,top:d.scrollTop});for(typeof C.focus=="function"&&C.focus(),C=0;C=document.documentMode,Cr=null,ha=null,Ro=null,vs=!1;function ma(d,p,C){var I=C.window===C?C.document:C.nodeType===9?C:C.ownerDocument;vs||Cr==null||Cr!==jn(I)||(I=Cr,"selectionStart"in I&&da(I)?I={start:I.selectionStart,end:I.selectionEnd}:(I=(I.ownerDocument&&I.ownerDocument.defaultView||window).getSelection(),I={anchorNode:I.anchorNode,anchorOffset:I.anchorOffset,focusNode:I.focusNode,focusOffset:I.focusOffset}),Ro&&To(Ro,I)||(Ro=I,I=No(ha,"onSelect"),0Zr||(d.current=Fo[Zr],Fo[Zr]=null,Zr--)}function Tn(d,p){Zr++,Fo[Zr]=d.current,d.current=p}var rr={},qn=tr(rr),lt=tr(!1),Br=rr;function Jr(d,p){var C=d.type.contextTypes;if(!C)return rr;var I=d.stateNode;if(I&&I.__reactInternalMemoizedUnmaskedChildContext===p)return I.__reactInternalMemoizedMaskedChildContext;var A={},N;for(N in C)A[N]=p[N];return I&&(d=d.stateNode,d.__reactInternalMemoizedUnmaskedChildContext=p,d.__reactInternalMemoizedMaskedChildContext=A),A}function ot(d){return d=d.childContextTypes,d!=null}function Kr(){bn(lt),bn(qn)}function Os(d,p,C){if(qn.current!==rr)throw Error(s(168));Tn(qn,p),Tn(lt,C)}function qr(d,p,C){var I=d.stateNode;if(p=p.childContextTypes,typeof I.getChildContext!="function")return C;I=I.getChildContext();for(var A in I)if(!(A in p))throw Error(s(108,je(d)||"Unknown",A));return te({},C,I)}function Si(d){return d=(d=d.stateNode)&&d.__reactInternalMemoizedMergedChildContext||rr,Br=qn.current,Tn(qn,d),Tn(lt,lt.current),!0}function Al(d,p,C){var I=d.stateNode;if(!I)throw Error(s(169));C?(d=qr(d,p,Br),I.__reactInternalMemoizedMergedChildContext=d,bn(lt),bn(qn),Tn(qn,d)):bn(lt),Tn(lt,C)}var kt=null,eo=!1,Pa=!1;function ys(d){kt===null?kt=[d]:kt.push(d)}function Ia(d){eo=!0,ys(d)}function yr(){if(!Pa&&kt!==null){Pa=!0;var d=0,p=Dn;try{var C=kt;for(Dn=1;d>=F,A-=F,Ft=1<<32-bt(p)+A|C<vn?(tt=dn,dn=null):tt=dn.sibling;var Pn=De(he,dn,xe[vn],Ue);if(Pn===null){dn===null&&(dn=tt);break}d&&dn&&Pn.alternate===null&&p(he,dn),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn,dn=tt}if(vn===xe.length)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;vnvn?(tt=dn,dn=null):tt=dn.sibling;var ho=De(he,dn,Pn.value,Ue);if(ho===null){dn===null&&(dn=tt);break}d&&dn&&ho.alternate===null&&p(he,dn),de=N(ho,de,vn),un===null?nn=ho:un.sibling=ho,un=ho,dn=tt}if(Pn.done)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;!Pn.done;vn++,Pn=xe.next())Pn=Te(he,Pn.value,Ue),Pn!==null&&(de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return Nn&&no(he,vn),nn}for(dn=I(he,dn);!Pn.done;vn++,Pn=xe.next())Pn=Ve(dn,he,vn,Pn.value,Ue),Pn!==null&&(d&&Pn.alternate!==null&&dn.delete(Pn.key===null?vn:Pn.key),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return d&&dn.forEach(function(vd){return p(he,vd)}),Nn&&no(he,vn),nn}function Vn(he,de,xe,Ue){if(typeof xe=="object"&&xe!==null&&xe.type===W&&xe.key===null&&(xe=xe.props.children),typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case T:e:{for(var nn=xe.key,un=de;un!==null;){if(un.key===nn){if(nn=xe.type,nn===W){if(un.tag===7){C(he,un.sibling),de=A(un,xe.props.children),de.return=he,he=de;break e}}else if(un.elementType===nn||typeof nn=="object"&&nn!==null&&nn.$$typeof===ne&&re(nn)===un.type){C(he,un.sibling),de=A(un,xe.props),de.ref=oe(he,un,xe),de.return=he,he=de;break e}C(he,un);break}else p(he,un);un=un.sibling}xe.type===W?(de=ni(xe.props.children,he.mode,Ue,xe.key),de.return=he,he=de):(Ue=$s(xe.type,xe.key,xe.props,null,he.mode,Ue),Ue.ref=oe(he,de,xe),Ue.return=he,he=Ue)}return F(he);case L:e:{for(un=xe.key;de!==null;){if(de.key===un)if(de.tag===4&&de.stateNode.containerInfo===xe.containerInfo&&de.stateNode.implementation===xe.implementation){C(he,de.sibling),de=A(de,xe.children||[]),de.return=he,he=de;break e}else{C(he,de);break}else p(he,de);de=de.sibling}de=fc(xe,he.mode,Ue),de.return=he,he=de}return F(he);case ne:return un=xe._init,Vn(he,de,un(xe._payload),Ue)}if(Le(xe))return Ze(he,de,xe,Ue);if(V(xe))return Je(he,de,xe,Ue);ae(he,xe)}return typeof xe=="string"&&xe!==""||typeof xe=="number"?(xe=""+xe,de!==null&&de.tag===6?(C(he,de.sibling),de=A(de,xe),de.return=he,he=de):(C(he,de),de=dc(xe,he.mode,Ue),de.return=he,he=de),F(he)):C(he,de)}return Vn}var me=ie(!0),Ce=ie(!1),ve=tr(null),Me=null,be=null,Be=null;function Ke(){Be=be=Me=null}function ze(d){var p=ve.current;bn(ve),d._currentValue=p}function en(d,p,C){for(;d!==null;){var I=d.alternate;if((d.childLanes&p)!==p?(d.childLanes|=p,I!==null&&(I.childLanes|=p)):I!==null&&(I.childLanes&p)!==p&&(I.childLanes|=p),d===C)break;d=d.return}}function _e(d,p){Me=d,Be=be=null,d=d.dependencies,d!==null&&d.firstContext!==null&&(d.lanes&p&&(_t=!0),d.firstContext=null)}function We(d){var p=d._currentValue;if(Be!==d)if(d={context:d,memoizedValue:p,next:null},be===null){if(Me===null)throw Error(s(308));be=d,Me.dependencies={lanes:0,firstContext:d}}else be=be.next=d;return p}var Ge=null;function gn(d){Ge===null?Ge=[d]:Ge.push(d)}function an(d,p,C,I){var A=p.interleaved;return A===null?(C.next=C,gn(p)):(C.next=A.next,A.next=C),p.interleaved=C,cn(d,I)}function cn(d,p){d.lanes|=p;var C=d.alternate;for(C!==null&&(C.lanes|=p),C=d,d=d.return;d!==null;)d.childLanes|=p,C=d.alternate,C!==null&&(C.childLanes|=p),C=d,d=d.return;return C.tag===3?C.stateNode:null}var Re=!1;function sn(d){d.updateQueue={baseState:d.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ln(d,p){d=d.updateQueue,p.updateQueue===d&&(p.updateQueue={baseState:d.baseState,firstBaseUpdate:d.firstBaseUpdate,lastBaseUpdate:d.lastBaseUpdate,shared:d.shared,effects:d.effects})}function pn(d,p){return{eventTime:d,lane:p,tag:0,payload:null,callback:null,next:null}}function An(d,p,C){var I=d.updateQueue;if(I===null)return null;if(I=I.shared,Mn&2){var A=I.pending;return A===null?p.next=p:(p.next=A.next,A.next=p),I.pending=p,cn(d,C)}return A=I.interleaved,A===null?(p.next=p,gn(I)):(p.next=A.next,A.next=p),I.interleaved=p,cn(d,C)}function et(d,p,C){if(p=p.updateQueue,p!==null&&(p=p.shared,(C&4194240)!==0)){var I=p.lanes;I&=d.pendingLanes,C|=I,p.lanes=C,Fi(d,C)}}function Bn(d,p){var C=d.updateQueue,I=d.alternate;if(I!==null&&(I=I.updateQueue,C===I)){var A=null,N=null;if(C=C.firstBaseUpdate,C!==null){do{var F={eventTime:C.eventTime,lane:C.lane,tag:C.tag,payload:C.payload,callback:C.callback,next:null};N===null?A=N=F:N=N.next=F,C=C.next}while(C!==null);N===null?A=N=p:N=N.next=p}else A=N=p;C={baseState:I.baseState,firstBaseUpdate:A,lastBaseUpdate:N,shared:I.shared,effects:I.effects},d.updateQueue=C;return}d=C.lastBaseUpdate,d===null?C.firstBaseUpdate=p:d.next=p,C.lastBaseUpdate=p}function kn(d,p,C,I){var A=d.updateQueue;Re=!1;var N=A.firstBaseUpdate,F=A.lastBaseUpdate,q=A.shared.pending;if(q!==null){A.shared.pending=null;var ue=q,pe=ue.next;ue.next=null,F===null?N=pe:F.next=pe,F=ue;var ye=d.alternate;ye!==null&&(ye=ye.updateQueue,q=ye.lastBaseUpdate,q!==F&&(q===null?ye.firstBaseUpdate=pe:q.next=pe,ye.lastBaseUpdate=ue))}if(N!==null){var Te=A.baseState;F=0,ye=pe=ue=null,q=N;do{var De=q.lane,Ve=q.eventTime;if((I&De)===De){ye!==null&&(ye=ye.next={eventTime:Ve,lane:0,tag:q.tag,payload:q.payload,callback:q.callback,next:null});e:{var Ze=d,Je=q;switch(De=p,Ve=C,Je.tag){case 1:if(Ze=Je.payload,typeof Ze=="function"){Te=Ze.call(Ve,Te,De);break e}Te=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=Je.payload,De=typeof Ze=="function"?Ze.call(Ve,Te,De):Ze,De==null)break e;Te=te({},Te,De);break e;case 2:Re=!0}}q.callback!==null&&q.lane!==0&&(d.flags|=64,De=A.effects,De===null?A.effects=[q]:De.push(q))}else Ve={eventTime:Ve,lane:De,tag:q.tag,payload:q.payload,callback:q.callback,next:null},ye===null?(pe=ye=Ve,ue=Te):ye=ye.next=Ve,F|=De;if(q=q.next,q===null){if(q=A.shared.pending,q===null)break;De=q,q=De.next,De.next=null,A.lastBaseUpdate=De,A.shared.pending=null}}while(!0);if(ye===null&&(ue=Te),A.baseState=ue,A.firstBaseUpdate=pe,A.lastBaseUpdate=ye,p=A.shared.interleaved,p!==null){A=p;do F|=A.lane,A=A.next;while(A!==p)}else N===null&&(A.shared.lanes=0);Zo|=F,d.lanes=F,d.memoizedState=Te}}function Gt(d,p,C){if(d=p.effects,p.effects=null,d!==null)for(p=0;pC?C:4,d(!0);var I=Ai.transition;Ai.transition={};try{d(!1),p()}finally{Dn=C,Ai.transition=I}}function Wc(){return vt().memoizedState}function Wu(d,p,C){var I=co(d);if(C={lane:I,action:C,hasEagerState:!1,eagerState:null,next:null},wc(d))zc(p,C);else if(C=an(d,p,C,I),C!==null){var A=gt();cr(C,d,I,A),$c(C,p,I)}}function wu(d,p,C){var I=co(d),A={lane:I,action:C,hasEagerState:!1,eagerState:null,next:null};if(wc(d))zc(p,A);else{var N=d.alternate;if(d.lanes===0&&(N===null||N.lanes===0)&&(N=p.lastRenderedReducer,N!==null))try{var F=p.lastRenderedState,q=N(F,C);if(A.hasEagerState=!0,A.eagerState=q,Ct(q,F)){var ue=p.interleaved;ue===null?(A.next=A,gn(p)):(A.next=ue.next,ue.next=A),p.interleaved=A;return}}catch(pe){}finally{}C=an(d,p,A,I),C!==null&&(A=gt(),cr(C,d,I,A),$c(C,p,I))}}function wc(d){var p=d.alternate;return d===Wn||p!==null&&p===Wn}function zc(d,p){Yo=Ri=!0;var C=d.pending;C===null?p.next=p:(p.next=C.next,C.next=p),d.pending=p}function $c(d,p,C){if(C&4194240){var I=p.lanes;I&=d.pendingLanes,C|=I,p.lanes=C,Fi(d,C)}}var Ds={readContext:We,useCallback:Qn,useContext:Qn,useEffect:Qn,useImperativeHandle:Qn,useInsertionEffect:Qn,useLayoutEffect:Qn,useMemo:Qn,useReducer:Qn,useRef:Qn,useState:Qn,useDebugValue:Qn,useDeferredValue:Qn,useTransition:Qn,useMutableSource:Qn,useSyncExternalStore:Qn,useId:Qn,unstable_isNewReconciler:!1},zu={readContext:We,useCallback:function(p,C){return Lt().memoizedState=[p,C===void 0?null:C],p},useContext:We,useEffect:Tc,useImperativeHandle:function(p,C,I){return I=I!=null?I.concat([p]):null,Ps(4194308,4,Bc.bind(null,C,p),I)},useLayoutEffect:function(p,C){return Ps(4194308,4,p,C)},useInsertionEffect:function(p,C){return Ps(4,2,p,C)},useMemo:function(p,C){var I=Lt();return C=C===void 0?null:C,p=p(),I.memoizedState=[p,C],p},useReducer:function(p,C,I){var A=Lt();return C=I!==void 0?I(C):C,A.memoizedState=A.baseState=C,p={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:p,lastRenderedState:C},A.queue=p,p=p.dispatch=Wu.bind(null,Wn,p),[A.memoizedState,p]},useRef:function(p){var C=Lt();return p={current:p},C.memoizedState=p},useState:Sc,useDebugValue:Nl,useDeferredValue:function(p){return Lt().memoizedState=p},useTransition:function(){var p=Sc(!1),C=p[0];return p=Nu.bind(null,p[1]),Lt().memoizedState=p,[C,p]},useMutableSource:function(){},useSyncExternalStore:function(p,C,I){var A=Wn,N=Lt();if(Nn){if(I===void 0)throw Error(s(407));I=I()}else{if(I=C(),nt===null)throw Error(s(349));Nr&30||Mc(A,C,I)}N.memoizedState=I;var F={value:I,getSnapshot:C};return N.queue=F,Tc(Pc.bind(null,A,F,p),[p]),A.flags|=2048,Sa(9,_c.bind(null,A,F,I,C),void 0,null),I},useId:function(){var p=Lt(),C=nt.identifierPrefix;if(Nn){var I=ir,A=Ft;I=(A&~(1<<32-bt(A)-1)).toString(32)+I,C=":"+C+"R"+I,I=Kt++,0<\/script>",d=d.removeChild(d.firstChild)):typeof I.is=="string"?d=F.createElement(C,{is:I.is}):(d=F.createElement(C),C==="select"&&(F=d,I.multiple?F.multiple=!0:I.size&&(F.size=I.size))):d=F.createElementNS(d,C),d[Bt]=p,d[Rr]=I,lu(d,p,!1,!1),p.stateNode=d;e:{switch(F=pt(C,I),C){case"dialog":Rn("cancel",d),Rn("close",d),A=I;break;case"iframe":case"object":case"embed":Rn("load",d),A=I;break;case"video":case"audio":for(A=0;Awi&&(p.flags|=128,I=!0,ba(N,!1),p.lanes=4194304)}else{if(!I)if(d=oo(F),d!==null){if(p.flags|=128,I=!0,C=d.updateQueue,C!==null&&(p.updateQueue=C,p.flags|=4),ba(N,!0),N.tail===null&&N.tailMode==="hidden"&&!F.alternate&&!Nn)return ct(p),null}else 2*Ln()-N.renderingStartTime>wi&&C!==1073741824&&(p.flags|=128,I=!0,ba(N,!1),p.lanes=4194304);N.isBackwards?(F.sibling=p.child,p.child=F):(C=N.last,C!==null?C.sibling=F:p.child=F,N.last=F)}return N.tail!==null?(p=N.tail,N.rendering=p,N.tail=p.sibling,N.renderingStartTime=Ln(),p.sibling=null,C=Sn.current,Tn(Sn,I?C&1|2:C&1),p):(ct(p),null);case 22:case 23:return lc(),I=p.memoizedState!==null,d!==null&&d.memoizedState!==null!==I&&(p.flags|=8192),I&&p.mode&1?Ut&1073741824&&(ct(p),p.subtreeFlags&6&&(p.flags|=8192)):ct(p),null;case 24:return null;case 25:return null}throw Error(s(156,p.tag))}function Yu(d,p){switch(Ms(p),p.tag){case 1:return ot(p.type)&&Kr(),d=p.flags,d&65536?(p.flags=d&-65537|128,p):null;case 3:return mt(),bn(lt),bn(qn),Ho(),d=p.flags,d&65536&&!(d&128)?(p.flags=d&-65537|128,p):null;case 5:return ro(p),null;case 13:if(bn(Sn),d=p.memoizedState,d!==null&&d.dehydrated!==null){if(p.alternate===null)throw Error(s(340));R()}return d=p.flags,d&65536?(p.flags=d&-65537|128,p):null;case 19:return bn(Sn),null;case 4:return mt(),null;case 10:return ze(p.type._context),null;case 22:case 23:return lc(),null;case 24:return null;default:return null}}var As=!1,ut=!1,Qu=typeof WeakSet=="function"?WeakSet:Set,Ye=null;function Ni(d,p){var C=d.ref;if(C!==null)if(typeof C=="function")try{C(null)}catch(I){$n(d,p,I)}else C.current=null}function Ql(d,p,C){try{C()}catch(I){$n(d,p,I)}}var du=!1;function Zu(d,p){if(ja=vr,d=ms(),da(d)){if("selectionStart"in d)var C={start:d.selectionStart,end:d.selectionEnd};else e:{C=(C=d.ownerDocument)&&C.defaultView||window;var I=C.getSelection&&C.getSelection();if(I&&I.rangeCount!==0){C=I.anchorNode;var A=I.anchorOffset,N=I.focusNode;I=I.focusOffset;try{C.nodeType,N.nodeType}catch(Ue){C=null;break e}var F=0,q=-1,ue=-1,pe=0,ye=0,Te=d,De=null;n:for(;;){for(var Ve;Te!==C||A!==0&&Te.nodeType!==3||(q=F+A),Te!==N||I!==0&&Te.nodeType!==3||(ue=F+I),Te.nodeType===3&&(F+=Te.nodeValue.length),(Ve=Te.firstChild)!==null;)De=Te,Te=Ve;for(;;){if(Te===d)break n;if(De===C&&++pe===A&&(q=F),De===N&&++ye===I&&(ue=F),(Ve=Te.nextSibling)!==null)break;Te=De,De=Te.parentNode}Te=Ve}C=q===-1||ue===-1?null:{start:q,end:ue}}else C=null}C=C||{start:0,end:0}}else C=null;for(Ea={focusedElem:d,selectionRange:C},vr=!1,Ye=p;Ye!==null;)if(p=Ye,d=p.child,(p.subtreeFlags&1028)!==0&&d!==null)d.return=p,Ye=d;else for(;Ye!==null;){p=Ye;try{var Ze=p.alternate;if(p.flags&1024)switch(p.tag){case 0:case 11:case 15:break;case 1:if(Ze!==null){var Je=Ze.memoizedProps,Vn=Ze.memoizedState,he=p.stateNode,de=he.getSnapshotBeforeUpdate(p.elementType===p.type?Je:ar(p.type,Je),Vn);he.__reactInternalSnapshotBeforeUpdate=de}break;case 3:var xe=p.stateNode.containerInfo;xe.nodeType===1?xe.textContent="":xe.nodeType===9&&xe.documentElement&&xe.removeChild(xe.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(Ue){$n(p,p.return,Ue)}if(d=p.sibling,d!==null){d.return=p.return,Ye=d;break}Ye=p.return}return Ze=du,du=!1,Ze}function Ta(d,p,C){var I=p.updateQueue;if(I=I!==null?I.lastEffect:null,I!==null){var A=I=I.next;do{if((A.tag&d)===d){var N=A.destroy;A.destroy=void 0,N!==void 0&&Ql(p,C,N)}A=A.next}while(A!==I)}}function Rs(d,p){if(p=p.updateQueue,p=p!==null?p.lastEffect:null,p!==null){var C=p=p.next;do{if((C.tag&d)===d){var I=C.create;C.destroy=I()}C=C.next}while(C!==p)}}function Zl(d){var p=d.ref;if(p!==null){var C=d.stateNode;switch(d.tag){case 5:d=C;break;default:d=C}typeof p=="function"?p(d):p.current=d}}function fu(d){var p=d.alternate;p!==null&&(d.alternate=null,fu(p)),d.child=null,d.deletions=null,d.sibling=null,d.tag===5&&(p=d.stateNode,p!==null&&(delete p[Bt],delete p[Rr],delete p[Ma],delete p[_a],delete p[Tl])),d.stateNode=null,d.return=null,d.dependencies=null,d.memoizedProps=null,d.memoizedState=null,d.pendingProps=null,d.stateNode=null,d.updateQueue=null}function hu(d){return d.tag===5||d.tag===3||d.tag===4}function mu(d){e:for(;;){for(;d.sibling===null;){if(d.return===null||hu(d.return))return null;d=d.return}for(d.sibling.return=d.return,d=d.sibling;d.tag!==5&&d.tag!==6&&d.tag!==18;){if(d.flags&2||d.child===null||d.tag===4)continue e;d.child.return=d,d=d.child}if(!(d.flags&2))return d.stateNode}}function Jl(d,p,C){var I=d.tag;if(I===5||I===6)d=d.stateNode,p?C.nodeType===8?C.parentNode.insertBefore(d,p):C.insertBefore(d,p):(C.nodeType===8?(p=C.parentNode,p.insertBefore(d,C)):(p=C,p.appendChild(d)),C=C._reactRootContainer,C!=null||p.onclick!==null||(p.onclick=Ii));else if(I!==4&&(d=d.child,d!==null))for(Jl(d,p,C),d=d.sibling;d!==null;)Jl(d,p,C),d=d.sibling}function ql(d,p,C){var I=d.tag;if(I===5||I===6)d=d.stateNode,p?C.insertBefore(d,p):C.appendChild(d);else if(I!==4&&(d=d.child,d!==null))for(ql(d,p,C),d=d.sibling;d!==null;)ql(d,p,C),d=d.sibling}var it=null,sr=!1;function ao(d,p,C){for(C=C.child;C!==null;)vu(d,p,C),C=C.sibling}function vu(d,p,C){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(li,C)}catch(q){}switch(C.tag){case 5:ut||Ni(C,p);case 6:var I=it,A=sr;it=null,ao(d,p,C),it=I,sr=A,it!==null&&(sr?(d=it,C=C.stateNode,d.nodeType===8?d.parentNode.removeChild(C):d.removeChild(C)):it.removeChild(C.stateNode));break;case 18:it!==null&&(sr?(d=it,C=C.stateNode,d.nodeType===8?zo(d.parentNode,C):d.nodeType===1&&zo(d,C),Mo(d)):zo(it,C.stateNode));break;case 4:I=it,A=sr,it=C.stateNode.containerInfo,sr=!0,ao(d,p,C),it=I,sr=A;break;case 0:case 11:case 14:case 15:if(!ut&&(I=C.updateQueue,I!==null&&(I=I.lastEffect,I!==null))){A=I=I.next;do{var N=A,F=N.destroy;N=N.tag,F!==void 0&&(N&2||N&4)&&Ql(C,p,F),A=A.next}while(A!==I)}ao(d,p,C);break;case 1:if(!ut&&(Ni(C,p),I=C.stateNode,typeof I.componentWillUnmount=="function"))try{I.props=C.memoizedProps,I.state=C.memoizedState,I.componentWillUnmount()}catch(q){$n(C,p,q)}ao(d,p,C);break;case 21:ao(d,p,C);break;case 22:C.mode&1?(ut=(I=ut)||C.memoizedState!==null,ao(d,p,C),ut=I):ao(d,p,C);break;default:ao(d,p,C)}}function xu(d){var p=d.updateQueue;if(p!==null){d.updateQueue=null;var C=d.stateNode;C===null&&(C=d.stateNode=new Qu),p.forEach(function(I){var A=ad.bind(null,d,I);C.has(I)||(C.add(I),I.then(A,A))})}}function lr(d,p){var C=p.deletions;if(C!==null)for(var I=0;IA&&(A=F),I&=~N}if(I=A,I=Ln()-I,I=(120>I?120:480>I?480:1080>I?1080:1920>I?1920:3e3>I?3e3:4320>I?4320:1960*qu(I/1960))-I,10d?16:d,lo===null)var I=!1;else{if(d=lo,lo=null,Ns=0,Mn&6)throw Error(s(331));var A=Mn;for(Mn|=4,Ye=d.current;Ye!==null;){var N=Ye,F=N.child;if(Ye.flags&16){var q=N.deletions;if(q!==null){for(var ue=0;ueLn()-tc?qo(d,0):nc|=C),It(d,p)}function Su(d,p){p===0&&(d.mode&1?(p=ci,ci<<=1,!(ci&130023424)&&(ci=4194304)):p=1);var C=gt();d=cn(d,p),d!==null&&(Eo(d,p,C),It(d,C))}function id(d){var p=d.memoizedState,C=0;p!==null&&(C=p.retryLane),Su(d,C)}function ad(d,p){var C=0;switch(d.tag){case 13:var I=d.stateNode,A=d.memoizedState;A!==null&&(C=A.retryLane);break;case 19:I=d.stateNode;break;default:throw Error(s(314))}I!==null&&I.delete(p),Su(d,C)}var bu;bu=function(p,C,I){if(p!==null)if(p.memoizedProps!==C.pendingProps||lt.current)_t=!0;else{if(!(p.lanes&I)&&!(C.flags&128))return _t=!1,Xu(p,C,I);_t=!!(p.flags&131072)}else _t=!1,Nn&&C.flags&1048576&&Rl(C,Go,C.index);switch(C.lanes=0,C.tag){case 2:var A=C.type;Ts(p,C),p=C.pendingProps;var N=Jr(C,qn.current);_e(C,I),N=Qo(null,C,A,p,N,I);var F=Li();return C.flags|=1,typeof N=="object"&&N!==null&&typeof N.render=="function"&&N.$$typeof===void 0?(C.tag=1,C.memoizedState=null,C.updateQueue=null,ot(A)?(F=!0,Si(C)):F=!1,C.memoizedState=N.state!==null&&N.state!==void 0?N.state:null,sn(C),N.updater=Ss,C.stateNode=N,N._reactInternals=C,wl(C,A,p,I),C=Fl(null,C,A,!0,F,I)):(C.tag=0,Nn&&F&&Xo(C),xt(null,C,N,I),C=C.child),C;case 16:A=C.elementType;e:{switch(Ts(p,C),p=C.pendingProps,N=A._init,A=N(A._payload),C.type=A,N=C.tag=ld(A),p=ar(A,p),N){case 0:C=kl(null,C,A,p,I);break e;case 1:C=tu(null,C,A,p,I);break e;case 11:C=Zc(null,C,A,p,I);break e;case 14:C=Jc(null,C,A,ar(A.type,p),I);break e}throw Error(s(306,A,""))}return C;case 0:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),kl(p,C,A,N,I);case 1:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),tu(p,C,A,N,I);case 3:e:{if(ru(C),p===null)throw Error(s(387));A=C.pendingProps,F=C.memoizedState,N=F.element,ln(p,C),kn(C,A,null,I);var q=C.memoizedState;if(A=q.element,F.isDehydrated)if(F={element:A,isDehydrated:!1,cache:q.cache,pendingSuspenseBoundaries:q.pendingSuspenseBoundaries,transitions:q.transitions},C.updateQueue.baseState=F,C.memoizedState=F,C.flags&256){N=Ui(Error(s(423)),C),C=ou(p,C,A,I,N);break e}else if(A!==N){N=Ui(Error(s(424)),C),C=ou(p,C,A,I,N);break e}else for(Mt=Rt(C.stateNode.containerInfo.firstChild),yt=C,Nn=!0,Vt=null,I=Ce(C,null,A,I),C.child=I;I;)I.flags=I.flags&-3|4096,I=I.sibling;else{if(R(),A===N){C=Wr(p,C,I);break e}xt(p,C,A,I)}C=C.child}return C;case 5:return to(C),p===null&&_(C),A=C.type,N=C.pendingProps,F=p!==null?p.memoizedProps:null,q=N.children,wo(A,N)?q=null:F!==null&&wo(A,F)&&(C.flags|=32),nu(p,C),xt(p,C,q,I),C.child;case 6:return p===null&&_(C),null;case 13:return iu(p,C,I);case 4:return Mr(C,C.stateNode.containerInfo),A=C.pendingProps,p===null?C.child=me(C,null,A,I):xt(p,C,A,I),C.child;case 11:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),Zc(p,C,A,N,I);case 7:return xt(p,C,C.pendingProps,I),C.child;case 8:return xt(p,C,C.pendingProps.children,I),C.child;case 12:return xt(p,C,C.pendingProps.children,I),C.child;case 10:e:{if(A=C.type._context,N=C.pendingProps,F=C.memoizedProps,q=N.value,Tn(ve,A._currentValue),A._currentValue=q,F!==null)if(Ct(F.value,q)){if(F.children===N.children&&!lt.current){C=Wr(p,C,I);break e}}else for(F=C.child,F!==null&&(F.return=C);F!==null;){var ue=F.dependencies;if(ue!==null){q=F.child;for(var pe=ue.firstContext;pe!==null;){if(pe.context===A){if(F.tag===1){pe=pn(-1,I&-I),pe.tag=2;var ye=F.updateQueue;if(ye!==null){ye=ye.shared;var Te=ye.pending;Te===null?pe.next=pe:(pe.next=Te.next,Te.next=pe),ye.pending=pe}}F.lanes|=I,pe=F.alternate,pe!==null&&(pe.lanes|=I),en(F.return,I,C),ue.lanes|=I;break}pe=pe.next}}else if(F.tag===10)q=F.type===C.type?null:F.child;else if(F.tag===18){if(q=F.return,q===null)throw Error(s(341));q.lanes|=I,ue=q.alternate,ue!==null&&(ue.lanes|=I),en(q,I,C),q=F.sibling}else q=F.child;if(q!==null)q.return=F;else for(q=F;q!==null;){if(q===C){q=null;break}if(F=q.sibling,F!==null){F.return=q.return,q=F;break}q=q.return}F=q}xt(p,C,N.children,I),C=C.child}return C;case 9:return N=C.type,A=C.pendingProps.children,_e(C,I),N=We(N),A=A(N),C.flags|=1,xt(p,C,A,I),C.child;case 14:return A=C.type,N=ar(A,C.pendingProps),N=ar(A.type,N),Jc(p,C,A,N,I);case 15:return qc(p,C,C.type,C.pendingProps,I);case 17:return A=C.type,N=C.pendingProps,N=C.elementType===A?N:ar(A,N),Ts(p,C),C.tag=1,ot(A)?(p=!0,Si(C)):p=!1,_e(C,I),Fc(C,A,N),wl(C,A,N,I),Fl(null,C,A,!0,p,I);case 19:return su(p,C,I);case 22:return eu(p,C,I)}throw Error(s(156,C.tag))};function Tu(d,p){return wa(d,p)}function sd(d,p,C,I){this.tag=d,this.key=C,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=I,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yt(d,p,C,I){return new sd(d,p,C,I)}function uc(d){return d=d.prototype,!(!d||!d.isReactComponent)}function ld(d){if(typeof d=="function")return uc(d)?1:0;if(d!=null){if(d=d.$$typeof,d===G)return 11;if(d===se)return 14}return 2}function fo(d,p){var C=d.alternate;return C===null?(C=Yt(d.tag,p,d.key,d.mode),C.elementType=d.elementType,C.type=d.type,C.stateNode=d.stateNode,C.alternate=d,d.alternate=C):(C.pendingProps=p,C.type=d.type,C.flags=0,C.subtreeFlags=0,C.deletions=null),C.flags=d.flags&14680064,C.childLanes=d.childLanes,C.lanes=d.lanes,C.child=d.child,C.memoizedProps=d.memoizedProps,C.memoizedState=d.memoizedState,C.updateQueue=d.updateQueue,p=d.dependencies,C.dependencies=p===null?null:{lanes:p.lanes,firstContext:p.firstContext},C.sibling=d.sibling,C.index=d.index,C.ref=d.ref,C}function $s(d,p,C,I,A,N){var F=2;if(I=d,typeof d=="function")uc(d)&&(F=1);else if(typeof d=="string")F=5;else e:switch(d){case W:return ni(C.children,A,N,p);case $:F=8,A|=8;break;case k:return d=Yt(12,C,p,A|2),d.elementType=k,d.lanes=N,d;case Q:return d=Yt(13,C,p,A),d.elementType=Q,d.lanes=N,d;case ee:return d=Yt(19,C,p,A),d.elementType=ee,d.lanes=N,d;case Y:return ks(C,A,N,p);default:if(typeof d=="object"&&d!==null)switch(d.$$typeof){case z:F=10;break e;case X:F=9;break e;case G:F=11;break e;case se:F=14;break e;case ne:F=16,I=null;break e}throw Error(s(130,d==null?d:typeof d=="undefined"?"undefined":i(d),""))}return p=Yt(F,C,p,A),p.elementType=d,p.type=I,p.lanes=N,p}function ni(d,p,C,I){return d=Yt(7,d,I,p),d.lanes=C,d}function ks(d,p,C,I){return d=Yt(22,d,I,p),d.elementType=Y,d.lanes=C,d.stateNode={isHidden:!1},d}function dc(d,p,C){return d=Yt(6,d,null,p),d.lanes=C,d}function fc(d,p,C){return p=Yt(4,d.children!==null?d.children:[],d.key,p),p.lanes=C,p.stateNode={containerInfo:d.containerInfo,pendingChildren:null,implementation:d.implementation},p}function cd(d,p,C,I,A){this.tag=p,this.containerInfo=d,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ki(0),this.expirationTimes=ki(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ki(0),this.identifierPrefix=I,this.onRecoverableError=A,this.mutableSourceEagerHydrationData=null}function hc(d,p,C,I,A,N,F,q,ue){return d=new cd(d,p,C,q,ue),p===1?(p=1,N===!0&&(p|=8)):p=0,N=Yt(3,null,null,p),d.current=N,N.stateNode=d,N.memoizedState={element:I,isDehydrated:C,cache:null,transitions:null,pendingSuspenseBoundaries:null},sn(N),d}function ud(d,p,C){var I=3p}return!1}function O(h,p,C,D,R,N,F){this.acceptsBooleans=p===2||p===3||p===4,this.attributeName=D,this.attributeNamespace=R,this.mustUseProperty=C,this.propertyName=h,this.type=p,this.sanitizeURL=N,this.removeEmptyString=F}var M={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(h){M[h]=new O(h,0,!1,h,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(h){var p=h[0];M[p]=new O(p,1,!1,h[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(h){M[h]=new O(h,2,!1,h.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(h){M[h]=new O(h,2,!1,h,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(h){M[h]=new O(h,3,!1,h.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(h){M[h]=new O(h,3,!0,h,null,!1,!1)}),["capture","download"].forEach(function(h){M[h]=new O(h,4,!1,h,null,!1,!1)}),["cols","rows","size","span"].forEach(function(h){M[h]=new O(h,6,!1,h,null,!1,!1)}),["rowSpan","start"].forEach(function(h){M[h]=new O(h,5,!1,h.toLowerCase(),null,!1,!1)});var _=/[\-:]([a-z])/g;function I(h){return h[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(h){var p=h.replace(_,I);M[p]=new O(p,1,!1,h,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(h){var p=h.replace(_,I);M[p]=new O(p,1,!1,h,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(h){var p=h.replace(_,I);M[p]=new O(p,1,!1,h,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(h){M[h]=new O(h,1,!1,h.toLowerCase(),null,!1,!1)}),M.xlinkHref=new O("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(h){M[h]=new O(h,1,!1,h.toLowerCase(),null,!0,!0)});function S(h,p,C,D){var R=M.hasOwnProperty(p)?M[p]:null;(R!==null?R.type!==0:D||!(2te||R[F]!==N[te]){var ue="\n"+R[F].replace(" at new "," at ");return h.displayName&&ue.includes("")&&(ue=ue.replace("",h.displayName)),ue}while(1<=F&&0<=te);break}}}finally{fe=!1,Error.prepareStackTrace=C}return(h=h?h.displayName||h.name:"")?se(h):""}function Ie(h){switch(h.tag){case 5:return se(h.type);case 16:return se("Lazy");case 13:return se("Suspense");case 19:return se("SuspenseList");case 0:case 2:case 15:return h=ge(h.type,!1),h;case 11:return h=ge(h.type.render,!1),h;case 1:return h=ge(h.type,!0),h;default:return""}}function je(h){if(h==null)return null;if(typeof h=="function")return h.displayName||h.name||null;if(typeof h=="string")return h;switch(h){case W:return"Fragment";case K:return"Portal";case k:return"Profiler";case $:return"StrictMode";case Y:return"Suspense";case ee:return"SuspenseList"}if(typeof h=="object")switch(h.$$typeof){case H:return(h.displayName||"Context")+".Consumer";case z:return(h._context.displayName||"Context")+".Provider";case G:var p=h.render;return h=h.displayName,h||(h=p.displayName||p.name||"",h=h!==""?"ForwardRef("+h+")":"ForwardRef"),h;case le:return p=h.displayName||null,p!==null?p:je(h.type)||"Memo";case ne:p=h._payload,h=h._init;try{return je(h(p))}catch(C){}}return null}function Ee(h){var p=h.type;switch(h.tag){case 24:return"Cache";case 9:return(p.displayName||"Context")+".Consumer";case 10:return(p._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return h=p.render,h=h.displayName||h.name||"",p.displayName||(h!==""?"ForwardRef("+h+")":"ForwardRef");case 7:return"Fragment";case 5:return p;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return je(p);case 8:return p===$?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p}return null}function Ne(h){switch(typeof h=="undefined"?"undefined":o(h)){case"boolean":case"number":case"string":case"undefined":return h;case"object":return h;default:return""}}function on(h){var p=h.type;return(h=h.nodeName)&&h.toLowerCase()==="input"&&(p==="checkbox"||p==="radio")}function He(h){var p=on(h)?"checked":"value",C=Object.getOwnPropertyDescriptor(h.constructor.prototype,p),D=""+h[p];if(!h.hasOwnProperty(p)&&typeof C!="undefined"&&typeof C.get=="function"&&typeof C.set=="function"){var R=C.get,N=C.set;return Object.defineProperty(h,p,{configurable:!0,get:function(){return R.call(this)},set:function(te){D=""+te,N.call(this,te)}}),Object.defineProperty(h,p,{enumerable:C.enumerable}),{getValue:function(){return D},setValue:function(te){D=""+te},stopTracking:function(){h._valueTracker=null,delete h[p]}}}}function Pe(h){h._valueTracker||(h._valueTracker=He(h))}function qe(h){if(!h)return!1;var p=h._valueTracker;if(!p)return!0;var C=p.getValue(),D="";return h&&(D=on(h)?h.checked?"true":"false":h.value),h=D,h!==C?(p.setValue(h),!0):!1}function En(h){if(h=h||(typeof document!="undefined"?document:void 0),typeof h=="undefined")return null;try{return h.activeElement||h.body}catch(p){return h.body}}function jn(h,p){var C=p.checked;return q({},p,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:C!=null?C:h._wrapperState.initialChecked})}function hn(h,p){var C=p.defaultValue==null?"":p.defaultValue,D=p.checked!=null?p.checked:p.defaultChecked;C=Ne(p.value!=null?p.value:C),h._wrapperState={initialChecked:D,initialValue:C,controlled:p.type==="checkbox"||p.type==="radio"?p.checked!=null:p.value!=null}}function Cn(h,p){p=p.checked,p!=null&&S(h,"checked",p,!1)}function fn(h,p){Cn(h,p);var C=Ne(p.value),D=p.type;if(C!=null)D==="number"?(C===0&&h.value===""||h.value!=C)&&(h.value=""+C):h.value!==""+C&&(h.value=""+C);else if(D==="submit"||D==="reset"){h.removeAttribute("value");return}p.hasOwnProperty("value")?Se(h,p.type,C):p.hasOwnProperty("defaultValue")&&Se(h,p.type,Ne(p.defaultValue)),p.checked==null&&p.defaultChecked!=null&&(h.defaultChecked=!!p.defaultChecked)}function tn(h,p,C){if(p.hasOwnProperty("value")||p.hasOwnProperty("defaultValue")){var D=p.type;if(!(D!=="submit"&&D!=="reset"||p.value!==void 0&&p.value!==null))return;p=""+h._wrapperState.initialValue,C||p===h.value||(h.value=p),h.defaultValue=p}C=h.name,C!==""&&(h.name=""),h.defaultChecked=!!h._wrapperState.initialChecked,C!==""&&(h.name=C)}function Se(h,p,C){(p!=="number"||En(h.ownerDocument)!==h)&&(C==null?h.defaultValue=""+h._wrapperState.initialValue:h.defaultValue!==""+C&&(h.defaultValue=""+C))}var Le=Array.isArray;function Oe(h,p,C,D){if(h=h.options,p){p={};for(var R=0;R"+p.valueOf().toString()+"",p=In.firstChild;h.firstChild;)h.removeChild(h.firstChild);for(;p.firstChild;)h.appendChild(p.firstChild)}});function rn(h,p){if(p){var C=h.firstChild;if(C&&C===h.lastChild&&C.nodeType===3){C.nodeValue=p;return}}h.textContent=p}var $e={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Fe=["Webkit","ms","Moz","O"];Object.keys($e).forEach(function(h){Fe.forEach(function(p){p=p+h.charAt(0).toUpperCase()+h.substring(1),$e[p]=$e[h]})});function mn(h,p,C){return p==null||typeof p=="boolean"||p===""?"":C||typeof p!="number"||p===0||$e.hasOwnProperty(h)&&$e[h]?(""+p).trim():p+"px"}function _n(h,p){h=h.style;for(var C in p)if(p.hasOwnProperty(C)){var D=C.indexOf("--")===0,R=mn(C,p[C],D);C==="float"&&(C="cssFloat"),D?h.setProperty(C,R):h[C]=R}}var Dt=q({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function rt(h,p){if(p){if(Dt[h]&&(p.children!=null||p.dangerouslySetInnerHTML!=null))throw Error(s(137,h));if(p.dangerouslySetInnerHTML!=null){if(p.children!=null)throw Error(s(60));if(typeof p.dangerouslySetInnerHTML!="object"||!("__html"in p.dangerouslySetInnerHTML))throw Error(s(61))}if(p.style!=null&&typeof p.style!="object")throw Error(s(62))}}function pt(h,p){if(h.indexOf("-")===-1)return typeof p.is=="string";switch(h){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Jn=null;function dt(h){return h=h.target||h.srcElement||window,h.correspondingUseElement&&(h=h.correspondingUseElement),h.nodeType===3?h.parentNode:h}var Nt=null,Qt=null,ur=null;function ta(h){if(h=$o(h)){if(typeof Nt!="function")throw Error(s(280));var p=h.stateNode;p&&(p=ko(p),Nt(h.stateNode,h.type,p))}}function ra(h){Qt?ur?ur.push(h):ur=[h]:Qt=h}function oa(){if(Qt){var h=Qt,p=ur;if(ur=Qt=null,ta(h),p)for(h=0;h>>=0,h===0?32:31-(Fi(h)/Vi|0)|0}var hr=64,ca=4194304;function Eo(h){switch(h&-h){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return h&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return h}}function ua(h,p){var C=h.pendingLanes;if(C===0)return 0;var D=0,R=h.suspendedLanes,N=h.pingedLanes,F=C&268435455;if(F!==0){var te=F&~R;te!==0?D=Eo(te):(N&=F,N!==0&&(D=Eo(N)))}else F=C&~R,F!==0?D=Eo(F):N!==0&&(D=Eo(N));if(D===0)return 0;if(p!==0&&p!==D&&!(p&R)&&(R=D&-D,N=p&-p,R>=N||R===16&&(N&4194240)!==0))return p;if(D&4&&(D|=C&16),p=h.entangledLanes,p!==0)for(h=h.entanglements,p&=D;0C;C++)p.push(h);return p}function jo(h,p,C){h.pendingLanes|=p,p!==536870912&&(h.suspendedLanes=0,h.pingedLanes=0),h=h.eventTimes,p=31-bt(p),h[p]=C}function ol(h,p){var C=h.pendingLanes&~p;h.pendingLanes=p,h.suspendedLanes=0,h.pingedLanes=0,h.expiredLanes&=p,h.mutableReadLanes&=p,h.entangledLanes&=p,p=h.entanglements;var D=h.eventTimes;for(h=h.expirationTimes;0=Ea),ai=" ",ii=!1;function ss(h,p){switch(h){case"keyup":return gl.indexOf(p.keyCode)!==-1;case"keydown":return p.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ls(h){return h=h.detail,typeof h=="object"&&"data"in h?h.data:null}var Zt=!1;function cs(h,p){switch(h){case"compositionend":return ls(p);case"keypress":return p.which!==32?null:(ii=!0,ai);case"textInput":return h=p.data,h===ai&&ii?null:h;default:return null}}function us(h,p){if(Zt)return h==="compositionend"||!oi&&ss(h,p)?(h=pr(),ma=Xa=gr=null,Zt=!1,h):null;switch(h){case"paste":return null;case"keypress":if(!(p.ctrlKey||p.altKey||p.metaKey)||p.ctrlKey&&p.altKey){if(p.char&&1=p)return{node:C,offset:p-h};h=D}e:{for(;C;){if(C.nextSibling){C=C.nextSibling;break e}C=C.parentNode}C=void 0}C=fs(C)}}function To(h,p){return h&&p?h===p?!0:h&&h.nodeType===3?!1:p&&p.nodeType===3?To(h,p.parentNode):"contains"in h?h.contains(p):h.compareDocumentPosition?!!(h.compareDocumentPosition(p)&16):!1:!1}function ms(){for(var h=window,p=En();e(p,h.HTMLIFrameElement);){try{var C=typeof p.contentWindow.location.href=="string"}catch(D){C=!1}if(C)h=p.contentWindow;else break;p=En(h.document)}return p}function di(h){var p=h&&h.nodeName&&h.nodeName.toLowerCase();return p&&(p==="input"&&(h.type==="text"||h.type==="search"||h.type==="tel"||h.type==="url"||h.type==="password")||p==="textarea"||h.contentEditable==="true")}function Xr(h){var p=ms(),C=h.focusedElem,D=h.selectionRange;if(p!==C&&C&&C.ownerDocument&&To(C.ownerDocument.documentElement,C)){if(D!==null&&di(C)){if(p=D.start,h=D.end,h===void 0&&(h=p),"selectionStart"in C)C.selectionStart=p,C.selectionEnd=Math.min(h,C.value.length);else if(h=(p=C.ownerDocument||document)&&p.defaultView||window,h.getSelection){h=h.getSelection();var R=C.textContent.length,N=Math.min(D.start,R);D=D.end===void 0?N:Math.min(D.end,R),!h.extend&&N>D&&(R=D,D=N,N=R),R=hs(C,N);var F=hs(C,D);R&&F&&(h.rangeCount!==1||h.anchorNode!==R.node||h.anchorOffset!==R.offset||h.focusNode!==F.node||h.focusOffset!==F.offset)&&(p=p.createRange(),p.setStart(R.node,R.offset),h.removeAllRanges(),N>D?(h.addRange(p),h.extend(F.node,F.offset)):(p.setEnd(F.node,F.offset),h.addRange(p)))}}for(p=[],h=C;h=h.parentNode;)h.nodeType===1&&p.push({element:h,left:h.scrollLeft,top:h.scrollTop});for(typeof C.focus=="function"&&C.focus(),C=0;C=document.documentMode,Cr=null,hi=null,Ro=null,vs=!1;function mi(h,p,C){var D=C.window===C?C.document:C.nodeType===9?C:C.ownerDocument;vs||Cr==null||Cr!==En(D)||(D=Cr,"selectionStart"in D&&di(D)?D={start:D.selectionStart,end:D.selectionEnd}:(D=(D.ownerDocument&&D.ownerDocument.defaultView||window).getSelection(),D={anchorNode:D.anchorNode,anchorOffset:D.anchorOffset,focusNode:D.focusNode,focusOffset:D.focusOffset}),Ro&&Ao(Ro,D)||(Ro=D,D=No(hi,"onSelect"),0Zr||(h.current=Fo[Zr],Fo[Zr]=null,Zr--)}function An(h,p){Zr++,Fo[Zr]=h.current,h.current=p}var rr={},qn=tr(rr),lt=tr(!1),Br=rr;function Jr(h,p){var C=h.type.contextTypes;if(!C)return rr;var D=h.stateNode;if(D&&D.__reactInternalMemoizedUnmaskedChildContext===p)return D.__reactInternalMemoizedMaskedChildContext;var R={},N;for(N in C)R[N]=p[N];return D&&(h=h.stateNode,h.__reactInternalMemoizedUnmaskedChildContext=p,h.__reactInternalMemoizedMaskedChildContext=R),R}function ot(h){return h=h.childContextTypes,h!=null}function Kr(){bn(lt),bn(qn)}function Os(h,p,C){if(qn.current!==rr)throw Error(s(168));An(qn,p),An(lt,C)}function qr(h,p,C){var D=h.stateNode;if(p=p.childContextTypes,typeof D.getChildContext!="function")return C;D=D.getChildContext();for(var R in D)if(!(R in p))throw Error(s(108,Ee(h)||"Unknown",R));return q({},C,D)}function Sa(h){return h=(h=h.stateNode)&&h.__reactInternalMemoizedMergedChildContext||rr,Br=qn.current,An(qn,h),An(lt,lt.current),!0}function Tl(h,p,C){var D=h.stateNode;if(!D)throw Error(s(169));C?(h=qr(h,p,Br),D.__reactInternalMemoizedMergedChildContext=h,bn(lt),bn(qn),An(qn,h)):bn(lt),An(lt,C)}var kt=null,eo=!1,Pi=!1;function ys(h){kt===null?kt=[h]:kt.push(h)}function Ii(h){eo=!0,ys(h)}function yr(){if(!Pi&&kt!==null){Pi=!0;var h=0,p=Dn;try{var C=kt;for(Dn=1;h>=F,R-=F,Ft=1<<32-bt(p)+R|C<vn?(tt=dn,dn=null):tt=dn.sibling;var Pn=De(he,dn,xe[vn],Ue);if(Pn===null){dn===null&&(dn=tt);break}h&&dn&&Pn.alternate===null&&p(he,dn),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn,dn=tt}if(vn===xe.length)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;vnvn?(tt=dn,dn=null):tt=dn.sibling;var ho=De(he,dn,Pn.value,Ue);if(ho===null){dn===null&&(dn=tt);break}h&&dn&&ho.alternate===null&&p(he,dn),de=N(ho,de,vn),un===null?nn=ho:un.sibling=ho,un=ho,dn=tt}if(Pn.done)return C(he,dn),Nn&&no(he,vn),nn;if(dn===null){for(;!Pn.done;vn++,Pn=xe.next())Pn=Ae(he,Pn.value,Ue),Pn!==null&&(de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return Nn&&no(he,vn),nn}for(dn=D(he,dn);!Pn.done;vn++,Pn=xe.next())Pn=Ve(dn,he,vn,Pn.value,Ue),Pn!==null&&(h&&Pn.alternate!==null&&dn.delete(Pn.key===null?vn:Pn.key),de=N(Pn,de,vn),un===null?nn=Pn:un.sibling=Pn,un=Pn);return h&&dn.forEach(function(vd){return p(he,vd)}),Nn&&no(he,vn),nn}function Vn(he,de,xe,Ue){if(typeof xe=="object"&&xe!==null&&xe.type===W&&xe.key===null&&(xe=xe.props.children),typeof xe=="object"&&xe!==null){switch(xe.$$typeof){case A:e:{for(var nn=xe.key,un=de;un!==null;){if(un.key===nn){if(nn=xe.type,nn===W){if(un.tag===7){C(he,un.sibling),de=R(un,xe.props.children),de.return=he,he=de;break e}}else if(un.elementType===nn||typeof nn=="object"&&nn!==null&&nn.$$typeof===ne&&re(nn)===un.type){C(he,un.sibling),de=R(un,xe.props),de.ref=oe(he,un,xe),de.return=he,he=de;break e}C(he,un);break}else p(he,un);un=un.sibling}xe.type===W?(de=na(xe.props.children,he.mode,Ue,xe.key),de.return=he,he=de):(Ue=$s(xe.type,xe.key,xe.props,null,he.mode,Ue),Ue.ref=oe(he,de,xe),Ue.return=he,he=Ue)}return F(he);case K:e:{for(un=xe.key;de!==null;){if(de.key===un)if(de.tag===4&&de.stateNode.containerInfo===xe.containerInfo&&de.stateNode.implementation===xe.implementation){C(he,de.sibling),de=R(de,xe.children||[]),de.return=he,he=de;break e}else{C(he,de);break}else p(he,de);de=de.sibling}de=fc(xe,he.mode,Ue),de.return=he,he=de}return F(he);case ne:return un=xe._init,Vn(he,de,un(xe._payload),Ue)}if(Le(xe))return Ze(he,de,xe,Ue);if(V(xe))return Je(he,de,xe,Ue);ie(he,xe)}return typeof xe=="string"&&xe!==""||typeof xe=="number"?(xe=""+xe,de!==null&&de.tag===6?(C(he,de.sibling),de=R(de,xe),de.return=he,he=de):(C(he,de),de=dc(xe,he.mode,Ue),de.return=he,he=de),F(he)):C(he,de)}return Vn}var me=ae(!0),Ce=ae(!1),ve=tr(null),Me=null,be=null,Be=null;function Ke(){Be=be=Me=null}function ze(h){var p=ve.current;bn(ve),h._currentValue=p}function en(h,p,C){for(;h!==null;){var D=h.alternate;if((h.childLanes&p)!==p?(h.childLanes|=p,D!==null&&(D.childLanes|=p)):D!==null&&(D.childLanes&p)!==p&&(D.childLanes|=p),h===C)break;h=h.return}}function _e(h,p){Me=h,Be=be=null,h=h.dependencies,h!==null&&h.firstContext!==null&&(h.lanes&p&&(_t=!0),h.firstContext=null)}function We(h){var p=h._currentValue;if(Be!==h)if(h={context:h,memoizedValue:p,next:null},be===null){if(Me===null)throw Error(s(308));be=h,Me.dependencies={lanes:0,firstContext:h}}else be=be.next=h;return p}var Ge=null;function gn(h){Ge===null?Ge=[h]:Ge.push(h)}function an(h,p,C,D){var R=p.interleaved;return R===null?(C.next=C,gn(p)):(C.next=R.next,R.next=C),p.interleaved=C,cn(h,D)}function cn(h,p){h.lanes|=p;var C=h.alternate;for(C!==null&&(C.lanes|=p),C=h,h=h.return;h!==null;)h.childLanes|=p,C=h.alternate,C!==null&&(C.childLanes|=p),C=h,h=h.return;return C.tag===3?C.stateNode:null}var Re=!1;function sn(h){h.updateQueue={baseState:h.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function ln(h,p){h=h.updateQueue,p.updateQueue===h&&(p.updateQueue={baseState:h.baseState,firstBaseUpdate:h.firstBaseUpdate,lastBaseUpdate:h.lastBaseUpdate,shared:h.shared,effects:h.effects})}function pn(h,p){return{eventTime:h,lane:p,tag:0,payload:null,callback:null,next:null}}function Tn(h,p,C){var D=h.updateQueue;if(D===null)return null;if(D=D.shared,Mn&2){var R=D.pending;return R===null?p.next=p:(p.next=R.next,R.next=p),D.pending=p,cn(h,C)}return R=D.interleaved,R===null?(p.next=p,gn(D)):(p.next=R.next,R.next=p),D.interleaved=p,cn(h,C)}function et(h,p,C){if(p=p.updateQueue,p!==null&&(p=p.shared,(C&4194240)!==0)){var D=p.lanes;D&=h.pendingLanes,C|=D,p.lanes=C,Fa(h,C)}}function Bn(h,p){var C=h.updateQueue,D=h.alternate;if(D!==null&&(D=D.updateQueue,C===D)){var R=null,N=null;if(C=C.firstBaseUpdate,C!==null){do{var F={eventTime:C.eventTime,lane:C.lane,tag:C.tag,payload:C.payload,callback:C.callback,next:null};N===null?R=N=F:N=N.next=F,C=C.next}while(C!==null);N===null?R=N=p:N=N.next=p}else R=N=p;C={baseState:D.baseState,firstBaseUpdate:R,lastBaseUpdate:N,shared:D.shared,effects:D.effects},h.updateQueue=C;return}h=C.lastBaseUpdate,h===null?C.firstBaseUpdate=p:h.next=p,C.lastBaseUpdate=p}function kn(h,p,C,D){var R=h.updateQueue;Re=!1;var N=R.firstBaseUpdate,F=R.lastBaseUpdate,te=R.shared.pending;if(te!==null){R.shared.pending=null;var ue=te,pe=ue.next;ue.next=null,F===null?N=pe:F.next=pe,F=ue;var ye=h.alternate;ye!==null&&(ye=ye.updateQueue,te=ye.lastBaseUpdate,te!==F&&(te===null?ye.firstBaseUpdate=pe:te.next=pe,ye.lastBaseUpdate=ue))}if(N!==null){var Ae=R.baseState;F=0,ye=pe=ue=null,te=N;do{var De=te.lane,Ve=te.eventTime;if((D&De)===De){ye!==null&&(ye=ye.next={eventTime:Ve,lane:0,tag:te.tag,payload:te.payload,callback:te.callback,next:null});e:{var Ze=h,Je=te;switch(De=p,Ve=C,Je.tag){case 1:if(Ze=Je.payload,typeof Ze=="function"){Ae=Ze.call(Ve,Ae,De);break e}Ae=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=Je.payload,De=typeof Ze=="function"?Ze.call(Ve,Ae,De):Ze,De==null)break e;Ae=q({},Ae,De);break e;case 2:Re=!0}}te.callback!==null&&te.lane!==0&&(h.flags|=64,De=R.effects,De===null?R.effects=[te]:De.push(te))}else Ve={eventTime:Ve,lane:De,tag:te.tag,payload:te.payload,callback:te.callback,next:null},ye===null?(pe=ye=Ve,ue=Ae):ye=ye.next=Ve,F|=De;if(te=te.next,te===null){if(te=R.shared.pending,te===null)break;De=te,te=De.next,De.next=null,R.lastBaseUpdate=De,R.shared.pending=null}}while(!0);if(ye===null&&(ue=Ae),R.baseState=ue,R.firstBaseUpdate=pe,R.lastBaseUpdate=ye,p=R.shared.interleaved,p!==null){R=p;do F|=R.lane,R=R.next;while(R!==p)}else N===null&&(R.shared.lanes=0);Zo|=F,h.lanes=F,h.memoizedState=Ae}}function Gt(h,p,C){if(h=p.effects,p.effects=null,h!==null)for(p=0;pC?C:4,h(!0);var D=Ta.transition;Ta.transition={};try{h(!1),p()}finally{Dn=C,Ta.transition=D}}function Wc(){return vt().memoizedState}function Wu(h,p,C){var D=co(h);if(C={lane:D,action:C,hasEagerState:!1,eagerState:null,next:null},wc(h))zc(p,C);else if(C=an(h,p,C,D),C!==null){var R=gt();cr(C,h,D,R),$c(C,p,D)}}function wu(h,p,C){var D=co(h),R={lane:D,action:C,hasEagerState:!1,eagerState:null,next:null};if(wc(h))zc(p,R);else{var N=h.alternate;if(h.lanes===0&&(N===null||N.lanes===0)&&(N=p.lastRenderedReducer,N!==null))try{var F=p.lastRenderedState,te=N(F,C);if(R.hasEagerState=!0,R.eagerState=te,Ct(te,F)){var ue=p.interleaved;ue===null?(R.next=R,gn(p)):(R.next=ue.next,ue.next=R),p.interleaved=R;return}}catch(pe){}finally{}C=an(h,p,R,D),C!==null&&(R=gt(),cr(C,h,D,R),$c(C,p,D))}}function wc(h){var p=h.alternate;return h===Wn||p!==null&&p===Wn}function zc(h,p){Yo=Ra=!0;var C=h.pending;C===null?p.next=p:(p.next=C.next,C.next=p),h.pending=p}function $c(h,p,C){if(C&4194240){var D=p.lanes;D&=h.pendingLanes,C|=D,p.lanes=C,Fa(h,C)}}var Ds={readContext:We,useCallback:Qn,useContext:Qn,useEffect:Qn,useImperativeHandle:Qn,useInsertionEffect:Qn,useLayoutEffect:Qn,useMemo:Qn,useReducer:Qn,useRef:Qn,useState:Qn,useDebugValue:Qn,useDeferredValue:Qn,useTransition:Qn,useMutableSource:Qn,useSyncExternalStore:Qn,useId:Qn,unstable_isNewReconciler:!1},zu={readContext:We,useCallback:function(p,C){return Lt().memoizedState=[p,C===void 0?null:C],p},useContext:We,useEffect:Ac,useImperativeHandle:function(p,C,D){return D=D!=null?D.concat([p]):null,Ps(4194308,4,Bc.bind(null,C,p),D)},useLayoutEffect:function(p,C){return Ps(4194308,4,p,C)},useInsertionEffect:function(p,C){return Ps(4,2,p,C)},useMemo:function(p,C){var D=Lt();return C=C===void 0?null:C,p=p(),D.memoizedState=[p,C],p},useReducer:function(p,C,D){var R=Lt();return C=D!==void 0?D(C):C,R.memoizedState=R.baseState=C,p={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:p,lastRenderedState:C},R.queue=p,p=p.dispatch=Wu.bind(null,Wn,p),[R.memoizedState,p]},useRef:function(p){var C=Lt();return p={current:p},C.memoizedState=p},useState:Sc,useDebugValue:Nl,useDeferredValue:function(p){return Lt().memoizedState=p},useTransition:function(){var p=Sc(!1),C=p[0];return p=Nu.bind(null,p[1]),Lt().memoizedState=p,[C,p]},useMutableSource:function(){},useSyncExternalStore:function(p,C,D){var R=Wn,N=Lt();if(Nn){if(D===void 0)throw Error(s(407));D=D()}else{if(D=C(),nt===null)throw Error(s(349));Nr&30||Mc(R,C,D)}N.memoizedState=D;var F={value:D,getSnapshot:C};return N.queue=F,Ac(Pc.bind(null,R,F,p),[p]),R.flags|=2048,Si(9,_c.bind(null,R,F,D,C),void 0,null),D},useId:function(){var p=Lt(),C=nt.identifierPrefix;if(Nn){var D=ar,R=Ft;D=(R&~(1<<32-bt(R)-1)).toString(32)+D,C=":"+C+"R"+D,D=Kt++,0<\/script>",h=h.removeChild(h.firstChild)):typeof D.is=="string"?h=F.createElement(C,{is:D.is}):(h=F.createElement(C),C==="select"&&(F=h,D.multiple?F.multiple=!0:D.size&&(F.size=D.size))):h=F.createElementNS(h,C),h[Bt]=p,h[Rr]=D,lu(h,p,!1,!1),p.stateNode=h;e:{switch(F=pt(C,D),C){case"dialog":Rn("cancel",h),Rn("close",h),R=D;break;case"iframe":case"object":case"embed":Rn("load",h),R=D;break;case"video":case"audio":for(R=0;Rwa&&(p.flags|=128,D=!0,bi(N,!1),p.lanes=4194304)}else{if(!D)if(h=oo(F),h!==null){if(p.flags|=128,D=!0,C=h.updateQueue,C!==null&&(p.updateQueue=C,p.flags|=4),bi(N,!0),N.tail===null&&N.tailMode==="hidden"&&!F.alternate&&!Nn)return ct(p),null}else 2*Ln()-N.renderingStartTime>wa&&C!==1073741824&&(p.flags|=128,D=!0,bi(N,!1),p.lanes=4194304);N.isBackwards?(F.sibling=p.child,p.child=F):(C=N.last,C!==null?C.sibling=F:p.child=F,N.last=F)}return N.tail!==null?(p=N.tail,N.rendering=p,N.tail=p.sibling,N.renderingStartTime=Ln(),p.sibling=null,C=Sn.current,An(Sn,D?C&1|2:C&1),p):(ct(p),null);case 22:case 23:return lc(),D=p.memoizedState!==null,h!==null&&h.memoizedState!==null!==D&&(p.flags|=8192),D&&p.mode&1?Ut&1073741824&&(ct(p),p.subtreeFlags&6&&(p.flags|=8192)):ct(p),null;case 24:return null;case 25:return null}throw Error(s(156,p.tag))}function Yu(h,p){switch(Ms(p),p.tag){case 1:return ot(p.type)&&Kr(),h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 3:return mt(),bn(lt),bn(qn),Xo(),h=p.flags,h&65536&&!(h&128)?(p.flags=h&-65537|128,p):null;case 5:return ro(p),null;case 13:if(bn(Sn),h=p.memoizedState,h!==null&&h.dehydrated!==null){if(p.alternate===null)throw Error(s(340));B()}return h=p.flags,h&65536?(p.flags=h&-65537|128,p):null;case 19:return bn(Sn),null;case 4:return mt(),null;case 10:return ze(p.type._context),null;case 22:case 23:return lc(),null;case 24:return null;default:return null}}var Ts=!1,ut=!1,Qu=typeof WeakSet=="function"?WeakSet:Set,Ye=null;function Na(h,p){var C=h.ref;if(C!==null)if(typeof C=="function")try{C(null)}catch(D){$n(h,p,D)}else C.current=null}function Ql(h,p,C){try{C()}catch(D){$n(h,p,D)}}var du=!1;function Zu(h,p){if(Ei=vr,h=ms(),di(h)){if("selectionStart"in h)var C={start:h.selectionStart,end:h.selectionEnd};else e:{C=(C=h.ownerDocument)&&C.defaultView||window;var D=C.getSelection&&C.getSelection();if(D&&D.rangeCount!==0){C=D.anchorNode;var R=D.anchorOffset,N=D.focusNode;D=D.focusOffset;try{C.nodeType,N.nodeType}catch(Ue){C=null;break e}var F=0,te=-1,ue=-1,pe=0,ye=0,Ae=h,De=null;n:for(;;){for(var Ve;Ae!==C||R!==0&&Ae.nodeType!==3||(te=F+R),Ae!==N||D!==0&&Ae.nodeType!==3||(ue=F+D),Ae.nodeType===3&&(F+=Ae.nodeValue.length),(Ve=Ae.firstChild)!==null;)De=Ae,Ae=Ve;for(;;){if(Ae===h)break n;if(De===C&&++pe===R&&(te=F),De===N&&++ye===D&&(ue=F),(Ve=Ae.nextSibling)!==null)break;Ae=De,De=Ae.parentNode}Ae=Ve}C=te===-1||ue===-1?null:{start:te,end:ue}}else C=null}C=C||{start:0,end:0}}else C=null;for(ji={focusedElem:h,selectionRange:C},vr=!1,Ye=p;Ye!==null;)if(p=Ye,h=p.child,(p.subtreeFlags&1028)!==0&&h!==null)h.return=p,Ye=h;else for(;Ye!==null;){p=Ye;try{var Ze=p.alternate;if(p.flags&1024)switch(p.tag){case 0:case 11:case 15:break;case 1:if(Ze!==null){var Je=Ze.memoizedProps,Vn=Ze.memoizedState,he=p.stateNode,de=he.getSnapshotBeforeUpdate(p.elementType===p.type?Je:ir(p.type,Je),Vn);he.__reactInternalSnapshotBeforeUpdate=de}break;case 3:var xe=p.stateNode.containerInfo;xe.nodeType===1?xe.textContent="":xe.nodeType===9&&xe.documentElement&&xe.removeChild(xe.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(s(163))}}catch(Ue){$n(p,p.return,Ue)}if(h=p.sibling,h!==null){h.return=p.return,Ye=h;break}Ye=p.return}return Ze=du,du=!1,Ze}function Ai(h,p,C){var D=p.updateQueue;if(D=D!==null?D.lastEffect:null,D!==null){var R=D=D.next;do{if((R.tag&h)===h){var N=R.destroy;R.destroy=void 0,N!==void 0&&Ql(p,C,N)}R=R.next}while(R!==D)}}function Rs(h,p){if(p=p.updateQueue,p=p!==null?p.lastEffect:null,p!==null){var C=p=p.next;do{if((C.tag&h)===h){var D=C.create;C.destroy=D()}C=C.next}while(C!==p)}}function Zl(h){var p=h.ref;if(p!==null){var C=h.stateNode;switch(h.tag){case 5:h=C;break;default:h=C}typeof p=="function"?p(h):p.current=h}}function fu(h){var p=h.alternate;p!==null&&(h.alternate=null,fu(p)),h.child=null,h.deletions=null,h.sibling=null,h.tag===5&&(p=h.stateNode,p!==null&&(delete p[Bt],delete p[Rr],delete p[Mi],delete p[_i],delete p[Al])),h.stateNode=null,h.return=null,h.dependencies=null,h.memoizedProps=null,h.memoizedState=null,h.pendingProps=null,h.stateNode=null,h.updateQueue=null}function hu(h){return h.tag===5||h.tag===3||h.tag===4}function mu(h){e:for(;;){for(;h.sibling===null;){if(h.return===null||hu(h.return))return null;h=h.return}for(h.sibling.return=h.return,h=h.sibling;h.tag!==5&&h.tag!==6&&h.tag!==18;){if(h.flags&2||h.child===null||h.tag===4)continue e;h.child.return=h,h=h.child}if(!(h.flags&2))return h.stateNode}}function Jl(h,p,C){var D=h.tag;if(D===5||D===6)h=h.stateNode,p?C.nodeType===8?C.parentNode.insertBefore(h,p):C.insertBefore(h,p):(C.nodeType===8?(p=C.parentNode,p.insertBefore(h,C)):(p=C,p.appendChild(h)),C=C._reactRootContainer,C!=null||p.onclick!==null||(p.onclick=Ia));else if(D!==4&&(h=h.child,h!==null))for(Jl(h,p,C),h=h.sibling;h!==null;)Jl(h,p,C),h=h.sibling}function ql(h,p,C){var D=h.tag;if(D===5||D===6)h=h.stateNode,p?C.insertBefore(h,p):C.appendChild(h);else if(D!==4&&(h=h.child,h!==null))for(ql(h,p,C),h=h.sibling;h!==null;)ql(h,p,C),h=h.sibling}var at=null,sr=!1;function io(h,p,C){for(C=C.child;C!==null;)vu(h,p,C),C=C.sibling}function vu(h,p,C){if(St&&typeof St.onCommitFiberUnmount=="function")try{St.onCommitFiberUnmount(la,C)}catch(te){}switch(C.tag){case 5:ut||Na(C,p);case 6:var D=at,R=sr;at=null,io(h,p,C),at=D,sr=R,at!==null&&(sr?(h=at,C=C.stateNode,h.nodeType===8?h.parentNode.removeChild(C):h.removeChild(C)):at.removeChild(C.stateNode));break;case 18:at!==null&&(sr?(h=at,C=C.stateNode,h.nodeType===8?zo(h.parentNode,C):h.nodeType===1&&zo(h,C),Mo(h)):zo(at,C.stateNode));break;case 4:D=at,R=sr,at=C.stateNode.containerInfo,sr=!0,io(h,p,C),at=D,sr=R;break;case 0:case 11:case 14:case 15:if(!ut&&(D=C.updateQueue,D!==null&&(D=D.lastEffect,D!==null))){R=D=D.next;do{var N=R,F=N.destroy;N=N.tag,F!==void 0&&(N&2||N&4)&&Ql(C,p,F),R=R.next}while(R!==D)}io(h,p,C);break;case 1:if(!ut&&(Na(C,p),D=C.stateNode,typeof D.componentWillUnmount=="function"))try{D.props=C.memoizedProps,D.state=C.memoizedState,D.componentWillUnmount()}catch(te){$n(C,p,te)}io(h,p,C);break;case 21:io(h,p,C);break;case 22:C.mode&1?(ut=(D=ut)||C.memoizedState!==null,io(h,p,C),ut=D):io(h,p,C);break;default:io(h,p,C)}}function xu(h){var p=h.updateQueue;if(p!==null){h.updateQueue=null;var C=h.stateNode;C===null&&(C=h.stateNode=new Qu),p.forEach(function(D){var R=id.bind(null,h,D);C.has(D)||(C.add(D),D.then(R,R))})}}function lr(h,p){var C=p.deletions;if(C!==null)for(var D=0;DR&&(R=F),D&=~N}if(D=R,D=Ln()-D,D=(120>D?120:480>D?480:1080>D?1080:1920>D?1920:3e3>D?3e3:4320>D?4320:1960*qu(D/1960))-D,10h?16:h,lo===null)var D=!1;else{if(h=lo,lo=null,Ns=0,Mn&6)throw Error(s(331));var R=Mn;for(Mn|=4,Ye=h.current;Ye!==null;){var N=Ye,F=N.child;if(Ye.flags&16){var te=N.deletions;if(te!==null){for(var ue=0;ueLn()-tc?qo(h,0):nc|=C),It(h,p)}function Su(h,p){p===0&&(h.mode&1?(p=ca,ca<<=1,!(ca&130023424)&&(ca=4194304)):p=1);var C=gt();h=cn(h,p),h!==null&&(jo(h,p,C),It(h,C))}function ad(h){var p=h.memoizedState,C=0;p!==null&&(C=p.retryLane),Su(h,C)}function id(h,p){var C=0;switch(h.tag){case 13:var D=h.stateNode,R=h.memoizedState;R!==null&&(C=R.retryLane);break;case 19:D=h.stateNode;break;default:throw Error(s(314))}D!==null&&D.delete(p),Su(h,C)}var bu;bu=function(p,C,D){if(p!==null)if(p.memoizedProps!==C.pendingProps||lt.current)_t=!0;else{if(!(p.lanes&D)&&!(C.flags&128))return _t=!1,Hu(p,C,D);_t=!!(p.flags&131072)}else _t=!1,Nn&&C.flags&1048576&&Rl(C,Go,C.index);switch(C.lanes=0,C.tag){case 2:var R=C.type;As(p,C),p=C.pendingProps;var N=Jr(C,qn.current);_e(C,D),N=Qo(null,C,R,p,N,D);var F=La();return C.flags|=1,typeof N=="object"&&N!==null&&typeof N.render=="function"&&N.$$typeof===void 0?(C.tag=1,C.memoizedState=null,C.updateQueue=null,ot(R)?(F=!0,Sa(C)):F=!1,C.memoizedState=N.state!==null&&N.state!==void 0?N.state:null,sn(C),N.updater=Ss,C.stateNode=N,N._reactInternals=C,wl(C,R,p,D),C=Fl(null,C,R,!0,F,D)):(C.tag=0,Nn&&F&&Ho(C),xt(null,C,N,D),C=C.child),C;case 16:R=C.elementType;e:{switch(As(p,C),p=C.pendingProps,N=R._init,R=N(R._payload),C.type=R,N=C.tag=ld(R),p=ir(R,p),N){case 0:C=kl(null,C,R,p,D);break e;case 1:C=tu(null,C,R,p,D);break e;case 11:C=Zc(null,C,R,p,D);break e;case 14:C=Jc(null,C,R,ir(R.type,p),D);break e}throw Error(s(306,R,""))}return C;case 0:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),kl(p,C,R,N,D);case 1:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),tu(p,C,R,N,D);case 3:e:{if(ru(C),p===null)throw Error(s(387));R=C.pendingProps,F=C.memoizedState,N=F.element,ln(p,C),kn(C,R,null,D);var te=C.memoizedState;if(R=te.element,F.isDehydrated)if(F={element:R,isDehydrated:!1,cache:te.cache,pendingSuspenseBoundaries:te.pendingSuspenseBoundaries,transitions:te.transitions},C.updateQueue.baseState=F,C.memoizedState=F,C.flags&256){N=Ua(Error(s(423)),C),C=ou(p,C,R,D,N);break e}else if(R!==N){N=Ua(Error(s(424)),C),C=ou(p,C,R,D,N);break e}else for(Mt=Rt(C.stateNode.containerInfo.firstChild),yt=C,Nn=!0,Vt=null,D=Ce(C,null,R,D),C.child=D;D;)D.flags=D.flags&-3|4096,D=D.sibling;else{if(B(),R===N){C=Wr(p,C,D);break e}xt(p,C,R,D)}C=C.child}return C;case 5:return to(C),p===null&&P(C),R=C.type,N=C.pendingProps,F=p!==null?p.memoizedProps:null,te=N.children,wo(R,N)?te=null:F!==null&&wo(R,F)&&(C.flags|=32),nu(p,C),xt(p,C,te,D),C.child;case 6:return p===null&&P(C),null;case 13:return au(p,C,D);case 4:return Mr(C,C.stateNode.containerInfo),R=C.pendingProps,p===null?C.child=me(C,null,R,D):xt(p,C,R,D),C.child;case 11:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),Zc(p,C,R,N,D);case 7:return xt(p,C,C.pendingProps,D),C.child;case 8:return xt(p,C,C.pendingProps.children,D),C.child;case 12:return xt(p,C,C.pendingProps.children,D),C.child;case 10:e:{if(R=C.type._context,N=C.pendingProps,F=C.memoizedProps,te=N.value,An(ve,R._currentValue),R._currentValue=te,F!==null)if(Ct(F.value,te)){if(F.children===N.children&&!lt.current){C=Wr(p,C,D);break e}}else for(F=C.child,F!==null&&(F.return=C);F!==null;){var ue=F.dependencies;if(ue!==null){te=F.child;for(var pe=ue.firstContext;pe!==null;){if(pe.context===R){if(F.tag===1){pe=pn(-1,D&-D),pe.tag=2;var ye=F.updateQueue;if(ye!==null){ye=ye.shared;var Ae=ye.pending;Ae===null?pe.next=pe:(pe.next=Ae.next,Ae.next=pe),ye.pending=pe}}F.lanes|=D,pe=F.alternate,pe!==null&&(pe.lanes|=D),en(F.return,D,C),ue.lanes|=D;break}pe=pe.next}}else if(F.tag===10)te=F.type===C.type?null:F.child;else if(F.tag===18){if(te=F.return,te===null)throw Error(s(341));te.lanes|=D,ue=te.alternate,ue!==null&&(ue.lanes|=D),en(te,D,C),te=F.sibling}else te=F.child;if(te!==null)te.return=F;else for(te=F;te!==null;){if(te===C){te=null;break}if(F=te.sibling,F!==null){F.return=te.return,te=F;break}te=te.return}F=te}xt(p,C,N.children,D),C=C.child}return C;case 9:return N=C.type,R=C.pendingProps.children,_e(C,D),N=We(N),R=R(N),C.flags|=1,xt(p,C,R,D),C.child;case 14:return R=C.type,N=ir(R,C.pendingProps),N=ir(R.type,N),Jc(p,C,R,N,D);case 15:return qc(p,C,C.type,C.pendingProps,D);case 17:return R=C.type,N=C.pendingProps,N=C.elementType===R?N:ir(R,N),As(p,C),C.tag=1,ot(R)?(p=!0,Sa(C)):p=!1,_e(C,D),Fc(C,R,N),wl(C,R,N,D),Fl(null,C,R,!0,p,D);case 19:return su(p,C,D);case 22:return eu(p,C,D)}throw Error(s(156,C.tag))};function Au(h,p){return wi(h,p)}function sd(h,p,C,D){this.tag=h,this.key=C,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=p,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=D,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Yt(h,p,C,D){return new sd(h,p,C,D)}function uc(h){return h=h.prototype,!(!h||!h.isReactComponent)}function ld(h){if(typeof h=="function")return uc(h)?1:0;if(h!=null){if(h=h.$$typeof,h===G)return 11;if(h===le)return 14}return 2}function fo(h,p){var C=h.alternate;return C===null?(C=Yt(h.tag,p,h.key,h.mode),C.elementType=h.elementType,C.type=h.type,C.stateNode=h.stateNode,C.alternate=h,h.alternate=C):(C.pendingProps=p,C.type=h.type,C.flags=0,C.subtreeFlags=0,C.deletions=null),C.flags=h.flags&14680064,C.childLanes=h.childLanes,C.lanes=h.lanes,C.child=h.child,C.memoizedProps=h.memoizedProps,C.memoizedState=h.memoizedState,C.updateQueue=h.updateQueue,p=h.dependencies,C.dependencies=p===null?null:{lanes:p.lanes,firstContext:p.firstContext},C.sibling=h.sibling,C.index=h.index,C.ref=h.ref,C}function $s(h,p,C,D,R,N){var F=2;if(D=h,typeof h=="function")uc(h)&&(F=1);else if(typeof h=="string")F=5;else e:switch(h){case W:return na(C.children,R,N,p);case $:F=8,R|=8;break;case k:return h=Yt(12,C,p,R|2),h.elementType=k,h.lanes=N,h;case Y:return h=Yt(13,C,p,R),h.elementType=Y,h.lanes=N,h;case ee:return h=Yt(19,C,p,R),h.elementType=ee,h.lanes=N,h;case Q:return ks(C,R,N,p);default:if(typeof h=="object"&&h!==null)switch(h.$$typeof){case z:F=10;break e;case H:F=9;break e;case G:F=11;break e;case le:F=14;break e;case ne:F=16,D=null;break e}throw Error(s(130,h==null?h:typeof h=="undefined"?"undefined":o(h),""))}return p=Yt(F,C,p,R),p.elementType=h,p.type=D,p.lanes=N,p}function na(h,p,C,D){return h=Yt(7,h,D,p),h.lanes=C,h}function ks(h,p,C,D){return h=Yt(22,h,D,p),h.elementType=Q,h.lanes=C,h.stateNode={isHidden:!1},h}function dc(h,p,C){return h=Yt(6,h,null,p),h.lanes=C,h}function fc(h,p,C){return p=Yt(4,h.children!==null?h.children:[],h.key,p),p.lanes=C,p.stateNode={containerInfo:h.containerInfo,pendingChildren:null,implementation:h.implementation},p}function cd(h,p,C,D,R){this.tag=p,this.containerInfo=h,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ka(0),this.expirationTimes=ka(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ka(0),this.identifierPrefix=D,this.onRecoverableError=R,this.mutableSourceEagerHydrationData=null}function hc(h,p,C,D,R,N,F,te,ue){return h=new cd(h,p,C,te,ue),p===1?(p=1,N===!0&&(p|=8)):p=0,N=Yt(3,null,null,p),h.current=N,N.stateNode=h,N.memoizedState={element:D,isDehydrated:C,cache:null,transitions:null,pendingSuspenseBoundaries:null},sn(N),h}function ud(h,p,C){var D=3=0;--te){var ce=this.tryEntries[te],le=ce.completion;if(ce.tryLoc==="root")return V("end");if(ce.tryLoc<=this.prev){var fe=r.call(ce,"catchLoc"),ge=r.call(ce,"finallyLoc");if(fe&&ge){if(this.prev=0;--V){var te=this.tryEntries[V];if(te.tryLoc<=this.prev&&r.call(te,"finallyLoc")&&this.prev=0;--J){var V=this.tryEntries[J];if(V.finallyLoc===Y)return this.complete(V.completion,V.afterLoc),G(V),y}},catch:function(ne){for(var Y=this.tryEntries.length-1;Y>=0;--Y){var J=this.tryEntries[Y];if(J.tryLoc===ne){var V=J.completion;if(V.type==="throw"){var te=V.arg;G(J)}return te}}throw new Error("illegal catch attempt")},delegateYield:function(Y,J,V){return this.delegate={iterator:ee(Y),resultName:J,nextLoc:V},this.method==="next"&&(this.arg=g),y}},i}(O.exports);try{regeneratorRuntime=e}catch(i){typeof globalThis=="object"?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},82039:function(O,h){"use strict";/** + */function n(V){"@swc/helpers - typeof";return V&&typeof Symbol!="undefined"&&V.constructor===Symbol?"symbol":typeof V}var e=Symbol.for("react.element"),o=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),g=Symbol.for("react.provider"),x=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),a=Symbol.for("react.suspense"),l=Symbol.for("react.memo"),i=Symbol.for("react.lazy"),c=Symbol.iterator;function f(V){return V===null||typeof V!="object"?null:(V=c&&V[c]||V["@@iterator"],typeof V=="function"?V:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,E={};function j(V,q,ce){this.props=V,this.context=q,this.refs=E,this.updater=ce||m}j.prototype.isReactComponent={},j.prototype.setState=function(V,q){if(typeof V!="object"&&typeof V!="function"&&V!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,V,q,"setState")},j.prototype.forceUpdate=function(V){this.updater.enqueueForceUpdate(this,V,"forceUpdate")};function O(){}O.prototype=j.prototype;function M(V,q,ce){this.props=V,this.context=q,this.refs=E,this.updater=ce||m}var _=M.prototype=new O;_.constructor=M,v(_,j.prototype),_.isPureReactComponent=!0;var I=Array.isArray,S=Object.prototype.hasOwnProperty,T={current:null},A={key:!0,ref:!0,__self:!0,__source:!0};function K(V,q,ce){var se,fe={},ge=null,Ie=null;if(q!=null)for(se in q.ref!==void 0&&(Ie=q.ref),q.key!==void 0&&(ge=""+q.key),q)S.call(q,se)&&!A.hasOwnProperty(se)&&(fe[se]=q[se]);var je=arguments.length-2;if(je===1)fe.children=ce;else if(1=0;--q){var ce=this.tryEntries[q],se=ce.completion;if(ce.tryLoc==="root")return V("end");if(ce.tryLoc<=this.prev){var fe=r.call(ce,"catchLoc"),ge=r.call(ce,"finallyLoc");if(fe&&ge){if(this.prev=0;--V){var q=this.tryEntries[V];if(q.tryLoc<=this.prev&&r.call(q,"finallyLoc")&&this.prev=0;--Z){var V=this.tryEntries[Z];if(V.finallyLoc===Q)return this.complete(V.completion,V.afterLoc),G(V),O}},catch:function(ne){for(var Q=this.tryEntries.length-1;Q>=0;--Q){var Z=this.tryEntries[Q];if(Z.tryLoc===ne){var V=Z.completion;if(V.type==="throw"){var q=V.arg;G(Z)}return q}}throw new Error("illegal catch attempt")},delegateYield:function(Q,Z,V){return this.delegate={iterator:ee(Q),resultName:Z,nextLoc:V},this.method==="next"&&(this.arg=g),O}},o}(y.exports);try{regeneratorRuntime=e}catch(o){typeof globalThis=="object"?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},82039:function(y,u){"use strict";/** * @license React * scheduler.production.min.js * @@ -30,29 +30,29 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function n(ee,se){var ne=ee.length;ee.push(se);e:for(;0>>1,J=ee[Y];if(0>>1;Yt(ce,ne))let(fe,ce)?(ee[Y]=fe,ee[le]=ne,Y=le):(ee[Y]=ce,ee[te]=ne,Y=te);else if(let(fe,ne))ee[Y]=fe,ee[le]=ne,Y=le;else break e}}return se}function t(ee,se){var ne=ee.sortIndex-se.sortIndex;return ne!==0?ne:ee.id-se.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;h.unstable_now=function(){return r.now()}}else{var s=Date,g=s.now();h.unstable_now=function(){return s.now()-g}}var x=[],u=[],o=1,l=null,a=3,c=!1,f=!1,m=!1,v=typeof setTimeout=="function"?setTimeout:null,j=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate!="undefined"?setImmediate:null;typeof navigator!="undefined"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(ee){for(var se=e(u);se!==null;){if(se.callback===null)i(u);else if(se.startTime<=ee)i(u),se.sortIndex=se.expirationTime,n(x,se);else break;se=e(u)}}function M(ee){if(m=!1,y(ee),!f)if(e(x)!==null)f=!0,G(P);else{var se=e(u);se!==null&&Q(M,se.startTime-ee)}}function P(ee,se){f=!1,m&&(m=!1,j(B),B=-1),c=!0;var ne=a;try{for(y(se),l=e(x);l!==null&&(!(l.expirationTime>se)||ee&&!W());){var Y=l.callback;if(typeof Y=="function"){l.callback=null,a=l.priorityLevel;var J=Y(l.expirationTime<=se);se=h.unstable_now(),typeof J=="function"?l.callback=J:l===e(x)&&i(x),y(se)}else i(x);l=e(x)}if(l!==null)var V=!0;else{var te=e(u);te!==null&&Q(M,te.startTime-se),V=!1}return V}finally{l=null,a=ne,c=!1}}var D=!1,S=null,B=-1,T=5,L=-1;function W(){return!(h.unstable_now()-Lee||125Y?(ee.sortIndex=ne,n(u,ee),e(x)===null&&ee===e(u)&&(m?(j(B),B=-1):m=!0,Q(M,ne-Y))):(ee.sortIndex=J,n(x,ee),f||c||(f=!0,G(P))),ee},h.unstable_shouldYield=W,h.unstable_wrapCallback=function(ee){var se=a;return function(){var ne=a;a=se;try{return ee.apply(this,arguments)}finally{a=ne}}}},20686:function(O,h,n){"use strict";O.exports=n(82039)},73396:function(){self.fetch||(self.fetch=function(O,h){return h=h||{},new Promise(function(n,e){var i=new XMLHttpRequest,t=[],r={},s=function x(){return{ok:(i.status/100|0)==2,statusText:i.statusText,status:i.status,url:i.responseURL,text:function(){return Promise.resolve(i.responseText)},json:function(){return Promise.resolve(i.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([i.response]))},clone:x,headers:{keys:function(){return t},entries:function(){return t.map(function(o){return[o,i.getResponseHeader(o)]})},get:function(o){return i.getResponseHeader(o)},has:function(o){return i.getResponseHeader(o)!=null}}}};for(var g in i.open(h.method||"get",O,!0),i.onload=function(){i.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(x,u){r[u]||t.push(r[u]=u)}),n(s())},i.onerror=e,i.withCredentials=h.credentials=="include",h.headers)i.setRequestHeader(g,h.headers[g]);i.send(h.body||null)})})},7402:function(O,h,n){"use strict";n.d(h,{TS:function(){return a},Tj:function(){return g},Ul:function(){return u},hS:function(){return c},pb:function(){return s},yU:function(){return m}});/** + */function n(ee,le){var ne=ee.length;ee.push(le);e:for(;0>>1,Z=ee[Q];if(0>>1;Qt(ce,ne))set(fe,ce)?(ee[Q]=fe,ee[se]=ne,Q=se):(ee[Q]=ce,ee[q]=ne,Q=q);else if(set(fe,ne))ee[Q]=fe,ee[se]=ne,Q=se;else break e}}return le}function t(ee,le){var ne=ee.sortIndex-le.sortIndex;return ne!==0?ne:ee.id-le.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;u.unstable_now=function(){return r.now()}}else{var s=Date,g=s.now();u.unstable_now=function(){return s.now()-g}}var x=[],d=[],a=1,l=null,i=3,c=!1,f=!1,m=!1,v=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,j=typeof setImmediate!="undefined"?setImmediate:null;typeof navigator!="undefined"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function O(ee){for(var le=e(d);le!==null;){if(le.callback===null)o(d);else if(le.startTime<=ee)o(d),le.sortIndex=le.expirationTime,n(x,le);else break;le=e(d)}}function M(ee){if(m=!1,O(ee),!f)if(e(x)!==null)f=!0,G(_);else{var le=e(d);le!==null&&Y(M,le.startTime-ee)}}function _(ee,le){f=!1,m&&(m=!1,E(T),T=-1),c=!0;var ne=i;try{for(O(le),l=e(x);l!==null&&(!(l.expirationTime>le)||ee&&!W());){var Q=l.callback;if(typeof Q=="function"){l.callback=null,i=l.priorityLevel;var Z=Q(l.expirationTime<=le);le=u.unstable_now(),typeof Z=="function"?l.callback=Z:l===e(x)&&o(x),O(le)}else o(x);l=e(x)}if(l!==null)var V=!0;else{var q=e(d);q!==null&&Y(M,q.startTime-le),V=!1}return V}finally{l=null,i=ne,c=!1}}var I=!1,S=null,T=-1,A=5,K=-1;function W(){return!(u.unstable_now()-Kee||125Q?(ee.sortIndex=ne,n(d,ee),e(x)===null&&ee===e(d)&&(m?(E(T),T=-1):m=!0,Y(M,ne-Q))):(ee.sortIndex=Z,n(x,ee),f||c||(f=!0,G(_))),ee},u.unstable_shouldYield=W,u.unstable_wrapCallback=function(ee){var le=i;return function(){var ne=i;i=le;try{return ee.apply(this,arguments)}finally{i=ne}}}},20686:function(y,u,n){"use strict";y.exports=n(82039)},73396:function(){self.fetch||(self.fetch=function(y,u){return u=u||{},new Promise(function(n,e){var o=new XMLHttpRequest,t=[],r={},s=function x(){return{ok:(o.status/100|0)==2,statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:x,headers:{keys:function(){return t},entries:function(){return t.map(function(a){return[a,o.getResponseHeader(a)]})},get:function(a){return o.getResponseHeader(a)},has:function(a){return o.getResponseHeader(a)!=null}}}};for(var g in o.open(u.method||"get",y,!0),o.onload=function(){o.getAllResponseHeaders().toLowerCase().replace(/^(.+?):/gm,function(x,d){r[d]||t.push(r[d]=d)}),n(s())},o.onerror=e,o.withCredentials=u.credentials=="include",u.headers)o.setRequestHeader(g,u.headers[g]);o.send(u.body||null)})})},7402:function(y,u,n){"use strict";n.d(u,{TS:function(){return i},Tj:function(){return g},Ul:function(){return d},V0:function(){return E},hS:function(){return c},pb:function(){return s},yU:function(){return m}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function e(P,D){(D==null||D>P.length)&&(D=P.length);for(var S=0,B=new Array(D);S=P.length?{done:!0}:{done:!1,value:P[B++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(P,D){if(P==null)return P;if(Array.isArray(P)){for(var S=[],B=0;B$)return 1}return 0},u=function(P){for(var D=function(z){var X=P[z];W.push({criteria:B.map(function(G){return G(X)}),value:X})},S=arguments.length,B=new Array(S>1?S-1:0),T=1;T>1,$=P(D[k]),$B?k:k+1},j=function(P,D,S){var B=[].concat(P);return B.splice(v(S,P,D),0,D),B},E=function(P,D){for(var S=[],B=[],T=D,L=r(P),W;!(W=L()).done;){var $=W.value;B.push($),T--,T||(T=D,S.push(B),B=[])}return B.length&&S.push(B),S},y=function(P){return typeof P=="object"&&P!==null},M=function(){for(var P=arguments.length,D=new Array(P),S=0;S_.length)&&(I=_.length);for(var S=0,T=new Array(I);S=_.length?{done:!0}:{done:!1,value:_[T++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(_,I){if(_==null)return _;if(Array.isArray(_)){for(var S=[],T=0;T<_.length;T++){var A=_[T];I(A,T,_)&&S.push(A)}return S}throw new Error("filter() can't iterate on type "+(typeof _=="undefined"?"undefined":o(_)))},g=function(_,I){if(_==null)return _;if(Array.isArray(_)){for(var S=[],T=0;T<_.length;T++)S.push(I(_[T],T,_));return S}if(typeof _=="object"){var A=[];for(var K in _)Object.prototype.hasOwnProperty.call(_,K)&&A.push(I(_[K],K,_));return A}throw new Error("map() can't iterate on type "+(typeof _=="undefined"?"undefined":o(_)))},x=function(_,I){for(var S=_.criteria,T=I.criteria,A=S.length,K=0;K$)return 1}return 0},d=function(_){for(var I=function(z){var H=_[z];W.push({criteria:T.map(function(G){return G(H)}),value:H})},S=arguments.length,T=new Array(S>1?S-1:0),A=1;A>1,$=_(I[k]),$T?k:k+1},E=function(_,I,S){var T=[].concat(_);return T.splice(v(S,_,I),0,I),T},j=function(_,I){for(var S=[],T=[],A=I,K=r(_),W;!(W=K()).done;){var $=W.value;T.push($),A--,A||(A=I,S.push(T),T=[])}return T.length&&S.push(T),S},O=function(_){return typeof _=="object"&&_!==null},M=function(){for(var _=arguments.length,I=new Array(_),S=0;S<_;S++)I[S]=arguments[S];for(var T={},A=r(I),K;!(K=A()).done;)for(var W=K.value,$=r(Object.keys(W)),k;!(k=$()).done;){var z=k.value,H=T[z],G=W[z];Array.isArray(H)&&Array.isArray(G)?T[z]=[].concat(H,G):O(H)&&O(G)?T[z]=M(H,G):T[z]=G}return T}},47454:function(y,u,n){"use strict";n.d(u,{b:function(){return e}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(){"use strict";function i(){this.listeners={}}var t=i.prototype;return t.on=function(s,g){this.listeners[s]=this.listeners[s]||[],this.listeners[s].push(g)},t.off=function(s,g){var x=this.listeners[s];if(!x)throw new Error('There is no listeners for "'+s+'"');this.listeners[s]=x.filter(function(u){return u!==g})},t.emit=function(s){for(var g=arguments.length,x=new Array(g>1?g-1:0),u=1;u1?g-1:0),d=1;dg.length)&&(x=g.length);for(var u=0,o=new Array(x);u=g.length?{done:!0}:{done:!1,value:g[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=void 0,s=function(){for(var g=arguments.length,x=new Array(g),u=0;u1?a-1:0),f=1;fg.length)&&(x=g.length);for(var d=0,a=new Array(x);d=g.length?{done:!0}:{done:!1,value:g[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=void 0,s=function(){for(var g=arguments.length,x=new Array(g),d=0;d1?i-1:0),f=1;fc.length)&&(f=c.length);for(var m=0,v=new Array(f);m=c.length?{done:!0}:{done:!1,value:c[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=function(c,f,m){return cm?m:c},s=function(c){return c<0?0:c>1?1:c},g=function(c,f,m){return(c-f)/(m-f)},x=function(c,f){if(!c||isNaN(c))return c;var m,v,j,E;return f|=0,m=Math.pow(10,f),c*=m,E=+(c>0)|-(c<0),j=Math.abs(c%1)>=.4999999999854481,v=Math.floor(c),j&&(c=v+(E>0)),(j?c:Math.round(c))/m},u=function(c,f){return f===void 0&&(f=0),Number(c).toFixed(Math.max(f,0))},o=function(c,f){return f&&c>=f[0]&&c<=f[1]},l=function(c,f){for(var m=t(Object.keys(f)),v;!(v=m()).done;){var j=v.value,E=f[j];if(o(c,E))return j}},a=function(c){return Math.floor(c)!==c&&c.toString().split(".")[1].length||0}},56236:function(O,h,n){"use strict";n.d(h,{k:function(){return l}});/** + */function e(c,f){(f==null||f>c.length)&&(f=c.length);for(var m=0,v=new Array(f);m=c.length?{done:!0}:{done:!1,value:c[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=function(c,f,m){return cm?m:c},s=function(c){return c<0?0:c>1?1:c},g=function(c,f,m){return(c-f)/(m-f)},x=function(c,f){if(!c||isNaN(c))return c;var m,v,E,j;return f|=0,m=Math.pow(10,f),c*=m,j=+(c>0)|-(c<0),E=Math.abs(c%1)>=.4999999999854481,v=Math.floor(c),E&&(c=v+(j>0)),(E?c:Math.round(c))/m},d=function(c,f){return f===void 0&&(f=0),Number(c).toFixed(Math.max(f,0))},a=function(c,f){return f&&c>=f[0]&&c<=f[1]},l=function(c,f){for(var m=t(Object.keys(f)),v;!(v=m()).done;){var E=v.value,j=f[E];if(a(c,j))return E}},i=function(c){return Math.floor(c)!==c&&c.toString().split(".")[1].length||0}},56236:function(y,u,n){"use strict";n.d(u,{k:function(){return l}});/** * Ghetto performance measurement tools. * * Uses NODE_ENV to remove itself from production builds. @@ -60,29 +60,29 @@ * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e,i=60,t=1e3/i,r=!!((e=window.performance)!=null&&e.now),s={},g={};function x(a,c){}function u(a,c){return;var f,m,v}function o(a){var c=a/t;return a.toFixed(a<10?1:0)+"ms ("+c.toFixed(2)+" frames)"}var l={mark:x,measure:u}},65380:function(O,h,n){"use strict";n.d(h,{Ly:function(){return e},a_:function(){return t},b5:function(){return r}});/** + */var e,o=60,t=1e3/o,r=!!((e=window.performance)!=null&&e.now),s={},g={};function x(i,c){}function d(i,c){return;var f,m,v}function a(i){var c=i/t;return i.toFixed(i<10?1:0)+"ms ("+c.toFixed(2)+" frames)"}var l={mark:x,measure:d}},65380:function(y,u,n){"use strict";n.d(u,{Ly:function(){return e},a_:function(){return t},b5:function(){return r}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(s){for(var g="",x=0;xo.length)&&(l=o.length);for(var a=0,c=new Array(l);a=o.length?{done:!0}:{done:!1,value:o[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(o,l){if(l)return l(s)(o);var a,c=[],f=function(){return a},m=function(j){c.push(j)},v=function(j){a=o(a,j);for(var E=0;E1?m-1:0),j=1;j1?S-1:0),T=1;T1?S-1:0),T=1;Ta.length)&&(l=a.length);for(var i=0,c=new Array(l);i=a.length?{done:!0}:{done:!1,value:a[c++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s=function(a,l){if(l)return l(s)(a);var i,c=[],f=function(){return i},m=function(E){c.push(E)},v=function(E){i=a(i,E);for(var j=0;j1?m-1:0),E=1;E1?S-1:0),A=1;A1?S-1:0),A=1;A0&&T[T.length-1])&&(z[0]===6||z[0]===2)){W=0;continue}if(z[0]===3&&(!T||z[1]>T[0]&&z[1]0&&A[A.length-1])&&(z[0]===6||z[0]===2)){W=0;continue}if(z[0]===3&&(!A||z[1]>A[0]&&z[1]m.length)&&(v=m.length);for(var j=0,E=new Array(v);j=m.length?{done:!0}:{done:!1,value:m[E++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(m,v){v===void 0&&(v=function(E){return JSON.stringify(E)});var j=m.toLowerCase().trim();return function(E){if(!j)return!0;var y=v(E);return y?y.toLowerCase().includes(j):!1}}function s(m){return m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()}function g(m){return m.replace(/(^\w{1})|(\s+\w{1})/g,function(v){return v.toUpperCase()})}function x(m){return m.replace(/^\w/,function(v){return v.toUpperCase()})}var u=["Id","Tv"],o=["A","An","And","As","At","But","By","For","For","From","In","Into","Near","Nor","Of","On","Onto","Or","The","To","With"];function l(m){if(!m)return m;for(var v=m.replace(/([^\W_]+[^\s-]*) */g,function(T){return s(T)}),j=t(o),E;!(E=j()).done;){var y=E.value,M=new RegExp("\\s"+y+"\\s","g");v=v.replace(M,function(T){return T.toLowerCase()})}for(var P=t(u),D;!(D=P()).done;){var S=D.value,B=new RegExp("\\b"+S+"\\b","g");v=v.replace(B,function(T){return T.toLowerCase()})}return v}var a=/&(nbsp|amp|quot|lt|gt|apos);/g,c={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:'"'};function f(m){return m&&m.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(a,function(v,j){return c[j]}).replace(/&#?([0-9]+);/gi,function(v,j){var E=parseInt(j,10);return String.fromCharCode(E)}).replace(/&#x?([0-9a-f]+);/gi,function(v,j){var E=parseInt(j,16);return String.fromCharCode(E)})}},27482:function(O,h,n){"use strict";n.d(h,{sg:function(){return e}});/** + */function e(m,v){(v==null||v>m.length)&&(v=m.length);for(var E=0,j=new Array(v);E=m.length?{done:!0}:{done:!1,value:m[j++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function r(m,v){v===void 0&&(v=function(j){return JSON.stringify(j)});var E=m.toLowerCase().trim();return function(j){if(!E)return!0;var O=v(j);return O?O.toLowerCase().includes(E):!1}}function s(m){return m.charAt(0).toUpperCase()+m.slice(1).toLowerCase()}function g(m){return m.replace(/(^\w{1})|(\s+\w{1})/g,function(v){return v.toUpperCase()})}function x(m){return m.replace(/^\w/,function(v){return v.toUpperCase()})}var d=["Id","Tv"],a=["A","An","And","As","At","But","By","For","For","From","In","Into","Near","Nor","Of","On","Onto","Or","The","To","With"];function l(m){if(!m)return m;for(var v=m.replace(/([^\W_]+[^\s-]*) */g,function(A){return s(A)}),E=t(a),j;!(j=E()).done;){var O=j.value,M=new RegExp("\\s"+O+"\\s","g");v=v.replace(M,function(A){return A.toLowerCase()})}for(var _=t(d),I;!(I=_()).done;){var S=I.value,T=new RegExp("\\b"+S+"\\b","g");v=v.replace(T,function(A){return A.toLowerCase()})}return v}var i=/&(nbsp|amp|quot|lt|gt|apos);/g,c={amp:"&",apos:"'",gt:">",lt:"<",nbsp:" ",quot:'"'};function f(m){return m&&m.replace(/
/gi,"\n").replace(/<\/?[a-z0-9-_]+[^>]*>/gi,"").replace(i,function(v,E){return c[E]}).replace(/&#?([0-9]+);/gi,function(v,E){var j=parseInt(E,10);return String.fromCharCode(j)}).replace(/&#x?([0-9a-f]+);/gi,function(v,E){var j=parseInt(E,16);return String.fromCharCode(j)})}},27482:function(y,u,n){"use strict";n.d(u,{sg:function(){return e}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(r,s,g){g===void 0&&(g=!1);var x;return function(){for(var u=arguments.length,o=new Array(u),l=0;l=s?(r.apply(null,l),g=c):x=setTimeout(function(){return u.apply(void 0,[].concat(l))},s-(c-(g!=null?g:0)))}},t=function(r){return new Promise(function(s){return setTimeout(s,r)})}},87760:function(O,h,n){"use strict";n.d(h,{CO:function(){return g},Jk:function(){return c},Xd:function(){return l},Z4:function(){return x},tk:function(){return u}});var e=n(7402);/** + */var e=function(r,s,g){g===void 0&&(g=!1);var x;return function(){for(var d=arguments.length,a=new Array(d),l=0;l=s?(r.apply(null,l),g=c):x=setTimeout(function(){return d.apply(void 0,[].concat(l))},s-(c-(g!=null?g:0)))}},t=function(r){return new Promise(function(s){return setTimeout(s,r)})}},87760:function(y,u,n){"use strict";n.d(u,{CO:function(){return g},Jk:function(){return c},Xd:function(){return l},Z4:function(){return x},tk:function(){return d}});var e=n(7402);/** * N-dimensional vector manipulation functions. * * Vectors are plain number arrays, i.e. [x, y, z]. @@ -90,11 +90,11 @@ * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var i=function(m,v){return m+v},t=function(m,v){return m-v},r=function(m,v){return m*v},s=function(m,v){return m/v},g=function(){for(var m=arguments.length,v=new Array(m),j=0;ju.length)&&(o=u.length);for(var l=0,a=new Array(o);l=u.length?{done:!0}:{done:!1,value:u[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=[/v4shim/i],s={},g=function(u){return s[u]||u},x=function(u){return function(o){return function(l){var a=l.type,c=l.payload;if(a==="asset/stylesheet"){Byond.loadCss(c);return}if(a==="asset/mappings"){for(var f=function(){var j=v.value;if(r.some(function(M){return M.test(j)}))return"continue";var E=c[j],y=j.split(".").pop();s[j]=E,y==="css"&&Byond.loadCss(E),y==="js"&&Byond.loadJs(E)},m=t(Object.keys(c)),v;!(v=m()).done;)f();return}o(l)}}}},7081:function(O,h,n){"use strict";n.d(h,{H$:function(){return m},J3:function(){return f},JV:function(){return E},Oc:function(){return T},QY:function(){return W},d4:function(){return k},jB:function(){return P},pX:function(){return D}});var e=n(56236),i=n(74429),t=n(21547),r=n(37912),s=n(49945),g=n(92736),x=n(67278);/** + */function e(d,a){(a==null||a>d.length)&&(a=d.length);for(var l=0,i=new Array(a);l=d.length?{done:!0}:{done:!1,value:d[i++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var r=[/v4shim/i],s={},g=function(d){return s[d]||d},x=function(d){return function(a){return function(l){var i=l.type,c=l.payload;if(i==="asset/stylesheet"){Byond.loadCss(c);return}if(i==="asset/mappings"){for(var f=function(){var E=v.value;if(r.some(function(M){return M.test(E)}))return"continue";var j=c[E],O=E.split(".").pop();s[E]=j,O==="css"&&Byond.loadCss(j),O==="js"&&Byond.loadJs(j)},m=t(Object.keys(c)),v;!(v=m()).done;)f();return}a(l)}}}},7081:function(y,u,n){"use strict";n.d(u,{H$:function(){return m},J3:function(){return f},JV:function(){return j},Oc:function(){return A},QY:function(){return W},d4:function(){return k},jB:function(){return _},pX:function(){return I}});var e=n(56236),o=n(74429),t=n(21547),r=n(37912),s=n(49945),g=n(92736),x=n(67278);/** * This file provides a clear separation layer between backend updates * and what state our React app sees. * @@ -105,303 +105,303 @@ * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function u(z,X){(X==null||X>z.length)&&(X=z.length);for(var G=0,Q=new Array(X);G=z.length?{done:!0}:{done:!1,value:z[Q++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c=(0,g.h)("backend"),f,m=function(z){f=z},v=(0,i.VP)("backend/update"),j=(0,i.VP)("backend/setSharedState"),E=(0,i.VP)("backend/suspendStart"),y=function(){return{type:"backend/suspendSuccess",payload:{timestamp:Date.now()}}},M={config:{},data:{},shared:{},suspended:Date.now(),suspending:!1},P=function(z,X){z===void 0&&(z=M);var G=X.type,Q=X.payload;if(G==="backend/update"){var ee=o({},z.config,Q.config),se=o({},z.data,Q.static_data,Q.data),ne=o({},z.shared);if(Q.shared)for(var Y=a(Object.keys(Q.shared)),J;!(J=Y()).done;){var V=J.value,te=Q.shared[V];te===""?ne[V]=void 0:ne[V]=JSON.parse(te)}return o({},z,{config:ee,data:se,shared:ne,suspended:!1})}if(G==="backend/setSharedState"){var ce=Q.key,le=Q.nextState,fe;return o({},z,{shared:o({},z.shared,(fe={},fe[ce]=le,fe))})}if(G==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),G==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),G==="backend/suspendStart")return o({},z,{suspending:!0});if(G==="backend/suspendSuccess"){var ge=Q.timestamp;return o({},z,{data:{},shared:{},config:o({},z.config,{title:"",status:1}),suspending:!1,suspended:ge})}return z},D=function(z){var X,G;return function(Q){return function(ee){var se=B(z.getState()).suspended,ne=ee.type,Y=ee.payload;if(ne==="update"){z.dispatch(v(Y));return}if(ne==="suspend"){z.dispatch(y());return}if(ne==="ping"){Byond.sendMessage("ping/reply");return}if(ne==="byond/mousedown"&&r.Nh.emit("byond/mousedown"),ne==="byond/mouseup"&&r.Nh.emit("byond/mouseup"),ne==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),ne==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),ne==="backend/suspendStart"&&!G){c.log("suspending ("+Byond.windowId+")");var J=function(){return Byond.sendMessage("suspend")};J(),G=setInterval(J,2e3)}if(ne==="backend/suspendSuccess"&&((0,x.Su)(),clearInterval(G),G=void 0,Byond.winset(Byond.windowId,{"is-visible":!1}),setTimeout(function(){return(0,s.$)()})),ne==="backend/update"){var V,te,ce=(te=Y.config)==null||(V=te.window)==null?void 0:V.fancy;X===void 0?X=ce:X!==ce&&(c.log("changing fancy mode to",ce),X=ce,Byond.winset(Byond.windowId,{titlebar:!ce,"can-resize":!ce}))}return ne==="backend/update"&&se&&(c.log("backend/update",Y),(0,x.P7)(),(0,t.MN)(),setTimeout(function(){e.k.mark("resume/start");var le=B(z.getState()).suspended;le||(Byond.winset(Byond.windowId,{"is-visible":!0}),e.k.mark("resume/finish"))})),Q(ee)}}},S=function(z,X){X===void 0&&(X={});var G=typeof X=="object"&&X!==null&&!Array.isArray(X);if(!G){c.error("Payload for act() must be an object, got this:",X);return}Byond.sendMessage("act/"+z,X)},B=function(z){return z.backend||{}},T=function(){var z,X=f==null||(z=f.getState())==null?void 0:z.backend;return o({},X,{act:S})},L=function(z,X){var G,Q=f==null||(G=f.getState())==null?void 0:G.backend,ee,se=(ee=Q==null?void 0:Q.shared)!=null?ee:{},ne=z in se?se[z]:X;return[ne,function(Y){f.dispatch(j({key:z,nextState:typeof Y=="function"?Y(ne):Y}))}]},W=function(z,X){var G,Q=f==null||(G=f.getState())==null?void 0:G.backend,ee,se=(ee=Q==null?void 0:Q.shared)!=null?ee:{},ne=z in se?se[z]:X;return[ne,function(Y){Byond.sendMessage({type:"setSharedState",key:z,value:JSON.stringify(typeof Y=="function"?Y(ne):Y)||""})}]},$=function(){return f.dispatch},k=function(z){return z(f==null?void 0:f.getState())}},96781:function(O,h,n){"use strict";n.d(h,{Fl:function(){return D},WP:function(){return S},az:function(){return B},zA:function(){return l}});var e=n(65380),i=n(61358),t=n(79500),r=n(92736);/** + */function d(z,H){(H==null||H>z.length)&&(H=z.length);for(var G=0,Y=new Array(H);G=z.length?{done:!0}:{done:!1,value:z[Y++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c=(0,g.h)("backend"),f,m=function(z){f=z},v=(0,o.VP)("backend/update"),E=(0,o.VP)("backend/setSharedState"),j=(0,o.VP)("backend/suspendStart"),O=function(){return{type:"backend/suspendSuccess",payload:{timestamp:Date.now()}}},M={config:{},data:{},shared:{},suspended:Date.now(),suspending:!1},_=function(z,H){z===void 0&&(z=M);var G=H.type,Y=H.payload;if(G==="backend/update"){var ee=a({},z.config,Y.config),le=a({},z.data,Y.static_data,Y.data),ne=a({},z.shared);if(Y.shared)for(var Q=i(Object.keys(Y.shared)),Z;!(Z=Q()).done;){var V=Z.value,q=Y.shared[V];q===""?ne[V]=void 0:ne[V]=JSON.parse(q)}return a({},z,{config:ee,data:le,shared:ne,suspended:!1})}if(G==="backend/setSharedState"){var ce=Y.key,se=Y.nextState,fe;return a({},z,{shared:a({},z.shared,(fe={},fe[ce]=se,fe))})}if(G==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),G==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),G==="backend/suspendStart")return a({},z,{suspending:!0});if(G==="backend/suspendSuccess"){var ge=Y.timestamp;return a({},z,{data:{},shared:{},config:a({},z.config,{title:"",status:1}),suspending:!1,suspended:ge})}return z},I=function(z){var H,G;return function(Y){return function(ee){var le=T(z.getState()).suspended,ne=ee.type,Q=ee.payload;if(ne==="update"){z.dispatch(v(Q));return}if(ne==="suspend"){z.dispatch(O());return}if(ne==="ping"){Byond.sendMessage("ping/reply");return}if(ne==="byond/mousedown"&&r.Nh.emit("byond/mousedown"),ne==="byond/mouseup"&&r.Nh.emit("byond/mouseup"),ne==="byond/ctrldown"&&r.Nh.emit("byond/ctrldown"),ne==="byond/ctrlup"&&r.Nh.emit("byond/ctrlup"),ne==="backend/suspendStart"&&!G){c.log("suspending ("+Byond.windowId+")");var Z=function(){return Byond.sendMessage("suspend")};Z(),G=setInterval(Z,2e3)}if(ne==="backend/suspendSuccess"&&((0,x.Su)(),clearInterval(G),G=void 0,Byond.winset(Byond.windowId,{"is-visible":!1}),setTimeout(function(){return(0,s.$)()})),ne==="backend/update"){var V,q,ce=(q=Q.config)==null||(V=q.window)==null?void 0:V.fancy;H===void 0?H=ce:H!==ce&&(c.log("changing fancy mode to",ce),H=ce,Byond.winset(Byond.windowId,{titlebar:!ce,"can-resize":!ce}))}return ne==="backend/update"&&le&&(c.log("backend/update",Q),(0,x.P7)(),(0,t.MN)(),setTimeout(function(){e.k.mark("resume/start");var se=T(z.getState()).suspended;se||(Byond.winset(Byond.windowId,{"is-visible":!0}),e.k.mark("resume/finish"))})),Y(ee)}}},S=function(z,H){H===void 0&&(H={});var G=typeof H=="object"&&H!==null&&!Array.isArray(H);if(!G){c.error("Payload for act() must be an object, got this:",H);return}Byond.sendMessage("act/"+z,H)},T=function(z){return z.backend||{}},A=function(){var z,H=f==null||(z=f.getState())==null?void 0:z.backend;return a({},H,{act:S})},K=function(z,H){var G,Y=f==null||(G=f.getState())==null?void 0:G.backend,ee,le=(ee=Y==null?void 0:Y.shared)!=null?ee:{},ne=z in le?le[z]:H;return[ne,function(Q){f.dispatch(E({key:z,nextState:typeof Q=="function"?Q(ne):Q}))}]},W=function(z,H){var G,Y=f==null||(G=f.getState())==null?void 0:G.backend,ee,le=(ee=Y==null?void 0:Y.shared)!=null?ee:{},ne=z in le?le[z]:H;return[ne,function(Q){Byond.sendMessage({type:"setSharedState",key:z,value:JSON.stringify(typeof Q=="function"?Q(ne):Q)||""})}]},$=function(){return f.dispatch},k=function(z){return z(f==null?void 0:f.getState())}},96781:function(y,u,n){"use strict";n.d(u,{Fl:function(){return I},WP:function(){return S},az:function(){return T},zA:function(){return l}});var e=n(65380),o=n(61358),t=n(79500),r=n(92736);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function s(T,L){(L==null||L>T.length)&&(L=T.length);for(var W=0,$=new Array(L);W=0)&&(W[k]=T[k]);return W}function u(T,L){if(T){if(typeof T=="string")return s(T,L);var W=Object.prototype.toString.call(T).slice(8,-1);if(W==="Object"&&T.constructor&&(W=T.constructor.name),W==="Map"||W==="Set")return Array.from(W);if(W==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(W))return s(T,L)}}function o(T,L){var W=typeof Symbol!="undefined"&&T[Symbol.iterator]||T["@@iterator"];if(W)return(W=W.call(T)).next.bind(W);if(Array.isArray(T)||(W=u(T))||L&&T&&typeof T.length=="number"){W&&(T=W);var $=0;return function(){return $>=T.length?{done:!0}:{done:!1,value:T[$++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(T){if(typeof T=="string")return T.endsWith("px")?parseFloat(T)/12+"rem":T;if(typeof T=="number")return T+"rem"},a=function(T){if(typeof T=="string")return l(T);if(typeof T=="number")return l(T*.5)},c=function(T){return!f(T)},f=function(T){return typeof T=="string"&&t.NE.includes(T)},m=function(T){return function(L,W){(typeof W=="number"||typeof W=="string")&&(L[T]=W)}},v=function(T,L){return function(W,$){(typeof $=="number"||typeof $=="string")&&(W[T]=L($))}},j=function(T,L){return function(W,$){$&&(W[T]=L)}},E=function(T,L,W){return function($,k){if(typeof k=="number"||typeof k=="string")for(var z=0;z=0)&&(l[c]=u[c]);return l}var g=5;function x(u){var o=u.fixBlur,l=o===void 0?!0:o,a=u.fixErrors,c=a===void 0?!1:a,f=u.objectFit,m=f===void 0?"fill":f,v=u.src,j=s(u,["fixBlur","fixErrors","objectFit","src"]),E=(0,i.useRef)(0),y=(0,t.Fl)(j);return y.style=r({},y.style,{"-ms-interpolation-mode":l?"nearest-neighbor":"auto",objectFit:m}),(0,e.jsx)("img",r({onError:function(M){if(c&&E.currentA.length)&&(K=A.length);for(var W=0,$=new Array(K);W=0)&&(W[k]=A[k]);return W}function d(A,K){if(A){if(typeof A=="string")return s(A,K);var W=Object.prototype.toString.call(A).slice(8,-1);if(W==="Object"&&A.constructor&&(W=A.constructor.name),W==="Map"||W==="Set")return Array.from(W);if(W==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(W))return s(A,K)}}function a(A,K){var W=typeof Symbol!="undefined"&&A[Symbol.iterator]||A["@@iterator"];if(W)return(W=W.call(A)).next.bind(W);if(Array.isArray(A)||(W=d(A))||K&&A&&typeof A.length=="number"){W&&(A=W);var $=0;return function(){return $>=A.length?{done:!0}:{done:!1,value:A[$++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(A){if(typeof A=="string")return A.endsWith("px")?parseFloat(A)/12+"rem":A;if(typeof A=="number")return A+"rem"},i=function(A){if(typeof A=="string")return l(A);if(typeof A=="number")return l(A*.5)},c=function(A){return!f(A)},f=function(A){return typeof A=="string"&&t.NE.includes(A)},m=function(A){return function(K,W){(typeof W=="number"||typeof W=="string")&&(K[A]=W)}},v=function(A,K){return function(W,$){(typeof $=="number"||typeof $=="string")&&(W[A]=K($))}},E=function(A,K){return function(W,$){$&&(W[A]=K)}},j=function(A,K,W){return function($,k){if(typeof k=="number"||typeof k=="string")for(var z=0;z=0)&&(l[c]=d[c]);return l}var g=5;function x(d){var a=d.fixBlur,l=a===void 0?!0:a,i=d.fixErrors,c=i===void 0?!1:i,f=d.objectFit,m=f===void 0?"fill":f,v=d.src,E=s(d,["fixBlur","fixErrors","objectFit","src"]),j=(0,o.useRef)(0),O=(0,t.Fl)(E);return O.style=r({},O.style,{"-ms-interpolation-mode":l?"nearest-neighbor":"auto",objectFit:m}),(0,e.jsx)("img",r({onError:function(M){if(c&&j.current=0)&&(a[f]=o[f]);return a}var g=function(o){var l=o.className,a=o.collapsing,c=o.children,f=s(o,["className","collapsing","children"]);return(0,e.jsx)("table",r({className:(0,i.Ly)(["Table",a&&"Table--collapsing",l,(0,t.WP)(f)])},(0,t.Fl)(f),{children:(0,e.jsx)("tbody",{children:c})}))},x=function(o){var l=o.className,a=o.header,c=s(o,["className","header"]);return(0,e.jsx)("tr",r({className:(0,i.Ly)(["Table__row",a&&"Table__row--header",l,(0,t.WP)(o)])},(0,t.Fl)(c)))},u=function(o){var l=o.className,a=o.collapsing,c=o.header,f=s(o,["className","collapsing","header"]);return(0,e.jsx)("td",r({className:(0,i.Ly)(["Table__cell",a&&"Table__cell--collapsing",c&&"Table__cell--header",l,(0,t.WP)(o)])},(0,t.Fl)(f)))};g.Row=x,g.Cell=u},88569:function(O,h,n){"use strict";n.d(h,{zv:function(){return l},y5:function(){return a},Z8:function(){return j},Y0:function(){return D},az:function(){return y.az},$n:function(){return Yn},D1:function(){return mi},t1:function(){return Qi},Nt:function(){return xi},BK:function(){return cl},Rr:function(){return ts},cG:function(){return rs},Hx:function(){return pi},ms:function(){return ds},so:function(){return Jt},In:function(){return W},_V:function(){return dl._},pd:function(){return Or},N6:function(){return Es},Wx:function(){return yi},Ki:function(){return $t},aF:function(){return Sl},tx:function(){return Di},IC:function(){return Ma},Q7:function(){return Qr},ND:function(){return cs},z2:function(){return da},SM:function(){return Os},wn:function(){return ys},Ap:function(){return Lr},BJ:function(){return Cr},XI:function(){return Ci.XI},tU:function(){return ht},fs:function(){return ir},m_:function(){return st}});var e=n(20462),i=n(4089),t=n(61358);/** + */function r(){return r=Object.assign||function(a){for(var l=1;l=0)&&(i[f]=a[f]);return i}var g=function(a){var l=a.className,i=a.collapsing,c=a.children,f=s(a,["className","collapsing","children"]);return(0,e.jsx)("table",r({className:(0,o.Ly)(["Table",i&&"Table--collapsing",l,(0,t.WP)(f)])},(0,t.Fl)(f),{children:(0,e.jsx)("tbody",{children:c})}))},x=function(a){var l=a.className,i=a.header,c=s(a,["className","header"]);return(0,e.jsx)("tr",r({className:(0,o.Ly)(["Table__row",i&&"Table__row--header",l,(0,t.WP)(a)])},(0,t.Fl)(c)))},d=function(a){var l=a.className,i=a.collapsing,c=a.header,f=s(a,["className","collapsing","header"]);return(0,e.jsx)("td",r({className:(0,o.Ly)(["Table__cell",i&&"Table__cell--collapsing",c&&"Table__cell--header",l,(0,t.WP)(a)])},(0,t.Fl)(f)))};g.Row=x,g.Cell=d},88569:function(y,u,n){"use strict";n.d(u,{zv:function(){return l},y5:function(){return i},Z8:function(){return E},Y0:function(){return I},az:function(){return O.az},$n:function(){return Yn},D1:function(){return ma},t1:function(){return Qa},Nt:function(){return xa},BK:function(){return cl},Rr:function(){return ts},cG:function(){return rs},Hx:function(){return pa},ms:function(){return ds},so:function(){return Jt},In:function(){return W},_V:function(){return dl._},pd:function(){return Or},N6:function(){return js},Wx:function(){return ya},Ki:function(){return $t},aF:function(){return Sl},tx:function(){return Da},IC:function(){return Mi},Q7:function(){return Qr},ND:function(){return cs},z2:function(){return di},SM:function(){return Os},wn:function(){return ys},Ap:function(){return Lr},BJ:function(){return Cr},XI:function(){return Ca.XI},tU:function(){return ht},fs:function(){return ar},m_:function(){return st}});var e=n(20462),o=n(4089),t=n(61358);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function r(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&s(_,b)}function s(_,b){return s=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},s(_,b)}var g=function(_){return typeof _=="number"&&Number.isFinite(_)&&!Number.isNaN(_)},x=1e3/60,u=.8333,o=.001,l=function(_){"use strict";r(b,_);function b(U){var R;R=_.call(this,U)||this,R.ref=(0,t.createRef)(),R.currentValue=0;var w=U.initial,H=U.value;return w!==void 0&&g(w)?R.currentValue=w:g(H)&&(R.currentValue=H),R}var K=b.prototype;return K.componentDidMount=function(){this.currentValue!==this.props.value&&this.startTicking()},K.componentWillUnmount=function(){this.stopTicking()},K.shouldComponentUpdate=function(R){return R.value!==this.props.value&&this.startTicking(),!1},K.startTicking=function(){var R=this;this.interval===void 0&&(this.interval=setInterval(function(){return R.tick()},x))},K.stopTicking=function(){this.interval!==void 0&&(clearInterval(this.interval),this.interval=void 0)},K.tick=function(){var R=this.currentValue,w=this.props.value;g(w)?this.currentValue=R*u+w*(1-u):this.stopTicking(),Math.abs(w-this.currentValue)=0)&&(K[R]=_[R]);return K}function D(_){var b=_.className,K=P(_,["className"]);return(0,e.jsx)(y.az,M({className:(0,E.Ly)(["BlockQuote",b])},K))}var S=n(87239);/** + */function M(){return M=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function I(P){var b=P.className,L=_(P,["className"]);return(0,e.jsx)(O.az,M({className:(0,j.Ly)(["BlockQuote",b])},L))}var S=n(87239);/** * @file * @copyright 2020 Aleksej Komarov * @author Original Aleksej Komarov * @author Changes ThePotato97 * @license MIT - */function B(){return B=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var L=/-o$/,W=function(_){var b=_.name,K=_.size,U=_.spin,R=_.className,w=_.rotation,H=T(_,["name","size","spin","className","rotation"]),oe=H.style||{};K&&(oe.fontSize=K*100+"%"),w&&(oe.transform="rotate("+w+"deg)"),H.style=oe;var ae=(0,y.Fl)(H),re="";if(b.startsWith("tg-"))re=b;else{var ie=L.test(b),me=b.replace(L,""),Ce=!me.startsWith("fa-");re=ie?"far ":"fas ",Ce&&(re+="fa-"),re+=me,U&&(re+=" fa-spin")}return(0,e.jsx)("i",B({className:(0,E.Ly)(["Icon",re,R,(0,y.WP)(H)])},ae))},$=function(_){var b=_.className,K=_.children,U=T(_,["className","children"]);return(0,e.jsx)("span",B({className:(0,E.Ly)(["IconStack",b,(0,y.WP)(U)])},(0,y.Fl)(U),{children:K}))};W.Stack=$;function k(_){if(_==null)return window;if(_.toString()!=="[object Window]"){var b=_.ownerDocument;return b&&b.defaultView||window}return _}function z(_,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](_):_ instanceof b}function X(_){var b=k(_).Element;return z(_,b)||z(_,Element)}function G(_){var b=k(_).HTMLElement;return z(_,b)||z(_,HTMLElement)}function Q(_){if(typeof ShadowRoot=="undefined")return!1;var b=k(_).ShadowRoot;return z(_,b)||z(_,ShadowRoot)}var ee=Math.max,se=Math.min,ne=Math.round;function Y(){var _=navigator.userAgentData;return _!=null&&_.brands&&Array.isArray(_.brands)?_.brands.map(function(b){return b.brand+"/"+b.version}).join(" "):navigator.userAgent}function J(){return!/^((?!chrome|android).)*safari/i.test(Y())}function V(_,b,K){b===void 0&&(b=!1),K===void 0&&(K=!1);var U=_.getBoundingClientRect(),R=1,w=1;b&&G(_)&&(R=_.offsetWidth>0&&ne(U.width)/_.offsetWidth||1,w=_.offsetHeight>0&&ne(U.height)/_.offsetHeight||1);var H=X(_)?k(_):window,oe=H.visualViewport,ae=!J()&&K,re=(U.left+(ae&&oe?oe.offsetLeft:0))/R,ie=(U.top+(ae&&oe?oe.offsetTop:0))/w,me=U.width/R,Ce=U.height/w;return{width:me,height:Ce,top:ie,right:re+me,bottom:ie+Ce,left:re,x:re,y:ie}}function te(_){var b=k(_),K=b.pageXOffset,U=b.pageYOffset;return{scrollLeft:K,scrollTop:U}}function ce(_){return{scrollLeft:_.scrollLeft,scrollTop:_.scrollTop}}function le(_){return _===k(_)||!G(_)?te(_):ce(_)}function fe(_){return _?(_.nodeName||"").toLowerCase():null}function ge(_){return((X(_)?_.ownerDocument:_.document)||window.document).documentElement}function Ie(_){return V(ge(_)).left+te(_).scrollLeft}function Ee(_){return k(_).getComputedStyle(_)}function je(_){var b=Ee(_),K=b.overflow,U=b.overflowX,R=b.overflowY;return/auto|scroll|overlay|hidden/.test(K+R+U)}function Ne(_){var b=_.getBoundingClientRect(),K=ne(b.width)/_.offsetWidth||1,U=ne(b.height)/_.offsetHeight||1;return K!==1||U!==1}function on(_,b,K){K===void 0&&(K=!1);var U=G(b),R=G(b)&&Ne(b),w=ge(b),H=V(_,R,K),oe={scrollLeft:0,scrollTop:0},ae={x:0,y:0};return(U||!U&&!K)&&((fe(b)!=="body"||je(w))&&(oe=le(b)),G(b)?(ae=V(b,!0),ae.x+=b.clientLeft,ae.y+=b.clientTop):w&&(ae.x=Ie(w))),{x:H.left+oe.scrollLeft-ae.x,y:H.top+oe.scrollTop-ae.y,width:H.width,height:H.height}}function Xe(_){var b=V(_),K=_.offsetWidth,U=_.offsetHeight;return Math.abs(b.width-K)<=1&&(K=b.width),Math.abs(b.height-U)<=1&&(U=b.height),{x:_.offsetLeft,y:_.offsetTop,width:K,height:U}}function Pe(_){return fe(_)==="html"?_:_.assignedSlot||_.parentNode||(Q(_)?_.host:null)||ge(_)}function qe(_){return["html","body","#document"].indexOf(fe(_))>=0?_.ownerDocument.body:G(_)&&je(_)?_:qe(Pe(_))}function jn(_,b){var K;b===void 0&&(b=[]);var U=qe(_),R=U===((K=_.ownerDocument)==null?void 0:K.body),w=k(U),H=R?[w].concat(w.visualViewport||[],je(U)?U:[]):U,oe=b.concat(H);return R?oe:oe.concat(jn(Pe(H)))}function En(_){return["table","td","th"].indexOf(fe(_))>=0}function hn(_){return!G(_)||Ee(_).position==="fixed"?null:_.offsetParent}function Cn(_){var b=/firefox/i.test(Y()),K=/Trident/i.test(Y());if(K&&G(_)){var U=Ee(_);if(U.position==="fixed")return null}var R=Pe(_);for(Q(R)&&(R=R.host);G(R)&&["html","body"].indexOf(fe(R))<0;){var w=Ee(R);if(w.transform!=="none"||w.perspective!=="none"||w.contain==="paint"||["transform","perspective"].indexOf(w.willChange)!==-1||b&&w.willChange==="filter"||b&&w.filter&&w.filter!=="none")return R;R=R.parentNode}return null}function fn(_){for(var b=k(_),K=hn(_);K&&En(K)&&Ee(K).position==="static";)K=hn(K);return K&&(fe(K)==="html"||fe(K)==="body"&&Ee(K).position==="static")?b:K||Cn(_)||b}var tn="top",Se="bottom",Le="right",Oe="left",ke="auto",Qe=[tn,Se,Le,Oe],we="start",He="end",Kn="clippingParents",Un="viewport",In="popper",xn="reference",rn=Qe.reduce(function(_,b){return _.concat([b+"-"+we,b+"-"+He])},[]),$e=[].concat(Qe,[ke]).reduce(function(_,b){return _.concat([b,b+"-"+we,b+"-"+He])},[]),Fe="beforeRead",mn="read",_n="afterRead",Dt="beforeMain",rt="main",pt="afterMain",Jn="beforeWrite",dt="write",Nt="afterWrite",Qt=[Fe,mn,_n,Dt,rt,pt,Jn,dt,Nt];function ur(_){var b=new Map,K=new Set,U=[];_.forEach(function(w){b.set(w.name,w)});function R(w){K.add(w.name);var H=[].concat(w.requires||[],w.requiresIfExists||[]);H.forEach(function(oe){if(!K.has(oe)){var ae=b.get(oe);ae&&R(ae)}}),U.push(w)}return _.forEach(function(w){K.has(w.name)||R(w)}),U}function ti(_){var b=ur(_);return Qt.reduce(function(K,U){return K.concat(b.filter(function(R){return R.phase===U}))},[])}function ri(_){var b;return function(){return b||(b=new Promise(function(K){Promise.resolve().then(function(){b=void 0,K(_())})})),b}}function oi(_){var b=_.reduce(function(K,U){var R=K[U.name];return K[U.name]=R?Object.assign({},R,U,{options:Object.assign({},R.options,U.options),data:Object.assign({},R.data,U.data)}):U,K},{});return Object.keys(b).map(function(K){return b[K]})}var mo={placement:"bottom",modifiers:[],strategy:"absolute"};function vo(){for(var _=arguments.length,b=new Array(_),K=0;K<_;K++)b[K]=arguments[K];return!b.some(function(U){return!(U&&typeof U.getBoundingClientRect=="function")})}function xo(_){_===void 0&&(_={});var b=_,K=b.defaultModifiers,U=K===void 0?[]:K,R=b.defaultOptions,w=R===void 0?mo:R;return function(oe,ae,re){re===void 0&&(re=w);var ie={placement:"bottom",orderedModifiers:[],options:Object.assign({},mo,w),modifiersData:{},elements:{reference:oe,popper:ae},attributes:{},styles:{}},me=[],Ce=!1,ve={state:ie,setOptions:function(Ke){var ze=typeof Ke=="function"?Ke(ie.options):Ke;be(),ie.options=Object.assign({},w,ie.options,ze),ie.scrollParents={reference:X(oe)?jn(oe):oe.contextElement?jn(oe.contextElement):[],popper:jn(ae)};var en=ti(oi([].concat(U,ie.options.modifiers)));return ie.orderedModifiers=en.filter(function(_e){return _e.enabled}),Me(),ve.update()},forceUpdate:function(){if(!Ce){var Ke=ie.elements,ze=Ke.reference,en=Ke.popper;if(vo(ze,en)){ie.rects={reference:on(ze,fn(en),ie.options.strategy==="fixed"),popper:Xe(en)},ie.reset=!1,ie.placement=ie.options.placement,ie.orderedModifiers.forEach(function(Re){return ie.modifiersData[Re.name]=Object.assign({},Re.data)});for(var _e=0;_e=0?"x":"y"}function Ir(_){var b=_.reference,K=_.element,U=_.placement,R=U?jt(U):null,w=U?Et(U):null,H=b.x+b.width/2-K.width/2,oe=b.y+b.height/2-K.height/2,ae;switch(R){case tn:ae={x:H,y:b.y-K.height};break;case Se:ae={x:H,y:b.y+b.height};break;case Le:ae={x:b.x+b.width,y:oe};break;case Oe:ae={x:b.x-K.width,y:oe};break;default:ae={x:b.x,y:b.y}}var re=R?dr(R):null;if(re!=null){var ie=re==="y"?"height":"width";switch(w){case we:ae[re]=ae[re]-(b[ie]/2-K[ie]/2);break;case He:ae[re]=ae[re]+(b[ie]/2-K[ie]/2);break;default:}}return ae}function po(_){var b=_.state,K=_.name;b.modifiersData[K]=Ir({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})}var Z={name:"popperOffsets",enabled:!0,phase:"read",fn:po,data:{}},Ae={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Qs(_,b){var K=_.x,U=_.y,R=b.devicePixelRatio||1;return{x:ne(K*R)/R||0,y:ne(U*R)/R||0}}function fr(_){var b,K=_.popper,U=_.popperRect,R=_.placement,w=_.variation,H=_.offsets,oe=_.position,ae=_.gpuAcceleration,re=_.adaptive,ie=_.roundOffsets,me=_.isFixed,Ce=H.x,ve=Ce===void 0?0:Ce,Me=H.y,be=Me===void 0?0:Me,Be=typeof ie=="function"?ie({x:ve,y:be}):{x:ve,y:be};ve=Be.x,be=Be.y;var Ke=H.hasOwnProperty("x"),ze=H.hasOwnProperty("y"),en=Oe,_e=tn,We=window;if(re){var Ge=fn(K),gn="clientHeight",an="clientWidth";if(Ge===k(K)&&(Ge=ge(K),Ee(Ge).position!=="static"&&oe==="absolute"&&(gn="scrollHeight",an="scrollWidth")),Ge=Ge,R===tn||(R===Oe||R===Le)&&w===He){_e=Se;var cn=me&&Ge===We&&We.visualViewport?We.visualViewport.height:Ge[gn];be-=cn-U.height,be*=ae?1:-1}if(R===Oe||(R===tn||R===Se)&&w===He){en=Le;var Re=me&&Ge===We&&We.visualViewport?We.visualViewport.width:Ge[an];ve-=Re-U.width,ve*=ae?1:-1}}var sn=Object.assign({position:oe},re&&Ae),ln=ie===!0?Qs({x:ve,y:be},k(K)):{x:ve,y:be};if(ve=ln.x,be=ln.y,ae){var pn;return Object.assign({},sn,(pn={},pn[_e]=ze?"0":"",pn[en]=Ke?"0":"",pn.transform=(We.devicePixelRatio||1)<=1?"translate("+ve+"px, "+be+"px)":"translate3d("+ve+"px, "+be+"px, 0)",pn))}return Object.assign({},sn,(b={},b[_e]=ze?be+"px":"",b[en]=Ke?ve+"px":"",b.transform="",b))}function La(_){var b=_.state,K=_.options,U=K.gpuAcceleration,R=U===void 0?!0:U,w=K.adaptive,H=w===void 0?!0:w,oe=K.roundOffsets,ae=oe===void 0?!0:oe,re={placement:jt(b.placement),variation:Et(b.placement),popper:b.elements.popper,popperRect:b.rects.popper,gpuAcceleration:R,isFixed:b.options.strategy==="fixed"};b.modifiersData.popperOffsets!=null&&(b.styles.popper=Object.assign({},b.styles.popper,fr(Object.assign({},re,{offsets:b.modifiersData.popperOffsets,position:b.options.strategy,adaptive:H,roundOffsets:ae})))),b.modifiersData.arrow!=null&&(b.styles.arrow=Object.assign({},b.styles.arrow,fr(Object.assign({},re,{offsets:b.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:ae})))),b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-placement":b.placement})}var Ua={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:La,data:{}};function Zs(_){var b=_.state;Object.keys(b.elements).forEach(function(K){var U=b.styles[K]||{},R=b.attributes[K]||{},w=b.elements[K];!G(w)||!fe(w)||(Object.assign(w.style,U),Object.keys(R).forEach(function(H){var oe=R[H];oe===!1?w.removeAttribute(H):w.setAttribute(H,oe===!0?"":oe)}))})}function Na(_){var b=_.state,K={popper:{position:b.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(b.elements.popper.style,K.popper),b.styles=K,b.elements.arrow&&Object.assign(b.elements.arrow.style,K.arrow),function(){Object.keys(b.elements).forEach(function(U){var R=b.elements[U],w=b.attributes[U]||{},H=Object.keys(b.styles.hasOwnProperty(U)?b.styles[U]:K[U]),oe=H.reduce(function(ae,re){return ae[re]="",ae},{});!G(R)||!fe(R)||(Object.assign(R.style,oe),Object.keys(w).forEach(function(ae){R.removeAttribute(ae)}))})}}var Wa={name:"applyStyles",enabled:!0,phase:"write",fn:Zs,effect:Na,requires:["computeStyles"]};function wa(_,b,K){var U=jt(_),R=[Oe,tn].indexOf(U)>=0?-1:1,w=typeof K=="function"?K(Object.assign({},b,{placement:_})):K,H=w[0],oe=w[1];return H=H||0,oe=(oe||0)*R,[Oe,Le].indexOf(U)>=0?{x:oe,y:H}:{x:H,y:oe}}function za(_){var b=_.state,K=_.options,U=_.name,R=K.offset,w=R===void 0?[0,0]:R,H=$e.reduce(function(ie,me){return ie[me]=wa(me,b.rects,w),ie},{}),oe=H[b.placement],ae=oe.x,re=oe.y;b.modifiersData.popperOffsets!=null&&(b.modifiersData.popperOffsets.x+=ae,b.modifiersData.popperOffsets.y+=re),b.modifiersData[U]=H}var Js={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:za},qs={left:"right",right:"left",bottom:"top",top:"bottom"};function Ln(_){return _.replace(/left|right|bottom|top/g,function(b){return qs[b]})}var el={start:"end",end:"start"};function ii(_){return _.replace(/start|end/g,function(b){return el[b]})}function $a(_,b){var K=k(_),U=ge(_),R=K.visualViewport,w=U.clientWidth,H=U.clientHeight,oe=0,ae=0;if(R){w=R.width,H=R.height;var re=J();(re||!re&&b==="fixed")&&(oe=R.offsetLeft,ae=R.offsetTop)}return{width:w,height:H,x:oe+Ie(_),y:ae}}function ai(_){var b,K=ge(_),U=te(_),R=(b=_.ownerDocument)==null?void 0:b.body,w=ee(K.scrollWidth,K.clientWidth,R?R.scrollWidth:0,R?R.clientWidth:0),H=ee(K.scrollHeight,K.clientHeight,R?R.scrollHeight:0,R?R.clientHeight:0),oe=-U.scrollLeft+Ie(_),ae=-U.scrollTop;return Ee(R||K).direction==="rtl"&&(oe+=ee(K.clientWidth,R?R.clientWidth:0)-w),{width:w,height:H,x:oe,y:ae}}function ka(_,b){var K=b.getRootNode&&b.getRootNode();if(_.contains(b))return!0;if(K&&Q(K)){var U=b;do{if(U&&_.isSameNode(U))return!0;U=U.parentNode||U.host}while(U)}return!1}function si(_){return Object.assign({},_,{left:_.x,top:_.y,right:_.x+_.width,bottom:_.y+_.height})}function li(_,b){var K=V(_,!1,b==="fixed");return K.top=K.top+_.clientTop,K.left=K.left+_.clientLeft,K.bottom=K.top+_.clientHeight,K.right=K.left+_.clientWidth,K.width=_.clientWidth,K.height=_.clientHeight,K.x=K.left,K.y=K.top,K}function St(_,b,K){return b===Un?si($a(_,K)):X(b)?li(b,K):si(ai(ge(_)))}function nl(_){var b=jn(Pe(_)),K=["absolute","fixed"].indexOf(Ee(_).position)>=0,U=K&&G(_)?fn(_):_;return X(U)?b.filter(function(R){return X(R)&&ka(R,U)&&fe(R)!=="body"}):[]}function bt(_,b,K,U){var R=b==="clippingParents"?nl(_):[].concat(b),w=[].concat(R,[K]),H=w[0],oe=w.reduce(function(ae,re){var ie=St(_,re,U);return ae.top=ee(ie.top,ae.top),ae.right=se(ie.right,ae.right),ae.bottom=se(ie.bottom,ae.bottom),ae.left=ee(ie.left,ae.left),ae},St(_,H,U));return oe.width=oe.right-oe.left,oe.height=oe.bottom-oe.top,oe.x=oe.left,oe.y=oe.top,oe}function Fa(){return{top:0,right:0,bottom:0,left:0}}function Va(_){return Object.assign({},Fa(),_)}function Ga(_,b){return b.reduce(function(K,U){return K[U]=_,K},{})}function hr(_,b){b===void 0&&(b={});var K=b,U=K.placement,R=U===void 0?_.placement:U,w=K.strategy,H=w===void 0?_.strategy:w,oe=K.boundary,ae=oe===void 0?Kn:oe,re=K.rootBoundary,ie=re===void 0?Un:re,me=K.elementContext,Ce=me===void 0?In:me,ve=K.altBoundary,Me=ve===void 0?!1:ve,be=K.padding,Be=be===void 0?0:be,Ke=Va(typeof Be!="number"?Be:Ga(Be,Qe)),ze=Ce===In?xn:In,en=_.rects.popper,_e=_.elements[Me?ze:Ce],We=bt(X(_e)?_e:_e.contextElement||ge(_.elements.popper),ae,ie,H),Ge=V(_.elements.reference),gn=Ir({reference:Ge,element:en,strategy:"absolute",placement:R}),an=si(Object.assign({},en,gn)),cn=Ce===In?an:Ge,Re={top:We.top-cn.top+Ke.top,bottom:cn.bottom-We.bottom+Ke.bottom,left:We.left-cn.left+Ke.left,right:cn.right-We.right+Ke.right},sn=_.modifiersData.offset;if(Ce===In&&sn){var ln=sn[R];Object.keys(Re).forEach(function(pn){var An=[Le,Se].indexOf(pn)>=0?1:-1,et=[tn,Se].indexOf(pn)>=0?"y":"x";Re[pn]+=ln[et]*An})}return Re}function ci(_,b){b===void 0&&(b={});var K=b,U=K.placement,R=K.boundary,w=K.rootBoundary,H=K.padding,oe=K.flipVariations,ae=K.allowedAutoPlacements,re=ae===void 0?$e:ae,ie=Et(U),me=ie?oe?rn:rn.filter(function(Me){return Et(Me)===ie}):Qe,Ce=me.filter(function(Me){return re.indexOf(Me)>=0});Ce.length===0&&(Ce=me);var ve=Ce.reduce(function(Me,be){return Me[be]=hr(_,{placement:be,boundary:R,rootBoundary:w,padding:H})[jt(be)],Me},{});return Object.keys(ve).sort(function(Me,be){return ve[Me]-ve[be]})}function jo(_){if(jt(_)===ke)return[];var b=Ln(_);return[ii(_),b,ii(b)]}function ui(_){var b=_.state,K=_.options,U=_.name;if(!b.modifiersData[U]._skip){for(var R=K.mainAxis,w=R===void 0?!0:R,H=K.altAxis,oe=H===void 0?!0:H,ae=K.fallbackPlacements,re=K.padding,ie=K.boundary,me=K.rootBoundary,Ce=K.altBoundary,ve=K.flipVariations,Me=ve===void 0?!0:ve,be=K.allowedAutoPlacements,Be=b.options.placement,Ke=jt(Be),ze=Ke===Be,en=ae||(ze||!Me?[Ln(Be)]:jo(Be)),_e=[Be].concat(en).reduce(function(Mr,mt){return Mr.concat(jt(mt)===ke?ci(b,{placement:mt,boundary:ie,rootBoundary:me,padding:re,flipVariations:Me,allowedAutoPlacements:be}):mt)},[]),We=b.rects.reference,Ge=b.rects.popper,gn=new Map,an=!0,cn=_e[0],Re=0;Re<_e.length;Re++){var sn=_e[Re],ln=jt(sn),pn=Et(sn)===we,An=[tn,Se].indexOf(ln)>=0,et=An?"width":"height",Bn=hr(b,{placement:sn,boundary:ie,rootBoundary:me,altBoundary:Ce,padding:re}),kn=An?pn?Le:Oe:pn?Se:tn;We[et]>Ge[et]&&(kn=Ln(kn));var Gt=Ln(kn),On=[];if(w&&On.push(Bn[ln]<=0),oe&&On.push(Bn[kn]<=0,Bn[Gt]<=0),On.every(function(Mr){return Mr})){cn=sn,an=!1;break}gn.set(sn,On)}if(an)for(var wn=Me?3:1,Gn=function(mt){var to=_e.find(function(ro){var Sn=gn.get(ro);if(Sn)return Sn.slice(0,mt).every(function(oo){return oo})});if(to)return cn=to,"break"},Xn=wn;Xn>0;Xn--){var Xt=Gn(Xn);if(Xt==="break")break}b.placement!==cn&&(b.modifiersData[U]._skip=!0,b.placement=cn,b.reset=!0)}}var tl={name:"flip",enabled:!0,phase:"main",fn:ui,requiresIfExists:["offset"],data:{_skip:!1}};function rl(_){return _==="x"?"y":"x"}function Dr(_,b,K){return ee(_,se(b,K))}function Xa(_,b,K){var U=Dr(_,b,K);return U>K?K:U}function ki(_){var b=_.state,K=_.options,U=_.name,R=K.mainAxis,w=R===void 0?!0:R,H=K.altAxis,oe=H===void 0?!1:H,ae=K.boundary,re=K.rootBoundary,ie=K.altBoundary,me=K.padding,Ce=K.tether,ve=Ce===void 0?!0:Ce,Me=K.tetherOffset,be=Me===void 0?0:Me,Be=hr(b,{boundary:ae,rootBoundary:re,padding:me,altBoundary:ie}),Ke=jt(b.placement),ze=Et(b.placement),en=!ze,_e=dr(Ke),We=rl(_e),Ge=b.modifiersData.popperOffsets,gn=b.rects.reference,an=b.rects.popper,cn=typeof be=="function"?be(Object.assign({},b.rects,{placement:b.placement})):be,Re=typeof cn=="number"?{mainAxis:cn,altAxis:cn}:Object.assign({mainAxis:0,altAxis:0},cn),sn=b.modifiersData.offset?b.modifiersData.offset[b.placement]:null,ln={x:0,y:0};if(Ge){if(w){var pn,An=_e==="y"?tn:Oe,et=_e==="y"?Se:Le,Bn=_e==="y"?"height":"width",kn=Ge[_e],Gt=kn+Be[An],On=kn-Be[et],wn=ve?-an[Bn]/2:0,Gn=ze===we?gn[Bn]:an[Bn],Xn=ze===we?-an[Bn]:-gn[Bn],Xt=b.elements.arrow,Mr=ve&&Xt?Xe(Xt):{width:0,height:0},mt=b.modifiersData["arrow#persistent"]?b.modifiersData["arrow#persistent"].padding:Fa(),to=mt[An],ro=mt[et],Sn=Dr(0,gn[Bn],Mr[Bn]),oo=en?gn[Bn]/2-wn-Sn-to-Re.mainAxis:Gn-Sn-to-Re.mainAxis,Da=en?-gn[Bn]/2+wn+Sn+ro+Re.mainAxis:Xn+Sn+ro+Re.mainAxis,Ho=b.elements.arrow&&fn(b.elements.arrow),Ti=Ho?_e==="y"?Ho.clientTop||0:Ho.clientLeft||0:0,Ai=(pn=sn==null?void 0:sn[_e])!=null?pn:0,Nr=kn+oo-Ai-Ti,Wn=kn+Da-Ai,zn=Dr(ve?se(Gt,Nr):Gt,kn,ve?ee(On,Wn):On);Ge[_e]=zn,ln[_e]=zn-kn}if(oe){var Fn,Ri=_e==="x"?tn:Oe,Yo=_e==="x"?Se:Le,Kt=Ge[We],Bi=We==="y"?"height":"width",Qn=Kt+Be[Ri],Ki=Kt-Be[Yo],Qo=[tn,Oe].indexOf(Ke)!==-1,Li=(Fn=sn==null?void 0:sn[We])!=null?Fn:0,Lt=Qo?Qn:Kt-gn[Bi]-an[Bi]-Li+Re.altAxis,vt=Qo?Kt+gn[Bi]+an[Bi]-Li-Re.altAxis:Ki,io=ve&&Qo?Xa(Lt,Kt,vt):Dr(ve?Lt:Qn,Kt,ve?vt:Ki);Ge[We]=io,ln[We]=io-Kt}b.modifiersData[U]=ln}}var Eo={name:"preventOverflow",enabled:!0,phase:"main",fn:ki,requiresIfExists:["offset"]},ol=function(b,K){return b=typeof b=="function"?b(Object.assign({},K.rects,{placement:K.placement})):b,Va(typeof b!="number"?b:Ga(b,Qe))};function Fi(_){var b,K=_.state,U=_.name,R=_.options,w=K.elements.arrow,H=K.modifiersData.popperOffsets,oe=jt(K.placement),ae=dr(oe),re=[Oe,Le].indexOf(oe)>=0,ie=re?"height":"width";if(!(!w||!H)){var me=ol(R.padding,K),Ce=Xe(w),ve=ae==="y"?tn:Oe,Me=ae==="y"?Se:Le,be=K.rects.reference[ie]+K.rects.reference[ae]-H[ae]-K.rects.popper[ie],Be=H[ae]-K.rects.reference[ae],Ke=fn(w),ze=Ke?ae==="y"?Ke.clientHeight||0:Ke.clientWidth||0:0,en=be/2-Be/2,_e=me[ve],We=ze-Ce[ie]-me[Me],Ge=ze/2-Ce[ie]/2+en,gn=Dr(_e,Ge,We),an=ae;K.modifiersData[U]=(b={},b[an]=gn,b.centerOffset=gn-Ge,b)}}function Dn(_){var b=_.state,K=_.options,U=K.element,R=U===void 0?"[data-popper-arrow]":U;R!=null&&(typeof R=="string"&&(R=b.elements.popper.querySelector(R),!R)||ka(b.elements.popper,R)&&(b.elements.arrow=R))}var Ha={name:"arrow",enabled:!0,phase:"main",fn:Fi,effect:Dn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Vi(_,b,K){return K===void 0&&(K={x:0,y:0}),{top:_.top-b.height-K.y,right:_.right-b.width+K.x,bottom:_.bottom-b.height+K.y,left:_.left-b.width-K.x}}function di(_){return[tn,Le,Se,Oe].some(function(b){return _[b]>=0})}function Ya(_){var b=_.state,K=_.name,U=b.rects.reference,R=b.rects.popper,w=b.modifiersData.preventOverflow,H=hr(b,{elementContext:"reference"}),oe=hr(b,{altBoundary:!0}),ae=Vi(H,U),re=Vi(oe,R,w),ie=di(ae),me=di(re);b.modifiersData[K]={referenceClippingOffsets:ae,popperEscapeOffsets:re,isReferenceHidden:ie,hasPopperEscaped:me},b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-reference-hidden":ie,"data-popper-escaped":me})}var Qa={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Ya},Za=[Pr,Z,Ua,Wa,Js,tl,Eo,Ha,Qa],fi=xo({defaultModifiers:Za}),zr=n(32394);function Tt(){return Tt=Object.assign||function(_){for(var b=1;b=0)&&(L[B]=P[B]);return L}var K=/-o$/,W=function(P){var b=P.name,L=P.size,U=P.spin,B=P.className,w=P.rotation,X=A(P,["name","size","spin","className","rotation"]),oe=X.style||{};L&&(oe.fontSize=L*100+"%"),w&&(oe.transform="rotate("+w+"deg)"),X.style=oe;var ie=(0,O.Fl)(X),re="";if(b.startsWith("tg-"))re=b;else{var ae=K.test(b),me=b.replace(K,""),Ce=!me.startsWith("fa-");re=ae?"far ":"fas ",Ce&&(re+="fa-"),re+=me,U&&(re+=" fa-spin")}return(0,e.jsx)("i",T({className:(0,j.Ly)(["Icon",re,B,(0,O.WP)(X)])},ie))},$=function(P){var b=P.className,L=P.children,U=A(P,["className","children"]);return(0,e.jsx)("span",T({className:(0,j.Ly)(["IconStack",b,(0,O.WP)(U)])},(0,O.Fl)(U),{children:L}))};W.Stack=$;function k(P){if(P==null)return window;if(P.toString()!=="[object Window]"){var b=P.ownerDocument;return b&&b.defaultView||window}return P}function z(P,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](P):P instanceof b}function H(P){var b=k(P).Element;return z(P,b)||z(P,Element)}function G(P){var b=k(P).HTMLElement;return z(P,b)||z(P,HTMLElement)}function Y(P){if(typeof ShadowRoot=="undefined")return!1;var b=k(P).ShadowRoot;return z(P,b)||z(P,ShadowRoot)}var ee=Math.max,le=Math.min,ne=Math.round;function Q(){var P=navigator.userAgentData;return P!=null&&P.brands&&Array.isArray(P.brands)?P.brands.map(function(b){return b.brand+"/"+b.version}).join(" "):navigator.userAgent}function Z(){return!/^((?!chrome|android).)*safari/i.test(Q())}function V(P,b,L){b===void 0&&(b=!1),L===void 0&&(L=!1);var U=P.getBoundingClientRect(),B=1,w=1;b&&G(P)&&(B=P.offsetWidth>0&&ne(U.width)/P.offsetWidth||1,w=P.offsetHeight>0&&ne(U.height)/P.offsetHeight||1);var X=H(P)?k(P):window,oe=X.visualViewport,ie=!Z()&&L,re=(U.left+(ie&&oe?oe.offsetLeft:0))/B,ae=(U.top+(ie&&oe?oe.offsetTop:0))/w,me=U.width/B,Ce=U.height/w;return{width:me,height:Ce,top:ae,right:re+me,bottom:ae+Ce,left:re,x:re,y:ae}}function q(P){var b=k(P),L=b.pageXOffset,U=b.pageYOffset;return{scrollLeft:L,scrollTop:U}}function ce(P){return{scrollLeft:P.scrollLeft,scrollTop:P.scrollTop}}function se(P){return P===k(P)||!G(P)?q(P):ce(P)}function fe(P){return P?(P.nodeName||"").toLowerCase():null}function ge(P){return((H(P)?P.ownerDocument:P.document)||window.document).documentElement}function Ie(P){return V(ge(P)).left+q(P).scrollLeft}function je(P){return k(P).getComputedStyle(P)}function Ee(P){var b=je(P),L=b.overflow,U=b.overflowX,B=b.overflowY;return/auto|scroll|overlay|hidden/.test(L+B+U)}function Ne(P){var b=P.getBoundingClientRect(),L=ne(b.width)/P.offsetWidth||1,U=ne(b.height)/P.offsetHeight||1;return L!==1||U!==1}function on(P,b,L){L===void 0&&(L=!1);var U=G(b),B=G(b)&&Ne(b),w=ge(b),X=V(P,B,L),oe={scrollLeft:0,scrollTop:0},ie={x:0,y:0};return(U||!U&&!L)&&((fe(b)!=="body"||Ee(w))&&(oe=se(b)),G(b)?(ie=V(b,!0),ie.x+=b.clientLeft,ie.y+=b.clientTop):w&&(ie.x=Ie(w))),{x:X.left+oe.scrollLeft-ie.x,y:X.top+oe.scrollTop-ie.y,width:X.width,height:X.height}}function He(P){var b=V(P),L=P.offsetWidth,U=P.offsetHeight;return Math.abs(b.width-L)<=1&&(L=b.width),Math.abs(b.height-U)<=1&&(U=b.height),{x:P.offsetLeft,y:P.offsetTop,width:L,height:U}}function Pe(P){return fe(P)==="html"?P:P.assignedSlot||P.parentNode||(Y(P)?P.host:null)||ge(P)}function qe(P){return["html","body","#document"].indexOf(fe(P))>=0?P.ownerDocument.body:G(P)&&Ee(P)?P:qe(Pe(P))}function En(P,b){var L;b===void 0&&(b=[]);var U=qe(P),B=U===((L=P.ownerDocument)==null?void 0:L.body),w=k(U),X=B?[w].concat(w.visualViewport||[],Ee(U)?U:[]):U,oe=b.concat(X);return B?oe:oe.concat(En(Pe(X)))}function jn(P){return["table","td","th"].indexOf(fe(P))>=0}function hn(P){return!G(P)||je(P).position==="fixed"?null:P.offsetParent}function Cn(P){var b=/firefox/i.test(Q()),L=/Trident/i.test(Q());if(L&&G(P)){var U=je(P);if(U.position==="fixed")return null}var B=Pe(P);for(Y(B)&&(B=B.host);G(B)&&["html","body"].indexOf(fe(B))<0;){var w=je(B);if(w.transform!=="none"||w.perspective!=="none"||w.contain==="paint"||["transform","perspective"].indexOf(w.willChange)!==-1||b&&w.willChange==="filter"||b&&w.filter&&w.filter!=="none")return B;B=B.parentNode}return null}function fn(P){for(var b=k(P),L=hn(P);L&&jn(L)&&je(L).position==="static";)L=hn(L);return L&&(fe(L)==="html"||fe(L)==="body"&&je(L).position==="static")?b:L||Cn(P)||b}var tn="top",Se="bottom",Le="right",Oe="left",ke="auto",Qe=[tn,Se,Le,Oe],we="start",Xe="end",Kn="clippingParents",Un="viewport",In="popper",xn="reference",rn=Qe.reduce(function(P,b){return P.concat([b+"-"+we,b+"-"+Xe])},[]),$e=[].concat(Qe,[ke]).reduce(function(P,b){return P.concat([b,b+"-"+we,b+"-"+Xe])},[]),Fe="beforeRead",mn="read",_n="afterRead",Dt="beforeMain",rt="main",pt="afterMain",Jn="beforeWrite",dt="write",Nt="afterWrite",Qt=[Fe,mn,_n,Dt,rt,pt,Jn,dt,Nt];function ur(P){var b=new Map,L=new Set,U=[];P.forEach(function(w){b.set(w.name,w)});function B(w){L.add(w.name);var X=[].concat(w.requires||[],w.requiresIfExists||[]);X.forEach(function(oe){if(!L.has(oe)){var ie=b.get(oe);ie&&B(ie)}}),U.push(w)}return P.forEach(function(w){L.has(w.name)||B(w)}),U}function ta(P){var b=ur(P);return Qt.reduce(function(L,U){return L.concat(b.filter(function(B){return B.phase===U}))},[])}function ra(P){var b;return function(){return b||(b=new Promise(function(L){Promise.resolve().then(function(){b=void 0,L(P())})})),b}}function oa(P){var b=P.reduce(function(L,U){var B=L[U.name];return L[U.name]=B?Object.assign({},B,U,{options:Object.assign({},B.options,U.options),data:Object.assign({},B.data,U.data)}):U,L},{});return Object.keys(b).map(function(L){return b[L]})}var mo={placement:"bottom",modifiers:[],strategy:"absolute"};function vo(){for(var P=arguments.length,b=new Array(P),L=0;L=0?"x":"y"}function Ir(P){var b=P.reference,L=P.element,U=P.placement,B=U?Et(U):null,w=U?jt(U):null,X=b.x+b.width/2-L.width/2,oe=b.y+b.height/2-L.height/2,ie;switch(B){case tn:ie={x:X,y:b.y-L.height};break;case Se:ie={x:X,y:b.y+b.height};break;case Le:ie={x:b.x+b.width,y:oe};break;case Oe:ie={x:b.x-L.width,y:oe};break;default:ie={x:b.x,y:b.y}}var re=B?dr(B):null;if(re!=null){var ae=re==="y"?"height":"width";switch(w){case we:ie[re]=ie[re]-(b[ae]/2-L[ae]/2);break;case Xe:ie[re]=ie[re]+(b[ae]/2-L[ae]/2);break;default:}}return ie}function po(P){var b=P.state,L=P.name;b.modifiersData[L]=Ir({reference:b.rects.reference,element:b.rects.popper,strategy:"absolute",placement:b.placement})}var J={name:"popperOffsets",enabled:!0,phase:"read",fn:po,data:{}},Te={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Qs(P,b){var L=P.x,U=P.y,B=b.devicePixelRatio||1;return{x:ne(L*B)/B||0,y:ne(U*B)/B||0}}function fr(P){var b,L=P.popper,U=P.popperRect,B=P.placement,w=P.variation,X=P.offsets,oe=P.position,ie=P.gpuAcceleration,re=P.adaptive,ae=P.roundOffsets,me=P.isFixed,Ce=X.x,ve=Ce===void 0?0:Ce,Me=X.y,be=Me===void 0?0:Me,Be=typeof ae=="function"?ae({x:ve,y:be}):{x:ve,y:be};ve=Be.x,be=Be.y;var Ke=X.hasOwnProperty("x"),ze=X.hasOwnProperty("y"),en=Oe,_e=tn,We=window;if(re){var Ge=fn(L),gn="clientHeight",an="clientWidth";if(Ge===k(L)&&(Ge=ge(L),je(Ge).position!=="static"&&oe==="absolute"&&(gn="scrollHeight",an="scrollWidth")),Ge=Ge,B===tn||(B===Oe||B===Le)&&w===Xe){_e=Se;var cn=me&&Ge===We&&We.visualViewport?We.visualViewport.height:Ge[gn];be-=cn-U.height,be*=ie?1:-1}if(B===Oe||(B===tn||B===Se)&&w===Xe){en=Le;var Re=me&&Ge===We&&We.visualViewport?We.visualViewport.width:Ge[an];ve-=Re-U.width,ve*=ie?1:-1}}var sn=Object.assign({position:oe},re&&Te),ln=ae===!0?Qs({x:ve,y:be},k(L)):{x:ve,y:be};if(ve=ln.x,be=ln.y,ie){var pn;return Object.assign({},sn,(pn={},pn[_e]=ze?"0":"",pn[en]=Ke?"0":"",pn.transform=(We.devicePixelRatio||1)<=1?"translate("+ve+"px, "+be+"px)":"translate3d("+ve+"px, "+be+"px, 0)",pn))}return Object.assign({},sn,(b={},b[_e]=ze?be+"px":"",b[en]=Ke?ve+"px":"",b.transform="",b))}function Li(P){var b=P.state,L=P.options,U=L.gpuAcceleration,B=U===void 0?!0:U,w=L.adaptive,X=w===void 0?!0:w,oe=L.roundOffsets,ie=oe===void 0?!0:oe,re={placement:Et(b.placement),variation:jt(b.placement),popper:b.elements.popper,popperRect:b.rects.popper,gpuAcceleration:B,isFixed:b.options.strategy==="fixed"};b.modifiersData.popperOffsets!=null&&(b.styles.popper=Object.assign({},b.styles.popper,fr(Object.assign({},re,{offsets:b.modifiersData.popperOffsets,position:b.options.strategy,adaptive:X,roundOffsets:ie})))),b.modifiersData.arrow!=null&&(b.styles.arrow=Object.assign({},b.styles.arrow,fr(Object.assign({},re,{offsets:b.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:ie})))),b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-placement":b.placement})}var Ui={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Li,data:{}};function Zs(P){var b=P.state;Object.keys(b.elements).forEach(function(L){var U=b.styles[L]||{},B=b.attributes[L]||{},w=b.elements[L];!G(w)||!fe(w)||(Object.assign(w.style,U),Object.keys(B).forEach(function(X){var oe=B[X];oe===!1?w.removeAttribute(X):w.setAttribute(X,oe===!0?"":oe)}))})}function Ni(P){var b=P.state,L={popper:{position:b.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(b.elements.popper.style,L.popper),b.styles=L,b.elements.arrow&&Object.assign(b.elements.arrow.style,L.arrow),function(){Object.keys(b.elements).forEach(function(U){var B=b.elements[U],w=b.attributes[U]||{},X=Object.keys(b.styles.hasOwnProperty(U)?b.styles[U]:L[U]),oe=X.reduce(function(ie,re){return ie[re]="",ie},{});!G(B)||!fe(B)||(Object.assign(B.style,oe),Object.keys(w).forEach(function(ie){B.removeAttribute(ie)}))})}}var Wi={name:"applyStyles",enabled:!0,phase:"write",fn:Zs,effect:Ni,requires:["computeStyles"]};function wi(P,b,L){var U=Et(P),B=[Oe,tn].indexOf(U)>=0?-1:1,w=typeof L=="function"?L(Object.assign({},b,{placement:P})):L,X=w[0],oe=w[1];return X=X||0,oe=(oe||0)*B,[Oe,Le].indexOf(U)>=0?{x:oe,y:X}:{x:X,y:oe}}function zi(P){var b=P.state,L=P.options,U=P.name,B=L.offset,w=B===void 0?[0,0]:B,X=$e.reduce(function(ae,me){return ae[me]=wi(me,b.rects,w),ae},{}),oe=X[b.placement],ie=oe.x,re=oe.y;b.modifiersData.popperOffsets!=null&&(b.modifiersData.popperOffsets.x+=ie,b.modifiersData.popperOffsets.y+=re),b.modifiersData[U]=X}var Js={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:zi},qs={left:"right",right:"left",bottom:"top",top:"bottom"};function Ln(P){return P.replace(/left|right|bottom|top/g,function(b){return qs[b]})}var el={start:"end",end:"start"};function aa(P){return P.replace(/start|end/g,function(b){return el[b]})}function $i(P,b){var L=k(P),U=ge(P),B=L.visualViewport,w=U.clientWidth,X=U.clientHeight,oe=0,ie=0;if(B){w=B.width,X=B.height;var re=Z();(re||!re&&b==="fixed")&&(oe=B.offsetLeft,ie=B.offsetTop)}return{width:w,height:X,x:oe+Ie(P),y:ie}}function ia(P){var b,L=ge(P),U=q(P),B=(b=P.ownerDocument)==null?void 0:b.body,w=ee(L.scrollWidth,L.clientWidth,B?B.scrollWidth:0,B?B.clientWidth:0),X=ee(L.scrollHeight,L.clientHeight,B?B.scrollHeight:0,B?B.clientHeight:0),oe=-U.scrollLeft+Ie(P),ie=-U.scrollTop;return je(B||L).direction==="rtl"&&(oe+=ee(L.clientWidth,B?B.clientWidth:0)-w),{width:w,height:X,x:oe,y:ie}}function ki(P,b){var L=b.getRootNode&&b.getRootNode();if(P.contains(b))return!0;if(L&&Y(L)){var U=b;do{if(U&&P.isSameNode(U))return!0;U=U.parentNode||U.host}while(U)}return!1}function sa(P){return Object.assign({},P,{left:P.x,top:P.y,right:P.x+P.width,bottom:P.y+P.height})}function la(P,b){var L=V(P,!1,b==="fixed");return L.top=L.top+P.clientTop,L.left=L.left+P.clientLeft,L.bottom=L.top+P.clientHeight,L.right=L.left+P.clientWidth,L.width=P.clientWidth,L.height=P.clientHeight,L.x=L.left,L.y=L.top,L}function St(P,b,L){return b===Un?sa($i(P,L)):H(b)?la(b,L):sa(ia(ge(P)))}function nl(P){var b=En(Pe(P)),L=["absolute","fixed"].indexOf(je(P).position)>=0,U=L&&G(P)?fn(P):P;return H(U)?b.filter(function(B){return H(B)&&ki(B,U)&&fe(B)!=="body"}):[]}function bt(P,b,L,U){var B=b==="clippingParents"?nl(P):[].concat(b),w=[].concat(B,[L]),X=w[0],oe=w.reduce(function(ie,re){var ae=St(P,re,U);return ie.top=ee(ae.top,ie.top),ie.right=le(ae.right,ie.right),ie.bottom=le(ae.bottom,ie.bottom),ie.left=ee(ae.left,ie.left),ie},St(P,X,U));return oe.width=oe.right-oe.left,oe.height=oe.bottom-oe.top,oe.x=oe.left,oe.y=oe.top,oe}function Fi(){return{top:0,right:0,bottom:0,left:0}}function Vi(P){return Object.assign({},Fi(),P)}function Gi(P,b){return b.reduce(function(L,U){return L[U]=P,L},{})}function hr(P,b){b===void 0&&(b={});var L=b,U=L.placement,B=U===void 0?P.placement:U,w=L.strategy,X=w===void 0?P.strategy:w,oe=L.boundary,ie=oe===void 0?Kn:oe,re=L.rootBoundary,ae=re===void 0?Un:re,me=L.elementContext,Ce=me===void 0?In:me,ve=L.altBoundary,Me=ve===void 0?!1:ve,be=L.padding,Be=be===void 0?0:be,Ke=Vi(typeof Be!="number"?Be:Gi(Be,Qe)),ze=Ce===In?xn:In,en=P.rects.popper,_e=P.elements[Me?ze:Ce],We=bt(H(_e)?_e:_e.contextElement||ge(P.elements.popper),ie,ae,X),Ge=V(P.elements.reference),gn=Ir({reference:Ge,element:en,strategy:"absolute",placement:B}),an=sa(Object.assign({},en,gn)),cn=Ce===In?an:Ge,Re={top:We.top-cn.top+Ke.top,bottom:cn.bottom-We.bottom+Ke.bottom,left:We.left-cn.left+Ke.left,right:cn.right-We.right+Ke.right},sn=P.modifiersData.offset;if(Ce===In&&sn){var ln=sn[B];Object.keys(Re).forEach(function(pn){var Tn=[Le,Se].indexOf(pn)>=0?1:-1,et=[tn,Se].indexOf(pn)>=0?"y":"x";Re[pn]+=ln[et]*Tn})}return Re}function ca(P,b){b===void 0&&(b={});var L=b,U=L.placement,B=L.boundary,w=L.rootBoundary,X=L.padding,oe=L.flipVariations,ie=L.allowedAutoPlacements,re=ie===void 0?$e:ie,ae=jt(U),me=ae?oe?rn:rn.filter(function(Me){return jt(Me)===ae}):Qe,Ce=me.filter(function(Me){return re.indexOf(Me)>=0});Ce.length===0&&(Ce=me);var ve=Ce.reduce(function(Me,be){return Me[be]=hr(P,{placement:be,boundary:B,rootBoundary:w,padding:X})[Et(be)],Me},{});return Object.keys(ve).sort(function(Me,be){return ve[Me]-ve[be]})}function Eo(P){if(Et(P)===ke)return[];var b=Ln(P);return[aa(P),b,aa(b)]}function ua(P){var b=P.state,L=P.options,U=P.name;if(!b.modifiersData[U]._skip){for(var B=L.mainAxis,w=B===void 0?!0:B,X=L.altAxis,oe=X===void 0?!0:X,ie=L.fallbackPlacements,re=L.padding,ae=L.boundary,me=L.rootBoundary,Ce=L.altBoundary,ve=L.flipVariations,Me=ve===void 0?!0:ve,be=L.allowedAutoPlacements,Be=b.options.placement,Ke=Et(Be),ze=Ke===Be,en=ie||(ze||!Me?[Ln(Be)]:Eo(Be)),_e=[Be].concat(en).reduce(function(Mr,mt){return Mr.concat(Et(mt)===ke?ca(b,{placement:mt,boundary:ae,rootBoundary:me,padding:re,flipVariations:Me,allowedAutoPlacements:be}):mt)},[]),We=b.rects.reference,Ge=b.rects.popper,gn=new Map,an=!0,cn=_e[0],Re=0;Re<_e.length;Re++){var sn=_e[Re],ln=Et(sn),pn=jt(sn)===we,Tn=[tn,Se].indexOf(ln)>=0,et=Tn?"width":"height",Bn=hr(b,{placement:sn,boundary:ae,rootBoundary:me,altBoundary:Ce,padding:re}),kn=Tn?pn?Le:Oe:pn?Se:tn;We[et]>Ge[et]&&(kn=Ln(kn));var Gt=Ln(kn),yn=[];if(w&&yn.push(Bn[ln]<=0),oe&&yn.push(Bn[kn]<=0,Bn[Gt]<=0),yn.every(function(Mr){return Mr})){cn=sn,an=!1;break}gn.set(sn,yn)}if(an)for(var wn=Me?3:1,Gn=function(mt){var to=_e.find(function(ro){var Sn=gn.get(ro);if(Sn)return Sn.slice(0,mt).every(function(oo){return oo})});if(to)return cn=to,"break"},Hn=wn;Hn>0;Hn--){var Ht=Gn(Hn);if(Ht==="break")break}b.placement!==cn&&(b.modifiersData[U]._skip=!0,b.placement=cn,b.reset=!0)}}var tl={name:"flip",enabled:!0,phase:"main",fn:ua,requiresIfExists:["offset"],data:{_skip:!1}};function rl(P){return P==="x"?"y":"x"}function Dr(P,b,L){return ee(P,le(b,L))}function Hi(P,b,L){var U=Dr(P,b,L);return U>L?L:U}function ka(P){var b=P.state,L=P.options,U=P.name,B=L.mainAxis,w=B===void 0?!0:B,X=L.altAxis,oe=X===void 0?!1:X,ie=L.boundary,re=L.rootBoundary,ae=L.altBoundary,me=L.padding,Ce=L.tether,ve=Ce===void 0?!0:Ce,Me=L.tetherOffset,be=Me===void 0?0:Me,Be=hr(b,{boundary:ie,rootBoundary:re,padding:me,altBoundary:ae}),Ke=Et(b.placement),ze=jt(b.placement),en=!ze,_e=dr(Ke),We=rl(_e),Ge=b.modifiersData.popperOffsets,gn=b.rects.reference,an=b.rects.popper,cn=typeof be=="function"?be(Object.assign({},b.rects,{placement:b.placement})):be,Re=typeof cn=="number"?{mainAxis:cn,altAxis:cn}:Object.assign({mainAxis:0,altAxis:0},cn),sn=b.modifiersData.offset?b.modifiersData.offset[b.placement]:null,ln={x:0,y:0};if(Ge){if(w){var pn,Tn=_e==="y"?tn:Oe,et=_e==="y"?Se:Le,Bn=_e==="y"?"height":"width",kn=Ge[_e],Gt=kn+Be[Tn],yn=kn-Be[et],wn=ve?-an[Bn]/2:0,Gn=ze===we?gn[Bn]:an[Bn],Hn=ze===we?-an[Bn]:-gn[Bn],Ht=b.elements.arrow,Mr=ve&&Ht?He(Ht):{width:0,height:0},mt=b.modifiersData["arrow#persistent"]?b.modifiersData["arrow#persistent"].padding:Fi(),to=mt[Tn],ro=mt[et],Sn=Dr(0,gn[Bn],Mr[Bn]),oo=en?gn[Bn]/2-wn-Sn-to-Re.mainAxis:Gn-Sn-to-Re.mainAxis,Di=en?-gn[Bn]/2+wn+Sn+ro+Re.mainAxis:Hn+Sn+ro+Re.mainAxis,Xo=b.elements.arrow&&fn(b.elements.arrow),Aa=Xo?_e==="y"?Xo.clientTop||0:Xo.clientLeft||0:0,Ta=(pn=sn==null?void 0:sn[_e])!=null?pn:0,Nr=kn+oo-Ta-Aa,Wn=kn+Di-Ta,zn=Dr(ve?le(Gt,Nr):Gt,kn,ve?ee(yn,Wn):yn);Ge[_e]=zn,ln[_e]=zn-kn}if(oe){var Fn,Ra=_e==="x"?tn:Oe,Yo=_e==="x"?Se:Le,Kt=Ge[We],Ba=We==="y"?"height":"width",Qn=Kt+Be[Ra],Ka=Kt-Be[Yo],Qo=[tn,Oe].indexOf(Ke)!==-1,La=(Fn=sn==null?void 0:sn[We])!=null?Fn:0,Lt=Qo?Qn:Kt-gn[Ba]-an[Ba]-La+Re.altAxis,vt=Qo?Kt+gn[Ba]+an[Ba]-La-Re.altAxis:Ka,ao=ve&&Qo?Hi(Lt,Kt,vt):Dr(ve?Lt:Qn,Kt,ve?vt:Ka);Ge[We]=ao,ln[We]=ao-Kt}b.modifiersData[U]=ln}}var jo={name:"preventOverflow",enabled:!0,phase:"main",fn:ka,requiresIfExists:["offset"]},ol=function(b,L){return b=typeof b=="function"?b(Object.assign({},L.rects,{placement:L.placement})):b,Vi(typeof b!="number"?b:Gi(b,Qe))};function Fa(P){var b,L=P.state,U=P.name,B=P.options,w=L.elements.arrow,X=L.modifiersData.popperOffsets,oe=Et(L.placement),ie=dr(oe),re=[Oe,Le].indexOf(oe)>=0,ae=re?"height":"width";if(!(!w||!X)){var me=ol(B.padding,L),Ce=He(w),ve=ie==="y"?tn:Oe,Me=ie==="y"?Se:Le,be=L.rects.reference[ae]+L.rects.reference[ie]-X[ie]-L.rects.popper[ae],Be=X[ie]-L.rects.reference[ie],Ke=fn(w),ze=Ke?ie==="y"?Ke.clientHeight||0:Ke.clientWidth||0:0,en=be/2-Be/2,_e=me[ve],We=ze-Ce[ae]-me[Me],Ge=ze/2-Ce[ae]/2+en,gn=Dr(_e,Ge,We),an=ie;L.modifiersData[U]=(b={},b[an]=gn,b.centerOffset=gn-Ge,b)}}function Dn(P){var b=P.state,L=P.options,U=L.element,B=U===void 0?"[data-popper-arrow]":U;B!=null&&(typeof B=="string"&&(B=b.elements.popper.querySelector(B),!B)||ki(b.elements.popper,B)&&(b.elements.arrow=B))}var Xi={name:"arrow",enabled:!0,phase:"main",fn:Fa,effect:Dn,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Va(P,b,L){return L===void 0&&(L={x:0,y:0}),{top:P.top-b.height-L.y,right:P.right-b.width+L.x,bottom:P.bottom-b.height+L.y,left:P.left-b.width-L.x}}function da(P){return[tn,Le,Se,Oe].some(function(b){return P[b]>=0})}function Yi(P){var b=P.state,L=P.name,U=b.rects.reference,B=b.rects.popper,w=b.modifiersData.preventOverflow,X=hr(b,{elementContext:"reference"}),oe=hr(b,{altBoundary:!0}),ie=Va(X,U),re=Va(oe,B,w),ae=da(ie),me=da(re);b.modifiersData[L]={referenceClippingOffsets:ie,popperEscapeOffsets:re,isReferenceHidden:ae,hasPopperEscaped:me},b.attributes.popper=Object.assign({},b.attributes.popper,{"data-popper-reference-hidden":ae,"data-popper-escaped":me})}var Qi={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Yi},Zi=[Pr,J,Ui,Wi,Js,tl,jo,Xi,Qi],fa=xo({defaultModifiers:Zi}),zr=n(32394);function At(){return At=Object.assign||function(P){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Xi(_,b){var K,U,R,w,H={label:0,sent:function(){if(R[0]&1)throw R[1];return R[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ie){return ae([re,ie])}}function ae(re){if(K)throw new TypeError("Generator is already executing.");for(;H;)try{if(K=1,U&&(R=re[0]&2?U.return:re[0]?U.throw||((R=U.return)&&R.call(U),0):U.next)&&!(R=R.call(U,re[1])).done)return R;switch(U=0,R&&(re=[re[0]&2,R.value]),re[0]){case 0:case 1:R=re;break;case 4:return H.label++,{value:re[1],done:!1};case 5:H.label++,U=re[1],re=[0];continue;case 7:re=H.ops.pop(),H.trys.pop();continue;default:if(R=H.trys,!(R=R.length>0&&R[R.length-1])&&(re[0]===6||re[0]===2)){H=0;continue}if(re[0]===3&&(!R||re[1]>R[0]&&re[1]=0)&&(L[B]=P[B]);return L}function Ha(P,b){var L,U,B,w,X={label:0,sent:function(){if(B[0]&1)throw B[1];return B[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ae){return ie([re,ae])}}function ie(re){if(L)throw new TypeError("Generator is already executing.");for(;X;)try{if(L=1,U&&(B=re[0]&2?U.return:re[0]?U.throw||((B=U.return)&&B.call(U),0):U.next)&&!(B=B.call(U,re[1])).done)return B;switch(U=0,B&&(re=[re[0]&2,B.value]),re[0]){case 0:case 1:B=re;break;case 4:return X.label++,{value:re[1],done:!1};case 5:X.label++,U=re[1],re=[0];continue;case 7:re=X.ops.pop(),X.trys.pop();continue;default:if(B=X.trys,!(B=B.length>0&&B[B.length-1])&&(re[0]===6||re[0]===2)){X=0;continue}if(re[0]===3&&(!B||re[1]>B[0]&&re[1]=0)&&(K[R]=_[R]);return K}function kr(_,b){return kr=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},kr(_,b)}var br=(0,vr.h)("ByondUi"),xr=[],gr=function(_){var b=xr.length;xr.push(null);var K=_||"byondui_"+b;return br.log("allocated '"+K+"'"),{render:function(U){br.log("rendering '"+K+"'"),xr[b]=K,Byond.winset(K,U)},unmount:function(){br.log("unmounting '"+K+"'"),xr[b]=null,Byond.winset(K,{parent:""})}}};window.addEventListener("beforeunload",function(){for(var _=0;_=0)&&(L[B]=P[B]);return L}function kr(P,b){return kr=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},kr(P,b)}var br=(0,vr.h)("ByondUi"),xr=[],gr=function(P){var b=xr.length;xr.push(null);var L=P||"byondui_"+b;return br.log("allocated '"+L+"'"),{render:function(U){br.log("rendering '"+L+"'"),xr[b]=L,Byond.winset(L,U)},unmount:function(){br.log("unmounting '"+L+"'"),xr[b]=null,Byond.winset(L,{parent:""})}}};window.addEventListener("beforeunload",function(){for(var P=0;P=0)&&(K[R]=_[R]);return K}function Er(_,b){return Er=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},Er(_,b)}var Yi=function(_,b,K,U){var R,w;if(_.length===0)return[];var H=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(_)),function(re){return(R=Math).min.apply(R,[].concat(re))}),oe=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(_)),function(re){return(w=Math).max.apply(w,[].concat(re))});K!==void 0&&(H[0]=K[0],oe[0]=K[1]),U!==void 0&&(H[1]=U[0],oe[1]=U[1]);var ae=(0,pr.Tj)(_,function(re){return(0,pr.Tj)((0,pr.yU)(re,H,oe,b),function(ie){var me=ie[0],Ce=ie[1],ve=ie[2],Me=ie[3];return(me-Ce)/(ve-Ce)*Me})});return ae},Po=function(_){for(var b="",K=0;K<_.length;K++){var U=_[K];b+=U[0]+","+U[1]+" "}return b},sl=function(_){"use strict";es(b,_);function b(U){var R;return R=_.call(this,U)||this,R.handleResize=function(){var w=R.ref.current;w&&R.setState({viewBox:[w.offsetWidth,w.offsetHeight]})},R.ref=(0,t.createRef)(),R.state={viewBox:[600,200]},R.handleResize=R.handleResize.bind(vi(R)),R}var K=b.prototype;return K.componentDidMount=function(){window.addEventListener("resize",this.handleResize),this.handleResize()},K.componentWillUnmount=function(){window.removeEventListener("resize",this.handleResize)},K.render=function(){var R=this.props,w=R.data,H=w===void 0?[]:w,oe=R.rangeX,ae=R.rangeY,re=R.fillColor,ie=re===void 0?"none":re,me=R.strokeColor,Ce=me===void 0?"#ffffff":me,ve=R.strokeWidth,Me=ve===void 0?2:ve,be=ft(R,["data","rangeX","rangeY","fillColor","strokeColor","strokeWidth"]),Be=this.state.viewBox,Ke=Yi(H,Be,oe,ae);if(Ke.length>0){var ze=Ke[0],en=Ke[Ke.length-1];Ke.push([Be[0]+Me,en[1]]),Ke.push([Be[0]+Me,-Me]),Ke.push([-Me,-Me]),Ke.push([-Me,ze[1]])}var _e=Po(Ke),We=jr({},be,{className:"",ref:this.ref});return(0,e.jsx)(y.az,jr({position:"relative"},be,{children:(0,e.jsx)(y.az,jr({},We,{children:(0,e.jsx)("svg",{viewBox:"0 0 "+Be[0]+" "+Be[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},children:(0,e.jsx)("polyline",{transform:"scale(1, -1) translate(0, -"+Be[1]+")",fill:ie,stroke:Ce,strokeWidth:Me,points:_e})})}))}))},b}(t.Component),Qi={Line:sl};/** + */function va(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function Er(){return Er=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function jr(P,b){return jr=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},jr(P,b)}var Ya=function(P,b,L,U){var B,w;if(P.length===0)return[];var X=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(P)),function(re){return(B=Math).min.apply(B,[].concat(re))}),oe=(0,pr.Tj)(pr.yU.apply(void 0,[].concat(P)),function(re){return(w=Math).max.apply(w,[].concat(re))});L!==void 0&&(X[0]=L[0],oe[0]=L[1]),U!==void 0&&(X[1]=U[0],oe[1]=U[1]);var ie=(0,pr.Tj)(P,function(re){return(0,pr.Tj)((0,pr.yU)(re,X,oe,b),function(ae){var me=ae[0],Ce=ae[1],ve=ae[2],Me=ae[3];return(me-Ce)/(ve-Ce)*Me})});return ie},Po=function(P){for(var b="",L=0;L0){var ze=Ke[0],en=Ke[Ke.length-1];Ke.push([Be[0]+Me,en[1]]),Ke.push([Be[0]+Me,-Me]),Ke.push([-Me,-Me]),Ke.push([-Me,ze[1]])}var _e=Po(Ke),We=Er({},be,{className:"",ref:this.ref});return(0,e.jsx)(O.az,Er({position:"relative"},be,{children:(0,e.jsx)(O.az,Er({},We,{children:(0,e.jsx)("svg",{viewBox:"0 0 "+Be[0]+" "+Be[1],preserveAspectRatio:"none",style:{position:"absolute",top:0,left:0,right:0,bottom:0,overflow:"hidden"},children:(0,e.jsx)("polyline",{transform:"scale(1, -1) translate(0, -"+Be[1]+")",fill:ae,stroke:Ce,strokeWidth:Me,points:_e})})}))}))},b}(t.Component),Qa={Line:sl};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Io(){return Io=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function xi(_){var b=_.children,K=_.color,U=_.title,R=_.buttons,w=_.icon,H=_.child_mt,oe=H===void 0?1:H,ae=Do(_,["children","color","title","buttons","icon","child_mt"]),re=(0,t.useState)(_.open),ie=re[0],me=re[1];return(0,e.jsxs)(y.az,{mb:1,children:[(0,e.jsxs)("div",{className:"Table",children:[(0,e.jsx)("div",{className:"Table__cell",children:(0,e.jsx)(Yn,Io({fluid:!0,color:K,icon:w||(ie?"chevron-down":"chevron-right"),onClick:function(){return me(!ie)}},ae,{children:U}))}),R&&(0,e.jsx)("div",{className:"Table__cell Table__cell--collapsing",children:R})]}),ie&&(0,e.jsx)(y.az,{mt:oe,children:b})]})}/** + */function Io(){return Io=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function xa(P){var b=P.children,L=P.color,U=P.title,B=P.buttons,w=P.icon,X=P.child_mt,oe=X===void 0?1:X,ie=Do(P,["children","color","title","buttons","icon","child_mt"]),re=(0,t.useState)(P.open),ae=re[0],me=re[1];return(0,e.jsxs)(O.az,{mb:1,children:[(0,e.jsxs)("div",{className:"Table",children:[(0,e.jsx)("div",{className:"Table__cell",children:(0,e.jsx)(Yn,Io({fluid:!0,color:L,icon:w||(ae?"chevron-down":"chevron-right"),onClick:function(){return me(!ae)}},ie,{children:U}))}),B&&(0,e.jsx)("div",{className:"Table__cell Table__cell--collapsing",children:B})]}),ae&&(0,e.jsx)(O.az,{mt:oe,children:b})]})}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function gi(){return gi=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function cl(_){var b=_.content,K=_.children,U=_.className,R=ll(_,["content","children","className"]);return R.color=b?null:"default",R.backgroundColor=_.color||"default",(0,e.jsx)("div",gi({className:(0,E.Ly)(["ColorBox",U,(0,y.WP)(R)])},(0,y.Fl)(R),{children:b||"."}))}/** + */function ga(){return ga=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function cl(P){var b=P.content,L=P.children,U=P.className,B=ll(P,["content","children","className"]);return B.color=b?null:"default",B.backgroundColor=P.color||"default",(0,e.jsx)("div",ga({className:(0,j.Ly)(["ColorBox",U,(0,O.WP)(B)])},(0,O.Fl)(B),{children:b||"."}))}/** * @file * @copyright 2022 raffclar * @license MIT - */var ns=function(_){var b=_.title,K=_.onClose,U=_.children,R=_.width,w=_.height;return(0,e.jsx)("div",{className:"Dialog",children:(0,e.jsxs)(y.az,{className:"Dialog__content",width:R||"370px",height:w,children:[(0,e.jsxs)("div",{className:"Dialog__header",children:[(0,e.jsx)("div",{className:"Dialog__title",children:b}),(0,e.jsx)(y.az,{mr:2,children:(0,e.jsx)(Yn,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-start",onClick:K})})]}),U]})})},Fr=function(_){var b=_.onClick,K=_.children;return(0,e.jsx)(Yn,{onClick:b,className:"Dialog__button",verticalAlignContent:"middle",children:K})};ns.Button=Fr;var pc=function(_){var b=_.documentName,K=_.onSave,U=_.onDiscard,R=_.onClose;return _jsxs(ns,{title:"Notepad",onClose:R,children:[_jsxs("div",{className:"Dialog__body",children:["Do you want to save changes to ",b,"?"]}),_jsxs("div",{className:"Dialog__footer",children:[_jsx(Fr,{onClick:K,children:"Save"}),_jsx(Fr,{onClick:U,children:"Don't Save"}),_jsx(Fr,{onClick:R,children:"Cancel"})]})]})};/** + */var ns=function(P){var b=P.title,L=P.onClose,U=P.children,B=P.width,w=P.height;return(0,e.jsx)("div",{className:"Dialog",children:(0,e.jsxs)(O.az,{className:"Dialog__content",width:B||"370px",height:w,children:[(0,e.jsxs)("div",{className:"Dialog__header",children:[(0,e.jsx)("div",{className:"Dialog__title",children:b}),(0,e.jsx)(O.az,{mr:2,children:(0,e.jsx)(Yn,{mr:"-3px",width:"26px",lineHeight:"22px",textAlign:"center",color:"transparent",icon:"window-close-o",tooltip:"Close",tooltipPosition:"bottom-start",onClick:L})})]}),U]})})},Fr=function(P){var b=P.onClick,L=P.children;return(0,e.jsx)(Yn,{onClick:b,className:"Dialog__button",verticalAlignContent:"middle",children:L})};ns.Button=Fr;var pc=function(P){var b=P.documentName,L=P.onSave,U=P.onDiscard,B=P.onClose;return _jsxs(ns,{title:"Notepad",onClose:B,children:[_jsxs("div",{className:"Dialog__body",children:["Do you want to save changes to ",b,"?"]}),_jsxs("div",{className:"Dialog__footer",children:[_jsx(Fr,{onClick:L,children:"Save"}),_jsx(Fr,{onClick:U,children:"Don't Save"}),_jsx(Fr,{onClick:B,children:"Cancel"})]})]})};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Zi(){return Zi=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function ts(_){var b=_.className,K=_.children,U=ul(_,["className","children"]);return(0,e.jsx)(y.az,Zi({className:(0,E.Ly)(["Dimmer",b])},U,{children:(0,e.jsx)("div",{className:"Dimmer__inner",children:K})}))}/** + */function Za(){return Za=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function ts(P){var b=P.className,L=P.children,U=ul(P,["className","children"]);return(0,e.jsx)(O.az,Za({className:(0,j.Ly)(["Dimmer",b])},U,{children:(0,e.jsx)("div",{className:"Dimmer__inner",children:L})}))}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function rs(_){var b=_.hidden,K=_.vertical;return(0,e.jsx)("div",{className:(0,E.Ly)(["Divider",b&&"Divider--hidden",K?"Divider--vertical":"Divider--horizontal"])})}var os=n(31200),dl=n(77829);function is(_,b,K,U,R,w,H){try{var oe=_[w](H),ae=oe.value}catch(re){K(re);return}oe.done?b(ae):Promise.resolve(ae).then(U,R)}function fl(_){return function(){var b=this,K=arguments;return new Promise(function(U,R){var w=_.apply(b,K);function H(ae){is(w,U,R,H,oe,"next",ae)}function oe(ae){is(w,U,R,H,oe,"throw",ae)}H(void 0)})}}function Ji(){return Ji=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function hl(_,b){var K,U,R,w,H={label:0,sent:function(){if(R[0]&1)throw R[1];return R[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ie){return ae([re,ie])}}function ae(re){if(K)throw new TypeError("Generator is already executing.");for(;H;)try{if(K=1,U&&(R=re[0]&2?U.return:re[0]?U.throw||((R=U.return)&&R.call(U),0):U.next)&&!(R=R.call(U,re[1])).done)return R;switch(U=0,R&&(re=[re[0]&2,R.value]),re[0]){case 0:case 1:R=re;break;case 4:return H.label++,{value:re[1],done:!1};case 5:H.label++,U=re[1],re=[0];continue;case 7:re=H.ops.pop(),H.trys.pop();continue;default:if(R=H.trys,!(R=R.length>0&&R[R.length-1])&&(re[0]===6||re[0]===2)){H=0;continue}if(re[0]===3&&(!R||re[1]>R[0]&&re[1]=0)&&(L[B]=P[B]);return L}function hl(P,b){var L,U,B,w,X={label:0,sent:function(){if(B[0]&1)throw B[1];return B[1]},trys:[],ops:[]};return w={next:oe(0),throw:oe(1),return:oe(2)},typeof Symbol=="function"&&(w[Symbol.iterator]=function(){return this}),w;function oe(re){return function(ae){return ie([re,ae])}}function ie(re){if(L)throw new TypeError("Generator is already executing.");for(;X;)try{if(L=1,U&&(B=re[0]&2?U.return:re[0]?U.throw||((B=U.return)&&B.call(U),0):U.next)&&!(B=B.call(U,re[1])).done)return B;switch(U=0,B&&(re=[re[0]&2,B.value]),re[0]){case 0:case 1:B=re;break;case 4:return X.label++,{value:re[1],done:!1};case 5:X.label++,U=re[1],re=[0];continue;case 7:re=X.ops.pop(),X.trys.pop();continue;default:if(B=X.trys,!(B=B.length>0&&B[B.length-1])&&(re[0]===6||re[0]===2)){X=0;continue}if(re[0]===3&&(!B||re[1]>B[0]&&re[1]0&&(R.setState({suppressingFlicker:!0}),clearTimeout(R.flickerTimer),R.flickerTimer=setTimeout(function(){R.setState({suppressingFlicker:!1})},w))},R.handleDragStart=function(w){var H=R.props,oe=H.value,ae=H.dragMatrix,re=R.state.editing;re||(document.body.style["pointer-events"]="none",R.ref=w.target,R.setState({dragging:!1,origin:ra(w,ae),value:oe,internalValue:oe}),R.timer=setTimeout(function(){R.setState({dragging:!0})},250),R.dragInterval=setInterval(function(){var ie=R.state,me=ie.dragging,Ce=ie.value,ve=R.props.onDrag;me&&ve&&ve(w,Ce)},R.props.updateRate||xl),document.addEventListener("mousemove",R.handleDragMove),document.addEventListener("mouseup",R.handleDragEnd))},R.handleDragMove=function(w){var H=R.props,oe=H.minValue,ae=H.maxValue,re=H.step,ie=H.stepPixelSize,me=H.dragMatrix;R.setState(function(Ce){var ve=na({},Ce),Me=ra(w,me)-ve.origin;if(Ce.dragging){var be=Number.isFinite(oe)?oe%re:0;ve.internalValue=(0,i.qE)(ve.internalValue+Me*re/ie,oe-re,ae+re),ve.value=(0,i.qE)(ve.internalValue-ve.internalValue%re+be,oe,ae),ve.origin=ra(w,me)}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},R.handleDragEnd=function(w){var H=R.props,oe=H.onChange,ae=H.onDrag,re=R.state,ie=re.dragging,me=re.value,Ce=re.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(R.timer),clearInterval(R.dragInterval),R.setState({dragging:!1,editing:!ie,origin:null}),document.removeEventListener("mousemove",R.handleDragMove),document.removeEventListener("mouseup",R.handleDragEnd),ie)R.suppressFlicker(),oe&&oe(w,me),ae&&ae(w,me);else if(R.inputRef){var ve=R.inputRef.current;ve.value=Ce,setTimeout(function(){ve.focus(),ve.select()},100)}},R}var K=b.prototype;return K.render=function(){var R=this,w=this.state,H=w.dragging,oe=w.editing,ae=w.value,re=w.suppressingFlicker,ie=this.props,me=ie.animated,Ce=ie.value,ve=ie.unit,Me=ie.minValue,be=ie.maxValue,Be=ie.unclamped,Ke=ie.format,ze=ie.onChange,en=ie.onDrag,_e=ie.children,We=ie.height,Ge=ie.lineHeight,gn=ie.fontSize,an=Ce;(H||re)&&(an=ae);var cn=(0,e.jsxs)(e.Fragment,{children:[me&&!H&&!re?(0,e.jsx)(l,{value:an,format:Ke}):Ke?Ke(an):an,ve?" "+ve:""]}),Re=(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:We,lineHeight:Ge,fontsize:gn},onBlur:function(sn){if(oe){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,i.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){R.setState({editing:!1});return}R.setState({editing:!1,value:ln}),R.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln)}},onKeyDown:function(sn){if(sn.keyCode===13){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,i.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){R.setState({editing:!1});return}R.setState({editing:!1,value:ln}),R.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln);return}if(sn.keyCode===27){R.setState({editing:!1});return}}});return _e({dragging:H,editing:oe,value:Ce,displayValue:an,displayElement:cn,inputElement:Re,handleDragStart:this.handleDragStart})},b}(t.Component);pi.defaultProps={minValue:-1/0,maxValue:1/0,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]};var gl=n(20878),oa=n.n(gl),ji=function(b){return Array.isArray(b)?b[0]:b},pl=function(b){if(typeof b=="function"){for(var K=arguments.length,U=new Array(K>1?K-1:0),R=1;R_e.length-3?_e.length-1:On-2;var Xn=(wn=et.current)==null?void 0:wn.children[Gn];Xn==null||Xn.scrollIntoView({block:"nearest"})}function Gt(On){if(!(_e.length<1||re)){var wn=0,Gn=_e.length-1,Xn;Bn<0?Xn=On==="next"?Gn:wn:On==="next"?Xn=Bn===Gn?wn:Bn+1:Xn=Bn===wn?Gn:Bn-1,ln&&K&&kn(Xn),ze==null||ze(So(_e[Xn]))}}return(0,t.useEffect)(function(){var On;ln&&(K&&Bn!==El&&kn(Bn),(On=et.current)==null||On.focus())},[ln]),(0,e.jsx)(cs,{isOpen:ln,onClickOutside:function(){return pn(!1)},placement:We?"top-start":"bottom-start",content:(0,e.jsxs)("div",{className:"Layout Dropdown__menu",style:{minWidth:be},ref:et,children:[_e.length===0&&(0,e.jsx)("div",{className:"Dropdown__menuentry",children:"No options"}),_e.map(function(On,wn){var Gn=So(On);return(0,e.jsx)("div",{className:(0,E.Ly)(["Dropdown__menuentry",an===Gn&&"selected"]),onClick:function(){pn(!1),ze==null||ze(Gn)},children:typeof On=="string"?On:On.displayText},wn)})]}),children:(0,e.jsxs)("div",{className:"Dropdown",style:{width:(0,y.zA)(Re)},children:[(0,e.jsxs)("div",{className:(0,E.Ly)(["Dropdown__control","Button","Button--dropdown","Button--color--"+ae,re&&"Button--disabled",R]),onClick:function(On){re&&!ln||(pn(!ln),Ke==null||Ke(On))},children:[me&&(0,e.jsx)(W,{mr:1,name:me,rotation:Ce,spin:ve}),(0,e.jsx)("span",{className:"Dropdown__selected-text",style:{overflow:H?"hidden":"visible"},children:ie||an&&So(an)||gn}),!Be&&(0,e.jsx)("span",{className:"Dropdown__arrow-button",children:(0,e.jsx)(W,{name:An?"chevron-up":"chevron-down"})})]}),U&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-left",onClick:function(){Gt("previous")}}),(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-right",onClick:function(){Gt("next")}})]})]})})}function Ei(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function Vr(){return Vr=Object.assign||function(_){for(var b=1;b0&&(B.setState({suppressingFlicker:!0}),clearTimeout(B.flickerTimer),B.flickerTimer=setTimeout(function(){B.setState({suppressingFlicker:!1})},w))},B.handleDragStart=function(w){var X=B.props,oe=X.value,ie=X.dragMatrix,re=B.state.editing;re||(document.body.style["pointer-events"]="none",B.ref=w.target,B.setState({dragging:!1,origin:ri(w,ie),value:oe,internalValue:oe}),B.timer=setTimeout(function(){B.setState({dragging:!0})},250),B.dragInterval=setInterval(function(){var ae=B.state,me=ae.dragging,Ce=ae.value,ve=B.props.onDrag;me&&ve&&ve(w,Ce)},B.props.updateRate||xl),document.addEventListener("mousemove",B.handleDragMove),document.addEventListener("mouseup",B.handleDragEnd))},B.handleDragMove=function(w){var X=B.props,oe=X.minValue,ie=X.maxValue,re=X.step,ae=X.stepPixelSize,me=X.dragMatrix;B.setState(function(Ce){var ve=ni({},Ce),Me=ri(w,me)-ve.origin;if(Ce.dragging){var be=Number.isFinite(oe)?oe%re:0;ve.internalValue=(0,o.qE)(ve.internalValue+Me*re/ae,oe-re,ie+re),ve.value=(0,o.qE)(ve.internalValue-ve.internalValue%re+be,oe,ie),ve.origin=ri(w,me)}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},B.handleDragEnd=function(w){var X=B.props,oe=X.onChange,ie=X.onDrag,re=B.state,ae=re.dragging,me=re.value,Ce=re.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(B.timer),clearInterval(B.dragInterval),B.setState({dragging:!1,editing:!ae,origin:null}),document.removeEventListener("mousemove",B.handleDragMove),document.removeEventListener("mouseup",B.handleDragEnd),ae)B.suppressFlicker(),oe&&oe(w,me),ie&&ie(w,me);else if(B.inputRef){var ve=B.inputRef.current;ve.value=Ce,setTimeout(function(){ve.focus(),ve.select()},100)}},B}var L=b.prototype;return L.render=function(){var B=this,w=this.state,X=w.dragging,oe=w.editing,ie=w.value,re=w.suppressingFlicker,ae=this.props,me=ae.animated,Ce=ae.value,ve=ae.unit,Me=ae.minValue,be=ae.maxValue,Be=ae.unclamped,Ke=ae.format,ze=ae.onChange,en=ae.onDrag,_e=ae.children,We=ae.height,Ge=ae.lineHeight,gn=ae.fontSize,an=Ce;(X||re)&&(an=ie);var cn=(0,e.jsxs)(e.Fragment,{children:[me&&!X&&!re?(0,e.jsx)(l,{value:an,format:Ke}):Ke?Ke(an):an,ve?" "+ve:""]}),Re=(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:We,lineHeight:Ge,fontsize:gn},onBlur:function(sn){if(oe){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,o.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){B.setState({editing:!1});return}B.setState({editing:!1,value:ln}),B.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln)}},onKeyDown:function(sn){if(sn.keyCode===13){var ln;if(Be?ln=parseFloat(sn.target.value):ln=(0,o.qE)(parseFloat(sn.target.value),Me,be),Number.isNaN(ln)){B.setState({editing:!1});return}B.setState({editing:!1,value:ln}),B.suppressFlicker(),ze&&ze(sn,ln),en&&en(sn,ln);return}if(sn.keyCode===27){B.setState({editing:!1});return}}});return _e({dragging:X,editing:oe,value:Ce,displayValue:an,displayElement:cn,inputElement:Re,handleDragStart:this.handleDragStart})},b}(t.Component);pa.defaultProps={minValue:-1/0,maxValue:1/0,step:1,stepPixelSize:1,suppressFlicker:50,dragMatrix:[1,0]};var gl=n(20878),oi=n.n(gl),Ea=function(b){return Array.isArray(b)?b[0]:b},pl=function(b){if(typeof b=="function"){for(var L=arguments.length,U=new Array(L>1?L-1:0),B=1;B_e.length-3?_e.length-1:yn-2;var Hn=(wn=et.current)==null?void 0:wn.children[Gn];Hn==null||Hn.scrollIntoView({block:"nearest"})}function Gt(yn){if(!(_e.length<1||re)){var wn=0,Gn=_e.length-1,Hn;Bn<0?Hn=yn==="next"?Gn:wn:yn==="next"?Hn=Bn===Gn?wn:Bn+1:Hn=Bn===wn?Gn:Bn-1,ln&&L&&kn(Hn),ze==null||ze(So(_e[Hn]))}}return(0,t.useEffect)(function(){var yn;ln&&(L&&Bn!==jl&&kn(Bn),(yn=et.current)==null||yn.focus())},[ln]),(0,e.jsx)(cs,{isOpen:ln,onClickOutside:function(){return pn(!1)},placement:We?"top-start":"bottom-start",content:(0,e.jsxs)("div",{className:"Layout Dropdown__menu",style:{minWidth:be},ref:et,children:[_e.length===0&&(0,e.jsx)("div",{className:"Dropdown__menuentry",children:"No options"}),_e.map(function(yn,wn){var Gn=So(yn);return(0,e.jsx)("div",{className:(0,j.Ly)(["Dropdown__menuentry",an===Gn&&"selected"]),onClick:function(){pn(!1),ze==null||ze(Gn)},children:typeof yn=="string"?yn:yn.displayText},wn)})]}),children:(0,e.jsxs)("div",{className:"Dropdown",style:{width:(0,O.zA)(Re)},children:[(0,e.jsxs)("div",{className:(0,j.Ly)(["Dropdown__control","Button","Button--dropdown","Button--color--"+ie,re&&"Button--disabled",B]),onClick:function(yn){re&&!ln||(pn(!ln),Ke==null||Ke(yn))},children:[me&&(0,e.jsx)(W,{mr:1,name:me,rotation:Ce,spin:ve}),(0,e.jsx)("span",{className:"Dropdown__selected-text",style:{overflow:X?"hidden":"visible"},children:ae||an&&So(an)||gn}),!Be&&(0,e.jsx)("span",{className:"Dropdown__arrow-button",children:(0,e.jsx)(W,{name:Tn?"chevron-up":"chevron-down"})})]}),U&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-left",onClick:function(){Gt("previous")}}),(0,e.jsx)(Yn,{disabled:re,height:1.8,icon:"chevron-right",onClick:function(){Gt("next")}})]})]})})}function ja(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function Vr(){return Vr=Object.assign||function(P){for(var b=1;b=0)&&(K[R]=_[R]);return K}var sa=function(_){return(0,E.Ly)(["Flex",_.inline&&"Flex--inline",(0,y.WP)(_)])},la=function(_){var b=_.className,K=_.direction,U=_.wrap,R=_.align,w=_.justify,H=_.inline,oe=Xr(_,["className","direction","wrap","align","justify","inline"]);return(0,y.Fl)(zt({style:zt({},oe.style,{flexDirection:K,flexWrap:U===!0?"wrap":U,alignItems:R,justifyContent:w})},oe))},Jt=function(_){var b=_.className,K=Xr(_,["className"]);return(0,e.jsx)("div",zt({className:(0,E.Ly)([b,sa(K)])},la(K)))},ca=function(_){return(0,E.Ly)(["Flex__item",(0,y.WP)(_)])},ua=function(_){var b=_.className,K=_.style,U=_.grow,R=_.order,w=_.shrink,H=_.basis,oe=_.align,ae=Xr(_,["className","style","grow","order","shrink","basis","align"]),re,ie=(re=H!=null?H:_.width)!=null?re:U!==void 0?0:void 0;return(0,y.Fl)(zt({style:zt({},K,{flexGrow:U!==void 0&&Number(U),flexShrink:w!==void 0&&Number(w),flexBasis:(0,y.zA)(ie),order:R,alignSelf:oe})},ae))},Ol=function(_){var b=_.className,K=Xr(_,["className"]);return(0,e.jsx)("div",zt({className:(0,E.Ly)([b,ca(_)])},ua(K)))};Jt.Item=Ol;var Ci=n(19996);/** + */function zt(){return zt=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var si=function(P){return(0,j.Ly)(["Flex",P.inline&&"Flex--inline",(0,O.WP)(P)])},li=function(P){var b=P.className,L=P.direction,U=P.wrap,B=P.align,w=P.justify,X=P.inline,oe=Hr(P,["className","direction","wrap","align","justify","inline"]);return(0,O.Fl)(zt({style:zt({},oe.style,{flexDirection:L,flexWrap:U===!0?"wrap":U,alignItems:B,justifyContent:w})},oe))},Jt=function(P){var b=P.className,L=Hr(P,["className"]);return(0,e.jsx)("div",zt({className:(0,j.Ly)([b,si(L)])},li(L)))},ci=function(P){return(0,j.Ly)(["Flex__item",(0,O.WP)(P)])},ui=function(P){var b=P.className,L=P.style,U=P.grow,B=P.order,w=P.shrink,X=P.basis,oe=P.align,ie=Hr(P,["className","style","grow","order","shrink","basis","align"]),re,ae=(re=X!=null?X:P.width)!=null?re:U!==void 0?0:void 0;return(0,O.Fl)(zt({style:zt({},L,{flexGrow:U!==void 0&&Number(U),flexShrink:w!==void 0&&Number(w),flexBasis:(0,O.zA)(ae),order:B,alignSelf:oe})},ie))},Ol=function(P){var b=P.className,L=Hr(P,["className"]);return(0,e.jsx)("div",zt({className:(0,j.Ly)([b,ci(P)])},ui(L)))};Jt.Item=Ol;var Ca=n(19996);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function bo(){return bo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function To(_){var b=_.children,K=Ct(_,["children"]);return vr.v.error("Grid component is deprecated. Use a Stack instead."),(0,e.jsx)(Ci.XI,bo({},K,{children:(0,e.jsx)(Ci.XI.Row,{children:b})}))}function fs(_){var b=_.size,K=b===void 0?1:b,U=_.style,R=Ct(_,["size","style"]);return(0,e.jsx)(Ci.XI.Cell,bo({style:bo({width:K+"%"},U)},R))}To.Column=fs;var hs=n(79500);/** + */function bo(){return bo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Ao(P){var b=P.children,L=Ct(P,["children"]);return vr.v.error("Grid component is deprecated. Use a Stack instead."),(0,e.jsx)(Ca.XI,bo({},L,{children:(0,e.jsx)(Ca.XI.Row,{children:b})}))}function fs(P){var b=P.size,L=b===void 0?1:b,U=P.style,B=Ct(P,["size","style"]);return(0,e.jsx)(Ca.XI.Cell,bo({style:bo({width:L+"%"},U)},B))}Ao.Column=fs;var hs=n(79500);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Ao(){return Ao=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var da=function(_){var b=_.className,K=_.value,U=_.minValue,R=U===void 0?0:U,w=_.maxValue,H=w===void 0?1:w,oe=_.color,ae=_.ranges,re=ae===void 0?{}:ae,ie=_.children,me=ms(_,["className","value","minValue","maxValue","color","ranges","children"]),Ce=(0,i.hs)(K,R,H),ve=ie!==void 0,Me=oe||(0,i.TG)(K,re)||"default",be=(0,y.Fl)(me),Be=["ProgressBar",b,(0,y.WP)(me)],Ke={width:(0,i.J$)(Ce)*100+"%"};return hs.NE.includes(Me)||Me==="default"?Be.push("ProgressBar--color--"+Me):(be.style=Ao({},be.style,{borderColor:Me}),Ke.backgroundColor=Me),(0,e.jsxs)("div",Ao({className:(0,E.Ly)(Be)},be,{children:[(0,e.jsx)("div",{className:"ProgressBar__fill ProgressBar__fill--animated",style:Ke}),(0,e.jsx)("div",{className:"ProgressBar__content",children:ve?ie:(0,i.Mg)(Ce*100)+"%"})]}))};/** + */function To(){return To=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var di=function(P){var b=P.className,L=P.value,U=P.minValue,B=U===void 0?0:U,w=P.maxValue,X=w===void 0?1:w,oe=P.color,ie=P.ranges,re=ie===void 0?{}:ie,ae=P.children,me=ms(P,["className","value","minValue","maxValue","color","ranges","children"]),Ce=(0,o.hs)(L,B,X),ve=ae!==void 0,Me=oe||(0,o.TG)(L,re)||"default",be=(0,O.Fl)(me),Be=["ProgressBar",b,(0,O.WP)(me)],Ke={width:(0,o.J$)(Ce)*100+"%"};return hs.NE.includes(Me)||Me==="default"?Be.push("ProgressBar--color--"+Me):(be.style=To({},be.style,{borderColor:Me}),Ke.backgroundColor=Me),(0,e.jsxs)("div",To({className:(0,j.Ly)(Be)},be,{children:[(0,e.jsx)("div",{className:"ProgressBar__fill ProgressBar__fill--animated",style:Ke}),(0,e.jsx)("div",{className:"ProgressBar__content",children:ve?ae:(0,o.Mg)(Ce*100)+"%"})]}))};/** * @file * @copyright 2021 Aleksej Komarov * @license MIT - */function Hr(){return Hr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var Cr=function(_){var b=_.className,K=_.vertical,U=_.fill,R=_.zebra,w=fa(_,["className","vertical","fill","zebra"]);return(0,e.jsx)("div",Hr({className:(0,E.Ly)(["Stack",U&&"Stack--fill",K?"Stack--vertical":"Stack--horizontal",R&&"Stack--zebra",b,sa(_)])},la(Hr({direction:K?"column":"row"},w))))},ha=function(_){var b=_.className,K=_.innerRef,U=fa(_,["className","innerRef"]);return(0,e.jsx)("div",Hr({className:(0,E.Ly)(["Stack__item",b,ca(U)]),ref:K},ua(U)))};Cr.Item=ha;var Ro=function(_){var b=_.className,K=_.hidden,U=fa(_,["className","hidden"]);return(0,e.jsx)("div",Hr({className:(0,E.Ly)(["Stack__item","Stack__divider",K&&"Stack__divider--hidden",b,ca(U)])},ua(U)))};Cr.Divider=Ro;function vs(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function ma(){return ma=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Ko(_,b){return Ko=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},Ko(_,b)}var yl=.5,xa=1.5,Ml=.1,_l=null;/** + */function Xr(){return Xr=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var Cr=function(P){var b=P.className,L=P.vertical,U=P.fill,B=P.zebra,w=fi(P,["className","vertical","fill","zebra"]);return(0,e.jsx)("div",Xr({className:(0,j.Ly)(["Stack",U&&"Stack--fill",L?"Stack--vertical":"Stack--horizontal",B&&"Stack--zebra",b,si(P)])},li(Xr({direction:L?"column":"row"},w))))},hi=function(P){var b=P.className,L=P.innerRef,U=fi(P,["className","innerRef"]);return(0,e.jsx)("div",Xr({className:(0,j.Ly)(["Stack__item",b,ci(U)]),ref:L},ui(U)))};Cr.Item=hi;var Ro=function(P){var b=P.className,L=P.hidden,U=fi(P,["className","hidden"]);return(0,e.jsx)("div",Xr({className:(0,j.Ly)(["Stack__item","Stack__divider",L&&"Stack__divider--hidden",b,ci(U)])},ui(U)))};Cr.Divider=Ro;function vs(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function mi(){return mi=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Ko(P,b){return Ko=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},Ko(P,b)}var yl=.5,xi=1.5,Ml=.1,_l=null;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Oi(){return Oi=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Lo(_){return typeof _!="number"&&typeof _!="string"?"":String(_)}var gs=(0,Sr.sg)(function(_){return _()},250);function Or(_){var b=_.autoFocus,K=_.autoSelect,U=_.className,R=_.disabled,w=_.expensive,H=_.fluid,oe=_.maxLength,ae=_.monospace,re=_.onChange,ie=_.onEnter,me=_.onEscape,Ce=_.onInput,ve=_.placeholder,Me=_.selfClear,be=_.value,Be=xs(_,["autoFocus","autoSelect","className","disabled","expensive","fluid","maxLength","monospace","onChange","onEnter","onEscape","onInput","placeholder","selfClear","value"]),Ke=(0,t.useRef)(null);function ze(_e){var We;if(Ce){var Ge=(We=_e.currentTarget)==null?void 0:We.value;w?gs(function(){return Ce(_e,Ge)}):Ce(_e,Ge)}}function en(_e){if(_e.key===S._.Enter){ie==null||ie(_e,_e.currentTarget.value),Me?_e.currentTarget.value="":(_e.currentTarget.blur(),re==null||re(_e,_e.currentTarget.value));return}(0,S.K)(_e.key)&&(me==null||me(_e),_e.currentTarget.value=Lo(be),_e.currentTarget.blur())}return(0,t.useEffect)(function(){var _e=Ke.current;if(_e){var We=Lo(be);_e.value!==We&&(_e.value=We),!(!b&&!K)&&setTimeout(function(){_e.focus(),K&&_e.select()},1)}},[]),(0,e.jsxs)(y.az,Oi({className:(0,E.Ly)(["Input",H&&"Input--fluid",ae&&"Input--monospace",U])},Be,{children:[(0,e.jsx)("div",{className:"Input__baseline",children:"."}),(0,e.jsx)("input",{className:"Input__input",disabled:R,maxLength:oe,onBlur:function(_e){return re==null?void 0:re(_e,_e.target.value)},onChange:ze,onKeyDown:en,placeholder:ve,ref:Ke})]}))}var ps=n(52130);function js(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&ga(_,b)}function ga(_,b){return ga=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},ga(_,b)}var Cc=null;/** + */function Oa(){return Oa=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Lo(P){return typeof P!="number"&&typeof P!="string"?"":String(P)}var gs=(0,Sr.sg)(function(P){return P()},250);function Or(P){var b=P.autoFocus,L=P.autoSelect,U=P.className,B=P.disabled,w=P.expensive,X=P.fluid,oe=P.maxLength,ie=P.monospace,re=P.onChange,ae=P.onEnter,me=P.onEscape,Ce=P.onInput,ve=P.placeholder,Me=P.selfClear,be=P.value,Be=xs(P,["autoFocus","autoSelect","className","disabled","expensive","fluid","maxLength","monospace","onChange","onEnter","onEscape","onInput","placeholder","selfClear","value"]),Ke=(0,t.useRef)(null);function ze(_e){var We;if(Ce){var Ge=(We=_e.currentTarget)==null?void 0:We.value;w?gs(function(){return Ce(_e,Ge)}):Ce(_e,Ge)}}function en(_e){if(_e.key===S._.Enter){ae==null||ae(_e,_e.currentTarget.value),Me?_e.currentTarget.value="":(_e.currentTarget.blur(),re==null||re(_e,_e.currentTarget.value));return}(0,S.K)(_e.key)&&(me==null||me(_e),_e.currentTarget.value=Lo(be),_e.currentTarget.blur())}return(0,t.useEffect)(function(){var _e=Ke.current;if(_e){var We=Lo(be);_e.value!==We&&(_e.value=We),!(!b&&!L)&&setTimeout(function(){_e.focus(),L&&_e.select()},1)}},[]),(0,e.jsxs)(O.az,Oa({className:(0,j.Ly)(["Input",X&&"Input--fluid",ie&&"Input--monospace",U])},Be,{children:[(0,e.jsx)("div",{className:"Input__baseline",children:"."}),(0,e.jsx)("input",{className:"Input__input",disabled:B,maxLength:oe,onBlur:function(_e){return re==null?void 0:re(_e,_e.target.value)},onChange:ze,onKeyDown:en,placeholder:ve,ref:Ke})]}))}var ps=n(52130);function Es(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&gi(P,b)}function gi(P,b){return gi=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},gi(P,b)}var Cc=null;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function qt(){return qt=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Es(_){var b=_.animated,K=_.format,U=_.maxValue,R=_.minValue,w=_.onChange,H=_.onDrag,oe=_.step,ae=_.stepPixelSize,re=_.suppressFlicker,ie=_.unclamped,me=_.unit,Ce=_.value,ve=_.bipolar,Me=_.children,be=_.className,Be=_.color,Ke=_.fillValue,ze=_.ranges,en=ze===void 0?{}:ze,_e=_.size,We=_e===void 0?1:_e,Ge=_.style,gn=Pl(_,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unclamped","unit","value","bipolar","children","className","color","fillValue","ranges","size","style"]);return(0,e.jsx)(pi,{dragMatrix:[0,-1],animated:b,format:K,maxValue:U,minValue:R,onChange:w,onDrag:H,step:oe,stepPixelSize:ae,suppressFlicker:re,unclamped:ie,unit:me,value:Ce,children:function(an){var cn=an.displayElement,Re=an.displayValue,sn=an.dragging,ln=an.handleDragStart,pn=an.inputElement,An=an.value,et=(0,i.hs)(Ke!=null?Ke:Re,R,U),Bn=(0,i.hs)(Re,R,U),kn=Be||(0,i.TG)(Ke!=null?Ke:An,en)||"default",Gt=Math.min((Bn-.5)*270,225);return(0,e.jsxs)("div",qt({className:(0,E.Ly)(["Knob","Knob--color--"+kn,ve&&"Knob--bipolar",be,(0,y.WP)(gn)])},(0,y.Fl)(qt({style:qt({fontSize:We+"em"},Ge)},gn)),{onMouseDown:ln,children:[(0,e.jsx)("div",{className:"Knob__circle",children:(0,e.jsx)("div",{className:"Knob__cursorBox",style:{transform:"rotate("+Gt+"deg)"},children:(0,e.jsx)("div",{className:"Knob__cursor"})})}),sn&&(0,e.jsx)("div",{className:"Knob__popupValue",children:cn}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringTrackPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringTrack",cx:"50",cy:"50",r:"50"})}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringFillPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringFill",style:{strokeDashoffset:Math.max(((ve?2.75:2)-et*1.5)*Math.PI*50,0)},cx:"50",cy:"50",r:"50"})}),pn]}))}})}/** + */function qt(){return qt=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function js(P){var b=P.animated,L=P.format,U=P.maxValue,B=P.minValue,w=P.onChange,X=P.onDrag,oe=P.step,ie=P.stepPixelSize,re=P.suppressFlicker,ae=P.unclamped,me=P.unit,Ce=P.value,ve=P.bipolar,Me=P.children,be=P.className,Be=P.color,Ke=P.fillValue,ze=P.ranges,en=ze===void 0?{}:ze,_e=P.size,We=_e===void 0?1:_e,Ge=P.style,gn=Pl(P,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unclamped","unit","value","bipolar","children","className","color","fillValue","ranges","size","style"]);return(0,e.jsx)(pa,{dragMatrix:[0,-1],animated:b,format:L,maxValue:U,minValue:B,onChange:w,onDrag:X,step:oe,stepPixelSize:ie,suppressFlicker:re,unclamped:ae,unit:me,value:Ce,children:function(an){var cn=an.displayElement,Re=an.displayValue,sn=an.dragging,ln=an.handleDragStart,pn=an.inputElement,Tn=an.value,et=(0,o.hs)(Ke!=null?Ke:Re,B,U),Bn=(0,o.hs)(Re,B,U),kn=Be||(0,o.TG)(Ke!=null?Ke:Tn,en)||"default",Gt=Math.min((Bn-.5)*270,225);return(0,e.jsxs)("div",qt({className:(0,j.Ly)(["Knob","Knob--color--"+kn,ve&&"Knob--bipolar",be,(0,O.WP)(gn)])},(0,O.Fl)(qt({style:qt({fontSize:We+"em"},Ge)},gn)),{onMouseDown:ln,children:[(0,e.jsx)("div",{className:"Knob__circle",children:(0,e.jsx)("div",{className:"Knob__cursorBox",style:{transform:"rotate("+Gt+"deg)"},children:(0,e.jsx)("div",{className:"Knob__cursor"})})}),sn&&(0,e.jsx)("div",{className:"Knob__popupValue",children:cn}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringTrackPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringTrack",cx:"50",cy:"50",r:"50"})}),(0,e.jsx)("svg",{className:"Knob__ring Knob__ringFillPivot",viewBox:"0 0 100 100",children:(0,e.jsx)("circle",{className:"Knob__ringFill",style:{strokeDashoffset:Math.max(((ve?2.75:2)-et*1.5)*Math.PI*50,0)},cx:"50",cy:"50",r:"50"})}),pn]}))}})}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Uo(){return Uo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function yi(_){var b=_.children,K=_.wrap,U=Rn(_,["children","wrap"]);return(0,e.jsx)(Jt,Uo({mx:-.5,wrap:K,align:"stretch",justify:"space-between"},U,{children:b}))}function Mi(_){var b=_.label,K=_.children,U=_.mx,R=U===void 0?1:U,w=Rn(_,["label","children","mx"]);return(0,e.jsx)(Jt.Item,{mx:R,children:(0,e.jsxs)(Jt,Uo({height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},w,{children:[(0,e.jsx)(Jt.Item,{}),(0,e.jsx)(Jt.Item,{children:K}),(0,e.jsx)(Jt.Item,{color:"label",children:b})]}))})}yi.Item=Mi;/** + */function Uo(){return Uo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function ya(P){var b=P.children,L=P.wrap,U=Rn(P,["children","wrap"]);return(0,e.jsx)(Jt,Uo({mx:-.5,wrap:L,align:"stretch",justify:"space-between"},U,{children:b}))}function Ma(P){var b=P.label,L=P.children,U=P.mx,B=U===void 0?1:U,w=Rn(P,["label","children","mx"]);return(0,e.jsx)(Jt.Item,{mx:B,children:(0,e.jsxs)(Jt,Uo({height:"100%",direction:"column",align:"center",textAlign:"center",justify:"space-between"},w,{children:[(0,e.jsx)(Jt.Item,{}),(0,e.jsx)(Jt.Item,{children:L}),(0,e.jsx)(Jt.Item,{color:"label",children:b})]}))})}ya.Item=Ma;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var $t=function(_){var b=_.children;return(0,e.jsx)("table",{className:"LabeledList",children:b})},Cs=function(_){var b=_.className,K=_.label,U=_.labelColor,R=U===void 0?"label":U,w=_.labelWrap,H=_.color,oe=_.textAlign,ae=_.buttons,re=_.content,ie=_.children,me=_.verticalAlign,Ce=me===void 0?"baseline":me,ve=_.tooltip,Me;K&&(Me=K,typeof K=="string"&&(Me+=":")),ve!==void 0&&(Me=(0,e.jsx)(st,{content:ve,children:(0,e.jsx)(y.az,{as:"span",style:{borderBottom:"2px dotted rgba(255, 255, 255, 0.8)"},children:Me})}));var be=(0,e.jsx)(y.az,{as:"td",color:R,className:(0,E.Ly)(["LabeledList__cell",!w&&"LabeledList__label--nowrap"]),verticalAlign:Ce,children:Me});return(0,e.jsxs)("tr",{className:(0,E.Ly)(["LabeledList__row",b]),children:[be,(0,e.jsxs)(y.az,{as:"td",color:H,textAlign:oe,className:(0,E.Ly)(["LabeledList__cell","LabeledList__content"]),colSpan:ae?void 0:2,verticalAlign:Ce,children:[re,ie]}),ae&&(0,e.jsx)("td",{className:"LabeledList__cell LabeledList__buttons",children:ae})]})},pa=function(_){var b=_.size?(0,y.zA)(Math.max(0,_.size-1)):0;return(0,e.jsx)("tr",{className:"LabeledList__row",children:(0,e.jsx)("td",{colSpan:3,style:{paddingTop:b,paddingBottom:b},children:(0,e.jsx)(rs,{})})})};$t.Item=Cs,$t.Divider=pa;/** + */var $t=function(P){var b=P.children;return(0,e.jsx)("table",{className:"LabeledList",children:b})},Cs=function(P){var b=P.className,L=P.label,U=P.labelColor,B=U===void 0?"label":U,w=P.labelWrap,X=P.color,oe=P.textAlign,ie=P.buttons,re=P.content,ae=P.children,me=P.verticalAlign,Ce=me===void 0?"baseline":me,ve=P.tooltip,Me;L&&(Me=L,typeof L=="string"&&(Me+=":")),ve!==void 0&&(Me=(0,e.jsx)(st,{content:ve,children:(0,e.jsx)(O.az,{as:"span",style:{borderBottom:"2px dotted rgba(255, 255, 255, 0.8)"},children:Me})}));var be=(0,e.jsx)(O.az,{as:"td",color:B,className:(0,j.Ly)(["LabeledList__cell",!w&&"LabeledList__label--nowrap"]),verticalAlign:Ce,children:Me});return(0,e.jsxs)("tr",{className:(0,j.Ly)(["LabeledList__row",b]),children:[be,(0,e.jsxs)(O.az,{as:"td",color:X,textAlign:oe,className:(0,j.Ly)(["LabeledList__cell","LabeledList__content"]),colSpan:ie?void 0:2,verticalAlign:Ce,children:[re,ae]}),ie&&(0,e.jsx)("td",{className:"LabeledList__cell LabeledList__buttons",children:ie})]})},pi=function(P){var b=P.size?(0,O.zA)(Math.max(0,P.size-1)):0;return(0,e.jsx)("tr",{className:"LabeledList__row",children:(0,e.jsx)("td",{colSpan:3,style:{paddingTop:b,paddingBottom:b},children:(0,e.jsx)(rs,{})})})};$t.Item=Cs,$t.Divider=pi;/** * @file * @copyright 2022 Aleksej Komarov * @license MIT - */function Tr(){return Tr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function _i(_,b){return _i=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},_i(_,b)}var Il=function(_){"use strict";No(b,_);function b(U){var R;return R=_.call(this,U)||this,R.handleClick=function(w){if(!R.props.menuRef.current){vr.v.log("Menu.handleClick(): No ref");return}R.props.menuRef.current.contains(w.target)?vr.v.log("Menu.handleClick(): Inside"):(vr.v.log("Menu.handleClick(): Outside"),R.props.onOutsideClick())},R}var K=b.prototype;return K.componentWillMount=function(){window.addEventListener("click",this.handleClick)},K.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},K.render=function(){var R=this.props,w=R.width,H=R.children;return(0,e.jsx)("div",{className:"MenuBar__menu",style:{width:w},children:H})},b}(t.Component),Dl=function(_){"use strict";No(b,_);function b(U){var R;return R=_.call(this,U)||this,R.menuRef=(0,t.createRef)(),R}var K=b.prototype;return K.render=function(){var R=this.props,w=R.open,H=R.openWidth,oe=R.children,ae=R.disabled,re=R.display,ie=R.onMouseOver,me=R.onClick,Ce=R.onOutsideClick,ve=Ar(R,["open","openWidth","children","disabled","display","onMouseOver","onClick","onOutsideClick"]),Me=ve.className,be=Ar(ve,["className"]);return(0,e.jsxs)("div",{ref:this.menuRef,children:[(0,e.jsx)(y.az,Tr({className:(0,E.Ly)(["MenuBar__MenuBarButton","MenuBar__font","MenuBar__hover",Me])},be,{onClick:ae?function(){return null}:me,onMouseOver:ie,children:(0,e.jsx)("span",{className:"MenuBar__MenuBarButton-text",children:re})})),w&&(0,e.jsx)(Il,{width:H,menuRef:this.menuRef,onOutsideClick:Ce,children:oe})]})},b}(t.Component),Wo=function(_){var b=_.entry,K=_.children,U=_.openWidth,R=_.display,w=_.setOpenMenuBar,H=_.openMenuBar,oe=_.setOpenOnHover,ae=_.openOnHover,re=_.disabled,ie=_.className;return(0,e.jsx)(Dl,{openWidth:U,display:R,disabled:re,open:H===b,className:ie,onClick:function(){var me=H===b?null:b;w(me),oe(!ae)},onOutsideClick:function(){w(null),oe(!1)},onMouseOver:function(){ae&&w(b)},children:K})},Pi=function(_){var b=_.value,K=_.displayText,U=_.onClick,R=_.checked;return(0,e.jsxs)(y.az,{className:(0,E.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__MenuItemToggle","MenuBar__hover"]),onClick:function(){return U(b)},children:[(0,e.jsx)("div",{className:"MenuBar__MenuItemToggle__check",children:R&&(0,e.jsx)(W,{size:1.3,name:"check"})}),K]})};Wo.MenuItemToggle=Pi;var Ii=function(_){var b=_.value,K=_.displayText,U=_.onClick;return(0,e.jsx)(y.az,{className:(0,E.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__hover"]),onClick:function(){return U(b)},children:K})};Wo.MenuItem=Ii;var ja=function(){return(0,e.jsx)("div",{className:"MenuBar__Separator"})};Wo.Separator=ja;var Ea=function(_){var b=_.children;return(0,e.jsx)(y.az,{className:"MenuBar",children:b})};Ea.Dropdown=Wo;/** + */function Ar(){return Ar=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function _a(P,b){return _a=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},_a(P,b)}var Il=function(P){"use strict";No(b,P);function b(U){var B;return B=P.call(this,U)||this,B.handleClick=function(w){if(!B.props.menuRef.current){vr.v.log("Menu.handleClick(): No ref");return}B.props.menuRef.current.contains(w.target)?vr.v.log("Menu.handleClick(): Inside"):(vr.v.log("Menu.handleClick(): Outside"),B.props.onOutsideClick())},B}var L=b.prototype;return L.componentWillMount=function(){window.addEventListener("click",this.handleClick)},L.componentWillUnmount=function(){window.removeEventListener("click",this.handleClick)},L.render=function(){var B=this.props,w=B.width,X=B.children;return(0,e.jsx)("div",{className:"MenuBar__menu",style:{width:w},children:X})},b}(t.Component),Dl=function(P){"use strict";No(b,P);function b(U){var B;return B=P.call(this,U)||this,B.menuRef=(0,t.createRef)(),B}var L=b.prototype;return L.render=function(){var B=this.props,w=B.open,X=B.openWidth,oe=B.children,ie=B.disabled,re=B.display,ae=B.onMouseOver,me=B.onClick,Ce=B.onOutsideClick,ve=Tr(B,["open","openWidth","children","disabled","display","onMouseOver","onClick","onOutsideClick"]),Me=ve.className,be=Tr(ve,["className"]);return(0,e.jsxs)("div",{ref:this.menuRef,children:[(0,e.jsx)(O.az,Ar({className:(0,j.Ly)(["MenuBar__MenuBarButton","MenuBar__font","MenuBar__hover",Me])},be,{onClick:ie?function(){return null}:me,onMouseOver:ae,children:(0,e.jsx)("span",{className:"MenuBar__MenuBarButton-text",children:re})})),w&&(0,e.jsx)(Il,{width:X,menuRef:this.menuRef,onOutsideClick:Ce,children:oe})]})},b}(t.Component),Wo=function(P){var b=P.entry,L=P.children,U=P.openWidth,B=P.display,w=P.setOpenMenuBar,X=P.openMenuBar,oe=P.setOpenOnHover,ie=P.openOnHover,re=P.disabled,ae=P.className;return(0,e.jsx)(Dl,{openWidth:U,display:B,disabled:re,open:X===b,className:ae,onClick:function(){var me=X===b?null:b;w(me),oe(!ie)},onOutsideClick:function(){w(null),oe(!1)},onMouseOver:function(){ie&&w(b)},children:L})},Pa=function(P){var b=P.value,L=P.displayText,U=P.onClick,B=P.checked;return(0,e.jsxs)(O.az,{className:(0,j.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__MenuItemToggle","MenuBar__hover"]),onClick:function(){return U(b)},children:[(0,e.jsx)("div",{className:"MenuBar__MenuItemToggle__check",children:B&&(0,e.jsx)(W,{size:1.3,name:"check"})}),L]})};Wo.MenuItemToggle=Pa;var Ia=function(P){var b=P.value,L=P.displayText,U=P.onClick;return(0,e.jsx)(O.az,{className:(0,j.Ly)(["MenuBar__font","MenuBar__MenuItem","MenuBar__hover"]),onClick:function(){return U(b)},children:L})};Wo.MenuItem=Ia;var Ei=function(){return(0,e.jsx)("div",{className:"MenuBar__Separator"})};Wo.Separator=Ei;var ji=function(P){var b=P.children;return(0,e.jsx)(O.az,{className:"MenuBar",children:b})};ji.Dropdown=Wo;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function wo(){return wo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Sl(_){var b=_.className,K=_.children,U=_.onEnter,R=Ca(_,["className","children","onEnter"]),w;return U&&(w=function(H){H.key===S._.Enter&&U(H)}),(0,e.jsx)(ts,{onKeyDown:w,children:(0,e.jsx)("div",wo({className:(0,E.Ly)(["Modal",b,(0,y.WP)(R)])},(0,y.Fl)(R),{children:K}))})}var Oa=n(7081);function ya(){return ya=Object.assign||function(_){for(var b=1;b500&&(Ce=500);var ve=re.offsetY-256*me;return ve<-200&&(ve=-200),ve>200&&(ve=200),re.offsetX=Ce,re.offsetY=ve,U.onZoom&&U.onZoom(re.zoom),re})},R}var K=b.prototype;return K.render=function(){var R=(0,Oa.Oc)().config,w=this.state,H=w.dragging,oe=w.offsetX,ae=w.offsetY,re=w.zoom,ie=re===void 0?1:re,me=this.props.children,Ce=(0,os.l)(R.map+"_nanomap_z"+R.mapZLevel+".png"),ve=this.props.zoomScale*ie+"px",Me={width:ve,height:ve,"margin-top":ae+"px","margin-left":oe+"px",overflow:"hidden",position:"relative","background-image":"url("+Ce+")","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:H?"move":"auto"};return(0,e.jsxs)(y.az,{className:"NanoMap__container",children:[(0,e.jsx)(y.az,{style:Me,textAlign:"center",onMouseDown:this.handleDragStart,onClick:this.handleOnClick,children:(0,e.jsx)(y.az,{children:me})}),(0,e.jsx)(Bt,{zoom:ie,onZoom:this.handleZoom})]})},b}(t.Component),Yr=function(_){var b=_.x,K=_.y,U=_.zoom,R=U===void 0?1:U,w=_.icon,H=_.tooltip,oe=_.color,ae=_.onClick,re=function(Ce){Rt(Ce),ae&&ae(Ce)},ie=b*2*R-R-3,me=K*2*R-R-3;return(0,e.jsx)("div",{children:(0,e.jsxs)(y.az,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:me+"px",left:ie+"px",onMouseDown:re,children:[(0,e.jsx)(W,{name:w,color:oe,fontSize:"6px"}),(0,e.jsx)(st,{content:H})]})})};Di.Marker=Yr;var Bt=function(_){var b=(0,Oa.Oc)(),K=b.act,U=b.config,R=b.data;return(0,e.jsx)(y.az,{className:"NanoMap__zoomer",children:(0,e.jsxs)($t,{children:[(0,e.jsx)($t.Item,{label:"Zoom",children:(0,e.jsx)(Lr,{minValue:"1",maxValue:"8",stepPixelSize:"10",format:function(w){return w+"x"},value:_.zoom,onDrag:function(w,H){return _.onZoom(w,H)}})}),(0,e.jsx)($t.Item,{label:"Z-Level",children:R.map_levels.sort(function(w,H){return Number(w)-Number(H)}).map(function(w){return(0,e.jsx)(Yn,{selected:~~w===~~U.mapZLevel,onClick:function(){K("setZLevel",{mapZLevel:w})},children:w},w)})})]})})};Di.Zoomer=Bt;/** + */function wo(){return wo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Sl(P){var b=P.className,L=P.children,U=P.onEnter,B=Ci(P,["className","children","onEnter"]),w;return U&&(w=function(X){X.key===S._.Enter&&U(X)}),(0,e.jsx)(ts,{onKeyDown:w,children:(0,e.jsx)("div",wo({className:(0,j.Ly)(["Modal",b,(0,O.WP)(B)])},(0,O.Fl)(B),{children:L}))})}var Oi=n(7081);function yi(){return yi=Object.assign||function(P){for(var b=1;b500&&(Ce=500);var ve=re.offsetY-256*me;return ve<-200&&(ve=-200),ve>200&&(ve=200),re.offsetX=Ce,re.offsetY=ve,U.onZoom&&U.onZoom(re.zoom),re})},B}var L=b.prototype;return L.render=function(){var B=(0,Oi.Oc)().config,w=this.state,X=w.dragging,oe=w.offsetX,ie=w.offsetY,re=w.zoom,ae=re===void 0?1:re,me=this.props.children,Ce=(0,os.l)(B.map+"_nanomap_z"+B.mapZLevel+".png"),ve=this.props.zoomScale*ae+"px",Me={width:ve,height:ve,"margin-top":ie+"px","margin-left":oe+"px",overflow:"hidden",position:"relative","background-image":"url("+Ce+")","background-size":"cover","background-repeat":"no-repeat","text-align":"center",cursor:X?"move":"auto"};return(0,e.jsxs)(O.az,{className:"NanoMap__container",children:[(0,e.jsx)(O.az,{style:Me,textAlign:"center",onMouseDown:this.handleDragStart,onClick:this.handleOnClick,children:(0,e.jsx)(O.az,{children:me})}),(0,e.jsx)(Bt,{zoom:ae,onZoom:this.handleZoom})]})},b}(t.Component),Yr=function(P){var b=P.x,L=P.y,U=P.zoom,B=U===void 0?1:U,w=P.icon,X=P.tooltip,oe=P.color,ie=P.onClick,re=function(Ce){Rt(Ce),ie&&ie(Ce)},ae=b*2*B-B-3,me=L*2*B-B-3;return(0,e.jsx)("div",{children:(0,e.jsxs)(O.az,{position:"absolute",className:"NanoMap__marker",lineHeight:"0",bottom:me+"px",left:ae+"px",onMouseDown:re,children:[(0,e.jsx)(W,{name:w,color:oe,fontSize:"6px"}),(0,e.jsx)(st,{content:X})]})})};Da.Marker=Yr;var Bt=function(P){var b=(0,Oi.Oc)(),L=b.act,U=b.config,B=b.data;return(0,e.jsx)(O.az,{className:"NanoMap__zoomer",children:(0,e.jsxs)($t,{children:[(0,e.jsx)($t.Item,{label:"Zoom",children:(0,e.jsx)(Lr,{minValue:"1",maxValue:"8",stepPixelSize:"10",format:function(w){return w+"x"},value:P.zoom,onDrag:function(w,X){return P.onZoom(w,X)}})}),(0,e.jsx)($t.Item,{label:"Z-Level",children:B.map_levels.sort(function(w,X){return Number(w)-Number(X)}).map(function(w){return(0,e.jsx)(Yn,{selected:~~w===~~U.mapZLevel,onClick:function(){L("setZLevel",{mapZLevel:w})},children:w},w)})})]})})};Da.Zoomer=Bt;/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Rr(){return Rr=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Ma(_){var b=_.className,K=_.color,U=_.info,R=_.success,w=_.danger,H=_.warning,oe=er(_,["className","color","info","success","danger","warning"]);return(0,e.jsx)(y.az,Rr({className:(0,E.Ly)(["NoticeBox",K&&"NoticeBox--color--"+K,U&&"NoticeBox--type--info",R&&"NoticeBox--type--success",H&&"NoticeBox--type--warning ",w&&"NoticeBox--type--danger",b])},oe))}/** + */function Rr(){return Rr=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Mi(P){var b=P.className,L=P.color,U=P.info,B=P.success,w=P.danger,X=P.warning,oe=er(P,["className","color","info","success","danger","warning"]);return(0,e.jsx)(O.az,Rr({className:(0,j.Ly)(["NoticeBox",L&&"NoticeBox--color--"+L,U&&"NoticeBox--type--info",B&&"NoticeBox--type--success",X&&"NoticeBox--type--warning ",w&&"NoticeBox--type--danger",b])},oe))}/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function _a(){return _a=Object.assign||function(_){for(var b=1;b0&&(R.setState({suppressingFlicker:!0}),clearTimeout(R.flickerTimer),R.flickerTimer=setTimeout(function(){return R.setState({suppressingFlicker:!1})},ae))},R.handleDragStart=function(H){var oe=R.props,ae=oe.value,re=oe.disabled,ie=R.state.editing;re||ie||(document.body.style["pointer-events"]="none",R.ref=H.target,R.setState({dragging:!1,origin:H.screenY,value:ae,internalValue:ae}),R.timer=setTimeout(function(){R.setState({dragging:!0})},250),R.dragInterval=setInterval(function(){var me=R.state,Ce=me.dragging,ve=me.value,Me=R.props.onDrag;Ce&&Me&&Me(+ve)},R.props.updateRate||$o),document.addEventListener("mousemove",R.handleDragMove),document.addEventListener("mouseup",R.handleDragEnd))},R.handleDragMove=function(H){var oe=R.props,ae=oe.minValue,re=oe.maxValue,ie=oe.step,me=oe.stepPixelSize;R.setState(function(Ce){var ve=_a({},Ce),Me=ve.origin-H.screenY;if(Ce.dragging){var be=Number.isFinite(ae)?ae%ie:0;ve.internalValue=(0,i.qE)(Number(ve.internalValue)+Me*ie/(me||1),ae-ie,re+ie),ve.value=(0,i.qE)(Number(ve.internalValue)-Number(ve.internalValue)%ie+be,ae,re),ve.origin=H.screenY}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},R.handleDragEnd=function(H){var oe=R.props,ae=oe.onChange,re=oe.onDrag,ie=R.state,me=ie.dragging,Ce=ie.value,ve=ie.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(R.timer),clearInterval(R.dragInterval),R.setState({dragging:!1,editing:!me,origin:null}),document.removeEventListener("mousemove",R.handleDragMove),document.removeEventListener("mouseup",R.handleDragEnd),me)R.suppressFlicker(),ae&&ae(+Ce),re&&re(+Ce);else if(R.inputRef){var Me=R.inputRef.current;Me.value=String(ve),setTimeout(function(){Me.focus(),Me.select()},100)}},R}var K=b.prototype;return K.render=function(){var R=this,w=this.state,H=w.dragging,oe=w.editing,ae=w.value,re=w.suppressingFlicker,ie=this.props,me=ie.className,Ce=ie.fluid,ve=ie.animated,Me=ie.value,be=ie.unit,Be=ie.minValue,Ke=ie.maxValue,ze=ie.height,en=ie.width,_e=ie.lineHeight,We=ie.fontSize,Ge=ie.disabled,gn=ie.format,an=ie.onChange,cn=ie.onDrag,Re=Me;(H||re)&&(Re=ae);var sn=(0,e.jsxs)("div",{className:"NumberInput__content",children:[ve&&!H&&!re?(0,e.jsx)(l,{value:+Re,format:gn}):gn?gn(+Re):Re,be?" "+be:""]});return(0,e.jsxs)(y.az,{className:(0,E.Ly)(["NumberInput",Ce&&"NumberInput--fluid",me]),minWidth:en,minHeight:ze,lineHeight:_e,fontSize:We,onMouseDown:this.handleDragStart,children:[(0,e.jsx)("div",{className:"NumberInput__barContainer",children:(0,e.jsx)("div",{className:"NumberInput__bar",style:{height:(0,i.qE)((+Re-Be)/(Ke-Be)*100,0,100)+"%"}})}),sn,(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:ze,lineHeight:_e,fontSize:We},onBlur:function(ln){if(oe){var pn=(0,i.qE)(parseFloat(ln.target.value),Be,Ke);if(Number.isNaN(pn)){R.setState({editing:!1});return}R.setState({editing:!1,value:pn}),R.suppressFlicker(),an&&an(pn),cn&&cn(pn)}},onKeyDown:function(ln){if(!Ge){if(ln.key===S._.Enter){var pn=ln.target,An=(0,i.qE)(parseFloat(pn.value),Be,Ke);if(Number.isNaN(An)){R.setState({editing:!1});return}R.setState({editing:!1,value:An}),R.suppressFlicker(),an&&an(An),cn&&cn(An);return}if((0,S.K)(ln.key)){R.setState({editing:!1});return}}}})]})},b}(t.Component),ko=n(6544);function Fo(){return Fo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function bn(_,b){return bn=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},bn(_,b)}var Tn=0,rr=1e4,qn=function(_,b,K,U){var R=b||Tn,w=K||K===0?K:rr,H=U?_.replace(/[^\-\d.]/g,""):_.replace(/[^\-\d]/g,"");return U&&(H=Jr(H,R),H=ot(".",H)),b<0?(H=Br(H),H=ot("-",H)):H=H.replaceAll("-",""),R<=1&&w>=0?lt(H,R,w,U):H},lt=function(_,b,K,U){var R=U?parseFloat(_):parseInt(_,10);if(!isNaN(R)&&(_.slice(-1)!=="."||R0?(_=_.replace("-",""),b="-".concat(_)):K===0&&_.indexOf("-",K+1)>0&&(b=_.replaceAll("-","")),b},Jr=function(_,b){var K=_,U=Math.sign(b)*Math.floor(Math.abs(b));return _.indexOf(".")===0?K=String(U).concat(_):_.indexOf("-")===0&&_.indexOf(".")===1&&(K=U+".".concat(_.slice(2))),K},ot=function(_,b){var K=b.indexOf(_),U=b.length,R=b;if(K!==-1&&K0&&(B.setState({suppressingFlicker:!0}),clearTimeout(B.flickerTimer),B.flickerTimer=setTimeout(function(){return B.setState({suppressingFlicker:!1})},ie))},B.handleDragStart=function(X){var oe=B.props,ie=oe.value,re=oe.disabled,ae=B.state.editing;re||ae||(document.body.style["pointer-events"]="none",B.ref=X.target,B.setState({dragging:!1,origin:X.screenY,value:ie,internalValue:ie}),B.timer=setTimeout(function(){B.setState({dragging:!0})},250),B.dragInterval=setInterval(function(){var me=B.state,Ce=me.dragging,ve=me.value,Me=B.props.onDrag;Ce&&Me&&Me(+ve)},B.props.updateRate||$o),document.addEventListener("mousemove",B.handleDragMove),document.addEventListener("mouseup",B.handleDragEnd))},B.handleDragMove=function(X){var oe=B.props,ie=oe.minValue,re=oe.maxValue,ae=oe.step,me=oe.stepPixelSize;B.setState(function(Ce){var ve=_i({},Ce),Me=ve.origin-X.screenY;if(Ce.dragging){var be=Number.isFinite(ie)?ie%ae:0;ve.internalValue=(0,o.qE)(Number(ve.internalValue)+Me*ae/(me||1),ie-ae,re+ae),ve.value=(0,o.qE)(Number(ve.internalValue)-Number(ve.internalValue)%ae+be,ie,re),ve.origin=X.screenY}else Math.abs(Me)>4&&(ve.dragging=!0);return ve})},B.handleDragEnd=function(X){var oe=B.props,ie=oe.onChange,re=oe.onDrag,ae=B.state,me=ae.dragging,Ce=ae.value,ve=ae.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(B.timer),clearInterval(B.dragInterval),B.setState({dragging:!1,editing:!me,origin:null}),document.removeEventListener("mousemove",B.handleDragMove),document.removeEventListener("mouseup",B.handleDragEnd),me)B.suppressFlicker(),ie&&ie(+Ce),re&&re(+Ce);else if(B.inputRef){var Me=B.inputRef.current;Me.value=String(ve),setTimeout(function(){Me.focus(),Me.select()},100)}},B}var L=b.prototype;return L.render=function(){var B=this,w=this.state,X=w.dragging,oe=w.editing,ie=w.value,re=w.suppressingFlicker,ae=this.props,me=ae.className,Ce=ae.fluid,ve=ae.animated,Me=ae.value,be=ae.unit,Be=ae.minValue,Ke=ae.maxValue,ze=ae.height,en=ae.width,_e=ae.lineHeight,We=ae.fontSize,Ge=ae.disabled,gn=ae.format,an=ae.onChange,cn=ae.onDrag,Re=Me;(X||re)&&(Re=ie);var sn=(0,e.jsxs)("div",{className:"NumberInput__content",children:[ve&&!X&&!re?(0,e.jsx)(l,{value:+Re,format:gn}):gn?gn(+Re):Re,be?" "+be:""]});return(0,e.jsxs)(O.az,{className:(0,j.Ly)(["NumberInput",Ce&&"NumberInput--fluid",me]),minWidth:en,minHeight:ze,lineHeight:_e,fontSize:We,onMouseDown:this.handleDragStart,children:[(0,e.jsx)("div",{className:"NumberInput__barContainer",children:(0,e.jsx)("div",{className:"NumberInput__bar",style:{height:(0,o.qE)((+Re-Be)/(Ke-Be)*100,0,100)+"%"}})}),sn,(0,e.jsx)("input",{ref:this.inputRef,className:"NumberInput__input",style:{display:oe?void 0:"none",height:ze,lineHeight:_e,fontSize:We},onBlur:function(ln){if(oe){var pn=(0,o.qE)(parseFloat(ln.target.value),Be,Ke);if(Number.isNaN(pn)){B.setState({editing:!1});return}B.setState({editing:!1,value:pn}),B.suppressFlicker(),an&&an(pn),cn&&cn(pn)}},onKeyDown:function(ln){if(!Ge){if(ln.key===S._.Enter){var pn=ln.target,Tn=(0,o.qE)(parseFloat(pn.value),Be,Ke);if(Number.isNaN(Tn)){B.setState({editing:!1});return}B.setState({editing:!1,value:Tn}),B.suppressFlicker(),an&&an(Tn),cn&&cn(Tn);return}if((0,S.K)(ln.key)){B.setState({editing:!1});return}}}})]})},b}(t.Component),ko=n(6544);function Fo(){return Fo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function bn(P,b){return bn=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},bn(P,b)}var An=0,rr=1e4,qn=function(P,b,L,U){var B=b||An,w=L||L===0?L:rr,X=U?P.replace(/[^\-\d.]/g,""):P.replace(/[^\-\d]/g,"");return U&&(X=Jr(X,B),X=ot(".",X)),b<0?(X=Br(X),X=ot("-",X)):X=X.replaceAll("-",""),B<=1&&w>=0?lt(X,B,w,U):X},lt=function(P,b,L,U){var B=U?parseFloat(P):parseInt(P,10);if(!isNaN(B)&&(P.slice(-1)!=="."||B0?(P=P.replace("-",""),b="-".concat(P)):L===0&&P.indexOf("-",L+1)>0&&(b=P.replaceAll("-","")),b},Jr=function(P,b){var L=P,U=Math.sign(b)*Math.floor(Math.abs(b));return P.indexOf(".")===0?L=String(U).concat(P):P.indexOf("-")===0&&P.indexOf(".")===1&&(L=U+".".concat(P.slice(2))),L},ot=function(P,b){var L=b.indexOf(P),U=b.length,B=b;if(L!==-1&&L=0)&&(K[R]=_[R]);return K}var Al=function(_){var b=_.value,K=_.minValue,U=K===void 0?1:K,R=_.maxValue,w=R===void 0?1:R,H=_.ranges,oe=_.alertAfter,ae=_.alertBefore,re=_.format,ie=_.size,me=ie===void 0?1:ie,Ce=_.className,ve=_.style,Me=Si(_,["value","minValue","maxValue","ranges","alertAfter","alertBefore","format","size","className","style"]),be=scale(b,U,w),Be=clamp01(be),Ke=H?{}:{primary:[0,1]};H&&Object.keys(H).forEach(function(_e){var We=H[_e];Ke[_e]=[scale(We[0],U,w),scale(We[1],U,w)]});var ze=function(){if(oe&&ae&&oeb)return!0}else if(oeb)return!0;return!1},en=ze()&&keyOfMatchingRange(Be,Ke);return _jsxs(Box,{inline:!0,children:[_jsx("div",qr({className:classes(["RoundGauge",Ce,computeBoxClassName(Me)])},computeBoxProps(qr({style:qr({fontSize:me+"em"},ve)},Me)),{children:_jsxs("svg",{viewBox:"0 0 100 50",children:[(oe||ae)&&_jsx("g",{className:classes(["RoundGauge__alert",en?"active RoundGauge__alert--"+en:""]),children:_jsx("path",{d:"M48.211,14.578C48.55,13.9 49.242,13.472 50,13.472C50.758,13.472 51.45,13.9 51.789,14.578C54.793,20.587 60.795,32.589 63.553,38.106C63.863,38.726 63.83,39.462 63.465,40.051C63.101,40.641 62.457,41 61.764,41C55.996,41 44.004,41 38.236,41C37.543,41 36.899,40.641 36.535,40.051C36.17,39.462 36.137,38.726 36.447,38.106C39.205,32.589 45.207,20.587 48.211,14.578ZM50,34.417C51.426,34.417 52.583,35.574 52.583,37C52.583,38.426 51.426,39.583 50,39.583C48.574,39.583 47.417,38.426 47.417,37C47.417,35.574 48.574,34.417 50,34.417ZM50,32.75C50,32.75 53,31.805 53,22.25C53,20.594 51.656,19.25 50,19.25C48.344,19.25 47,20.594 47,22.25C47,31.805 50,32.75 50,32.75Z"})}),_jsx("g",{children:_jsx("circle",{className:"RoundGauge__ringTrack",cx:"50",cy:"50",r:"45"})}),_jsx("g",{children:Object.keys(Ke).map(function(_e,We){var Ge=Ke[_e];return _jsx("circle",{className:"RoundGauge__ringFill RoundGauge--color--"+_e,style:{strokeDashoffset:Math.max((2-(Ge[1]-Ge[0]))*Math.PI*50,0)},transform:"rotate("+(180+180*Ge[0])+" 50 50)",cx:"50",cy:"50",r:"45"},We)})}),_jsxs("g",{className:"RoundGauge__needle",transform:"rotate("+(Be*180-90)+" 50 50)",children:[_jsx("polygon",{className:"RoundGauge__needleLine",points:"46,50 50,0 54,50"}),_jsx("circle",{className:"RoundGauge__needleMiddle",cx:"50",cy:"50",r:"8"})]})]})})),_jsx(AnimatedNumber,{value:b,format:re,size:me})]})},kt=n(37912);/** + */function qr(){return qr=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var Tl=function(P){var b=P.value,L=P.minValue,U=L===void 0?1:L,B=P.maxValue,w=B===void 0?1:B,X=P.ranges,oe=P.alertAfter,ie=P.alertBefore,re=P.format,ae=P.size,me=ae===void 0?1:ae,Ce=P.className,ve=P.style,Me=Sa(P,["value","minValue","maxValue","ranges","alertAfter","alertBefore","format","size","className","style"]),be=scale(b,U,w),Be=clamp01(be),Ke=X?{}:{primary:[0,1]};X&&Object.keys(X).forEach(function(_e){var We=X[_e];Ke[_e]=[scale(We[0],U,w),scale(We[1],U,w)]});var ze=function(){if(oe&&ie&&oeb)return!0}else if(oeb)return!0;return!1},en=ze()&&keyOfMatchingRange(Be,Ke);return _jsxs(Box,{inline:!0,children:[_jsx("div",qr({className:classes(["RoundGauge",Ce,computeBoxClassName(Me)])},computeBoxProps(qr({style:qr({fontSize:me+"em"},ve)},Me)),{children:_jsxs("svg",{viewBox:"0 0 100 50",children:[(oe||ie)&&_jsx("g",{className:classes(["RoundGauge__alert",en?"active RoundGauge__alert--"+en:""]),children:_jsx("path",{d:"M48.211,14.578C48.55,13.9 49.242,13.472 50,13.472C50.758,13.472 51.45,13.9 51.789,14.578C54.793,20.587 60.795,32.589 63.553,38.106C63.863,38.726 63.83,39.462 63.465,40.051C63.101,40.641 62.457,41 61.764,41C55.996,41 44.004,41 38.236,41C37.543,41 36.899,40.641 36.535,40.051C36.17,39.462 36.137,38.726 36.447,38.106C39.205,32.589 45.207,20.587 48.211,14.578ZM50,34.417C51.426,34.417 52.583,35.574 52.583,37C52.583,38.426 51.426,39.583 50,39.583C48.574,39.583 47.417,38.426 47.417,37C47.417,35.574 48.574,34.417 50,34.417ZM50,32.75C50,32.75 53,31.805 53,22.25C53,20.594 51.656,19.25 50,19.25C48.344,19.25 47,20.594 47,22.25C47,31.805 50,32.75 50,32.75Z"})}),_jsx("g",{children:_jsx("circle",{className:"RoundGauge__ringTrack",cx:"50",cy:"50",r:"45"})}),_jsx("g",{children:Object.keys(Ke).map(function(_e,We){var Ge=Ke[_e];return _jsx("circle",{className:"RoundGauge__ringFill RoundGauge--color--"+_e,style:{strokeDashoffset:Math.max((2-(Ge[1]-Ge[0]))*Math.PI*50,0)},transform:"rotate("+(180+180*Ge[0])+" 50 50)",cx:"50",cy:"50",r:"45"},We)})}),_jsxs("g",{className:"RoundGauge__needle",transform:"rotate("+(Be*180-90)+" 50 50)",children:[_jsx("polygon",{className:"RoundGauge__needleLine",points:"46,50 50,0 54,50"}),_jsx("circle",{className:"RoundGauge__needleMiddle",cx:"50",cy:"50",r:"8"})]})]})})),_jsx(AnimatedNumber,{value:b,format:re,size:me})]})},kt=n(37912);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function eo(){return eo=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var ys=function(_){var b=_.buttons,K=_.children,U=_.className,R=_.fill,w=_.fitted,H=_.onScroll,oe=_.scrollable,ae=_.scrollableHorizontal,re=_.title,ie=_.container_id,me=_.flexGrow,Ce=_.noTopPadding,ve=_.stretchContents,Me=Pa(_,["buttons","children","className","fill","fitted","onScroll","scrollable","scrollableHorizontal","title","container_id","flexGrow","noTopPadding","stretchContents"]),be=(0,t.useRef)(null),Be=(0,E.b5)(re)||(0,E.b5)(b);return(0,t.useEffect)(function(){if(be!=null&&be.current&&!(!oe&&!ae)){var Ke=be.current;return(0,kt.tk)(Ke),function(){Ke&&(0,kt.WK)(Ke)}}},[]),(0,e.jsxs)("div",eo({id:ie||"",className:(0,E.Ly)(["Section",R&&"Section--fill",w&&"Section--fitted",oe&&"Section--scrollable",ae&&"Section--scrollableHorizontal",me&&"Section--flex",U,(0,y.WP)(Me)])},(0,y.Fl)(Me),{children:[Be&&(0,e.jsxs)("div",{className:"Section__title",children:[(0,e.jsx)("span",{className:"Section__titleText",children:re}),(0,e.jsx)("div",{className:"Section__buttons",children:b})]}),(0,e.jsx)("div",{className:"Section__rest",children:(0,e.jsx)("div",{className:(0,E.Ly)(["Section__content",!!ve&&"Section__content--stretchContents",!!Ce&&"Section__content--noTopPadding"]),onScroll:H,ref:be,children:K})})]}))};/** + */function eo(){return eo=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var ys=function(P){var b=P.buttons,L=P.children,U=P.className,B=P.fill,w=P.fitted,X=P.onScroll,oe=P.scrollable,ie=P.scrollableHorizontal,re=P.title,ae=P.container_id,me=P.flexGrow,Ce=P.noTopPadding,ve=P.stretchContents,Me=Pi(P,["buttons","children","className","fill","fitted","onScroll","scrollable","scrollableHorizontal","title","container_id","flexGrow","noTopPadding","stretchContents"]),be=(0,t.useRef)(null),Be=(0,j.b5)(re)||(0,j.b5)(b);return(0,t.useEffect)(function(){if(be!=null&&be.current&&!(!oe&&!ie)){var Ke=be.current;return(0,kt.tk)(Ke),function(){Ke&&(0,kt.WK)(Ke)}}},[]),(0,e.jsxs)("div",eo({id:ae||"",className:(0,j.Ly)(["Section",B&&"Section--fill",w&&"Section--fitted",oe&&"Section--scrollable",ie&&"Section--scrollableHorizontal",me&&"Section--flex",U,(0,O.WP)(Me)])},(0,O.Fl)(Me),{children:[Be&&(0,e.jsxs)("div",{className:"Section__title",children:[(0,e.jsx)("span",{className:"Section__titleText",children:re}),(0,e.jsx)("div",{className:"Section__buttons",children:b})]}),(0,e.jsx)("div",{className:"Section__rest",children:(0,e.jsx)("div",{className:(0,j.Ly)(["Section__content",!!ve&&"Section__content--stretchContents",!!Ce&&"Section__content--noTopPadding"]),onScroll:X,ref:be,children:L})})]}))};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Ia(){return Ia=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}function Lr(_){var b=_.animated,K=_.format,U=_.maxValue,R=_.minValue,w=_.onChange,H=_.onDrag,oe=_.step,ae=_.stepPixelSize,re=_.suppressFlicker,ie=_.unit,me=_.value,Ce=_.className,ve=_.fillValue,Me=_.color,be=_.ranges,Be=be===void 0?{}:be,Ke=_.children,ze=yr(_,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),en=Ke!==void 0;return(0,e.jsx)(pi,{dragMatrix:[1,0],animated:b,format:K,maxValue:U,minValue:R,onChange:w,onDrag:H,step:oe,stepPixelSize:ae,suppressFlicker:re,unit:ie,value:me,children:function(_e){var We=_e.displayElement,Ge=_e.displayValue,gn=_e.dragging,an=_e.handleDragStart,cn=_e.inputElement,Re=_e.value,sn=ve!=null,ln=(0,i.hs)(ve!=null?ve:Ge,R,U),pn=(0,i.hs)(Ge,R,U),An=Me||(0,i.TG)(ve!=null?ve:Re,Be)||"default";return(0,e.jsxs)("div",Ia({className:(0,E.Ly)(["Slider","ProgressBar","ProgressBar--color--"+An,Ce,(0,y.WP)(ze)])},(0,y.Fl)(ze),{onMouseDown:an,children:[(0,e.jsx)("div",{className:(0,E.Ly)(["ProgressBar__fill",sn&&"ProgressBar__fill--animated"]),style:{width:(0,i.J$)(ln)*100+"%",opacity:.4}}),(0,e.jsx)("div",{className:"ProgressBar__fill",style:{width:(0,i.J$)(Math.min(ln,pn))*100+"%"}}),(0,e.jsxs)("div",{className:"Slider__cursorOffset",style:{width:(0,i.J$)(pn)*100+"%"},children:[(0,e.jsx)("div",{className:"Slider__cursor"}),(0,e.jsx)("div",{className:"Slider__pointer"}),gn&&(0,e.jsx)("div",{className:"Slider__popupValue",children:We})]}),(0,e.jsx)("div",{className:"ProgressBar__content",children:en?Ke:We}),cn]}))}})}var Vo=function(_){return _jsxs(Box,{style:_.style,children:[_jsxs(Box,{className:"Section__title",style:_.titleStyle,children:[_jsx(Box,{className:"Section__titleText",style:_.textStyle,children:_.title}),_jsx("div",{className:"Section__buttons",children:_.titleSubtext})]}),_jsx(Box,{className:"Section__rest",children:_jsx(Box,{className:"Section__content",children:_.children})})]})};/** + */function Ii(){return Ii=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}function Lr(P){var b=P.animated,L=P.format,U=P.maxValue,B=P.minValue,w=P.onChange,X=P.onDrag,oe=P.step,ie=P.stepPixelSize,re=P.suppressFlicker,ae=P.unit,me=P.value,Ce=P.className,ve=P.fillValue,Me=P.color,be=P.ranges,Be=be===void 0?{}:be,Ke=P.children,ze=yr(P,["animated","format","maxValue","minValue","onChange","onDrag","step","stepPixelSize","suppressFlicker","unit","value","className","fillValue","color","ranges","children"]),en=Ke!==void 0;return(0,e.jsx)(pa,{dragMatrix:[1,0],animated:b,format:L,maxValue:U,minValue:B,onChange:w,onDrag:X,step:oe,stepPixelSize:ie,suppressFlicker:re,unit:ae,value:me,children:function(_e){var We=_e.displayElement,Ge=_e.displayValue,gn=_e.dragging,an=_e.handleDragStart,cn=_e.inputElement,Re=_e.value,sn=ve!=null,ln=(0,o.hs)(ve!=null?ve:Ge,B,U),pn=(0,o.hs)(Ge,B,U),Tn=Me||(0,o.TG)(ve!=null?ve:Re,Be)||"default";return(0,e.jsxs)("div",Ii({className:(0,j.Ly)(["Slider","ProgressBar","ProgressBar--color--"+Tn,Ce,(0,O.WP)(ze)])},(0,O.Fl)(ze),{onMouseDown:an,children:[(0,e.jsx)("div",{className:(0,j.Ly)(["ProgressBar__fill",sn&&"ProgressBar__fill--animated"]),style:{width:(0,o.J$)(ln)*100+"%",opacity:.4}}),(0,e.jsx)("div",{className:"ProgressBar__fill",style:{width:(0,o.J$)(Math.min(ln,pn))*100+"%"}}),(0,e.jsxs)("div",{className:"Slider__cursorOffset",style:{width:(0,o.J$)(pn)*100+"%"},children:[(0,e.jsx)("div",{className:"Slider__cursor"}),(0,e.jsx)("div",{className:"Slider__pointer"}),gn&&(0,e.jsx)("div",{className:"Slider__popupValue",children:We})]}),(0,e.jsx)("div",{className:"ProgressBar__content",children:en?Ke:We}),cn]}))}})}var Vo=function(P){return _jsxs(Box,{style:P.style,children:[_jsxs(Box,{className:"Section__title",style:P.titleStyle,children:[_jsx(Box,{className:"Section__titleText",style:P.textStyle,children:P.title}),_jsx("div",{className:"Section__buttons",children:P.titleSubtext})]}),_jsx(Box,{className:"Section__rest",children:_jsx(Box,{className:"Section__content",children:P.children})})]})};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function Ur(){return Ur=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var ht=function(_){var b=_.className,K=_.vertical,U=_.fill,R=_.fluid,w=_.children,H=Go(_,["className","vertical","fill","fluid","children"]);return(0,e.jsx)("div",Ur({className:(0,E.Ly)(["Tabs",K?"Tabs--vertical":"Tabs--horizontal",U&&"Tabs--fill",R&&"Tabs--fluid",b,(0,y.WP)(H)])},(0,y.Fl)(H),{children:w}))},Ot=function(_){var b=_.className,K=_.selected,U=_.color,R=_.icon,w=_.iconSpin,H=_.leftSlot,oe=_.rightSlot,ae=_.children,re=_.onClick,ie=Go(_,["className","selected","color","icon","iconSpin","leftSlot","rightSlot","children","onClick"]),me=function(Ce){re&&(re(Ce),Ce.target.blur())};return(0,e.jsxs)("div",Ur({className:(0,E.Ly)(["Tab","Tabs__Tab","Tab--color--"+U,K&&"Tab--selected",b,(0,y.WP)(ie)]),onClick:me},(0,y.Fl)(ie),{children:[(0,E.b5)(H)&&(0,e.jsx)("div",{className:"Tab__left",children:H})||!!R&&(0,e.jsx)("div",{className:"Tab__left",children:(0,e.jsx)(W,{name:R,spin:w})}),(0,e.jsx)("div",{className:"Tab__text",children:ae}),(0,E.b5)(oe)&&(0,e.jsx)("div",{className:"Tab__right",children:oe})]}))};ht.Tab=Ot;/** + */function Ur(){return Ur=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var ht=function(P){var b=P.className,L=P.vertical,U=P.fill,B=P.fluid,w=P.children,X=Go(P,["className","vertical","fill","fluid","children"]);return(0,e.jsx)("div",Ur({className:(0,j.Ly)(["Tabs",L?"Tabs--vertical":"Tabs--horizontal",U&&"Tabs--fill",B&&"Tabs--fluid",b,(0,O.WP)(X)])},(0,O.Fl)(X),{children:w}))},Ot=function(P){var b=P.className,L=P.selected,U=P.color,B=P.icon,w=P.iconSpin,X=P.leftSlot,oe=P.rightSlot,ie=P.children,re=P.onClick,ae=Go(P,["className","selected","color","icon","iconSpin","leftSlot","rightSlot","children","onClick"]),me=function(Ce){re&&(re(Ce),Ce.target.blur())};return(0,e.jsxs)("div",Ur({className:(0,j.Ly)(["Tab","Tabs__Tab","Tab--color--"+U,L&&"Tab--selected",b,(0,O.WP)(ae)]),onClick:me},(0,O.Fl)(ae),{children:[(0,j.b5)(X)&&(0,e.jsx)("div",{className:"Tab__left",children:X})||!!B&&(0,e.jsx)("div",{className:"Tab__left",children:(0,e.jsx)(W,{name:B,spin:w})}),(0,e.jsx)("div",{className:"Tab__text",children:ie}),(0,j.b5)(oe)&&(0,e.jsx)("div",{className:"Tab__right",children:oe})]}))};ht.Tab=Ot;/** * @file * @copyright 2020 Aleksej Komarov * @author Warlockd * @license MIT - */function or(){return or=Object.assign||function(_){for(var b=1;b=0)&&(K[R]=_[R]);return K}var ir=(0,t.forwardRef)(function(_,b){var K=_.autoFocus,U=_.autoSelect,R=_.displayedValue,w=_.dontUseTabForIndent,H=_.maxLength,oe=_.noborder,ae=_.onChange,re=_.onEnter,ie=_.onEscape,me=_.onInput,Ce=_.placeholder,ve=_.scrollbar,Me=_.selfClear,be=_.value,Be=Ft(_,["autoFocus","autoSelect","displayedValue","dontUseTabForIndent","maxLength","noborder","onChange","onEnter","onEscape","onInput","placeholder","scrollbar","selfClear","value"]),Ke=Be.className,ze=Be.fluid,en=Be.nowrap,_e=Ft(Be,["className","fluid","nowrap"]),We=(0,t.useRef)(null),Ge=(0,t.useState)(0),gn=Ge[0],an=Ge[1],cn=function(Re){if(Re.key===S._.Enter){if(Re.shiftKey){Re.currentTarget.focus();return}re==null||re(Re,Re.currentTarget.value),Me&&(Re.currentTarget.value=""),Re.currentTarget.blur();return}if((0,S.K)(Re.key)){ie==null||ie(Re),Me?Re.currentTarget.value="":(Re.currentTarget.value=Lo(be),Re.currentTarget.blur());return}if(!w&&Re.key===S._.Tab){Re.preventDefault();var sn=Re.currentTarget,ln=sn.value,pn=sn.selectionStart,An=sn.selectionEnd;Re.currentTarget.value=ln.substring(0,pn)+" "+ln.substring(An),Re.currentTarget.selectionEnd=pn+1}};return(0,t.useImperativeHandle)(b,function(){return We.current}),(0,t.useEffect)(function(){if(!(!K&&!U)){var Re=We.current;Re&&(K||U)&&setTimeout(function(){Re.focus(),U&&Re.select()},1)}},[]),(0,t.useEffect)(function(){var Re=We.current;if(Re){var sn=Lo(be);Re.value!==sn&&(Re.value=sn)}},[be]),(0,e.jsxs)(y.az,or({className:(0,E.Ly)(["TextArea",ze&&"TextArea--fluid",oe&&"TextArea--noborder",Ke])},_e,{children:[!!R&&(0,e.jsx)("div",{style:{height:"100%",overflow:"hidden",position:"absolute",width:"100%"},children:(0,e.jsx)("div",{className:(0,E.Ly)(["TextArea__textarea","TextArea__textarea_custom"]),style:{transform:"translateY(-"+gn+"px)"},children:R})}),(0,e.jsx)("textarea",{className:(0,E.Ly)(["TextArea__textarea",ve&&"TextArea__textarea--scrollable",en&&"TextArea__nowrap"]),maxLength:H,onBlur:function(Re){return ae==null?void 0:ae(Re,Re.target.value)},onChange:function(Re){return me==null?void 0:me(Re,Re.target.value)},onKeyDown:cn,onScroll:function(){R&&We.current&&an(We.current.scrollTop)},placeholder:Ce,ref:We,style:{color:R?"rgba(0, 0, 0, 0)":"inherit"}})]}))}),no=n(41242);function Rl(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&Xo(_,b)}function Xo(_,b){return Xo=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},Xo(_,b)}var Ms=function(_){return typeof _=="number"&&Number.isFinite(_)&&!Number.isNaN(_)},yt=null;function Mt(_){if(_===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return _}function Nn(_,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");_.prototype=Object.create(b&&b.prototype,{constructor:{value:_,writable:!0,configurable:!0}}),b&&bi(_,b)}function Vt(_,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](_):_ instanceof b}function bi(_,b){return bi=Object.setPrototypeOf||function(U,R){return U.__proto__=R,U},bi(_,b)}var Bl=null,_s=function(_){var b=_.children,K=useRef(null),U=useState(1),R=U[0],w=U[1],H=useState(0),oe=H[0],ae=H[1],re=useCallback(function(){var ie=K.current;if(!(!b||!Array.isArray(b)||!ie||R>=b.length)){var me=document.body.offsetHeight-ie.getBoundingClientRect().bottom,Ce=Math.ceil(ie.offsetHeight/R);if(me>0){var ve=Math.min(b.length,R+Math.max(1,Math.ceil(me/Ce)));w(ve),ae((b.length-ve)*Ce)}}},[K,R,b]);return useEffect(function(){re();var ie=setInterval(re,100);return function(){return clearInterval(ie)}},[re]),_jsxs("div",{className:"VirtualList",children:[_jsx("div",{className:"VirtualList__Container",ref:K,children:Array.isArray(b)?b.slice(0,R):null}),_jsx("div",{className:"VirtualList__Padding",style:{paddingBottom:""+oe+"px"}})]})};/** + */function or(){return or=Object.assign||function(P){for(var b=1;b=0)&&(L[B]=P[B]);return L}var ar=(0,t.forwardRef)(function(P,b){var L=P.autoFocus,U=P.autoSelect,B=P.displayedValue,w=P.dontUseTabForIndent,X=P.maxLength,oe=P.noborder,ie=P.onChange,re=P.onEnter,ae=P.onEscape,me=P.onInput,Ce=P.placeholder,ve=P.scrollbar,Me=P.selfClear,be=P.value,Be=Ft(P,["autoFocus","autoSelect","displayedValue","dontUseTabForIndent","maxLength","noborder","onChange","onEnter","onEscape","onInput","placeholder","scrollbar","selfClear","value"]),Ke=Be.className,ze=Be.fluid,en=Be.nowrap,_e=Ft(Be,["className","fluid","nowrap"]),We=(0,t.useRef)(null),Ge=(0,t.useState)(0),gn=Ge[0],an=Ge[1],cn=function(Re){if(Re.key===S._.Enter){if(Re.shiftKey){Re.currentTarget.focus();return}re==null||re(Re,Re.currentTarget.value),Me&&(Re.currentTarget.value=""),Re.currentTarget.blur();return}if((0,S.K)(Re.key)){ae==null||ae(Re),Me?Re.currentTarget.value="":(Re.currentTarget.value=Lo(be),Re.currentTarget.blur());return}if(!w&&Re.key===S._.Tab){Re.preventDefault();var sn=Re.currentTarget,ln=sn.value,pn=sn.selectionStart,Tn=sn.selectionEnd;Re.currentTarget.value=ln.substring(0,pn)+" "+ln.substring(Tn),Re.currentTarget.selectionEnd=pn+1}};return(0,t.useImperativeHandle)(b,function(){return We.current}),(0,t.useEffect)(function(){if(!(!L&&!U)){var Re=We.current;Re&&(L||U)&&setTimeout(function(){Re.focus(),U&&Re.select()},1)}},[]),(0,t.useEffect)(function(){var Re=We.current;if(Re){var sn=Lo(be);Re.value!==sn&&(Re.value=sn)}},[be]),(0,e.jsxs)(O.az,or({className:(0,j.Ly)(["TextArea",ze&&"TextArea--fluid",oe&&"TextArea--noborder",Ke])},_e,{children:[!!B&&(0,e.jsx)("div",{style:{height:"100%",overflow:"hidden",position:"absolute",width:"100%"},children:(0,e.jsx)("div",{className:(0,j.Ly)(["TextArea__textarea","TextArea__textarea_custom"]),style:{transform:"translateY(-"+gn+"px)"},children:B})}),(0,e.jsx)("textarea",{className:(0,j.Ly)(["TextArea__textarea",ve&&"TextArea__textarea--scrollable",en&&"TextArea__nowrap"]),maxLength:X,onBlur:function(Re){return ie==null?void 0:ie(Re,Re.target.value)},onChange:function(Re){return me==null?void 0:me(Re,Re.target.value)},onKeyDown:cn,onScroll:function(){B&&We.current&&an(We.current.scrollTop)},placeholder:Ce,ref:We,style:{color:B?"rgba(0, 0, 0, 0)":"inherit"}})]}))}),no=n(41242);function Rl(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&Ho(P,b)}function Ho(P,b){return Ho=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},Ho(P,b)}var Ms=function(P){return typeof P=="number"&&Number.isFinite(P)&&!Number.isNaN(P)},yt=null;function Mt(P){if(P===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return P}function Nn(P,b){if(typeof b!="function"&&b!==null)throw new TypeError("Super expression must either be null or a function");P.prototype=Object.create(b&&b.prototype,{constructor:{value:P,writable:!0,configurable:!0}}),b&&ba(P,b)}function Vt(P,b){return b!=null&&typeof Symbol!="undefined"&&b[Symbol.hasInstance]?!!b[Symbol.hasInstance](P):P instanceof b}function ba(P,b){return ba=Object.setPrototypeOf||function(U,B){return U.__proto__=B,U},ba(P,b)}var Bl=null,_s=function(P){var b=P.children,L=useRef(null),U=useState(1),B=U[0],w=U[1],X=useState(0),oe=X[0],ie=X[1],re=useCallback(function(){var ae=L.current;if(!(!b||!Array.isArray(b)||!ae||B>=b.length)){var me=document.body.offsetHeight-ae.getBoundingClientRect().bottom,Ce=Math.ceil(ae.offsetHeight/B);if(me>0){var ve=Math.min(b.length,B+Math.max(1,Math.ceil(me/Ce)));w(ve),ie((b.length-ve)*Ce)}}},[L,B,b]);return useEffect(function(){re();var ae=setInterval(re,100);return function(){return clearInterval(ae)}},[re]),_jsxs("div",{className:"VirtualList",children:[_jsx("div",{className:"VirtualList__Container",ref:L,children:Array.isArray(b)?b.slice(0,B):null}),_jsx("div",{className:"VirtualList__Padding",style:{paddingBottom:""+oe+"px"}})]})};/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */},79500:function(O,h,n){"use strict";n.d(h,{Ai:function(){return e},Fo:function(){return u},KA:function(){return i},KS:function(){return r},NE:function(){return x},b_:function(){return a},bz:function(){return t},lm:function(){return g},wM:function(){return l}});/** + */},79500:function(y,u,n){"use strict";n.d(u,{Ai:function(){return e},Fo:function(){return d},KA:function(){return o},KS:function(){return r},NE:function(){return x},b_:function(){return i},bz:function(){return t},lm:function(){return g},wM:function(){return l}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=273.15,i=2,t=1,r=0,s=null,g={department:{captain:"#c06616",security:"#e74c3c",medbay:"#3498db",science:"#9b59b6",engineering:"#f1c40f",cargo:"#f39c12",centcom:"#00c100",other:"#c38312"},manifest:{command:"#3333FF",security:"#8e0000",medical:"#006600",engineering:"#b27300",science:"#a65ba6",cargo:"#bb9040",planetside:"#555555",civilian:"#a32800",miscellaneous:"#666666",silicon:"#222222"},damageType:{oxy:"#3498db",toxin:"#2ecc71",burn:"#e67e22",brute:"#e74c3c"},reagent:{acidicbuffer:"#fbc314",basicbuffer:"#3853a4"}},x=["black","white","red","orange","yellow","olive","green","teal","blue","violet","purple","pink","brown","grey","good","average","bad","label"],u=[{name:"Mercenary",freq:1213,color:"#6D3F40"},{name:"Raider",freq:1277,color:"#6D3F40"},{name:"Special Ops",freq:1341,color:"#5C5C8A"},{name:"AI Private",freq:1343,color:"#FF00FF"},{name:"Response Team",freq:1345,color:"#5C5C8A"},{name:"Supply",freq:1347,color:"#5F4519"},{name:"Service",freq:1349,color:"#6eaa2c"},{name:"Science",freq:1351,color:"#993399"},{name:"Command",freq:1353,color:"#193A7A"},{name:"Medical",freq:1355,color:"#008160"},{name:"Engineering",freq:1357,color:"#A66300"},{name:"Security",freq:1359,color:"#A30000"},{name:"Explorer",freq:1361,color:"#555555"},{name:"Talon",freq:1363,color:"#555555"},{name:"Common",freq:1459,color:"#008000"},{name:"Entertainment",freq:1461,color:"#339966"},{name:"Security(I)",freq:1475,color:"#008000"},{name:"Medical(I)",freq:1485,color:"#008000"}],o=[{id:"oxygen",name:"Oxygen",label:"O\u2082",color:"blue"},{id:"nitrogen",name:"Nitrogen",label:"N\u2082",color:"green"},{id:"carbon_dioxide",name:"Carbon Dioxide",label:"CO\u2082",color:"grey"},{id:"phoron",name:"Phoron",label:"Phoron",color:"pink"},{id:"volatile_fuel",name:"Volatile Fuel",label:"EXP",color:"teal"},{id:"nitrous_oxide",name:"Nitrous Oxide",label:"N\u2082O",color:"red"},{id:"other",name:"Other",label:"Other",color:"white"},{id:"pressure",name:"Pressure",label:"Pressure",color:"average"},{id:"temperature",name:"Temperature",label:"Temperature",color:"yellow"}],l=function(f,m){if(!f)return m||"None";for(var v=f.toLowerCase(),j=f.replace(/(^\w{1})|(\s+\w{1})/g,function(y){return y.toUpperCase()}),E=0;E0&&le[le.length-1])&&(je[0]===6||je[0]===2)){ge=0;continue}if(je[0]===3&&(!le||je[1]>le[0]&&je[1]Ee&&(le[ge]=Ee-V[ge],fe=!0)}return[fe,le]},G=function(J){var V;x.log("drag start"),a=!0,v=(0,i.Z4)([J.screenX,J.screenY],P()),(V=J.target)==null||V.focus(),document.addEventListener("mousemove",ee),document.addEventListener("mouseup",Q),ee(J)},Q=function(J){x.log("drag end"),ee(J),document.removeEventListener("mousemove",ee),document.removeEventListener("mouseup",Q),a=!1,$()},ee=function(J){a&&(J.preventDefault(),S((0,i.Z4)([J.screenX,J.screenY],v)))},se=function(J,V){return function(te){var ce;j=[J,V],x.log("resize start",j),c=!0,v=(0,i.Z4)([te.screenX,te.screenY],P()),E=D(),(ce=te.target)==null||ce.focus(),document.addEventListener("mousemove",Y),document.addEventListener("mouseup",ne),Y(te)}},ne=function(J){x.log("resize end",y),Y(J),document.removeEventListener("mousemove",Y),document.removeEventListener("mouseup",ne),c=!1,$()},Y=function(J){if(c){J.preventDefault();var V=(0,i.Z4)([J.screenX,J.screenY],P()),te=(0,i.Z4)(V,v);y=(0,i.CO)(E,(0,i.tk)(j,te),[1,1]),y[0]=Math.max(y[0],150*o),y[1]=Math.max(y[1],50*o),B(y)}}},37912:function(O,h,n){"use strict";n.d(h,{Nh:function(){return t},WK:function(){return E},tk:function(){return j},y4:function(){return s}});var e=n(47454),i=n(6544);/** + */function r(Z,V,q,ce,se,fe,ge){try{var Ie=Z[fe](ge),je=Ie.value}catch(Ee){q(Ee);return}Ie.done?V(je):Promise.resolve(je).then(ce,se)}function s(Z){return function(){var V=this,q=arguments;return new Promise(function(ce,se){var fe=Z.apply(V,q);function ge(je){r(fe,ce,se,ge,Ie,"next",je)}function Ie(je){r(fe,ce,se,ge,Ie,"throw",je)}ge(void 0)})}}function g(Z,V){var q,ce,se,fe,ge={label:0,sent:function(){if(se[0]&1)throw se[1];return se[1]},trys:[],ops:[]};return fe={next:Ie(0),throw:Ie(1),return:Ie(2)},typeof Symbol=="function"&&(fe[Symbol.iterator]=function(){return this}),fe;function Ie(Ee){return function(Ne){return je([Ee,Ne])}}function je(Ee){if(q)throw new TypeError("Generator is already executing.");for(;ge;)try{if(q=1,ce&&(se=Ee[0]&2?ce.return:Ee[0]?ce.throw||((se=ce.return)&&se.call(ce),0):ce.next)&&!(se=se.call(ce,Ee[1])).done)return se;switch(ce=0,se&&(Ee=[Ee[0]&2,se.value]),Ee[0]){case 0:case 1:se=Ee;break;case 4:return ge.label++,{value:Ee[1],done:!1};case 5:ge.label++,ce=Ee[1],Ee=[0];continue;case 7:Ee=ge.ops.pop(),ge.trys.pop();continue;default:if(se=ge.trys,!(se=se.length>0&&se[se.length-1])&&(Ee[0]===6||Ee[0]===2)){ge=0;continue}if(Ee[0]===3&&(!se||Ee[1]>se[0]&&Ee[1]je&&(se[ge]=je-V[ge],fe=!0)}return[fe,se]},G=function(Z){var V;x.log("drag start"),i=!0,v=(0,o.Z4)([Z.screenX,Z.screenY],_()),(V=Z.target)==null||V.focus(),document.addEventListener("mousemove",ee),document.addEventListener("mouseup",Y),ee(Z)},Y=function(Z){x.log("drag end"),ee(Z),document.removeEventListener("mousemove",ee),document.removeEventListener("mouseup",Y),i=!1,$()},ee=function(Z){i&&(Z.preventDefault(),S((0,o.Z4)([Z.screenX,Z.screenY],v)))},le=function(Z,V){return function(q){var ce;E=[Z,V],x.log("resize start",E),c=!0,v=(0,o.Z4)([q.screenX,q.screenY],_()),j=I(),(ce=q.target)==null||ce.focus(),document.addEventListener("mousemove",Q),document.addEventListener("mouseup",ne),Q(q)}},ne=function(Z){x.log("resize end",O),Q(Z),document.removeEventListener("mousemove",Q),document.removeEventListener("mouseup",ne),c=!1,$()},Q=function(Z){if(c){Z.preventDefault();var V=(0,o.Z4)([Z.screenX,Z.screenY],_()),q=(0,o.Z4)(V,v);O=(0,o.CO)(j,(0,o.tk)(E,q),[1,1]),O[0]=Math.max(O[0],150*a),O[1]=Math.max(O[1],50*a),T(O)}}},37912:function(y,u,n){"use strict";n.d(u,{Nh:function(){return t},WK:function(){return j},tk:function(){return E},y4:function(){return s}});var e=n(47454),o=n(6544);/** * Normalized browser focus events and BYOND-specific focus helpers. * * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var t=new e.b,r=!1,s=function(D){D===void 0&&(D={}),r=!!D.ignoreWindowFocus},g,x=!0,u=function(D,S){if(r){x=!0;return}if(g&&(clearTimeout(g),g=null),S){g=setTimeout(function(){return u(D)});return}x!==D&&(x=D,t.emit(D?"window-focus":"window-blur"),t.emit("window-focus-change",D))},o=null,l=function(D){var S=String(D.tagName).toLowerCase();return S==="input"||S==="textarea"},a=function(D){c(),o=D,o.addEventListener("blur",c)},c=function(){o&&(o.removeEventListener("blur",c),o=null)},f=null,m=null,v=[],j=function(D){v.push(D)},E=function(D){var S=v.indexOf(D);S>=0&&v.splice(S,1)},y=function(D){if(!(o||!x))for(var S=document.body;D&&D!==S;){if(v.includes(D)){if(D.contains(f))return;f=D,D.focus();return}D=D.parentElement}};window.addEventListener("mousemove",function(D){var S=D.target;S!==m&&v.length<2&&(m=S,y(S))}),window.addEventListener("click",function(D){var S=D.target;S!==m&&(m=S,y(S))}),window.addEventListener("focusin",function(D){m=null,f=D.target,u(!0),l(D.target)&&a(D.target)}),window.addEventListener("focusout",function(D){m=null,u(!1,!0)}),window.addEventListener("blur",function(D){m=null,u(!1,!0)}),window.addEventListener("beforeunload",function(D){u(!1)});var M={},P=function(){"use strict";function D(B,T,L){this.event=B,this.type=T,this.code=B.keyCode,this.ctrl=B.ctrlKey,this.shift=B.shiftKey,this.alt=B.altKey,this.repeat=!!L}var S=D.prototype;return S.hasModifierKeys=function(){return this.ctrl||this.alt||this.shift},S.isModifierKey=function(){return this.code===i.Ss||this.code===i.re||this.code===i.cH},S.isDown=function(){return this.type==="keydown"},S.isUp=function(){return this.type==="keyup"},S.toString=function(){return this._str?this._str:(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=i.sV&&this.code<=i.Yw?this._str+="F"+(this.code-111):this._str+="["+this.code+"]",this._str)},D}();document.addEventListener("keydown",function(D){if(!l(D.target)){var S=D.keyCode,B=new P(D,"keydown",M[S]);t.emit("keydown",B),t.emit("key",B),M[S]=!0}}),document.addEventListener("keyup",function(D){if(!l(D.target)){var S=D.keyCode,B=new P(D,"keyup");t.emit("keyup",B),t.emit("key",B),M[S]=!1}})},49945:function(O,h,n){"use strict";n.d(h,{$:function(){return e}});/** + */var t=new e.b,r=!1,s=function(I){I===void 0&&(I={}),r=!!I.ignoreWindowFocus},g,x=!0,d=function(I,S){if(r){x=!0;return}if(g&&(clearTimeout(g),g=null),S){g=setTimeout(function(){return d(I)});return}x!==I&&(x=I,t.emit(I?"window-focus":"window-blur"),t.emit("window-focus-change",I))},a=null,l=function(I){var S=String(I.tagName).toLowerCase();return S==="input"||S==="textarea"},i=function(I){c(),a=I,a.addEventListener("blur",c)},c=function(){a&&(a.removeEventListener("blur",c),a=null)},f=null,m=null,v=[],E=function(I){v.push(I)},j=function(I){var S=v.indexOf(I);S>=0&&v.splice(S,1)},O=function(I){if(!(a||!x))for(var S=document.body;I&&I!==S;){if(v.includes(I)){if(I.contains(f))return;f=I,I.focus();return}I=I.parentElement}};window.addEventListener("mousemove",function(I){var S=I.target;S!==m&&v.length<2&&(m=S,O(S))}),window.addEventListener("click",function(I){var S=I.target;S!==m&&(m=S,O(S))}),window.addEventListener("focusin",function(I){m=null,f=I.target,d(!0),l(I.target)&&i(I.target)}),window.addEventListener("focusout",function(I){m=null,d(!1,!0)}),window.addEventListener("blur",function(I){m=null,d(!1,!0)}),window.addEventListener("beforeunload",function(I){d(!1)});var M={},_=function(){"use strict";function I(T,A,K){this.event=T,this.type=A,this.code=T.keyCode,this.ctrl=T.ctrlKey,this.shift=T.shiftKey,this.alt=T.altKey,this.repeat=!!K}var S=I.prototype;return S.hasModifierKeys=function(){return this.ctrl||this.alt||this.shift},S.isModifierKey=function(){return this.code===o.Ss||this.code===o.re||this.code===o.cH},S.isDown=function(){return this.type==="keydown"},S.isUp=function(){return this.type==="keyup"},S.toString=function(){return this._str?this._str:(this._str="",this.ctrl&&(this._str+="Ctrl+"),this.alt&&(this._str+="Alt+"),this.shift&&(this._str+="Shift+"),this.code>=48&&this.code<=90?this._str+=String.fromCharCode(this.code):this.code>=o.sV&&this.code<=o.Yw?this._str+="F"+(this.code-111):this._str+="["+this.code+"]",this._str)},I}();document.addEventListener("keydown",function(I){if(!l(I.target)){var S=I.keyCode,T=new _(I,"keydown",M[S]);t.emit("keydown",T),t.emit("key",T),M[S]=!0}}),document.addEventListener("keyup",function(I){if(!l(I.target)){var S=I.keyCode,T=new _(I,"keyup");t.emit("keyup",T),t.emit("key",T),M[S]=!1}})},49945:function(y,u,n){"use strict";n.d(u,{$:function(){return e}});/** * Various focus helpers. * * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=function(){Byond.winset("mapwindow.map",{focus:!0})},i=function(){Byond.winset(Byond.windowId,{focus:!0})}},41242:function(O,h,n){"use strict";n.d(h,{QL:function(){return t},d5:function(){return r},fU:function(){return o},qQ:function(){return l},up:function(){return s}});/** + */var e=function(){Byond.winset("mapwindow.map",{focus:!0})},o=function(){Byond.winset(Byond.windowId,{focus:!0})}},41242:function(y,u,n){"use strict";n.d(u,{QL:function(){return t},d5:function(){return r},fU:function(){return a},qQ:function(){return l},up:function(){return s}});/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */var e=["f","p","n","\u03BC","m"," ","k","M","G","T","P","E","Z","Y","R","Q","F","N","H"],i=e.indexOf(" "),t=function(a,c,f){if(c===void 0&&(c=-i),f===void 0&&(f=""),!isFinite(a))return a.toString();var m=Math.floor(Math.log10(Math.abs(a))),v=Math.max(c*3,m),j=Math.floor(v/3),E=e[Math.min(j+i,e.length-1)],y=a/Math.pow(1e3,j),M=y.toFixed(2);return M.endsWith(".00")?M=M.slice(0,-3):M.endsWith(".0")&&(M=M.slice(0,-2)),(M+" "+E.trim()+f).trim()},r=function(a,c){return c===void 0&&(c=0),t(a,c,"W")},s=function(a,c){if(c===void 0&&(c=0),!Number.isFinite(a))return String(a);var f=Number(a.toFixed(c)),m=f<0,v=Math.abs(f),j=v.toString().split(".");j[0]=j[0].replace(/\B(?=(\d{3})+(?!\d))/g,"\u2009");var E=j.join(".");return m?"-"+E:E},g=function(a){var c=20*Math.log10(a),f=c>=0?"+":"-",m=Math.abs(c);return m===1/0?m="Inf":m=m.toFixed(2),""+f+m+" dB"},x=null,u=function(a,c,f){if(c===void 0&&(c=0),f===void 0&&(f=""),!isFinite(a))return"NaN";var m=Math.floor(Math.log10(a)),v=Math.max(c*3,m),j=Math.floor(v/3),E=x[j],y=a/Math.pow(1e3,j),M=Math.max(0,2-v%3),P=y.toFixed(M);return(P+" "+E+" "+f).trim()},o=function(a,c){c===void 0&&(c="default");var f=Math.floor(a/10),m=Math.floor(f/3600),v=Math.floor(f%3600/60),j=f%60;if(c==="short"){var E=m>0?""+m+"h":"",y=v>0?""+v+"m":"",M=j>0?""+j+"s":"";return""+E+y+M}var P=String(m).padStart(2,"0"),D=String(v).padStart(2,"0"),S=String(j).padStart(2,"0");return P+":"+D+":"+S},l=function(a){if(!Number.isFinite(a))return a;var c=a.toString().split(".");return c[0]=c[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),c.join(".")}},52130:function(O,h,n){"use strict";n.d(h,{Bm:function(){return E}});var e=n(6544),i=n(37912),t=n(92736);/** + */var e=["f","p","n","\u03BC","m"," ","k","M","G","T","P","E","Z","Y","R","Q","F","N","H"],o=e.indexOf(" "),t=function(i,c,f){if(c===void 0&&(c=-o),f===void 0&&(f=""),!isFinite(i))return i.toString();var m=Math.floor(Math.log10(Math.abs(i))),v=Math.max(c*3,m),E=Math.floor(v/3),j=e[Math.min(E+o,e.length-1)],O=i/Math.pow(1e3,E),M=O.toFixed(2);return M.endsWith(".00")?M=M.slice(0,-3):M.endsWith(".0")&&(M=M.slice(0,-2)),(M+" "+j.trim()+f).trim()},r=function(i,c){return c===void 0&&(c=0),t(i,c,"W")},s=function(i,c){if(c===void 0&&(c=0),!Number.isFinite(i))return String(i);var f=Number(i.toFixed(c)),m=f<0,v=Math.abs(f),E=v.toString().split(".");E[0]=E[0].replace(/\B(?=(\d{3})+(?!\d))/g,"\u2009");var j=E.join(".");return m?"-"+j:j},g=function(i){var c=20*Math.log10(i),f=c>=0?"+":"-",m=Math.abs(c);return m===1/0?m="Inf":m=m.toFixed(2),""+f+m+" dB"},x=null,d=function(i,c,f){if(c===void 0&&(c=0),f===void 0&&(f=""),!isFinite(i))return"NaN";var m=Math.floor(Math.log10(i)),v=Math.max(c*3,m),E=Math.floor(v/3),j=x[E],O=i/Math.pow(1e3,E),M=Math.max(0,2-v%3),_=O.toFixed(M);return(_+" "+j+" "+f).trim()},a=function(i,c){c===void 0&&(c="default");var f=Math.floor(i/10),m=Math.floor(f/3600),v=Math.floor(f%3600/60),E=f%60;if(c==="short"){var j=m>0?""+m+"h":"",O=v>0?""+v+"m":"",M=E>0?""+E+"s":"";return""+j+O+M}var _=String(m).padStart(2,"0"),I=String(v).padStart(2,"0"),S=String(E).padStart(2,"0");return _+":"+I+":"+S},l=function(i){if(!Number.isFinite(i))return i;var c=i.toString().split(".");return c[0]=c[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),c.join(".")}},52130:function(y,u,n){"use strict";n.d(u,{Bm:function(){return j}});var e=n(6544),o=n(37912),t=n(92736);/** * @file * @copyright 2020 Aleksej Komarov * @license MIT - */function r(M,P){(P==null||P>M.length)&&(P=M.length);for(var D=0,S=new Array(P);D=M.length?{done:!0}:{done:!1,value:M[S++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var x=(0,t.h)("hotkeys"),u={},o=[e.s6,e.Ri,e.iy,e.aW,e.Ss,e.re,e.gf,e.R,e.iU,e.zh,e.sP],l={},a=[],c=function(M){if(M===16)return"Shift";if(M===17)return"Ctrl";if(M===18)return"Alt";if(M===33)return"Northeast";if(M===34)return"Southeast";if(M===35)return"Southwest";if(M===36)return"Northwest";if(M===37)return"West";if(M===38)return"North";if(M===39)return"East";if(M===40)return"South";if(M===45)return"Insert";if(M===46)return"Delete";if(M>=48&&M<=57||M>=65&&M<=90)return String.fromCharCode(M);if(M>=96&&M<=105)return"Numpad"+(M-96);if(M>=112&&M<=123)return"F"+(M-111);if(M===188)return",";if(M===189)return"-";if(M===190)return"."},f=function(M){var P=String(M);if(P==="Ctrl+F5"||P==="Ctrl+R"){location.reload();return}if(P!=="Ctrl+F"&&!(M.event.defaultPrevented||M.isModifierKey()||o.includes(M.code))){var D=c(M.code);if(D){var S=u[D];if(S)return x.debug("macro",S),Byond.command(S);if(M.isDown()&&!l[D]){l[D]=!0;var B='TguiKeyDown "'+D+'"';return x.debug(B),Byond.command(B)}if(M.isUp()&&l[D]){l[D]=!1;var T='TguiKeyUp "'+D+'"';return x.debug(T),Byond.command(T)}}}},m=function(M){o.push(M)},v=function(M){var P=o.indexOf(M);P>=0&&o.splice(P,1)},j=function(){for(var M=g(Object.keys(l)),P;!(P=M()).done;){var D=P.value;l[D]&&(l[D]=!1,x.log('releasing key "'+D+'"'),Byond.command('TguiKeyUp "'+D+'"'))}},E=function(){Byond.winget("default.*").then(function(M){for(var P={},D=g(Object.keys(M)),S;!(S=D()).done;){var B=S.value,T=B.split("."),L=T[1],W=T[2];L&&W&&(P[L]||(P[L]={}),P[L][W]=M[B])}for(var $=/\\"/g,k=function(se){return se.substring(1,se.length-1).replace($,'"')},z=g(Object.keys(P)),X;!(X=z()).done;){var G=X.value,Q=P[G],ee=k(Q.name);u[ee]=k(Q.command)}x.debug("loaded macros",u)}),i.Nh.on("window-blur",function(){j()}),i.Nh.on("key",function(M){for(var P=g(a),D;!(D=P()).done;){var S=D.value;S(M)}f(M)})},y=function(M){a.push(M);var P=!1;return function(){P||(P=!0,a.splice(a.indexOf(M),1))}}},20544:function(O,h,n){"use strict";n.r(h),n.d(h,{AICard:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.name,a=o.has_ai,c=o.integrity,f=o.backup_capacitor,m=o.flushing,v=o.has_laws,j=o.laws,E=o.wireless,y=o.radio;if(a){var M;c>=75?M="green":c>=25?M="yellow":M="red";var P;return f>=75&&(P="green"),f>=25?P="yellow":P="red",(0,e.jsx)(r.p8,{width:600,height:470,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.wn,{title:"Stored AI",children:[(0,e.jsx)(t.az,{bold:!0,inline:!0,children:(0,e.jsx)("h3",{children:l})}),(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsx)(t.z2,{color:M,value:c/100})}),(0,e.jsx)(t.Ki.Item,{label:"Power",children:(0,e.jsx)(t.z2,{color:P,value:f/100})})]})}),(0,e.jsx)(t.az,{color:"red",children:(0,e.jsx)("h2",{children:m===1?"Wipe of AI in progress...":""})})]}),(0,e.jsx)(t.wn,{title:"Laws",children:!!v&&(0,e.jsx)(t.az,{children:j.map(function(D,S){return(0,e.jsx)(t.az,{inline:!0,children:D},S)})})||(0,e.jsx)(t.az,{color:"red",children:(0,e.jsx)("h3",{children:"No laws detected."})})}),(0,e.jsx)(t.wn,{title:"Actions",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Wireless Activity",children:(0,e.jsx)(t.$n,{icon:E?"check":"times",color:E?"green":"red",onClick:function(){return u("wireless")},children:E?"Enabled":"Disabled"})}),(0,e.jsx)(t.Ki.Item,{label:"Subspace Transceiver",children:(0,e.jsx)(t.$n,{icon:y?"check":"times",color:y?"green":"red",onClick:function(){return u("radio")},children:y?"Enabled":"Disabled"})}),(0,e.jsx)(t.Ki.Item,{label:"AI Power",children:(0,e.jsx)(t.$n.Confirm,{icon:"radiation",confirmIcon:"radiation",disabled:m||c===0,confirmColor:"red",onClick:function(){return u("wipe")},children:"Shutdown"})})]})})]})})}else return(0,e.jsx)(r.p8,{width:600,height:470,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Stored AI",children:(0,e.jsx)(t.az,{children:(0,e.jsx)("h3",{children:"No AI detected."})})})})})}},43252:function(O,h,n){"use strict";n.r(h),n.d(h,{APC:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(72859),g=n(98071),x=function(f){var m=(0,i.Oc)(),v=m.act,j=m.data,E=j.gridCheck,y=j.failTime,M=(0,e.jsx)(l,{});return E?M=(0,e.jsx)(a,{}):y&&(M=(0,e.jsx)(c,{})),(0,e.jsx)(r.p8,{width:450,height:475,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:M})})},u={2:{color:"good",externalPowerText:"External Power",chargingText:"Fully Charged"},1:{color:"average",externalPowerText:"Low External Power",chargingText:"Charging"},0:{color:"bad",externalPowerText:"No External Power",chargingText:"Not Charging"}},o={1:{icon:"terminal",content:"Override Programming",action:"hack"}},l=function(f){var m=(0,i.Oc)(),v=m.act,j=m.data,E=j.locked,y=j.siliconUser,M=j.externalPower,P=j.chargingStatus,D=j.powerChannels,S=j.powerCellStatus,B=j.emagged,T=j.isOperating,L=j.chargeMode,W=j.totalCharging,$=j.totalLoad,k=j.coverLocked,z=j.nightshiftSetting,X=j.emergencyLights,G=E&&!y,Q=u[M]||u[0],ee=u[P]||u[0],se=D||[],ne=S/100;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.InterfaceLockNoticeBox,{deny:B,denialMessage:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"bad",fontSize:"1.5rem",children:"Fault in ID authenticator."}),(0,e.jsx)(t.az,{color:"bad",children:"Please contact maintenance for service."})]})}),(0,e.jsx)(t.wn,{title:"Power Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Main Breaker",color:Q.color,buttons:(0,e.jsx)(t.$n,{icon:T?"power-off":"times",selected:T&&!G,color:T?"":"bad",disabled:G,onClick:function(){return v("breaker")},children:T?"On":"Off"}),children:["[ ",Q.externalPowerText," ]"]}),(0,e.jsx)(t.Ki.Item,{label:"Power Cell",children:(0,e.jsx)(t.z2,{color:"good",value:ne})}),(0,e.jsxs)(t.Ki.Item,{label:"Charge Mode",color:ee.color,buttons:(0,e.jsx)(t.$n,{icon:L?"sync":"times",selected:L,disabled:G,onClick:function(){return v("charge")},children:L?"Auto":"Off"}),children:["[ ",ee.chargingText," ]"]})]})}),(0,e.jsx)(t.wn,{title:"Power Channels",children:(0,e.jsxs)(t.Ki,{children:[se.map(function(Y){var J=Y.topicParams;return(0,e.jsxs)(t.Ki.Item,{label:Y.title,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{inline:!0,mx:2,color:Y.status>=2?"good":"bad",children:Y.status>=2?"On":"Off"}),(0,e.jsx)(t.$n,{icon:"sync",selected:!G&&(Y.status===1||Y.status===3),disabled:G,onClick:function(){return v("channel",J.auto)},children:"Auto"}),(0,e.jsx)(t.$n,{icon:"power-off",selected:!G&&Y.status===2,disabled:G,onClick:function(){return v("channel",J.on)},children:"On"}),(0,e.jsx)(t.$n,{icon:"times",selected:!G&&Y.status===0,disabled:G,onClick:function(){return v("channel",J.off)},children:"Off"})]}),children:[Y.powerLoad," W"]},Y.title)}),(0,e.jsx)(t.Ki.Item,{label:"Total Load",children:W?(0,e.jsxs)("b",{children:[$," W (+ ",W," W charging)"]}):(0,e.jsxs)("b",{children:[$," W"]})})]})}),(0,e.jsx)(t.wn,{title:"Misc",buttons:!!j.siliconUser&&(0,e.jsx)(t.$n,{icon:"lightbulb-o",onClick:function(){return v("overload")},children:"Overload"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Cover Lock",buttons:(0,e.jsx)(t.$n,{icon:k?"lock":"unlock",selected:k,disabled:G,onClick:function(){return v("cover")},children:k?"Engaged":"Disengaged"})}),(0,e.jsx)(t.Ki.Item,{label:"Night Shift Lighting",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:z===2,onClick:function(){return v("nightshift",{nightshift:2})},children:"Disabled"}),(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:z===1,onClick:function(){return v("nightshift",{nightshift:1})},children:"Automatic"}),(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:z===3,onClick:function(){return v("nightshift",{nightshift:3})},children:"Enabled"})]})}),(0,e.jsx)(t.Ki.Item,{label:"Emergency Lighting",buttons:(0,e.jsx)(t.$n,{icon:"lightbulb-o",selected:X,onClick:function(){return v("emergency_lighting")},children:X?"Enabled":"Disabled"})})]})})]})},a=function(f){return(0,e.jsxs)(s.FullscreenNotice,{title:"System Failure",children:[(0,e.jsx)(t.az,{fontSize:"1.5rem",bold:!0,children:(0,e.jsx)(t.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"})}),(0,e.jsx)(t.az,{fontSize:"1.5rem",bold:!0,children:"Power surge detected, grid check in effect..."})]})},c=function(f){var m=(0,i.Oc)(),v=m.data,j=m.act,E=v.locked,y=v.siliconUser,M=v.failTime,P=(0,e.jsx)(t.$n,{icon:"repeat",color:"good",onClick:function(){return j("reboot")},children:"Restart Now"});return E&&!y&&(P=(0,e.jsx)(t.az,{color:"bad",children:"Swipe an ID card for manual reboot."})),(0,e.jsxs)(t.Rr,{textAlign:"center",children:[(0,e.jsx)(t.az,{color:"bad",children:(0,e.jsx)("h1",{children:"SYSTEM FAILURE"})}),(0,e.jsx)(t.az,{color:"average",children:(0,e.jsx)("h2",{children:"I/O regulators malfunction detected! Waiting for system reboot..."})}),(0,e.jsxs)(t.az,{color:"good",children:["Automatic reboot in ",M," seconds..."]}),(0,e.jsx)(t.az,{mt:4,children:P})]})}},77056:function(O,h,n){"use strict";n.r(h),n.d(h,{AccountsTerminal:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.id_inserted,v=f.id_card,j=f.access_level,E=f.machine_id;return(0,e.jsx)(r.p8,{width:400,height:640,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Machine",color:"average",children:E}),(0,e.jsx)(t.Ki.Item,{label:"ID",children:(0,e.jsx)(t.$n,{icon:m?"eject":"sign-in-alt",fluid:!0,onClick:function(){return c("insert_card")},children:v})})]})}),j>0&&(0,e.jsx)(g,{})]})})},g=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.creating_new_account,v=f.detailed_account_view;return(0,e.jsxs)(t.wn,{title:"Menu",children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:!m&&!v,icon:"home",onClick:function(){return c("view_accounts_list")},children:"Home"}),(0,e.jsx)(t.tU.Tab,{selected:!!m,icon:"cog",onClick:function(){return c("create_account")},children:"New Account"}),m?"":(0,e.jsx)(t.tU.Tab,{icon:"print",onClick:function(){return c("print")},children:"Print"})]}),m&&(0,e.jsx)(x,{})||v&&(0,e.jsx)(u,{})||(0,e.jsx)(o,{})]})},x=function(l){var a=(0,i.Oc)().act,c=(0,i.QY)("holder",""),f=c[0],m=c[1],v=(0,i.QY)("money",""),j=v[0],E=v[1];return(0,e.jsxs)(t.wn,{title:"Create Account",children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Account Holder",children:(0,e.jsx)(t.pd,{value:f,fluid:!0,onInput:function(y,M){return m(M)}})}),(0,e.jsx)(t.Ki.Item,{label:"Initial Deposit",children:(0,e.jsx)(t.pd,{value:j,fluid:!0,onInput:function(y,M){return E(M)}})})]}),(0,e.jsx)(t.$n,{disabled:!f||!j,mt:1,fluid:!0,icon:"plus",onClick:function(){return a("finalise_create_account",{holder_name:f,starting_funds:j})},children:"Create"})]})},u=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.access_level,v=f.station_account_number,j=f.account_number,E=f.owner_name,y=f.money,M=f.suspended,P=f.transactions;return(0,e.jsxs)(t.wn,{title:"Account Details",buttons:(0,e.jsx)(t.$n,{icon:"ban",selected:M,onClick:function(){return c("toggle_suspension")},children:"Suspend"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Account Number",children:["#",j]}),(0,e.jsx)(t.Ki.Item,{label:"Holder",children:E}),(0,e.jsxs)(t.Ki.Item,{label:"Balance",children:[y,"\u20AE"]}),(0,e.jsx)(t.Ki.Item,{label:"Status",color:M?"bad":"good",children:M?"SUSPENDED":"Active"})]}),(0,e.jsx)(t.wn,{title:"CentCom Administrator",mt:1,children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Payroll",children:(0,e.jsx)(t.$n.Confirm,{color:"bad",fluid:!0,icon:"ban",confirmIcon:"ban",confirmContent:"This cannot be undone.",disabled:j===v,onClick:function(){return c("revoke_payroll")},children:"Revoke"})})})}),m>=2&&(0,e.jsxs)(t.wn,{title:"Silent Funds Transfer",children:[(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return c("add_funds")},children:"Add Funds"}),(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return c("remove_funds")},children:"Remove Funds"})]}),(0,e.jsx)(t.wn,{title:"Transactions",mt:1,children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Timestamp"}),(0,e.jsx)(t.XI.Cell,{children:"Target"}),(0,e.jsx)(t.XI.Cell,{children:"Reason"}),(0,e.jsx)(t.XI.Cell,{children:"Value"}),(0,e.jsx)(t.XI.Cell,{children:"Terminal"})]}),P.map(function(D,S){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{children:[D.date," ",D.time]}),(0,e.jsx)(t.XI.Cell,{children:D.target_name}),(0,e.jsx)(t.XI.Cell,{children:D.purpose}),(0,e.jsxs)(t.XI.Cell,{children:[D.amount,"\u20AE"]}),(0,e.jsx)(t.XI.Cell,{children:D.source_terminal})]},S)})]})})]})},o=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.accounts;return(0,e.jsx)(t.wn,{title:"NanoTrasen Accounts",children:m.length&&(0,e.jsx)(t.Ki,{children:m.map(function(v){return(0,e.jsx)(t.Ki.Item,{label:v.owner_name+v.suspended,color:v.suspended?"bad":void 0,children:(0,e.jsx)(t.$n,{fluid:!0,onClick:function(){return c("view_account_detail",{account_index:v.account_index})},children:"#"+v.account_number})},v.account_index)})})||(0,e.jsx)(t.az,{color:"bad",children:"There are no accounts available."})})}},16980:function(O,h,n){"use strict";n.r(h),n.d(h,{AdminShuttleController:function(){return g},ShuttleList:function(){return x}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(){return(0,e.jsx)(s.p8,{width:600,height:600,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(x,{})})})},x=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.shuttles,m=c.overmap_ships;return(0,e.jsxs)(r.wn,{noTopPadding:!0,children:[(0,e.jsx)(r.wn,{title:"Classic Shuttles",children:(0,e.jsx)(r.XI,{children:(0,i.Ul)(f,function(v){return v.name}).map(function(v){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{m:0,onClick:function(){return a("adminobserve",{ref:v.ref})},children:"JMP"})}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{m:0,onClick:function(){return a("classicmove",{ref:v.ref})},children:"Fly"})}),(0,e.jsx)(r.XI.Cell,{children:v.name}),(0,e.jsx)(r.XI.Cell,{children:v.current_location}),(0,e.jsx)(r.XI.Cell,{children:u(v.status)})]},v.ref)})})}),(0,e.jsx)(r.wn,{title:"Overmap Ships",children:(0,e.jsx)(r.XI,{children:(0,i.Ul)(m,function(v){var j;return((j=v.name)==null?void 0:j.toLowerCase())||v.name||v.ref}).map(function(v){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return a("adminobserve",{ref:v.ref})},children:"JMP"})}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return a("overmap_control",{ref:v.ref})},children:"Control"})}),(0,e.jsx)(r.XI.Cell,{children:v.name})]},v.ref)})})})]})},u=function(o){switch(o){case 0:return"Idle";case 1:return"Warmup";case 2:return"Transit";default:return"UNK"}}},15301:function(O,h,n){"use strict";n.r(h),n.d(h,{AdminTicketPanel:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g={open:"Open",resolved:"Resolved",closed:"Closed",unknown:"Unknown"},x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.id,f=a.title,m=a.name,v=a.state,j=a.opened_at,E=a.closed_at,y=a.opened_at_date,M=a.closed_at_date,P=a.actions,D=a.log;return(0,e.jsx)(s.p8,{width:900,height:600,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(r.wn,{title:"Ticket #"+c,buttons:(0,e.jsxs)(r.az,{nowrap:!0,children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return l("retitle")},children:"Rename Ticket"}),(0,e.jsx)(r.$n,{onClick:function(){return l("legacy")},children:"Legacy UI"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Admin Help Ticket",children:["#",c,": ",(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:m}})]}),(0,e.jsx)(r.Ki.Item,{label:"State",children:g[v]}),g[v]===g.open?(0,e.jsx)(r.Ki.Item,{label:"Opened At",children:y+" ("+(0,i.Mg)((0,i.LI)(j/600*10,0)/10,1)+" minutes ago.)"}):(0,e.jsxs)(r.Ki.Item,{label:"Closed At",children:[M+" ("+(0,i.Mg)((0,i.LI)(E/600*10,0)/10,1)+" minutes ago.)",(0,e.jsx)(r.$n,{onClick:function(){return l("reopen")},children:"Reopen"})]}),(0,e.jsx)(r.Ki.Item,{label:"Actions",children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:P}})}),(0,e.jsx)(r.Ki.Item,{label:"Log",children:Object.keys(D).map(function(S,B){return(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:D[S]}},B)})})]})})})})}},14415:function(O,h,n){"use strict";n.r(h),n.d(h,{AgentCard:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.entries,a=o.electronic_warfare;return(0,e.jsx)(r.p8,{width:550,height:400,theme:"syndicate",children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Info",children:(0,e.jsx)(t.XI,{children:l.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{onClick:function(){return u(c.name.toLowerCase().replace(/ /g,""))},icon:"cog"})}),(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsx)(t.XI.Cell,{children:c.value})]},c.name)})})}),(0,e.jsx)(t.wn,{title:"Electronic Warfare",children:(0,e.jsx)(t.$n.Checkbox,{checked:a,onClick:function(){return u("electronic_warfare")},children:a?"Electronic warfare is enabled. This will prevent you from being tracked by the AI.":"Electronic warfare disabled."})})]})})}},40645:function(O,h,n){"use strict";n.r(h),n.d(h,{AiAirlock:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s={2:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},0:{color:"bad",localStatusText:"Offline"}},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.power,c=l.wires,f=l.shock,m=l.shock_timeleft,v=l.id_scanner,j=l.lights,E=l.locked,y=l.safe,M=l.speed,P=l.opened,D=l.welded,S=s[a.main]||s[0],B=s[a.backup]||s[0],T=s[f]||s[0];return(0,e.jsx)(r.p8,{width:500,height:390,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Power Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Main",color:S.color,buttons:(0,e.jsx)(t.$n,{icon:"lightbulb-o",disabled:!a.main,onClick:function(){return o("disrupt-main")},children:"Disrupt"}),children:[a.main?"Online":"Offline"," ",(!c.main_1||!c.main_2)&&"[Wires have been cut!]"||a.main_timeleft>0&&"["+a.main_timeleft+"s]"]}),(0,e.jsxs)(t.Ki.Item,{label:"Backup",color:B.color,buttons:(0,e.jsx)(t.$n,{icon:"lightbulb-o",disabled:!a.backup,onClick:function(){return o("disrupt-backup")},children:"Disrupt"}),children:[a.backup?"Online":"Offline"," ",(!c.backup_1||!c.backup_2)&&"[Wires have been cut!]"||a.backup_timeleft>0&&"["+a.backup_timeleft+"s]"]}),(0,e.jsxs)(t.Ki.Item,{label:"Electrify",color:T.color,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"wrench",disabled:!(c.shock&&f===0),onClick:function(){return o("shock-restore")},children:"Restore"}),(0,e.jsx)(t.$n,{icon:"bolt",disabled:!c.shock,onClick:function(){return o("shock-temp")},children:"Temporary"}),(0,e.jsx)(t.$n,{icon:"bolt",disabled:!c.shock,onClick:function(){return o("shock-perm")},children:"Permanent"})]}),children:[f===2?"Safe":"Electrified"," ",!c.shock&&"[Wires have been cut!]"||m>0&&"["+m+"s]"||m===-1&&"[Permanent]"]})]})}),(0,e.jsx)(t.wn,{title:"Access and Door Control",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"ID Scan",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:v?"power-off":"times",selected:v,disabled:!c.id_scanner,onClick:function(){return o("idscan-toggle")},children:v?"Enabled":"Disabled"}),children:!c.id_scanner&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Divider,{}),(0,e.jsx)(t.Ki.Item,{label:"Door Bolts",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:E?"lock":"unlock",selected:E,disabled:!c.bolts,onClick:function(){return o("bolt-toggle")},children:E?"Lowered":"Raised"}),children:!c.bolts&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Item,{label:"Door Bolt Lights",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:j?"power-off":"times",selected:j,disabled:!c.lights,onClick:function(){return o("light-toggle")},children:j?"Enabled":"Disabled"}),children:!c.lights&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Item,{label:"Door Force Sensors",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:y?"power-off":"times",selected:y,disabled:!c.safe,onClick:function(){return o("safe-toggle")},children:y?"Enabled":"Disabled"}),children:!c.safe&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Item,{label:"Door Timing Safety",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:M?"power-off":"times",selected:M,disabled:!c.timing,onClick:function(){return o("speed-toggle")},children:M?"Enabled":"Disabled"}),children:!c.timing&&"[Wires have been cut!]"}),(0,e.jsx)(t.Ki.Divider,{}),(0,e.jsx)(t.Ki.Item,{label:"Door Control",color:"bad",buttons:(0,e.jsx)(t.$n,{icon:P?"sign-out-alt":"sign-in-alt",selected:P,disabled:E||D,onClick:function(){return o("open-close")},children:P?"Open":"Closed"}),children:!!(E||D)&&(0,e.jsxs)("span",{children:["[Door is ",E?"bolted":"",E&&D?" and ":"",D?"welded":"","!]"]})})]})})]})})}},89570:function(O,h,n){"use strict";n.r(h),n.d(h,{AiRestorer:function(){return s},AiRestorerContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:370,height:360,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.AI_present,c=l.error,f=l.name,m=l.laws,v=l.isDead,j=l.restoring,E=l.health,y=l.ejectable;return(0,e.jsxs)(e.Fragment,{children:[c&&(0,e.jsx)(t.IC,{textAlign:"center",children:c}),!!y&&(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",disabled:!a,onClick:function(){return o("PRG_eject")},children:a?f:"----------"}),!!a&&(0,e.jsxs)(t.wn,{title:y?"System Status":f,buttons:(0,e.jsx)(t.az,{inline:!0,bold:!0,color:v?"bad":"good",children:v?"Nonfunctional":"Functional"}),children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsx)(t.z2,{value:E,minValue:0,maxValue:100,ranges:{good:[70,1/0],average:[50,70],bad:[-1/0,50]}})})}),!!j&&(0,e.jsx)(t.az,{bold:!0,textAlign:"center",fontSize:"20px",color:"good",mt:1,children:"RECONSTRUCTION IN PROGRESS"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",disabled:j,mt:1,onClick:function(){return o("PRG_beginReconstruction")},children:"Begin Reconstruction"}),(0,e.jsx)(t.wn,{title:"Laws",children:m.map(function(M){return(0,e.jsx)(t.az,{className:"candystripe",children:M},M)})})]})]})}},69622:function(O,h,n){"use strict";n.r(h),n.d(h,{AiSupermatter:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(72859),g=function(o){var l=(0,i.Oc)().data,a=l.detonating,c=(0,e.jsx)(u,{});return a&&(c=(0,e.jsx)(x,{})),(0,e.jsx)(r.p8,{width:500,height:300,children:(0,e.jsx)(r.p8.Content,{children:c})})},x=function(o){return(0,e.jsx)(s.FullscreenNotice,{title:"DETONATION IMMINENT",children:(0,e.jsxs)(t.az,{fontSize:"1.5rem",bold:!0,color:"bad",children:[(0,e.jsx)(t.In,{color:"bad",name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"}),(0,e.jsx)(t.az,{color:"bad",children:"CRYSTAL DELAMINATING"}),(0,e.jsx)(t.az,{color:"bad",children:"Evacuate area immediately"})]})})},u=function(o){var l=(0,i.Oc)().data,a=l.integrity_percentage,c=l.ambient_temp,f=l.ambient_pressure;return(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Crystal Integrity",children:(0,e.jsx)(t.z2,{value:a,maxValue:100,ranges:{good:[90,1/0],average:[25,90],bad:[-1/0,25]}})}),(0,e.jsx)(t.Ki.Item,{label:"Environment Temperature",children:(0,e.jsxs)(t.z2,{value:c,maxValue:1e4,ranges:{bad:[5e3,1/0],average:[4e3,5e3],good:[-1/0,4e3]},children:[c," K"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Environment Pressure",children:[f," kPa"]})]})})}},15991:function(O,h,n){"use strict";n.r(h),n.d(h,{AirAlarm:function(){return l}});var e=n(20462),i=n(4089),t=n(61358),r=n(7081),s=n(88569),g=n(79500),x=n(15581),u=n(26634),o=n(98071),l=function(P){var D=function(ee){X(ee)},S=(0,r.Oc)(),B=S.act,T=S.data,L=T.locked,W=T.siliconUser,$=T.remoteUser,k=(0,t.useState)(""),z=k[0],X=k[1],G=L&&!W&&!$;return(0,e.jsx)(x.p8,{width:440,height:650,children:(0,e.jsxs)(x.p8.Content,{scrollable:!0,children:[(0,e.jsx)(o.InterfaceLockNoticeBox,{}),(0,e.jsx)(a,{}),(0,e.jsx)(c,{}),!G&&(0,e.jsx)(m,{screen:z,onScreen:D})]})})},a=function(P){var D=(0,r.Oc)().data,S=D.environment_data,B=D.atmos_alarm,T=D.fire_alarm,L=D.emagged,W=(S||[]).filter(function(z){return z.value>=.01}),$={0:{color:"good",localStatusText:"Optimal"},1:{color:"average",localStatusText:"Caution"},2:{color:"bad",localStatusText:"Danger (Internals Required)"}},k=$[D.danger_level]||$[0];return(0,e.jsx)(s.wn,{title:"Air Status",children:(0,e.jsxs)(s.Ki,{children:[W.length>0&&(0,e.jsxs)(e.Fragment,{children:[W.map(function(z){var X=$[z.danger_level]||$[0];return(0,e.jsxs)(s.Ki.Item,{label:(0,g.wM)(z.name),color:X.color,children:[(0,i.Mg)(z.value,2),z.unit]},z.name)}),(0,e.jsx)(s.Ki.Item,{label:"Local status",color:k.color,children:k.localStatusText}),(0,e.jsx)(s.Ki.Item,{label:"Area status",color:B||T?"bad":"good",children:B&&"Atmosphere Alarm"||T&&"Fire Alarm"||"Nominal"})]})||(0,e.jsx)(s.Ki.Item,{label:"Warning",color:"bad",children:"Cannot obtain air sample for analysis."}),!!L&&(0,e.jsx)(s.Ki.Item,{label:"Warning",color:"bad",children:"Safety measures offline. Device may exhibit abnormal behavior."})]})})},c=function(P){var D=(0,r.Oc)(),S=D.act,B=D.data,T=B.target_temperature,L=B.rcon;return(0,e.jsx)(s.wn,{title:"Comfort Settings",children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsxs)(s.Ki.Item,{label:"Remote Control",children:[(0,e.jsx)(s.$n,{selected:L===1,onClick:function(){return S("rcon",{rcon:1})},children:"Off"}),(0,e.jsx)(s.$n,{selected:L===2,onClick:function(){return S("rcon",{rcon:2})},children:"Auto"}),(0,e.jsx)(s.$n,{selected:L===3,onClick:function(){return S("rcon",{rcon:3})},children:"On"})]}),(0,e.jsx)(s.Ki.Item,{label:"Thermostat",children:(0,e.jsx)(s.$n,{onClick:function(){return S("temperature")},children:T})})]})})},f={home:{title:"Air Controls",component:function(){return v}},vents:{title:"Vent Controls",component:function(){return j}},scrubbers:{title:"Scrubber Controls",component:function(){return E}},modes:{title:"Operating Mode",component:function(){return y}},thresholds:{title:"Alarm Thresholds",component:function(){return M}}},m=function(P){var D=f[P.screen]||f.home,S=D.component();return(0,e.jsx)(s.wn,{title:D.title,buttons:P.screen&&(0,e.jsx)(s.$n,{icon:"arrow-left",onClick:function(){return P.onScreen()},children:"Back"}),children:(0,e.jsx)(S,{onScreen:P.onScreen})})},v=function(P){var D=(0,r.Oc)(),S=D.act,B=D.data,T=B.mode,L=B.atmos_alarm;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.$n,{icon:L?"exclamation-triangle":"exclamation",color:L&&"caution",onClick:function(){return S(L?"reset":"alarm")},children:"Area Atmosphere Alarm"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:T===3?"exclamation-triangle":"exclamation",color:T===3&&"danger",onClick:function(){return S("mode",{mode:T===3?1:3})},children:"Panic Siphon"}),(0,e.jsx)(s.az,{mt:2}),(0,e.jsx)(s.$n,{icon:"sign-out-alt",onClick:function(){return P.onScreen("vents")},children:"Vent Controls"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:"filter",onClick:function(){return P.onScreen("scrubbers")},children:"Scrubber Controls"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:"cog",onClick:function(){return P.onScreen("modes")},children:"Operating Mode"}),(0,e.jsx)(s.az,{mt:1}),(0,e.jsx)(s.$n,{icon:"chart-bar",onClick:function(){return P.onScreen("thresholds")},children:"Alarm Thresholds"})]})},j=function(P){var D=(0,r.Oc)().data,S=D.vents;return!S||S.length===0?"Nothing to show":S.map(function(B){return(0,e.jsx)(u.Vent,{vent:B},B.id_tag)})},E=function(P){var D=(0,r.Oc)().data,S=D.scrubbers;return!S||S.length===0?"Nothing to show":S.map(function(B){return(0,e.jsx)(u.Scrubber,{scrubber:B},B.id_tag)})},y=function(P){var D=(0,r.Oc)(),S=D.act,B=D.data,T=B.modes;return!T||T.length===0?"Nothing to show":T.map(function(L){return(0,e.jsxs)(t.Fragment,{children:[(0,e.jsx)(s.$n,{icon:L.selected?"check-square-o":"square-o",selected:L.selected,color:L.selected&&L.danger&&"danger",onClick:function(){return S("mode",{mode:L.mode})},children:L.name}),(0,e.jsx)(s.az,{mt:1})]},L.mode)})},M=function(P){var D=(0,r.Oc)(),S=D.act,B=D.data,T=B.thresholds;return(0,e.jsxs)("table",{className:"LabeledList",style:{width:"100%"},children:[(0,e.jsx)("thead",{children:(0,e.jsxs)("tr",{children:[(0,e.jsx)("td",{}),(0,e.jsx)("td",{className:"color-bad",children:"min2"}),(0,e.jsx)("td",{className:"color-average",children:"min1"}),(0,e.jsx)("td",{className:"color-average",children:"max1"}),(0,e.jsx)("td",{className:"color-bad",children:"max2"})]})}),(0,e.jsx)("tbody",{children:T.map(function(L){return(0,e.jsxs)("tr",{children:[(0,e.jsx)("td",{className:"LabeledList__label",children:(0,e.jsx)("span",{className:"color-"+(0,g.b_)(L.name),children:(0,g.wM)(L.name)})}),L.settings.map(function(W){return(0,e.jsx)("td",{children:(0,e.jsx)(s.$n,{onClick:function(){return S("threshold",{env:W.env,var:W.val})},children:(0,i.Mg)(W.selected,2)})},W.val)})]},L.name)})})]})}},51225:function(O,h,n){"use strict";n.r(h),n.d(h,{AlertModal:function(){return l}});var e=n(20462),i=n(61358),t=n(6544),r=n(7081),s=n(88569),g=n(15581),x=n(44149),u=-1,o=1,l=function(f){var m=(0,r.Oc)(),v=m.act,j=m.data,E=j.autofocus,y=j.buttons,M=y===void 0?[]:y,P=j.large_buttons,D=j.message,S=D===void 0?"":D,B=j.timeout,T=j.title,L=(0,i.useState)(0),W=L[0],$=L[1],k=115+(S.length>30?Math.ceil(S.length/4):0)+(S.length&&P?5:0),z=325+(M.length>2?55:0),X=function(G){W===0&&G===u?$(M.length-1):W===M.length-1&&G===o?$(0):$(W+G)};return(0,e.jsxs)(g.p8,{height:k,title:T,width:z,children:[!!B&&(0,e.jsx)(x.Loader,{value:B}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(G){var Q=window.event?G.which:G.keyCode;Q===t.iy||Q===t.Ri?v("choose",{choice:M[W]}):Q===t.s6?v("cancel"):Q===t.iU?(G.preventDefault(),X(u)):(Q===t.aW||Q===t.zh)&&(G.preventDefault(),X(o))},children:(0,e.jsx)(s.wn,{fill:!0,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{grow:!0,m:1,children:(0,e.jsx)(s.az,{color:"label",overflow:"hidden",children:S})}),(0,e.jsxs)(s.BJ.Item,{children:[!!E&&(0,e.jsx)(s.y5,{}),(0,e.jsx)(a,{selected:W})]})]})})})]})},a=function(f){var m=(0,r.Oc)().data,v=m.buttons,j=v===void 0?[]:v,E=m.large_buttons,y=m.swapped_buttons,M=f.selected;return(0,e.jsx)(s.so,{align:"center",direction:y?"row":"row-reverse",fill:!0,justify:"space-around",wrap:!0,children:j==null?void 0:j.map(function(P,D){return E&&j.length<3?(0,e.jsx)(s.so.Item,{grow:!0,children:(0,e.jsx)(c,{button:P,id:D.toString(),selected:M===D})},D):(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(c,{button:P,id:D.toString(),selected:M===D})},D)})})},c=function(f){var m=(0,r.Oc)(),v=m.act,j=m.data,E=j.large_buttons,y=f.button,M=f.selected,P=y.length>7?y.length:7;return(0,e.jsx)(s.$n,{fluid:!!E,height:!!E&&2,onClick:function(){return v("choose",{choice:y})},m:.5,pl:2,pr:2,pt:E?.33:0,selected:M,textAlign:"center",width:!E&&P,children:E?y.toUpperCase():y})}},20730:function(O,h,n){"use strict";n.r(h),n.d(h,{AlgaeFarm:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.usePower,c=l.materials,f=l.last_flow_rate,m=l.last_power_draw,v=l.inputDir,j=l.outputDir,E=l.input,y=l.output,M=l.errorText;return(0,e.jsx)(s.p8,{width:500,height:300,children:(0,e.jsxs)(s.p8.Content,{children:[M&&(0,e.jsx)(r.IC,{warning:!0,children:(0,e.jsx)(r.az,{inline:!0,verticalAlign:"middle",children:M})}),(0,e.jsxs)(r.wn,{title:"Status",buttons:(0,e.jsx)(r.$n,{icon:"power-off",selected:a===2,onClick:function(){return o("toggle")},children:"Processing"}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Flow Rate",children:[f," L/s"]}),(0,e.jsxs)(r.Ki.Item,{label:"Power Draw",children:[m," W"]}),(0,e.jsx)(r.Ki.Divider,{size:1}),c.map(function(P){return(0,e.jsxs)(r.Ki.Item,{label:(0,i.ZH)(P.display),children:[(0,e.jsxs)(r.z2,{width:"80%",value:P.qty,maxValue:P.max,children:[P.qty,"/",P.max]}),(0,e.jsx)(r.$n,{ml:1,onClick:function(){return o("ejectMaterial",{mat:P.name})},children:"Eject"})]},P.name)})]}),(0,e.jsx)(r.XI,{mt:1,children:(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.wn,{title:"Gas Input ("+v+")",children:E?(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Total Pressure",children:[E.pressure," kPa"]}),(0,e.jsxs)(r.Ki.Item,{label:E.name,children:[E.percent,"% (",E.moles," moles)"]})]}):(0,e.jsx)(r.az,{color:"bad",children:"No connection detected."})})}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.wn,{title:"Gas Output ("+j+")",children:y?(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Total Pressure",children:[y.pressure," kPa"]}),(0,e.jsxs)(r.Ki.Item,{label:y.name,children:[y.percent,"% (",y.moles," moles)"]})]}):(0,e.jsx)(r.az,{color:"bad",children:"No connection detected."})})})]})})]})]})})}},31607:function(O,h,n){"use strict";n.r(h),n.d(h,{AppearanceChangerEars:function(){return x},AppearanceChangerGender:function(){return g},AppearanceChangerSpecies:function(){return s},AppearanceChangerTails:function(){return u},AppearanceChangerWings:function(){return o}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.species,v=f.specimen,j=(0,i.Ul)(m||[],function(E){return E.specimen});return(0,e.jsx)(r.wn,{title:"Species",fill:!0,scrollable:!0,children:j.map(function(E){return(0,e.jsx)(r.$n,{selected:v===E.specimen,onClick:function(){return c("race",{race:E.specimen})},children:E.specimen},E.specimen)})})},g=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.gender,v=f.gender_id,j=f.genders,E=f.id_genders;return(0,e.jsx)(r.wn,{title:"Gender & Sex",fill:!0,scrollable:!0,children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Biological Sex",children:j.map(function(y){return(0,e.jsx)(r.$n,{selected:y.gender_key===m,onClick:function(){return c("gender",{gender:y.gender_key})},children:y.gender_name},y.gender_key)})}),(0,e.jsx)(r.Ki.Item,{label:"Gender Identity",children:E.map(function(y){return(0,e.jsx)(r.$n,{selected:y.gender_key===v,onClick:function(){return c("gender_id",{gender_id:y.gender_key})},children:y.gender_name},y.gender_key)})})]})})},x=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.ear_style,v=f.ear_styles;return(0,e.jsxs)(r.wn,{title:"Ears",fill:!0,scrollable:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("ear",{clear:!0})},selected:m===null,children:"-- Not Set --"}),(0,i.Ul)(v,function(j){return j.name.toLowerCase()}).map(function(j){return(0,e.jsx)(r.$n,{onClick:function(){return c("ear",{ref:j.instance})},selected:j.name===m,children:j.name},j.instance)})]})},u=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.tail_style,v=f.tail_styles;return(0,e.jsxs)(r.wn,{title:"Tails",fill:!0,scrollable:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("tail",{clear:!0})},selected:m===null,children:"-- Not Set --"}),(0,i.Ul)(v,function(j){return j.name.toLowerCase()}).map(function(j){return(0,e.jsx)(r.$n,{onClick:function(){return c("tail",{ref:j.instance})},selected:j.name===m,children:j.name},j.instance)})]})},o=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.wing_style,v=f.wing_styles;return(0,e.jsxs)(r.wn,{title:"Wings",fill:!0,scrollable:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("wing",{clear:!0})},selected:m===null,children:"-- Not Set --"}),(0,i.Ul)(v,function(j){return j.name.toLowerCase()}).map(function(j){return(0,e.jsx)(r.$n,{onClick:function(){return c("wing",{ref:j.instance})},selected:j.name===m,children:j.name},j.instance)})]})}},47565:function(O,h,n){"use strict";n.r(h),n.d(h,{AppearanceChangerColors:function(){return r},AppearanceChangerMarkings:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.change_eye_color,a=o.change_skin_tone,c=o.change_skin_color,f=o.change_hair_color,m=o.change_facial_hair_color,v=o.eye_color,j=o.skin_color,E=o.hair_color,y=o.facial_hair_color,M=o.ears_color,P=o.ears2_color,D=o.tail_color,S=o.tail2_color,B=o.wing_color,T=o.wing2_color;return(0,e.jsxs)(t.wn,{title:"Colors",fill:!0,scrollable:!0,children:[l?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:v,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("eye_color")},children:"Change Eye Color"})]}):"",a?(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{onClick:function(){return u("skin_tone")},children:"Change Skin Tone"})}):"",c?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:j,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("skin_color")},children:"Change Skin Color"})]}):"",f?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:E,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("hair_color")},children:"Change Hair Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:M,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("ears_color")},children:"Change Ears Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:P,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("ears2_color")},children:"Change Secondary Ears Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:D,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("tail_color")},children:"Change Tail Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:S,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("tail2_color")},children:"Change Secondary Tail Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:B,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("wing_color")},children:"Change Wing Color"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:T,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("wing2_color")},children:"Change Secondary Wing Color"})]})]}):null,m?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.BK,{color:y,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("facial_hair_color")},children:"Change Facial Hair Color"})]}):null]})},s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.markings;return(0,e.jsxs)(t.wn,{title:"Markings",fill:!0,scrollable:!0,children:[(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{onClick:function(){return u("marking",{todo:1,name:"na"})},children:"Add Marking"})}),(0,e.jsx)(t.Ki,{children:l.map(function(a){return(0,e.jsxs)(t.Ki.Item,{label:a.marking_name,children:[(0,e.jsx)(t.BK,{color:a.marking_color,mr:1}),(0,e.jsx)(t.$n,{onClick:function(){return u("marking",{todo:4,name:a.marking_name})},children:"Change Color"}),(0,e.jsx)(t.$n,{onClick:function(){return u("marking",{todo:0,name:a.marking_name})},children:"-"}),(0,e.jsx)(t.$n,{onClick:function(){return u("marking",{todo:3,name:a.marking_name})},children:"Move down"}),(0,e.jsx)(t.$n,{onClick:function(){return u("marking",{todo:2,name:a.marking_name})},children:"Move up"})]},a.marking_name)})})]})}},70972:function(O,h,n){"use strict";n.r(h),n.d(h,{AppearanceChangerFacialHair:function(){return s},AppearanceChangerHair:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.hair_style,a=o.hair_styles;return(0,e.jsx)(t.wn,{title:"Hair",fill:!0,scrollable:!0,children:a.map(function(c){return(0,e.jsx)(t.$n,{onClick:function(){return u("hair",{hair:c.hairstyle})},selected:c.hairstyle===l,children:c.hairstyle},c.hairstyle)})})},s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.facial_hair_style,a=o.facial_hair_styles;return(0,e.jsx)(t.wn,{title:"Facial Hair",fill:!0,scrollable:!0,children:a.map(function(c){return(0,e.jsx)(t.$n,{onClick:function(){return u("facial_hair",{facial_hair:c.facialhairstyle})},selected:c.facialhairstyle===l,children:c.facialhairstyle},c.facialhairstyle)})})}},66779:function(O,h,n){"use strict";n.r(h),n.d(h,{AppearanceChanger:function(){return l},AppearanceChangerDefaultError:function(){return a}});var e=n(20462),i=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(31607),u=n(47565),o=n(70972),l=function(c){var f=(0,r.Oc)(),m=f.act,v=f.config,j=f.data,E=j.name,y=j.specimen,M=j.gender,P=j.gender_id,D=j.hair_style,S=j.facial_hair_style,B=j.ear_style,T=j.tail_style,L=j.wing_style,W=j.change_race,$=j.change_gender,k=j.change_eye_color,z=j.change_skin_tone,X=j.change_skin_color,G=j.change_hair_color,Q=j.change_facial_hair_color,ee=j.change_hair,se=j.change_facial_hair,ne=j.mapRef,Y=v.title,J=[],V=k||z||X||G||Q,te=(0,e.jsx)(s.az,{});J[-1]=(0,e.jsx)(a,{}),J[0]=W?(0,e.jsx)(x.AppearanceChangerSpecies,{}):(0,e.jsx)(a,{}),J[1]=$?(0,e.jsx)(x.AppearanceChangerGender,{}):(0,e.jsx)(a,{}),J[2]=V?(0,e.jsx)(u.AppearanceChangerColors,{}):(0,e.jsx)(a,{}),J[3]=ee?(0,e.jsx)(o.AppearanceChangerHair,{}):(0,e.jsx)(a,{}),J[4]=se?(0,e.jsx)(o.AppearanceChangerFacialHair,{}):(0,e.jsx)(a,{}),J[5]=ee?(0,e.jsx)(x.AppearanceChangerEars,{}):(0,e.jsx)(a,{}),J[6]=ee?(0,e.jsx)(x.AppearanceChangerTails,{}):(0,e.jsx)(a,{}),J[7]=ee?(0,e.jsx)(x.AppearanceChangerWings,{}):(0,e.jsx)(a,{}),J[8]=ee?(0,e.jsx)(u.AppearanceChangerMarkings,{}):(0,e.jsx)(a,{});var ce=-1;W?ce=0:$?ce=1:V?ce=2:ee?ce=4:se&&(ce=5);var le=(0,t.useState)(ce),fe=le[0],ge=le[1];return(0,e.jsx)(g.p8,{width:700,height:650,title:(0,i.jT)(Y),children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(s.wn,{title:"Reflection",children:(0,e.jsxs)(s.so,{children:[(0,e.jsx)(s.so.Item,{grow:1,children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsx)(s.Ki.Item,{label:"Name",children:E}),(0,e.jsx)(s.Ki.Item,{label:"Species",color:W?void 0:"grey",children:y}),(0,e.jsx)(s.Ki.Item,{label:"Biological Sex",color:$?void 0:"grey",children:M?(0,i.ZH)(M):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Gender Identity",color:V?void 0:"grey",children:P?(0,i.ZH)(P):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Hair Style",color:ee?void 0:"grey",children:D?(0,i.ZH)(D):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Facial Hair Style",color:se?void 0:"grey",children:S?(0,i.ZH)(S):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Ear Style",color:ee?void 0:"grey",children:B?(0,i.ZH)(B):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Tail Style",color:ee?void 0:"grey",children:T?(0,i.ZH)(T):"Not Set"}),(0,e.jsx)(s.Ki.Item,{label:"Wing Style",color:ee?void 0:"grey",children:L?(0,i.ZH)(L):"Not Set"})]})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.D1,{style:{width:"256px",height:"256px"},params:{id:ne,type:"map"}})})]})}),(0,e.jsxs)(s.tU,{children:[W?(0,e.jsx)(s.tU.Tab,{selected:fe===0,onClick:function(){return ge(0)},children:"Race"}):null,$?(0,e.jsx)(s.tU.Tab,{selected:fe===1,onClick:function(){return ge(1)},children:"Gender & Sex"}):null,V?(0,e.jsx)(s.tU.Tab,{selected:fe===2,onClick:function(){return ge(2)},children:"Colors"}):null,ee?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.tU.Tab,{selected:fe===3,onClick:function(){return ge(3)},children:"Hair"}),(0,e.jsx)(s.tU.Tab,{selected:fe===5,onClick:function(){return ge(5)},children:"Ear"}),(0,e.jsx)(s.tU.Tab,{selected:fe===6,onClick:function(){return ge(6)},children:"Tail"}),(0,e.jsx)(s.tU.Tab,{selected:fe===7,onClick:function(){return ge(7)},children:"Wing"}),(0,e.jsx)(s.tU.Tab,{selected:fe===8,onClick:function(){return ge(8)},children:"Markings"})]}):null,se?(0,e.jsx)(s.tU.Tab,{selected:fe===4,onClick:function(){return ge(4)},children:"Facial Hair"}):null]}),(0,e.jsx)(s.az,{height:"43%",children:J[fe]})]})})},a=function(c){return(0,e.jsx)(s.az,{textColor:"red",children:"Disabled"})}},44212:function(O,h,n){"use strict";n.r(h)},8910:function(O,h,n){"use strict";n.r(h),n.d(h,{ArcadeBattle:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.temp,a=o.enemyAction,c=o.enemyName,f=o.playerHP,m=o.playerMP,v=o.enemyHP,j=o.gameOver;return(0,e.jsx)(r.p8,{width:400,height:240,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{title:c,textAlign:"center",children:[(0,e.jsxs)(t.wn,{color:"label",children:[(0,e.jsx)(t.az,{children:l}),(0,e.jsx)(t.az,{children:!j&&a})]}),(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Player Health",children:(0,e.jsxs)(t.z2,{value:f,minValue:0,maxValue:30,ranges:{olive:[31,1/0],good:[20,31],average:[10,20],bad:[-1/0,10]},children:[f,"HP"]})}),(0,e.jsx)(t.Ki.Item,{label:"Player Magic",children:(0,e.jsxs)(t.z2,{value:m,minValue:0,maxValue:10,ranges:{purple:[11,1/0],violet:[3,11],bad:[-1/0,3]},children:[m,"MP"]})})]})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Enemy HP",children:(0,e.jsxs)(t.z2,{value:v,minValue:0,maxValue:45,ranges:{olive:[31,1/0],good:[20,31],average:[10,20],bad:[-1/0,10]},children:[v,"HP"]})})})})]}),j&&(0,e.jsx)(t.$n,{fluid:!0,mt:1,color:"green",onClick:function(){return u("newgame")},children:"New Game"})||(0,e.jsxs)(t.so,{mt:2,justify:"space-between",spacing:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",onClick:function(){return u("attack")},children:"Attack!"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",onClick:function(){return u("heal")},children:"Heal!"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",onClick:function(){return u("charge")},children:"Recharge!"})})]})]})})})}},61968:function(O,h,n){"use strict";n.r(h),n.d(h,{AreaScrubberControl:function(){return x}});var e=n(20462),i=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=function(o){var l=(0,r.Oc)(),a=l.act,c=l.data,f=(0,t.useState)(!1),m=f[0],v=f[1],j=c.scrubbers;return j?(0,e.jsx)(g.p8,{width:600,height:400,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsxs)(s.wn,{children:[(0,e.jsxs)(s.so,{wrap:"wrap",children:[(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"search",onClick:function(){return a("scan")},children:"Scan"})}),(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",grow:1,children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"layer-group",selected:m,onClick:function(){return v(!m)},children:"Show Areas"})}),(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"toggle-on",onClick:function(){return a("allon")},children:"All On"})}),(0,e.jsx)(s.so.Item,{m:"2px",basis:"49%",grow:1,children:(0,e.jsx)(s.$n,{textAlign:"center",fluid:!0,icon:"toggle-off",onClick:function(){return a("alloff")},children:"All Off"})})]}),(0,e.jsx)(s.so,{wrap:"wrap",children:j.map(function(E){return(0,e.jsx)(s.so.Item,{m:"2px",basis:"32%",children:(0,e.jsx)(u,{scrubber:E,showArea:m})},E.id)})})]})})}):(0,e.jsxs)(s.wn,{title:"Error",children:[(0,e.jsx)(s.az,{color:"bad",children:"No Scrubbers Detected."}),(0,e.jsx)(s.$n,{fluid:!0,icon:"search",onClick:function(){return a("scan")},children:"Scan"})]})},u=function(o){var l=(0,r.Oc)().act,a=o.scrubber,c=o.showArea;return(0,e.jsxs)(s.wn,{title:a.name,children:[(0,e.jsx)(s.$n,{fluid:!0,icon:"power-off",selected:a.on,onClick:function(){return l("toggle",{id:a.id})},children:a.on?"Enabled":"Disabled"}),(0,e.jsxs)(s.Ki,{children:[(0,e.jsxs)(s.Ki.Item,{label:"Pressure",children:[a.pressure," kPa"]}),(0,e.jsxs)(s.Ki.Item,{label:"Flow Rate",children:[a.flow_rate," L/s"]}),(0,e.jsxs)(s.Ki.Item,{label:"Load",children:[a.load," W"]}),c&&(0,e.jsx)(s.Ki.Item,{label:"Area",children:(0,i.Sn)(a.area)})]})]})}},29615:function(O,h,n){"use strict";n.r(h),n.d(h,{AssemblyInfrared:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.visible;return(0,e.jsx)(r.p8,{children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Infrared Unit",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Laser",children:(0,e.jsx)(t.$n,{icon:"power-off",fluid:!0,selected:l,onClick:function(){return u("state")},children:l?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Visibility",children:(0,e.jsx)(t.$n,{icon:"eye",fluid:!0,selected:a,onClick:function(){return u("visible")},children:a?"Able to be seen":"Invisible"})})]})})})})}},95027:function(O,h,n){"use strict";n.r(h),n.d(h,{AssemblyProx:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.timing,f=a.time,m=a.range,v=a.maxRange,j=a.scanning;return(0,e.jsx)(g.p8,{children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Timing Unit",children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Timer",buttons:(0,e.jsx)(r.$n,{icon:"stopwatch",selected:c,onClick:function(){return l("timing")},children:c?"Counting Down":"Disabled"}),children:(0,e.jsx)(r.Q7,{animated:!0,fluid:!0,step:1,value:f,minValue:0,maxValue:600,format:function(E){return(0,s.fU)((0,i.LI)(E*10,0))},onDrag:function(E){return l("set_time",{time:E})}})})})}),(0,e.jsx)(r.wn,{title:"Prox Unit",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Range",children:(0,e.jsx)(r.Q7,{step:1,minValue:1,value:m,maxValue:v,onDrag:function(E){return l("range",{range:E})}})}),(0,e.jsxs)(r.Ki.Item,{label:"Armed",children:[(0,e.jsx)(r.$n,{mr:1,icon:j?"lock":"lock-open",selected:j,onClick:function(){return l("scanning")},children:j?"ARMED":"Unarmed"}),"Movement sensor is active when armed!"]})]})})]})})}},18721:function(O,h,n){"use strict";n.r(h),n.d(h,{AssemblyTimer:function(){return u}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=n(46836),u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.timing,m=c.time;return(0,e.jsx)(g.p8,{children:(0,e.jsx)(g.p8.Content,{children:(0,e.jsx)(r.wn,{title:"Timing Unit",children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Timer",buttons:(0,e.jsx)(r.$n,{icon:"stopwatch",selected:f,onClick:function(){return a("timing")},children:f?"Counting Down":"Disabled"}),children:(0,e.jsx)(x.NumberInputModal,{animated:!0,fluid:!0,step:1,value:m,minValue:0,maxValue:600,format:function(v){return(0,s.fU)((0,i.LI)(v*10,0))},onDrag:function(v){return a("set_time",{time:v})}})})})})})})}},16561:function(O,h,n){"use strict";n.r(h),n.d(h,{AtmosAlertConsole:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.priority_alarms,a=l===void 0?[]:l,c=o.minor_alarms,f=c===void 0?[]:c;return(0,e.jsx)(r.p8,{width:350,height:300,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:"Alarms",children:(0,e.jsxs)("ul",{children:[a.length===0&&(0,e.jsx)("li",{className:"color-good",children:"No Priority Alerts"}),a.map(function(m){return(0,e.jsx)("li",{children:(0,e.jsx)(t.$n,{icon:"times",color:"bad",onClick:function(){return u("clear",{ref:m.ref})},children:m.name})},m.name)}),f.length===0&&(0,e.jsx)("li",{className:"color-good",children:"No Minor Alerts"}),f.map(function(m){return(0,e.jsx)("li",{children:(0,e.jsx)(t.$n,{icon:"times",color:"average",onClick:function(){return u("clear",{ref:m.ref})},children:m.name})},m.name)})]})})})})}},74737:function(O,h,n){"use strict";n.r(h),n.d(h,{AtmosControl:function(){return x},AtmosControlContent:function(){return u}});var e=n(20462),i=n(7402),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=function(o){return(0,e.jsx)(g.p8,{width:600,height:440,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsx)(u,{})})})},u=function(o){var l=(0,r.Oc)(),a=l.act,c=l.data,f=l.config,m=(0,i.Ul)(c.alarms||[],function(S){return S.name}),v=(0,t.useState)(0),j=v[0],E=v[1],y=(0,t.useState)(1),M=y[0],P=y[1],D;return j===0?D=(0,e.jsx)(s.wn,{title:"Alarms",children:m.map(function(S){return(0,e.jsx)(s.$n,{color:S.danger===2?"bad":S.danger===1?"average":"",onClick:function(){return a("alarm",{alarm:S.ref})},children:S.name},S.name)})}):j===1&&(D=(0,e.jsx)(s.az,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.jsx)(s.tx,{zoomScale:c.zoomScale,onZoom:function(S){return P(S)},children:m.filter(function(S){return~~S.z===~~f.mapZLevel}).map(function(S){return(0,e.jsx)(s.tx.Marker,{x:S.x,y:S.y,zoom:M,icon:"bell",tooltip:S.name,color:S.danger?"red":"green",onClick:function(){return a("alarm",{alarm:S.ref})}},S.ref)})})})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(s.tU,{children:[(0,e.jsxs)(s.tU.Tab,{selected:j===0,onClick:function(){return E(0)},children:[(0,e.jsx)(s.In,{name:"table"})," Alarm View"]},"AlarmView"),(0,e.jsxs)(s.tU.Tab,{selected:j===1,onClick:function(){return E(1)},children:[(0,e.jsx)(s.In,{name:"map-marked-alt"})," Map View"]},"MapView")]}),(0,e.jsx)(s.az,{m:2,children:D})]})}},13238:function(O,h,n){"use strict";n.r(h),n.d(h,{AtmosFilter:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.rate,c=o.max_rate,f=o.last_flow_rate,m=o.filter_types,v=m===void 0?[]:m;return(0,e.jsx)(r.p8,{width:390,height:187,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Power",children:(0,e.jsx)(t.$n,{icon:l?"power-off":"times",selected:l,onClick:function(){return u("power")},children:l?"On":"Off"})}),(0,e.jsxs)(t.Ki.Item,{label:"Transfer Rate",children:[(0,e.jsx)(t.az,{inline:!0,mr:1,children:(0,e.jsx)(t.zv,{value:f,format:function(j){return j+" L/s"}})}),(0,e.jsx)(t.Q7,{animated:!0,step:1,value:a,width:"63px",unit:"L/s",minValue:0,maxValue:200,onDrag:function(j){return u("rate",{rate:j})}}),(0,e.jsx)(t.$n,{ml:1,icon:"plus",disabled:a===c,onClick:function(){return u("rate",{rate:"max"})},children:"Max"})]}),(0,e.jsx)(t.Ki.Item,{label:"Filter",children:v.map(function(j){return(0,e.jsx)(t.$n,{selected:j.selected,onClick:function(){return u("filter",{filterset:j.f_type})},children:j.name},j.name)})})]})})})})}},68541:function(O,h,n){"use strict";n.r(h),n.d(h,{AtmosMixer:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.set_pressure,c=o.max_pressure,f=o.node1_concentration,m=o.node2_concentration,v=o.node1_dir,j=o.node2_dir;return(0,e.jsx)(r.p8,{width:370,height:195,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Power",children:(0,e.jsx)(t.$n,{icon:l?"power-off":"times",selected:l,onClick:function(){return u("power")},children:l?"On":"Off"})}),(0,e.jsxs)(t.Ki.Item,{label:"Output Pressure",children:[(0,e.jsx)(t.Q7,{animated:!0,value:a,unit:"kPa",width:"75px",minValue:0,maxValue:c,step:10,onChange:function(E){return u("pressure",{pressure:E})}}),(0,e.jsx)(t.$n,{ml:1,icon:"plus",disabled:a===c,onClick:function(){return u("pressure",{pressure:"max"})},children:"Max"})]}),(0,e.jsx)(t.Ki.Divider,{size:1}),(0,e.jsx)(t.Ki.Item,{color:"label",children:(0,e.jsx)("u",{children:"Concentrations"})}),(0,e.jsx)(t.Ki.Item,{label:"Node 1 ("+v+")",children:(0,e.jsx)(t.Q7,{animated:!0,value:f,unit:"%",width:"60px",step:1,minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(E){return u("node1",{concentration:E})}})}),(0,e.jsx)(t.Ki.Item,{label:"Node 2 ("+j+")",children:(0,e.jsx)(t.Q7,{animated:!0,value:m,unit:"%",width:"60px",step:1,minValue:0,maxValue:100,stepPixelSize:2,onDrag:function(E){return u("node2",{concentration:E})}})})]})})})})}},43855:function(O,h,n){"use strict";n.r(h),n.d(h,{Autolathe:function(){return m}});var e=n(20462),i=n(7402),t=n(15813),r=n(61282),s=n(7081),g=n(88569),x=n(15581),u=n(2858);function o(v,j){(j==null||j>v.length)&&(j=v.length);for(var E=0,y=new Array(j);E=v.length?{done:!0}:{done:!1,value:v[y++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var f=function(v,j,E){var y=function(){var B=D.value,T=j.find(function(L){return L.name===B});if(!T)return"continue";if(T.amount=0)&&(E[M]=v[M]);return E}var o={Alphabetical:function(v,j){return v.name>j.name},"By availability":function(v,j){return-(v.affordable-j.affordable)},"By price":function(v,j){return v.price-j.price}},l=function(v){var j=function(ne){$(ne)},E=function(ne){X(ne)},y=function(ne){ee(ne)},M=(0,r.Oc)(),P=M.act,D=M.data,S=D.processing,B=D.points,T=D.beaker,L=(0,t.useState)(""),W=L[0],$=L[1],k=(0,t.useState)("Alphabetical"),z=k[0],X=k[1],G=(0,t.useState)(!1),Q=G[0],ee=G[1];return(0,e.jsx)(g.p8,{width:400,height:450,children:(0,e.jsx)(g.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:S&&(0,e.jsx)(s.wn,{title:"Processing",children:"The biogenerator is processing reagents!"})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(s.wn,{children:[B," points available.",(0,e.jsx)(s.$n,{ml:1,icon:"blender",onClick:function(){return P("activate")},children:"Activate"}),(0,e.jsx)(s.$n,{ml:1,icon:"eject",disabled:!T,onClick:function(){return P("detach")},children:"Eject Beaker"})]}),(0,e.jsx)(c,{searchText:W,sortOrder:z,descending:Q,onSearchText:j,onSortOrder:E,onDescending:y}),(0,e.jsx)(a,{searchText:W,sortOrder:z,descending:Q})]})})})},a=function(v){var j=(0,r.Oc)(),E=j.act,y=j.data,M=y.points,P=y.items,D=P===void 0?[]:P,S=y.build_eff,B=y.beaker,T=(0,i.XZ)(v.searchText,function($){return $[0]}),L=!1,W=Object.entries(D).map(function($){var k=Object.entries($[1]).filter(T).map(function(z){return z[1].affordable=+(M>=z[1].price/S),z[1]}).sort(o[v.sortOrder]);if(k.length!==0)return v.descending&&(k=k.reverse()),L=!0,(0,e.jsx)(m,{title:$[0],items:k,build_eff:S,beaker:B},$[0])});return(0,e.jsx)(s.so.Item,{grow:"1",overflow:"auto",children:(0,e.jsx)(s.wn,{children:L?W:(0,e.jsx)(s.az,{color:"label",children:"No items matching your criteria was found!"})})})},c=function(v){return(0,e.jsx)(s.az,{mb:"0.5rem",children:(0,e.jsxs)(s.so,{width:"100%",children:[(0,e.jsx)(s.so.Item,{grow:"1",mr:"0.5rem",children:(0,e.jsx)(s.pd,{placeholder:"Search by item name..",value:v.searchText,width:"100%",onInput:function(j,E){return v.onSearchText(E)}})}),(0,e.jsx)(s.so.Item,{basis:"30%",children:(0,e.jsx)(s.ms,{autoScroll:!1,selected:v.sortOrder,options:Object.keys(o),width:"100%",lineHeight:"19px",onSelected:function(j){return v.onSortOrder(j)}})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.$n,{icon:v.descending?"arrow-down":"arrow-up",height:"19px",tooltip:v.descending?"Descending order":"Ascending order",tooltipPosition:"bottom-end",ml:"0.5rem",onClick:function(){return v.onDescending(!v.descending)}})})]})})},f=function(v,j){return!(!v.affordable||v.reagent&&!j)},m=function(v){var j=(0,r.Oc)(),E=j.act,y=j.data,M=v.title,P=v.items,D=v.build_eff,S=v.beaker,B=u(v,["title","items","build_eff","beaker"]);return(0,e.jsx)(s.Nt,x({open:!0,title:M},B,{children:P.map(function(T){return(0,e.jsxs)(s.az,{children:[(0,e.jsx)(s.az,{inline:!0,verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:T.name}),(0,e.jsx)(s.$n,{disabled:!f(T,S),width:"15%",textAlign:"center",style:{float:"right"},onClick:function(){return E("purchase",{cat:M,name:T.name})},children:(T.price/D).toLocaleString("en-US")}),(0,e.jsx)(s.az,{style:{clear:"both"}})]},T.name)})}))}},13469:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyDesignerBodyRecords:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.bodyrecords;return(0,e.jsx)(t.wn,{title:"Body Records",buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return g("menu",{menu:"Main"})},children:"Back"}),children:x?x.map(function(u){return(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("view_brec",{view_brec:u.recref})},children:u.name},u.name)}):""})}},17796:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyDesignerMain:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act;return(0,e.jsxs)(t.wn,{title:"Database Functions",children:[(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("menu",{menu:"Body Records"})},children:"View Individual Body Records"}),(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("menu",{menu:"Stock Records"})},children:"View Stock Body Records"})]})}},24983:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyDesignerOOCNotes:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.activeBodyRecord;return(0,e.jsx)(t.wn,{title:"Body OOC Notes (This is OOC!)",height:"100%",scrollable:!0,buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return g("menu",{menu:"Specific Record"})},children:"Back"}),style:{wordBreak:"break-all"},children:x&&x.booc||"ERROR: Body record not found!"})}},31687:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyDesignerSpecificRecord:function(){return s}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)().act,u=g.activeBodyRecord,o=g.mapRef;return u?(0,e.jsxs)(r.so,{direction:"column",children:[(0,e.jsx)(r.so.Item,{basis:"165px",children:(0,e.jsx)(r.wn,{title:"Specific Record",buttons:(0,e.jsx)(r.$n,{icon:"arrow-left",onClick:function(){return x("menu",{menu:"Main"})},children:"Back"}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Name",children:u.real_name}),(0,e.jsx)(r.Ki.Item,{label:"Species",children:u.speciesname}),(0,e.jsx)(r.Ki.Item,{label:"Bio. Sex",children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:"bio_gender",target_value:1})},children:(0,i.ZH)(u.gender)})}),(0,e.jsx)(r.Ki.Item,{label:"Synthetic",children:u.synthetic}),(0,e.jsxs)(r.Ki.Item,{label:"Mind Compat",children:[u.locked,(0,e.jsx)(r.$n,{ml:1,icon:"eye",disabled:!u.booc,onClick:function(){return x("boocnotes")},children:"View OOC Notes"})]})]})})}),(0,e.jsx)(r.so.Item,{basis:"130px",children:(0,e.jsx)(r.D1,{style:{width:"100%",height:"128px"},params:{id:o,type:"map"}})}),(0,e.jsx)(r.so.Item,{basis:"300px",children:(0,e.jsx)(r.wn,{title:"Customize",height:"300px",style:{overflow:"auto"},children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Scale",children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:"size_multiplier",target_value:1})},children:u.scale})}),Object.keys(u.styles).map(function(l){var a=u.styles[l];return(0,e.jsxs)(r.Ki.Item,{label:l,children:[a.styleHref?(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:a.styleHref,target_value:1})},children:a.style}):"",a.colorHref?(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:a.colorHref,target_value:1})},children:a.color}),(0,e.jsx)(r.BK,{verticalAlign:"top",width:"32px",height:"20px",color:a.color,style:{border:"1px solid #fff"}})]}):"",a.colorHref2?(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:a.colorHref2,target_value:1})},children:a.color2}),(0,e.jsx)(r.BK,{verticalAlign:"top",width:"32px",height:"20px",color:a.color2,style:{border:"1px solid #fff"}})]}):""]},l)}),(0,e.jsx)(r.Ki.Item,{label:"Digitigrade",children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return x("href_conversion",{target_href:"digitigrade",target_value:1})},children:u.digitigrade?"Yes":"No"})}),(0,e.jsxs)(r.Ki.Item,{label:"Body Markings",children:[(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return x("href_conversion",{target_href:"marking_style",target_value:1})},children:"Add Marking"}),(0,e.jsx)(r.so,{wrap:"wrap",justify:"center",align:"center",children:Object.keys(u.markings).map(function(l){var a=u.markings[l];return(0,e.jsx)(r.so.Item,{basis:"100%",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{mr:.2,fluid:!0,icon:"times",color:"red",onClick:function(){return x("href_conversion",{target_href:"marking_remove",target_value:l})}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,backgroundColor:a,onClick:function(){return x("href_conversion",{target_href:"marking_color",target_value:l})},children:l})})]})},l)})})]})]})})})]}):(0,e.jsx)(r.az,{color:"bad",children:"ERROR: Record Not Found!"})}},99123:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyDesignerStockRecords:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.stock_bodyrecords;return(0,e.jsx)(t.wn,{title:"Stock Records",buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return g("menu",{menu:"Main"})},children:"Back"}),children:x.map(function(u){return(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return g("view_stock_brec",{view_stock_brec:u})},children:u},u)})})}},87706:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyDesigner:function(){return l}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(13469),g=n(17796),x=n(24983),u=n(31687),o=n(99123),l=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.menu,j=m.disk,E=m.diskStored,y=m.activeBodyRecord,M=m.stock_bodyrecords,P=m.bodyrecords,D=m.mapRef,S={Main:(0,e.jsx)(g.BodyDesignerMain,{}),"Body Records":(0,e.jsx)(s.BodyDesignerBodyRecords,{bodyrecords:P}),"Stock Records":(0,e.jsx)(o.BodyDesignerStockRecords,{stock_bodyrecords:M}),"Specific Record":(0,e.jsx)(u.BodyDesignerSpecificRecord,{activeBodyRecord:y,mapRef:D}),"OOC Notes":(0,e.jsx)(x.BodyDesignerOOCNotes,{activeBodyRecord:y})},B=S[v];return(0,e.jsx)(r.p8,{width:400,height:650,children:(0,e.jsxs)(r.p8.Content,{children:[j?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"save",onClick:function(){return f("savetodisk")},disabled:!y,children:"Save To Disk"}),(0,e.jsx)(t.$n,{icon:"save",onClick:function(){return f("loadfromdisk")},disabled:!E,children:"Load From Disk"}),(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return f("ejectdisk")},children:"Eject"})]}):"",B]})})}},25375:function(O,h,n){"use strict";n.r(h)},85168:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScannerEmpty:function(){return t}});var e=n(20462),i=n(88569),t=function(){return(0,e.jsx)(i.wn,{textAlign:"center",flexGrow:!0,children:(0,e.jsx)(i.so,{height:"100%",children:(0,e.jsxs)(i.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(i.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No occupant detected."]})})})}},43780:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScannerMain:function(){return o}});var e=n(20462),i=n(88569),t=n(49354),r=n(53187),s=n(81417),g=n(32915),x=n(73457),u=n(70765),o=function(l){var a=l.occupant;return(0,e.jsxs)(i.az,{children:[(0,e.jsx)(s.BodyScannerMainOccupant,{occupant:a}),(0,e.jsx)(u.BodyScannerMainReagents,{occupant:a}),(0,e.jsx)(t.BodyScannerMainAbnormalities,{occupant:a}),(0,e.jsx)(r.BodyScannerMainDamage,{occupant:a}),(0,e.jsx)(g.BodyScannerMainOrgansExternal,{organs:a.extOrgan}),(0,e.jsx)(x.BodyScannerMainOrgansInternal,{organs:a.intOrgan})]})}},49354:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScannerMainAbnormalities:function(){return r}});var e=n(20462),i=n(88569),t=n(47710),r=function(s){var g=s.occupant,x=g.hasBorer||g.blind||g.colourblind||g.nearsighted||g.hasVirus;return x=x||g.humanPrey||g.livingPrey||g.objectPrey,x?(0,e.jsx)(i.wn,{title:"Abnormalities",children:t.abnormalities.map(function(u,o){if(g[u[0]])return(0,e.jsx)(i.az,{color:u[1],bold:u[1]==="bad",children:u[2](g)},o)})}):(0,e.jsx)(i.wn,{title:"Abnormalities",children:(0,e.jsx)(i.az,{color:"label",children:"No abnormalities found."})})}},53187:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScannerMainDamage:function(){return g}});var e=n(20462),i=n(4089),t=n(88569),r=n(47710),s=n(65518),g=function(u){var o=u.occupant;return(0,e.jsx)(t.wn,{title:"Damage",children:(0,e.jsx)(t.XI,{children:(0,s.mapTwoByTwo)(r.damages,function(l,a,c){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.XI.Row,{color:"label",children:[(0,e.jsxs)(t.XI.Cell,{children:[l[0],":"]}),(0,e.jsx)(t.XI.Cell,{children:!!a&&a[0]+":"})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(x,{value:o[l[1]],marginBottom:c0&&"0.5rem",value:o.totalLoss/100,ranges:r.damageRange,children:[(0,e.jsxs)(t.az,{style:{float:"left"},inline:!0,children:[!!o.bruteLoss&&(0,e.jsxs)(t.az,{inline:!0,position:"relative",children:[(0,e.jsx)(t.In,{name:"bone"}),(0,i.Mg)(o.bruteLoss),"\xA0",(0,e.jsx)(t.m_,{position:"top",content:"Brute damage"})]}),!!o.fireLoss&&(0,e.jsxs)(t.az,{inline:!0,position:"relative",children:[(0,e.jsx)(t.In,{name:"fire"}),(0,i.Mg)(o.fireLoss),(0,e.jsx)(t.m_,{position:"top",content:"Burn damage"})]})]}),(0,e.jsx)(t.az,{inline:!0,children:(0,i.Mg)(o.totalLoss)})]})}),(0,e.jsxs)(t.XI.Cell,{textAlign:"right",width:"33%",children:[(0,e.jsx)(t.az,{color:"average",inline:!0,children:(0,s.reduceOrganStatus)([o.internalBleeding&&"Internal bleeding",!!o.status.bleeding&&"External bleeding",o.lungRuptured&&"Ruptured lung",o.status.destroyed&&"Destroyed",!!o.status.broken&&o.status.broken,(0,s.germStatus)(o.germ_level),!!o.open&&"Open incision"])}),(0,e.jsxs)(t.az,{inline:!0,children:[(0,s.reduceOrganStatus)([!!o.status.splinted&&"Splinted",!!o.status.robotic&&"Robotic",!!o.status.dead&&(0,e.jsx)(t.az,{color:"bad",children:"DEAD"})]),(0,s.reduceOrganStatus)(o.implants.map(function(a){return a.known?a.name:"Unknown object"}))]})]})]},l)})]})})}},73457:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScannerMainOrgansInternal:function(){return g}});var e=n(20462),i=n(4089),t=n(88569),r=n(47710),s=n(65518),g=function(x){var u=x.organs;return u.length===0?(0,e.jsx)(t.wn,{title:"Internal Organs",children:(0,e.jsx)(t.az,{color:"label",children:"N/A"})}):(0,e.jsx)(t.wn,{title:"Internal Organs",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Damage"}),(0,e.jsx)(t.XI.Cell,{textAlign:"right",children:"Injuries"})]}),u.map(function(o,l){return(0,e.jsxs)(t.XI.Row,{style:{textTransform:"capitalize"},children:[(0,e.jsx)(t.XI.Cell,{width:"33%",children:o.name}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:o.maxHealth/100,value:o.damage/100,mt:l>0&&"0.5rem",ranges:r.damageRange,children:(0,i.Mg)(o.damage)})}),(0,e.jsxs)(t.XI.Cell,{textAlign:"right",width:"33%",children:[(0,e.jsx)(t.az,{color:"average",inline:!0,children:(0,s.reduceOrganStatus)([(0,s.germStatus)(o.germ_level),!!o.inflamed&&"Appendicitis detected."])}),(0,e.jsx)(t.az,{inline:!0,children:(0,s.reduceOrganStatus)([o.robotic===1&&"Robotic",o.robotic===2&&"Assisted",!!o.dead&&(0,e.jsx)(t.az,{color:"bad",children:"DEAD"})])})]})]},l)})]})})}},70765:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScannerMainReagents:function(){return t}});var e=n(20462),i=n(88569),t=function(r){var s=r.occupant;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(i.wn,{title:"Blood Reagents",children:s.reagents?(0,e.jsxs)(i.XI,{children:[(0,e.jsxs)(i.XI.Row,{header:!0,children:[(0,e.jsx)(i.XI.Cell,{children:"Reagent"}),(0,e.jsx)(i.XI.Cell,{textAlign:"right",children:"Amount"})]}),s.reagents.map(function(g){return(0,e.jsxs)(i.XI.Row,{children:[(0,e.jsx)(i.XI.Cell,{children:g.name}),(0,e.jsxs)(i.XI.Cell,{textAlign:"right",children:[g.amount," Units"," ",g.overdose?(0,e.jsx)(i.az,{color:"bad",children:"OVERDOSING"}):null]})]},g.name)})]}):(0,e.jsx)(i.az,{color:"good",children:"No Blood Reagents Detected"})}),(0,e.jsx)(i.wn,{title:"Stomach Reagents",children:s.ingested?(0,e.jsxs)(i.XI,{children:[(0,e.jsxs)(i.XI.Row,{header:!0,children:[(0,e.jsx)(i.XI.Cell,{children:"Reagent"}),(0,e.jsx)(i.XI.Cell,{textAlign:"right",children:"Amount"})]}),s.ingested.map(function(g){return(0,e.jsxs)(i.XI.Row,{children:[(0,e.jsx)(i.XI.Cell,{children:g.name}),(0,e.jsxs)(i.XI.Cell,{textAlign:"right",children:[g.amount," Units"," ",g.overdose?(0,e.jsx)(i.az,{color:"bad",children:"OVERDOSING"}):null]})]},g.name)})]}):(0,e.jsx)(i.az,{color:"good",children:"No Stomach Reagents Detected"})})]})}},47710:function(O,h,n){"use strict";n.r(h),n.d(h,{abnormalities:function(){return i},damageRange:function(){return r},damages:function(){return t},stats:function(){return e}});var e=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],i=[["hasBorer","bad",function(s){return"Large growth detected in frontal lobe, possibly cancerous. Surgical removal is recommended."}],["hasVirus","bad",function(s){return"Viral pathogen detected in blood stream."}],["blind","average",function(s){return"Cataracts detected."}],["colourblind","average",function(s){return"Photoreceptor abnormalities detected."}],["nearsighted","average",function(s){return"Retinal misalignment detected."}],["humanPrey","average",function(s){return"Foreign Humanoid(s) detected: "+s.humanPrey}],["livingPrey","average",function(s){return"Foreign Creature(s) detected: "+s.livingPrey}],["objectPrey","average",function(s){return"Foreign Object(s) detected: "+s.objectPrey}]],t=[["Respiratory","oxyLoss"],["Brain","brainLoss"],["Toxin","toxLoss"],["Radiation","radLoss"],["Brute","bruteLoss"],["Genetic","cloneLoss"],["Burn","fireLoss"],["Paralysis","paralysis"]],r={average:[.25,.5],bad:[.5,1/0]}},65518:function(O,h,n){"use strict";n.r(h),n.d(h,{germStatus:function(){return s},mapTwoByTwo:function(){return t},reduceOrganStatus:function(){return r}});var e=n(20462),i=n(88569);function t(g,x){for(var u=[],o=0;o0?g.reduce(function(x,u){return x===null?u:(0,e.jsxs)(e.Fragment,{children:[x,!!u&&(0,e.jsx)(i.az,{children:u})]})}):null}function s(g){if(g>100){if(g<300)return"mild infection";if(g<400)return"mild infection+";if(g<500)return"mild infection++";if(g<700)return"acute infection";if(g<800)return"acute infection+";if(g<900)return"acute infection++";if(g>=900)return"septic"}return""}},9665:function(O,h,n){"use strict";n.r(h),n.d(h,{BodyScanner:function(){return g}});var e=n(20462),i=n(7081),t=n(15581),r=n(85168),s=n(43780),g=function(x){var u=(0,i.Oc)().data,o=u.occupied,l=u.occupant,a=l===void 0?{}:l,c=o?(0,e.jsx)(s.BodyScannerMain,{occupant:a}):(0,e.jsx)(r.BodyScannerEmpty,{});return(0,e.jsx)(t.p8,{width:690,height:600,children:(0,e.jsx)(t.p8.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:c})})}},78006:function(O,h,n){"use strict";n.r(h)},11265:function(O,h,n){"use strict";n.r(h),n.d(h,{BombTester:function(){return o}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581);function g(){return g=Object.assign||function(a){for(var c=1;c.5,P=Math.random()>.5;return v.state={x:M?j:0,y:P?E:0,reverseX:!1,reverseY:!1},v.process=setInterval(function(){v.setState(function(D){var S=g({},D);return S.reverseX?S.x-y<-5?(S.reverseX=!1,S.x+=y):S.x-=y:S.x+y>j?(S.reverseX=!0,S.x-=y):S.x+=y,S.reverseY?S.y-y<-20?(S.reverseY=!1,S.y+=y):S.y-=y:S.y+y>E?(S.reverseY=!0,S.y-=y):S.y+=y,S})},1),v}var f=c.prototype;return f.componentWillUnmount=function(){clearInterval(this.process)},f.render=function(){var v=this.state,j=v.x,E=v.y,y={position:"relative",left:j+"px",top:E+"px"};return(0,e.jsx)(r.wn,{title:"Simulation in progress!",fill:!0,children:(0,e.jsx)(r.az,{position:"absolute",style:{overflow:"hidden",width:"100%",height:"100%"},children:(0,e.jsx)(r.In,{style:y,name:"bomb",size:10,color:"red"})})})},c}(i.Component)},5536:function(O,h,n){"use strict";n.r(h),n.d(h,{BotanyEditor:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.activity,a=o.degradation,c=o.disk,f=o.sourceName,m=o.locus,v=o.loaded;return l?(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.IC,{info:!0,children:"Scanning..."})})}):(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Buffered Genetic Data",children:c&&(0,e.jsxs)(t.az,{children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Source",children:f}),(0,e.jsxs)(t.Ki.Item,{label:"Gene Decay",children:[a,"%"]}),(0,e.jsx)(t.Ki.Item,{label:"Locus",children:m})]}),(0,e.jsx)(t.$n,{mt:1,icon:"eject",onClick:function(){return u("eject_disk")},children:"Eject Loaded Disk"})]})||(0,e.jsx)(t.IC,{warning:!0,children:"No disk loaded."})}),(0,e.jsx)(t.wn,{title:"Loaded Material",children:v&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Target",children:v})}),(0,e.jsx)(t.$n,{mt:1,icon:"cog",onClick:function(){return u("apply_gene")},children:"Apply Gene Mods"}),(0,e.jsx)(t.$n,{mt:1,icon:"eject",onClick:function(){return u("eject_packet")},children:"Eject Target"})]})||(0,e.jsx)(t.IC,{warning:!0,children:"No target seed packet loaded."})})]})})}},68734:function(O,h,n){"use strict";n.r(h),n.d(h,{BotanyIsolator:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.geneMasks,a=o.activity,c=o.degradation,f=o.disk,m=o.loaded,v=o.hasGenetics,j=o.sourceName;return a?(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.IC,{info:!0,children:"Scanning..."})})}):(0,e.jsx)(r.p8,{width:470,height:500,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Buffered Genetic Data",children:v&&(0,e.jsxs)(t.az,{children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Source",children:j}),(0,e.jsxs)(t.Ki.Item,{label:"Gene decay",children:[c,"%"]}),f&&l.length&&l.map(function(E){return(0,e.jsx)(t.Ki.Item,{label:E.mask,children:(0,e.jsx)(t.$n,{mb:-1,icon:"download",onClick:function(){return u("get_gene",{get_gene:E.tag})},children:"Extract"})},E.mask)})||null]}),f&&(0,e.jsxs)(t.az,{mt:1,children:[(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return u("eject_disk")},children:"Eject Loaded Disk"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return u("clear_buffer")},children:"Clear Genetic Buffer"})]})||(0,e.jsx)(t.IC,{mt:1,warning:!0,children:"No disk inserted."})]})||(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.IC,{warning:!0,children:"No Data Buffered."}),f&&(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return u("eject_disk")},children:"Eject Loaded Disk"})||(0,e.jsx)(t.IC,{mt:1,warning:!0,children:"No disk inserted."})]})}),(0,e.jsx)(t.wn,{title:"Loaded Material",children:m&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Packet Loaded",children:m})}),(0,e.jsx)(t.$n,{mt:1,icon:"cog",onClick:function(){return u("scan_genome")},children:"Process Genome"}),(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return u("eject_packet")},children:"Eject Packet"})]})||(0,e.jsx)(t.IC,{warning:!0,children:"No packet loaded."})})]})})}},46141:function(O,h,n){"use strict";n.r(h),n.d(h,{BrigTimer:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.time_left,f=a.max_time_left,m=a.timing,v=a.flash_found,j=a.flash_charging,E=a.preset_short,y=a.preset_medium,M=a.preset_long;return(0,e.jsx)(g.p8,{width:400,height:138,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsxs)(r.wn,{title:"Cell Timer",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"clock-o",selected:m,onClick:function(){return l(m?"stop":"start")},children:m?"Stop":"Start"}),v&&(0,e.jsx)(r.$n,{icon:"lightbulb-o",disabled:j,onClick:function(){return l("flash")},children:j?"Recharging":"Flash"})||null]}),children:[(0,e.jsx)(r.Q7,{animated:!0,fluid:!0,step:1,value:c/10,minValue:0,maxValue:f/10,format:function(P){return(0,s.fU)((0,i.LI)(P*10,0))},onDrag:function(P){return l("time",{time:P})}}),(0,e.jsxs)(r.so,{mt:1,children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,icon:"hourglass-start",onClick:function(){return l("preset",{preset:"short"})},children:"Add "+(0,s.fU)(E)})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,icon:"hourglass-start",onClick:function(){return l("preset",{preset:"medium"})},children:"Add "+(0,s.fU)(y)})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{fluid:!0,icon:"hourglass-start",onClick:function(){return l("preset",{preset:"long"})},children:"Add "+(0,s.fU)(M)})})]})]})})})}},18490:function(O,h,n){"use strict";n.r(h),n.d(h,{CameraConsole:function(){return f},CameraConsoleContent:function(){return m},prevNextCamera:function(){return l},selectCameras:function(){return c}});var e=n(20462),i=n(7402),t=n(15813),r=n(65380),s=n(61282),g=n(61358),x=n(7081),u=n(88569),o=n(15581),l=function(v,j){var E,y;if(!j)return[];var M=v.findIndex(function(P){return P.name===j.name});return[(E=v[M-1])==null?void 0:E.name,(y=v[M+1])==null?void 0:y.name]};function a(v){return v!=null}var c=function(v,j,E){j===void 0&&(j=""),E===void 0&&(E="");var y=(0,s.XZ)(j,function(M){return M.name});return(0,t.L)([function(M){return(0,i.pb)(M,function(P){return a(P==null?void 0:P.name)})},function(M){return j?(0,i.pb)(M,y):M},function(M){return E?(0,i.pb)(M,function(P){return P.networks.includes(E)}):M},function(M){return(0,i.Ul)(M,function(P){return P.name})}])(v)},f=function(v){var j=(0,x.Oc)(),E=j.act,y=j.data,M=y.mapRef,P=y.activeCamera,D=y.cameras,S=c(D),B=l(S,P),T=B[0],L=B[1];return(0,e.jsxs)(o.p8,{width:870,height:708,children:[(0,e.jsx)("div",{className:"CameraConsole__left",children:(0,e.jsx)(o.p8.Content,{scrollable:!0,children:(0,e.jsx)(m,{})})}),(0,e.jsxs)("div",{className:"CameraConsole__right",children:[(0,e.jsxs)("div",{className:"CameraConsole__toolbar",children:[(0,e.jsx)("b",{children:"Camera: "}),P&&P.name||"\u2014"]}),(0,e.jsxs)("div",{className:"CameraConsole__toolbarRight",children:["SEL:",(0,e.jsx)(u.$n,{icon:"chevron-left",disabled:!T,onClick:function(){return E("switch_camera",{name:T})}}),(0,e.jsx)(u.$n,{icon:"chevron-right",disabled:!L,onClick:function(){return E("switch_camera",{name:L})}}),"| PAN:",(0,e.jsx)(u.$n,{icon:"chevron-left",onClick:function(){return E("pan",{dir:8})}}),(0,e.jsx)(u.$n,{icon:"chevron-up",onClick:function(){return E("pan",{dir:1})}}),(0,e.jsx)(u.$n,{icon:"chevron-right",onClick:function(){return E("pan",{dir:4})}}),(0,e.jsx)(u.$n,{icon:"chevron-down",onClick:function(){return E("pan",{dir:2})}})]}),(0,e.jsx)(u.D1,{className:"CameraConsole__map",params:{id:M,type:"map"}})]})]})},m=function(v){var j=(0,x.Oc)(),E=j.act,y=j.data,M=(0,g.useState)(""),P=M[0],D=M[1],S=(0,g.useState)(""),B=S[0],T=S[1],L=y.activeCamera,W=y.allNetworks,$=y.cameras;W.sort();var k=c($,P,B);return(0,e.jsxs)(u.so,{direction:"column",height:"100%",children:[(0,e.jsx)(u.so.Item,{children:(0,e.jsx)(u.pd,{autoFocus:!0,fluid:!0,mt:1,placeholder:"Search for a camera",onInput:function(z,X){return D(X)}})}),(0,e.jsx)(u.so.Item,{children:(0,e.jsxs)(u.so,{children:[(0,e.jsx)(u.so.Item,{children:(0,e.jsx)(u.ms,{autoScroll:!1,mb:1,width:B?"155px":"177px",selected:B,displayText:B||"No Filter",options:W,onSelected:function(z){return T(z)}})}),B?(0,e.jsx)(u.so.Item,{children:(0,e.jsx)(u.$n,{width:"22px",icon:"undo",color:"red",onClick:function(){T("")}})}):""]})}),(0,e.jsx)(u.so.Item,{height:"100%",children:(0,e.jsx)(u.wn,{fill:!0,scrollable:!0,children:k.map(function(z){return(0,e.jsx)("div",{title:z.name,className:(0,r.Ly)(["Button","Button--fluid","Button--color--transparent","Button--ellipsis",L&&z.name===L.name&&"Button--selected"]),onClick:function(){return E("switch_camera",{name:z.name})},children:z.name},z.name)})})})]})}},82195:function(O,h,n){"use strict";n.r(h),n.d(h,{Canister:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.connected,f=a.can_relabel,m=a.pressure,v=a.releasePressure,j=a.defaultReleasePressure,E=a.minReleasePressure,y=a.maxReleasePressure,M=a.valveOpen,P=a.holding;return(0,e.jsx)(g.p8,{width:360,height:242,children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Canister",buttons:(0,e.jsx)(r.$n,{icon:"pencil-alt",disabled:!f,onClick:function(){return l("relabel")},children:"Relabel"}),children:(0,e.jsxs)(r.Wx,{children:[(0,e.jsx)(r.Wx.Item,{minWidth:"66px",label:"Tank Pressure",children:(0,e.jsx)(r.zv,{value:m,format:function(D){return D<1e4?(0,i.Mg)(D)+" kPa":(0,s.QL)(D*1e3,1,"Pa")}})}),(0,e.jsx)(r.Wx.Item,{label:"Regulator",children:(0,e.jsxs)(r.az,{position:"relative",left:"-8px",children:[(0,e.jsx)(r.N6,{width:"60px",size:1.25,color:!!M&&"yellow",value:v,unit:"kPa",minValue:E,maxValue:y,stepPixelSize:1,onDrag:function(D,S){return l("pressure",{pressure:S})}}),(0,e.jsx)(r.$n,{fluid:!0,position:"absolute",top:"-2px",right:"-20px",color:"transparent",icon:"fast-forward",onClick:function(){return l("pressure",{pressure:y})}}),(0,e.jsx)(r.$n,{fluid:!0,position:"absolute",top:"16px",right:"-20px",color:"transparent",icon:"undo",onClick:function(){return l("pressure",{pressure:j})}})]})}),(0,e.jsx)(r.Wx.Item,{label:"Valve",children:(0,e.jsx)(r.$n,{my:.5,width:"50px",lineHeight:2,fontSize:"11px",color:M?P?"caution":"danger":null,onClick:function(){return l("valve")},children:M?"Open":"Closed"})}),(0,e.jsx)(r.Wx.Item,{mr:1,label:"Port",children:(0,e.jsxs)(r.az,{position:"relative",children:[(0,e.jsx)(r.In,{size:1.25,name:c?"plug":"times",color:c?"good":"bad"}),(0,e.jsx)(r.m_,{content:c?"Connected":"Disconnected",position:"top"})]})})]})}),(0,e.jsxs)(r.wn,{title:"Holding Tank",buttons:!!P&&(0,e.jsx)(r.$n,{icon:"eject",color:M&&"danger",onClick:function(){return l("eject")},children:"Eject"}),children:[!!P&&(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Label",children:P.name}),(0,e.jsxs)(r.Ki.Item,{label:"Pressure",children:[(0,e.jsx)(r.zv,{value:P.pressure})," kPa"]})]}),!P&&(0,e.jsx)(r.az,{color:"average",children:"No Holding Tank"})]})]})})}},64808:function(O,h,n){"use strict";n.r(h),n.d(h,{Canvas:function(){return f}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581);function g(){return g=Object.assign||function(m){for(var v=1;v=0)&&(j[y]=m[y]);return j}function o(m,v){return o=Object.setPrototypeOf||function(E,y){return E.__proto__=y,E},o(m,v)}var l=24,a=function(m){"use strict";x(v,m);function v(E){var y;return y=m.call(this,E)||this,y.canvasRef=(0,i.createRef)(),y.onCVClick=E.onCanvasClick,y}var j=v.prototype;return j.componentDidMount=function(){this.drawCanvas(this.props)},j.componentDidUpdate=function(){this.drawCanvas(this.props)},j.drawCanvas=function(y){var M=this.canvasRef.current,P=M.getContext("2d"),D=y.value;if(D){var S=D.length;if(S){var B=D[0].length,T=Math.round(M.width/S),L=Math.round(M.height/B);P.save(),P.scale(T,L);for(var W=0;W=0)&&(j[y]=m[y]);return j}var o={Alphabetical:function(m,v){return m.name>v.name},"By price":function(m,v){return m.price-v.price}},l=function(){var m=function($){M($)},v=function($){S($)},j=function($){L($)},E=(0,t.useState)(""),y=E[0],M=E[1],P=(0,t.useState)("Alphabetical"),D=P[0],S=P[1],B=(0,t.useState)(!1),T=B[0],L=B[1];return(0,e.jsx)(g.p8,{width:400,height:450,children:(0,e.jsx)(g.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(a,{sortOrder:D,descending:T,onSearchText:m,onSortOrder:v,onDescending:j}),(0,e.jsx)(c,{searchText:y,sortOrder:D,descending:T})]})})})},a=function(m){return(0,e.jsx)(s.az,{mb:"0.5rem",children:(0,e.jsxs)(s.so,{width:"100%",children:[(0,e.jsx)(s.so.Item,{grow:"1",mr:"0.5rem",children:(0,e.jsx)(s.pd,{placeholder:"Search by item name..",width:"100%",onInput:function(v,j){return m.onSearchText(j)}})}),(0,e.jsx)(s.so.Item,{basis:"30%",children:(0,e.jsx)(s.ms,{autoScroll:!1,selected:m.sortOrder,options:Object.keys(o),width:"100%",lineHeight:"19px",onSelected:function(v){return m.onSortOrder(v)}})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.$n,{icon:m.descending?"arrow-down":"arrow-up",height:"19px",tooltip:m.descending?"Descending order":"Ascending order",tooltipPosition:"bottom-end",ml:"0.5rem",onClick:function(){return m.onDescending(!m.descending)}})})]})})},c=function(m){var v=(0,r.Oc)(),j=v.act,E=v.data,y=E.items,M=(0,i.XZ)(m.searchText,function(S){return S[0]}),P=!1,D=Object.entries(y).map(function(S){var B=Object.entries(S[1]).filter(M).map(function(T){return T[1]}).sort(o[m.sortOrder]);if(B.length!==0)return m.descending&&(B=B.reverse()),P=!0,(0,e.jsx)(f,{title:S[0],items:B},S[0])});return(0,e.jsx)(s.so.Item,{grow:"1",overflow:"auto",children:(0,e.jsx)(s.wn,{children:P?D:(0,e.jsx)(s.az,{color:"label",children:"No items matching your criteria was found!"})})})},f=function(m){var v=(0,r.Oc)().act,j=m.title,E=m.items,y=u(m,["title","items"]);return(0,e.jsx)(s.Nt,x({open:!0,title:j},y,{children:E.map(function(M){return(0,e.jsxs)(s.az,{children:[(0,e.jsx)(s.az,{inline:!0,verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:M.name}),(0,e.jsx)(s.$n,{width:"15%",textAlign:"center",style:{float:"right"},onClick:function(){return v("purchase",{cat:j,name:M.name,price:M.price,restriction:M.restriction})},children:M.price.toLocaleString("en-US")}),(0,e.jsx)(s.az,{style:{clear:"both"}})]},M.name)})}))}},43966:function(O,h,n){"use strict";n.r(h),n.d(h,{CharacterDirectory:function(){return x}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(a){switch(a){case"Unset":return"label";case"Pred":return"red";case"Pred-Pref":return"orange";case"Prey":return"blue";case"Prey-Pref":return"green";case"Switch":return"yellow";case"Non-Vore":return"black"}},x=function(a){var c=function(W){D(W)},f=(0,t.Oc)(),m=f.act,v=f.data,j=v.personalVisibility,E=v.personalTag,y=v.personalErpTag,M=(0,i.useState)(null),P=M[0],D=M[1],S=(0,i.useState)(!1),B=S[0],T=S[1];return(0,e.jsx)(s.p8,{width:640,height:480,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:P&&(0,e.jsx)(u,{overlay:P,onOverlay:c})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Controls",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.az,{color:"label",inline:!0,children:"Save to current preferences slot:\xA0"}),(0,e.jsx)(r.$n,{icon:B?"toggle-on":"toggle-off",selected:B,onClick:function(){return T(!B)},children:B?"On":"Off"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Visibility",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("setVisible",{overwrite_prefs:B})},children:j?"Shown":"Not Shown"})}),(0,e.jsx)(r.Ki.Item,{label:"Vore Tag",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("setTag",{overwrite_prefs:B})},children:E})}),(0,e.jsx)(r.Ki.Item,{label:"ERP Tag",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("setErpTag",{overwrite_prefs:B})},children:y})}),(0,e.jsx)(r.Ki.Item,{label:"Advertisement",children:(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return m("editAd",{overwrite_prefs:B})},children:"Edit Ad"})})]})}),(0,e.jsx)(o,{onOverlay:c})]})})})},u=function(a){return(0,e.jsxs)(r.wn,{title:a.overlay.name,buttons:(0,e.jsx)(r.$n,{icon:"arrow-left",onClick:function(){return a.onOverlay(null)},children:"Back"}),children:[(0,e.jsx)(r.wn,{title:"Species",children:(0,e.jsx)(r.az,{children:a.overlay.species})}),(0,e.jsx)(r.wn,{title:"Vore Tag",children:(0,e.jsx)(r.az,{p:1,backgroundColor:g(a.overlay.tag),children:a.overlay.tag})}),(0,e.jsx)(r.wn,{title:"ERP Tag",children:(0,e.jsx)(r.az,{children:a.overlay.erptag})}),(0,e.jsx)(r.wn,{title:"Character Ad",children:(0,e.jsx)(r.az,{style:{wordBreak:"break-all"},preserveWhitespace:!0,children:a.overlay.character_ad||"Unset."})}),(0,e.jsx)(r.wn,{title:"OOC Notes",children:(0,e.jsx)(r.az,{style:{wordBreak:"break-all"},preserveWhitespace:!0,children:a.overlay.ooc_notes||"Unset."})}),(0,e.jsx)(r.wn,{title:"Flavor Text",children:(0,e.jsx)(r.az,{style:{wordBreak:"break-all"},preserveWhitespace:!0,children:a.overlay.flavor_text||"Unset."})})]})},o=function(a){var c=function(L){P(L)},f=function(L){B(L)},m=(0,t.Oc)(),v=m.act,j=m.data,E=j.directory,y=(0,i.useState)("name"),M=y[0],P=y[1],D=(0,i.useState)("name"),S=D[0],B=D[1];return(0,e.jsx)(r.wn,{title:"Directory",buttons:(0,e.jsx)(r.$n,{icon:"sync",onClick:function(){return v("refresh")},children:"Refresh"}),children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{bold:!0,children:[(0,e.jsx)(l,{id:"name",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"Name"}),(0,e.jsx)(l,{id:"species",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"Species"}),(0,e.jsx)(l,{id:"tag",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"Vore Tag"}),(0,e.jsx)(l,{id:"erptag",sortId:M,sortOrder:S,onSortId:c,onSortOrder:f,children:"ERP Tag"}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"right",children:"View"})]}),E.sort(function(T,L){var W=S?1:-1;return T[M].localeCompare(L[M])*W}).map(function(T,L){return(0,e.jsxs)(r.XI.Row,{backgroundColor:g(T.tag),children:[(0,e.jsx)(r.XI.Cell,{p:1,children:T.name}),(0,e.jsx)(r.XI.Cell,{children:T.species}),(0,e.jsx)(r.XI.Cell,{children:T.tag}),(0,e.jsx)(r.XI.Cell,{children:T.erptag}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"right",children:(0,e.jsx)(r.$n,{onClick:function(){return a.onOverlay(T)},color:"transparent",icon:"sticky-note",mr:1,children:"View"})})]},L)})]})})},l=function(a){var c=a.id,f=a.children;return(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsxs)(r.$n,{width:"100%",color:a.sortId!==c&&"transparent",onClick:function(){a.sortId===c?a.onSortOrder(!a.sortOrder):(a.onSortId(c),a.onSortOrder(!0))},children:[f,a.sortId===c&&(0,e.jsx)(r.In,{name:a.sortOrder?"sort-up":"sort-down",ml:"0.25rem;"})]})})}},15559:function(O,h,n){"use strict";n.r(h),n.d(h,{CheckboxInput:function(){return l}});var e=n(20462),i=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(19996),x=n(15581),u=n(5335),o=n(44149),l=function(a){var c=(0,r.Oc)().data,f=c.items,m=f===void 0?[]:f,v=c.min_checked,j=c.max_checked,E=c.message,y=c.timeout,M=c.title,P=(0,t.useState)([]),D=P[0],S=P[1],B=(0,t.useState)(""),T=B[0],L=B[1],W=(0,i.XZ)(T,function(z){return z}),$=m.filter(W),k=function(z){var X=D.includes(z)?D.filter(function(G){return G!==z}):[].concat(D,[z]);S(X)};return(0,e.jsxs)(x.p8,{title:M,width:425,height:300,children:[!!y&&(0,e.jsx)(o.Loader,{value:y}),(0,e.jsx)(x.p8.Content,{children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsxs)(s.IC,{info:!0,textAlign:"center",children:[(0,i.jT)(E)," ",v>0&&" (Min: "+v+")",j<50&&" (Max: "+j+")"]})}),(0,e.jsx)(s.BJ.Item,{grow:!0,mt:0,children:(0,e.jsx)(s.wn,{fill:!0,scrollable:!0,children:(0,e.jsx)(s.XI,{children:$.map(function(z,X){return(0,e.jsx)(g.Hj,{className:"candystripe",children:(0,e.jsx)(g.nA,{children:(0,e.jsx)(s.$n.Checkbox,{checked:D.includes(z),disabled:D.length>=j&&!D.includes(z),fluid:!0,onClick:function(){return k(z)},children:z})})},X)})})})}),(0,e.jsxs)(s.BJ,{m:1,mb:0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.m_,{content:"Search",position:"bottom",children:(0,e.jsx)(s.In,{name:"search",mt:.5})})}),(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(s.pd,{fluid:!0,value:T,onInput:function(z,X){return L(X)}})})]}),(0,e.jsx)(s.BJ.Item,{mt:.7,children:(0,e.jsx)(s.wn,{children:(0,e.jsx)(u.InputButtons,{input:D})})})]})})]})}},29361:function(O,h,n){"use strict";n.r(h),n.d(h,{ChemDispenserBeaker:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(78924),s=n(58820),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.isBeakerLoaded,c=l.beakerCurrentVolume,f=l.beakerMaxVolume,m=l.beakerContents,v=m===void 0?[]:m,j=l.recipes,E=l.recordingRecipe,y=!!E,M=y&&E.map(function(P){return{id:P.id,name:P.id.replace(/_/," "),volume:P.amount}});return(0,e.jsx)(t.wn,{title:y?"Virtual Beaker":"Beaker",fill:!0,scrollable:!0,buttons:(0,e.jsxs)(t.az,{children:[!!a&&(0,e.jsxs)(t.az,{inline:!0,color:"label",mr:2,children:[c," / ",f," units"]}),(0,e.jsx)(t.$n,{icon:"eject",disabled:!a,onClick:function(){return o("ejectBeaker")},children:"Eject"})]}),children:(0,e.jsx)(r.BeakerContents,{beakerLoaded:M||a,beakerContents:M||v,buttons:function(P){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"compress-arrows-alt",disabled:y,onClick:function(){return o("remove",{reagent:P.id,amount:-1})},children:"Isolate"}),s.removeAmounts.map(function(D,S){return(0,e.jsx)(t.$n,{disabled:y,onClick:function(){return o("remove",{reagent:P.id,amount:D})},children:D},S)}),(0,e.jsx)(t.$n,{disabled:y,onClick:function(){return o("remove",{reagent:P.id,amount:P.volume})},children:"ALL"})]})}})})}},64776:function(O,h,n){"use strict";n.r(h),n.d(h,{ChemDispenserChemicals:function(){return s}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=function(x){for(var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.chemicals,c=a===void 0?[]:a,f=[],m=0;m<(c.length+1)%3;m++)f.push(!0);return(0,e.jsx)(r.wn,{title:l.glass?"Drink Dispenser":"Chemical Dispenser",flexGrow:!0,buttons:(0,e.jsx)(g,{}),children:(0,e.jsxs)(r.so,{direction:"row",wrap:"wrap",height:"100%",align:"flex-start",children:[c.map(function(v,j){return(0,e.jsx)(r.so.Item,{grow:"1",m:.2,basis:"40%",height:"20px",children:(0,e.jsx)(r.$n,{icon:"arrow-circle-down",width:"100%",height:"100%",align:"flex-start",onClick:function(){return o("dispense",{reagent:v.id})},children:v.name+" ("+v.volume+")"})},j)}),f.map(function(v,j){return(0,e.jsx)(r.so.Item,{grow:"1",basis:"25%",height:"20px"},j)})]})})},g=function(x){var u=(0,t.Oc)().data,o=!!u.recordingRecipe,l=(0,i.useState)(!1),a=l[0],c=l[1];return(0,i.useEffect)(function(){if(o){var f=setInterval(function(){c(function(m){return!m})},1e3);return function(){return clearInterval(f)}}},[o]),o?(0,e.jsx)(r.m_,{content:"Recording in progress",children:(0,e.jsx)(r.In,{mt:.7,color:"bad",name:a?"circle-o":"circle"})}):null}},92090:function(O,h,n){"use strict";n.r(h),n.d(h,{ChemDispenserRecipes:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.recipes,l=u.recordingRecipe,a=!!l,c=Object.keys(o).sort();return(0,e.jsxs)(t.wn,{title:"Recipes",fill:!0,scrollable:!0,buttons:(0,e.jsxs)(e.Fragment,{children:[!a&&(0,e.jsx)(t.$n,{icon:"circle",onClick:function(){return x("record_recipe")},children:"Record"}),a&&(0,e.jsx)(t.$n,{icon:"ban",color:"bad",onClick:function(){return x("cancel_recording")},children:"Discard"}),a&&(0,e.jsx)(t.$n,{icon:"save",color:"green",onClick:function(){return x("save_recording")},children:"Save"}),!a&&(0,e.jsx)(t.$n.Confirm,{icon:"trash",confirmIcon:"trash",color:"bad",onClick:function(){return x("clear_recipes")},children:"Clear All"})]}),children:[a&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"green",fontSize:1.2,bold:!0,children:"Recording In Progress..."}),(0,e.jsxs)(t.az,{color:"label",children:["Press dispenser buttons in the order you wish for them to be repeated, then click"," ",(0,e.jsx)(t.az,{color:"good",inline:!0,children:"Save"}),"."]}),(0,e.jsxs)(t.az,{color:"average",mb:1,children:["Alternatively, if you mess up the recipe and want to discard this recording, click"," ",(0,e.jsx)(t.az,{color:"bad",inline:!0,children:"Discard"}),"."]})]}),c.length?c.map(function(f){return(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"flask",onClick:function(){return x("dispense_recipe",{recipe:f})},children:f})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n.Confirm,{icon:"trash",confirmIcon:"triangle-exclamation",confirmContent:"",color:"bad",onClick:function(){return x("remove_recipe",{recipe:f})}})})]},f)}):"No Recipes."]})}},38908:function(O,h,n){"use strict";n.r(h),n.d(h,{ChemDispenserSettings:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(58820),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.amount;return(0,e.jsx)(t.wn,{title:"Settings",fill:!0,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Dispense",verticalAlign:"middle",children:r.dispenseAmounts.map(function(a,c){return(0,e.jsx)(t.$n,{textAlign:"center",selected:l===a,m:"0",onClick:function(){return u("amount",{amount:a})},children:a+"u"},c)})}),(0,e.jsx)(t.Ki.Item,{label:"Custom Amount",children:(0,e.jsx)(t.Ap,{step:1,stepPixelSize:5,value:l,minValue:1,maxValue:120,onDrag:function(a,c){return u("amount",{amount:c})}})})]})})}},58820:function(O,h,n){"use strict";n.r(h),n.d(h,{dispenseAmounts:function(){return e},removeAmounts:function(){return i}});var e=[5,10,20,30,40,60],i=[1,5,10]},66119:function(O,h,n){"use strict";n.r(h),n.d(h,{ChemDispenser:function(){return o}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(29361),g=n(64776),x=n(92090),u=n(38908),o=function(l){var a=(0,i.Oc)().data;return(0,e.jsx)(r.p8,{width:680,height:540,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.BJ,{vertical:!0,fill:!0,children:[(0,e.jsx)(t.BJ.Item,{children:(0,e.jsxs)(t.BJ,{children:[(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsxs)(t.BJ,{vertical:!0,fill:!0,children:[(0,e.jsx)(t.BJ.Item,{children:(0,e.jsx)(u.ChemDispenserSettings,{})}),(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsx)(x.ChemDispenserRecipes,{})})]})}),(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsx)(g.ChemDispenserChemicals,{})})]})}),(0,e.jsx)(t.BJ.Item,{grow:!0,children:(0,e.jsx)(s.ChemDispenserBeaker,{})})]})})})}},9136:function(O,h,n){"use strict";n.r(h)},16028:function(O,h,n){"use strict";n.r(h),n.d(h,{analyzeModalBodyOverride:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=s.args.analysis;return(0,e.jsx)(t.wn,{m:"-1rem",pb:"1rem",title:u.condi?"Condiment Analysis":"Reagent Analysis",children:(0,e.jsx)(t.az,{mx:"0.5rem",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:o.name}),(0,e.jsx)(t.Ki.Item,{label:"Description",children:(o.desc||"").length>0?o.desc:"N/A"}),o.blood_type&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Blood type",children:o.blood_type}),(0,e.jsx)(t.Ki.Item,{label:"Blood DNA",className:"LabeledList__breakContents",children:o.blood_dna})]}),!u.condi&&(0,e.jsx)(t.$n,{icon:u.printing?"spinner":"print",disabled:u.printing,iconSpin:!!u.printing,ml:"0.5rem",onClick:function(){return x("print",{idx:o.idx,beaker:s.args.beaker})},children:"Print"})]})})})}},88737:function(O,h,n){"use strict";n.r(h),n.d(h,{ChemMasterBeaker:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(78924),s=n(86471),g=n(16793),x=function(u){var o=(0,i.Oc)().act,l=u.beaker,a=u.beakerReagents,c=u.bufferNonEmpty,f=c?(0,e.jsx)(t.$n.Confirm,{icon:"eject",disabled:!l,onClick:function(){return o("eject")},children:"Eject and Clear Buffer"}):(0,e.jsx)(t.$n,{icon:"eject",disabled:!l,onClick:function(){return o("eject")},children:"Eject and Clear Buffer"});return(0,e.jsx)(t.wn,{title:"Beaker",buttons:f,children:l?(0,e.jsx)(r.BeakerContents,{beakerLoaded:!0,beakerContents:a,buttons:function(m,v){return(0,e.jsxs)(t.az,{mb:v0?(0,e.jsx)(r.BeakerContents,{beakerLoaded:!0,beakerContents:c,buttons:function(f,m){return(0,e.jsxs)(t.az,{mb:m0}),(0,e.jsx)(x.ChemMasterBuffer,{mode:y,bufferReagents:E}),(0,e.jsx)(u.ChemMasterProduction,{isCondiment:c,bufferNonEmpty:E.length>0,loaded_pill_bottle:M,loaded_pill_bottle_name:P||"",loaded_pill_bottle_contents_len:D||0,loaded_pill_bottle_storage_slots:S||0,pillsprite:B,bottlesprite:T})]})]})};(0,r.modalRegisterBodyOverride)("analyze",s.analyzeModalBodyOverride)},25453:function(O,h,n){"use strict";n.r(h)},42918:function(O,h,n){"use strict";n.r(h),n.d(h,{ClawMachine:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.wintick,a=o.instructions,c=o.gameStatus,f=o.winscreen,m;return c==="CLAWMACHINE_NEW"?m=(0,e.jsxs)(t.az,{align:"center",children:[(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),(0,e.jsx)("b",{children:"Pay to Play!"})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),a,(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return u("newgame")},children:"Start"})]}):c==="CLAWMACHINE_END"?m=(0,e.jsxs)(t.az,{align:"center",children:[(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),(0,e.jsx)("b",{children:"Thank you for playing!"})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{}),f,(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return u("return")},children:"Close"})]}):c==="CLAWMACHINE_ON"&&(m=(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Progress",children:(0,e.jsx)(t.z2,{ranges:{bad:[-1/0,0],average:[1,7],good:[8,1/0]},value:l,minValue:0,maxValue:10})})}),(0,e.jsxs)(t.az,{align:"center",children:[(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{}),a,(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("hr",{})," ",(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return u("pointless")},children:"Up"}),(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return u("pointless")},children:"Left"}),(0,e.jsx)(t.$n,{onClick:function(){return u("pointless")},children:"Right"}),(0,e.jsx)("br",{})," ",(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return u("pointless")},children:"Down"})]})]})),(0,e.jsx)(r.p8,{children:(0,e.jsx)("center",{children:m})})}},76914:function(O,h,n){"use strict";n.r(h),n.d(h,{Cleanbot:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.open,c=o.locked,f=o.version,m=o.blood,v=o.vocal,j=o.wet_floors,E=o.spray_blood,y=o.rgbpanel,M=o.red_switch,P=o.green_switch,D=o.blue_switch;return(0,e.jsx)(r.p8,{width:400,height:400,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Automatic Station Cleaner "+f,buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return u("start")},children:l?"On":"Off"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Maintenance Panel",color:a?"bad":"good",children:a?"Open":"Closed"}),(0,e.jsx)(t.Ki.Item,{label:"Behavior Controls",color:c?"good":"bad",children:c?"Locked":"Unlocked"})]})}),!c&&(0,e.jsx)(t.wn,{title:"Behavior Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Blood",children:(0,e.jsx)(t.$n,{fluid:!0,icon:m?"toggle-on":"toggle-off",selected:m,onClick:function(){return u("blood")},children:m?"Clean":"Ignore"})}),(0,e.jsx)(t.Ki.Item,{label:"Speaker",children:(0,e.jsx)(t.$n,{fluid:!0,icon:v?"toggle-on":"toggle-off",selected:v,onClick:function(){return u("vocal")},children:v?"On":"Off"})})]})})||null,!c&&a&&(0,e.jsx)(t.wn,{title:"Maintenance Panel",children:y&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{fontSize:5.39,icon:M?"toggle-on":"toggle-off",backgroundColor:M?"red":"maroon",onClick:function(){return u("red_switch")}}),(0,e.jsx)(t.$n,{fontSize:5.39,icon:P?"toggle-on":"toggle-off",backgroundColor:P?"green":"darkgreen",onClick:function(){return u("green_switch")}}),(0,e.jsx)(t.$n,{fontSize:5.39,icon:D?"toggle-on":"toggle-off",backgroundColor:D?"blue":"darkblue",onClick:function(){return u("blue_switch")}})]})||(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Odd Looking Screw Twiddled",children:(0,e.jsx)(t.$n,{fluid:!0,selected:j,onClick:function(){return u("wet_floors")},icon:"screwdriver",children:j?"Yes":"No"})}),(0,e.jsx)(t.Ki.Item,{label:"Weird Button Pressed",children:(0,e.jsx)(t.$n,{fluid:!0,color:"brown",selected:E,onClick:function(){return u("spray_blood")},icon:"screwdriver",children:E?"Yes":"No"})})]})})})||null]})})}},90307:function(O,h,n){"use strict";n.r(h),n.d(h,{viewRecordModalBodyOverride:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(79500),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.disk,a=o.podready,c=g.args,f=c.activerecord,m=c.realname,v=c.health,j=c.unidentity,E=c.strucenzymes,y=v.split(" - ");return(0,e.jsx)(t.wn,{m:"-1rem",pb:"1rem",title:"Records of "+m,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:m}),(0,e.jsx)(t.Ki.Item,{label:"Damage",children:y.length>1?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:r.lm.damageType.oxy,inline:!0,children:y[0]}),"\xA0|\xA0",(0,e.jsx)(t.az,{color:r.lm.damageType.toxin,inline:!0,children:y[2]}),"\xA0|\xA0",(0,e.jsx)(t.az,{color:r.lm.damageType.brute,inline:!0,children:y[3]}),"\xA0|\xA0",(0,e.jsx)(t.az,{color:r.lm.damageType.burn,inline:!0,children:y[1]})]}):(0,e.jsx)(t.az,{color:"bad",children:"Unknown"})}),(0,e.jsx)(t.Ki.Item,{label:"UI",className:"LabeledList__breakContents",children:j}),(0,e.jsx)(t.Ki.Item,{label:"SE",className:"LabeledList__breakContents",children:E}),(0,e.jsxs)(t.Ki.Item,{label:"Disk",children:[(0,e.jsx)(t.$n.Confirm,{disabled:!l,icon:"arrow-circle-down",onClick:function(){return u("disk",{option:"load"})},children:"Import"}),(0,e.jsx)(t.$n,{disabled:!l,icon:"arrow-circle-up",onClick:function(){return u("disk",{option:"save",savetype:"ui"})},children:"Export UI"}),(0,e.jsx)(t.$n,{disabled:!l,icon:"arrow-circle-up",onClick:function(){return u("disk",{option:"save",savetype:"ue"})},children:"Export UI and UE"}),(0,e.jsx)(t.$n,{disabled:!l,icon:"arrow-circle-up",onClick:function(){return u("disk",{option:"save",savetype:"se"})},children:"Export SE"})]}),(0,e.jsxs)(t.Ki.Item,{label:"Actions",children:[(0,e.jsx)(t.$n,{disabled:!a,icon:"user-plus",onClick:function(){return u("clone",{ref:f})},children:"Clone"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return u("del_rec")},children:"Delete"})]})]})})}},57981:function(O,h,n){"use strict";n.r(h),n.d(h,{CloningConsoleNavigation:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.menu;return(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:o===1,icon:"home",onClick:function(){return x("menu",{num:1})},children:"Main"}),(0,e.jsx)(t.tU.Tab,{selected:o===2,icon:"folder",onClick:function(){return x("menu",{num:2})},children:"Records"})]})}},16981:function(O,h,n){"use strict";n.r(h),n.d(h,{CloningConsoleStatus:function(){return g},CloningConsoleTemp:function(){return s}});var e=n(20462),i=n(7081),t=n(88569);function r(){return r=Object.assign||function(x){for(var u=1;u=150?"good":"bad",inline:!0,children:[(0,e.jsx)(s.In,{name:S.biomass>=150?"circle":"circle-o"}),"\xA0",S.biomass]}),T]},B)}):(0,e.jsx)(s.az,{color:"bad",children:"No pods detected. Unable to clone."})})]})},x=function(u){var o=(0,r.Oc)(),l=o.act,a=o.data,c=a.records;return c.length?(0,e.jsx)(s.az,{mt:"0.5rem",children:c.map(function(f,m){return(0,e.jsx)(s.$n,{icon:"user",mb:"0.5rem",onClick:function(){return l("view_rec",{ref:f.record})},children:f.realname},m)})}):(0,e.jsx)(s.so,{height:"100%",children:(0,e.jsxs)(s.so.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,e.jsx)(s.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No records found."]})})}},57508:function(O,h,n){"use strict";n.r(h),n.d(h,{CloningConsole:function(){return l}});var e=n(20462),i=n(7081),t=n(88569),r=n(86471),s=n(15581),g=n(90307),x=n(57981),u=n(16981),o=n(37651),l=function(a){var c=(0,i.Oc)().data,f=c.menu,m=[];return m[1]=(0,e.jsx)(o.CloningConsoleMain,{}),m[2]=(0,e.jsx)(o.CloningConsoleRecords,{}),(0,r.modalRegisterBodyOverride)("view_rec",g.viewRecordModalBodyOverride),(0,e.jsxs)(s.p8,{children:[(0,e.jsx)(r.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,e.jsxs)(s.p8.Content,{className:"Layout__content--flexColumn",children:[(0,e.jsx)(u.CloningConsoleTemp,{}),(0,e.jsx)(u.CloningConsoleStatus,{}),(0,e.jsx)(x.CloningConsoleNavigation,{}),(0,e.jsx)(t.wn,{noTopPadding:!0,flexGrow:!0,children:m[f]||(0,e.jsx)(t.az,{textColor:"red",children:"Error"})})]})]})}},25829:function(O,h,n){"use strict";n.r(h)},61942:function(O,h,n){"use strict";n.r(h),n.d(h,{ColorMateHSV:function(){return g},ColorMateTint:function(){return s}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=function(x){var u=(0,t.Oc)().act;return(0,e.jsx)(r.$n,{fluid:!0,icon:"paint-brush",onClick:function(){return u("choose_color")},children:"Select new color"})},g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.buildhue,c=l.buildsat,f=l.buildval;return(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)("center",{children:"Hue:"}),(0,e.jsx)(r.XI.Cell,{width:"85%",children:(0,e.jsx)(r.Ap,{minValue:0,maxValue:360,step:1,value:a,format:function(m){return(0,i.Mg)(m)},onDrag:function(m,v){return o("set_hue",{buildhue:v})}})})]}),(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)("center",{children:"Saturation:"}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.Ap,{minValue:-10,maxValue:10,step:.01,value:c,format:function(m){return(0,i.Mg)(m,2)},onDrag:function(m,v){return o("set_sat",{buildsat:v})}})})]}),(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)("center",{children:"Value:"}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.Ap,{minValue:-10,maxValue:10,step:.01,value:f,format:function(m){return(0,i.Mg)(m,2)},onDrag:function(m,v){return o("set_val",{buildval:v})}})})]})]})}},17852:function(O,h,n){"use strict";n.r(h),n.d(h,{ColorMateMatrix:function(){return s}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),u=x.act,o=x.data,l=o.matrixcolors;return(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["RR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.rr,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:1,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["GR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.gr,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:4,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["BR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.br,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:7,value:a})}})]})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["RG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.rg,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:2,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["GG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.gg,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:5,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["BG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.bg,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:8,value:a})}})]})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["RB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.rb,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:3,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["GB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.gb,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:6,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["BB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.bb,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:9,value:a})}})]})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.XI.Row,{children:["CR:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.cr,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:10,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["CG:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.cg,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:11,value:a})}})]}),(0,e.jsxs)(r.XI.Row,{children:["CB:",(0,e.jsx)(r.Q7,{width:"50px",minValue:-10,maxValue:10,step:.01,value:l.cb,format:function(a){return(0,i.Mg)(a,2)},onChange:function(a){return u("set_matrix_color",{color:12,value:a})}})]})]}),(0,e.jsxs)(r.XI.Cell,{width:"40%",children:[(0,e.jsx)(r.In,{name:"question-circle",color:"blue"})," RG means red will become this much green.",(0,e.jsx)("br",{}),(0,e.jsx)(r.In,{name:"question-circle",color:"blue"})," CR means this much red will be added."]})]})}},11145:function(O,h,n){"use strict";n.r(h),n.d(h,{ColorMate:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(61942),g=n(17852),x=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.activemode,f=a.temp,m=a.item,v=[];return v[1]=(0,e.jsx)(s.ColorMateTint,{}),v[2]=(0,e.jsx)(s.ColorMateHSV,{}),v[3]=(0,e.jsx)(g.ColorMateMatrix,{}),(0,e.jsx)(r.p8,{width:980,height:720,children:(0,e.jsx)(r.p8.Content,{overflow:"auto",children:(0,e.jsxs)(t.wn,{children:[f?(0,e.jsx)(t.IC,{children:f}):null,m&&Object.keys(m).length?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.XI,{children:[(0,e.jsx)(t.XI.Cell,{width:"50%",children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)("center",{children:"Item:"}),(0,e.jsx)(t._V,{src:"data:image/jpeg;base64, "+m.sprite,style:{width:"100%",height:"100%"}})]})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)("center",{children:"Preview:"}),(0,e.jsx)(t._V,{src:"data:image/jpeg;base64, "+m.preview,style:{width:"100%",height:"100%"}})]})})]}),(0,e.jsxs)(t.tU,{fluid:!0,children:[(0,e.jsx)(t.tU.Tab,{selected:c===1,onClick:function(){return l("switch_modes",{mode:1})},children:"Tint coloring (Simple)"},"1"),(0,e.jsx)(t.tU.Tab,{selected:c===2,onClick:function(){return l("switch_modes",{mode:2})},children:"HSV coloring (Normal)"},"2"),(0,e.jsx)(t.tU.Tab,{selected:c===3,onClick:function(){return l("switch_modes",{mode:3})},children:"Matrix coloring (Advanced)"},"3")]}),(0,e.jsxs)("center",{children:["Coloring: ",m.name]}),(0,e.jsxs)(t.XI,{mt:1,children:[(0,e.jsxs)(t.XI.Cell,{width:"33%",children:[(0,e.jsx)(t.$n,{fluid:!0,icon:"fill",onClick:function(){return l("paint")},children:"Paint"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"eraser",onClick:function(){return l("clear")},children:"Clear"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",onClick:function(){return l("drop")},children:"Eject"})]}),(0,e.jsx)(t.XI.Cell,{width:"66%",children:v[c]||(0,e.jsx)(t.az,{textColor:"red",children:"Error"})})]})]}):(0,e.jsx)("center",{children:"No item inserted."})]})})})}},99390:function(O,h,n){"use strict";n.r(h)},57925:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicationsConsoleAuth:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.authenticated,l=u.is_ai,a=u.esc_status,c=u.esc_callable,f=u.esc_recallable,m;return o?l?m="AI":o===1?m="Command":o===2?m="Site Director":m="ERROR: Report This Bug!":m="Not Logged In",(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Authentication",children:(0,e.jsx)(t.Ki,{children:l&&(0,e.jsx)(t.Ki.Item,{label:"Access Level",children:"AI"})||(0,e.jsx)(t.Ki.Item,{label:"Actions",children:(0,e.jsx)(t.$n,{icon:o?"sign-out-alt":"id-card",selected:o,onClick:function(){return x("auth")},children:o?"Log Out ("+m+")":"Log In"})})})}),(0,e.jsx)(t.wn,{title:"Escape Shuttle",children:(0,e.jsxs)(t.Ki,{children:[!!a&&(0,e.jsx)(t.Ki.Item,{label:"Status",children:a}),!!c&&(0,e.jsx)(t.Ki.Item,{label:"Options",children:(0,e.jsx)(t.$n,{icon:"rocket",disabled:!o,onClick:function(){return x("callshuttle")},children:"Call Shuttle"})}),!!f&&(0,e.jsx)(t.Ki.Item,{label:"Options",children:(0,e.jsx)(t.$n,{icon:"times",disabled:!o||l,onClick:function(){return x("cancelshuttle")},children:"Recall Shuttle"})})]})})]})}},34116:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicationsConsoleContent:function(){return u}});var e=n(20462),i=n(7081),t=n(88569),r=n(57925),s=n(73612),g=n(72298),x=n(19467),u=function(l){var a=(0,i.Oc)().data,c=a.menu_state,f=[];return f[1]=(0,e.jsx)(s.CommunicationsConsoleMain,{}),f[2]=(0,e.jsx)(x.CommunicationsConsoleStatusDisplay,{}),f[3]=(0,e.jsx)(g.CommunicationsConsoleMessage,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.CommunicationsConsoleAuth,{}),f[c]||(0,e.jsx)(o,{menu_state:c})]})},o=function(l){var a=l.menu_state;return(0,e.jsxs)(t.az,{color:"bad",children:["ERRROR. Unknown menu_state: ",a,"Please report this to NT Technical Support."]})}},73612:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicationsConsoleMain:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.messages,l=u.msg_cooldown,a=u.emagged,c=u.cc_cooldown,f=u.str_security_level,m=u.levels,v=u.authmax,j=u.security_level,E=u.security_level_color,y=u.authenticated,M=u.atcsquelch,P=u.boss_short,D="View ("+o.length+")",S="Make Priority Announcement";l>0&&(S+=" ("+l+"s)");var B=a?"Message [UNKNOWN]":"Message "+P;c>0&&(B+=" ("+c+"s)");var T=f,L=m.map(function(W){return(0,e.jsx)(t.$n,{icon:W.icon,disabled:!y,selected:W.id===j,onClick:function(){return x("newalertlevel",{level:W.id})},children:W.name},W.name)});return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Site Manager-Only Actions",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Announcement",children:(0,e.jsx)(t.$n,{icon:"bullhorn",disabled:!v||l>0,onClick:function(){return x("announce")},children:S})}),!!a&&(0,e.jsxs)(t.Ki.Item,{label:"Transmit",children:[(0,e.jsx)(t.$n,{icon:"broadcast-tower",color:"red",disabled:!v||c>0,onClick:function(){return x("MessageSyndicate")},children:B}),(0,e.jsx)(t.$n,{icon:"sync-alt",disabled:!v,onClick:function(){return x("RestoreBackup")},children:"Reset Relays"})]})||(0,e.jsx)(t.Ki.Item,{label:"Transmit",children:(0,e.jsx)(t.$n,{icon:"broadcast-tower",disabled:!v||c>0,onClick:function(){return x("MessageCentCom")},children:B})})]})}),(0,e.jsx)(t.wn,{title:"Command Staff Actions",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current Alert",color:E,children:T}),(0,e.jsx)(t.Ki.Item,{label:"Change Alert",children:L}),(0,e.jsx)(t.Ki.Item,{label:"Displays",children:(0,e.jsx)(t.$n,{icon:"tv",disabled:!y,onClick:function(){return x("status")},children:"Change Status Displays"})}),(0,e.jsx)(t.Ki.Item,{label:"Incoming Messages",children:(0,e.jsx)(t.$n,{icon:"folder-open",disabled:!y,onClick:function(){return x("messagelist")},children:D})}),(0,e.jsx)(t.Ki.Item,{label:"Misc",children:(0,e.jsx)(t.$n,{icon:"microphone",disabled:!y,selected:M,onClick:function(){return x("toggleatc")},children:M?"ATC Relay Disabled":"ATC Relay Enabled"})})]})})]})}},72298:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicationsConsoleMessage:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.message_current,l=u.message_deletion_allowed,a=u.authenticated,c=u.messages;if(o)return(0,e.jsx)(t.wn,{title:o.title,buttons:(0,e.jsx)(t.$n,{icon:"times",disabled:!a,onClick:function(){return x("messagelist")},children:"Return To Message List"}),children:(0,e.jsx)(t.az,{children:o.contents})});var f=c.map(function(m){return(0,e.jsxs)(t.Ki.Item,{label:m.title,children:[(0,e.jsx)(t.$n,{icon:"eye",disabled:!a,onClick:function(){return x("messagelist",{msgid:m.id})},children:"View"}),(0,e.jsx)(t.$n,{icon:"times",disabled:!a||!l,onClick:function(){return x("delmessage",{msgid:m.id})},children:"Delete"})]},m.id)});return(0,e.jsx)(t.wn,{title:"Messages Received",buttons:(0,e.jsx)(t.$n,{icon:"arrow-circle-left",onClick:function(){return x("main")},children:"Back To Main Menu"}),children:(0,e.jsx)(t.Ki,{children:c.length&&f||(0,e.jsx)(t.Ki.Item,{label:"404",color:"bad",children:"No messages."})})})}},19467:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicationsConsoleStatusDisplay:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.stat_display,l=u.authenticated,a=o.presets.map(function(c){return(0,e.jsx)(t.$n,{selected:c.name===o.type,disabled:!l,onClick:function(){return x("setstat",{statdisp:c.name})},children:c.label},c.name)});return(0,e.jsx)(t.wn,{title:"Modify Status Screens",buttons:(0,e.jsx)(t.$n,{icon:"arrow-circle-left",onClick:function(){return x("main")},children:"Back To Main Menu"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Presets",children:a}),(0,e.jsx)(t.Ki.Item,{label:"Message Line 1",children:(0,e.jsx)(t.$n,{icon:"pencil-alt",disabled:!l,onClick:function(){return x("setmsg1")},children:o.line_1})}),(0,e.jsx)(t.Ki.Item,{label:"Message Line 2",children:(0,e.jsx)(t.$n,{icon:"pencil-alt",disabled:!l,onClick:function(){return x("setmsg2")},children:o.line_2})})]})})}},59421:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicationsConsole:function(){return r}});var e=n(20462),i=n(15581),t=n(34116),r=function(s){return(0,e.jsx)(i.p8,{width:400,height:600,children:(0,e.jsx)(i.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.CommunicationsConsoleContent,{})})})}},52994:function(O,h,n){"use strict";n.r(h)},59546:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorContactTab:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.knownDevices;return(0,e.jsx)(r.wn,{title:"Known Devices",children:a.length&&(0,e.jsx)(r.XI,{children:a.map(function(c){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{color:"label",style:{"word-break":"break-all"},children:(0,i.jT)(c.name)}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsx)(r.az,{children:c.address}),(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){o("copy",{copy:c.address}),o("switch_tab",{switch_tab:s.PHONTAB})},children:"Copy"}),(0,e.jsx)(r.$n,{icon:"phone",onClick:function(){o("dial",{dial:c.address}),o("copy",{copy:c.address}),o("switch_tab",{switch_tab:s.PHONTAB})},children:"Call"}),(0,e.jsx)(r.$n,{icon:"comment-alt",onClick:function(){o("copy",{copy:c.address}),o("copy_name",{copy_name:c.name}),o("switch_tab",{switch_tab:s.MESSSUBTAB})},children:"Msg"})]})]})]},c.address)})})||(0,e.jsx)(r.az,{children:"No devices detected on your local NTNet region."})})}},28215:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorFooter:function(){return u},CommunicatorHeader:function(){return x},TemplateError:function(){return g},VideoComm:function(){return o}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(l){return(0,e.jsxs)(r.wn,{title:"Error!",children:["You tried to access tab #",l.currentTab,", but there was no template defined!"]})},x=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.time,v=f.connectionStatus,j=f.owner,E=f.occupation;return(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{align:"center",justify:"space-between",children:[(0,e.jsx)(r.so.Item,{color:"average",children:m}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.In,{color:v===1?"good":"bad",name:v===1?"signal":"exclamation-triangle"})}),(0,e.jsx)(r.so.Item,{color:"average",children:(0,i.jT)(j)}),(0,e.jsx)(r.so.Item,{color:"average",children:(0,i.jT)(E)})]})})},u=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.flashlight,v=l.videoSetting,j=l.setVideoSetting;return(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{basis:v===2?"60%":"80%",children:(0,e.jsx)(r.$n,{p:1,fluid:!0,icon:"home",iconSize:2,textAlign:"center",onClick:function(){return c("switch_tab",{switch_tab:s.HOMETAB})}})}),(0,e.jsx)(r.so.Item,{basis:"20%",children:(0,e.jsx)(r.$n,{icon:"lightbulb",iconSize:2,p:1,fluid:!0,textAlign:"center",selected:m,tooltip:"Flashlight",tooltipPosition:"top",onClick:function(){return c("Light")}})}),v===2&&(0,e.jsx)(r.so.Item,{basis:"20%",children:(0,e.jsx)(r.$n,{icon:"video",iconSize:2,p:1,fluid:!0,textAlign:"center",tooltip:"Open Video",tooltipPosition:"top",onClick:function(){return j(1)}})})]})},o=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.mapRef,v=l.videoSetting,j=l.setVideoSetting;return v===0?(0,e.jsxs)(r.az,{width:"100%",height:"100%",children:[(0,e.jsx)(r.D1,{width:"100%",height:"95%",params:{id:m,type:"map"}}),(0,e.jsxs)(r.so,{justify:"space-between",spacing:1,mt:.5,children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,icon:"window-minimize",onClick:function(){return j(1)}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"video-slash",onClick:function(){return c("endvideo")}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"phone-slash",onClick:function(){return c("hang_up")}})})]})]}):v===1?(0,e.jsxs)(r.az,{style:{position:"absolute",right:"5px",bottom:"50px",zIndex:"1"},children:[(0,e.jsx)(r.wn,{p:0,m:0,children:(0,e.jsxs)(r.so,{justify:"space-between",spacing:1,children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,icon:"window-minimize",onClick:function(){return j(2)}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,icon:"window-maximize",onClick:function(){return j(0)}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"video-slash",onClick:function(){return c("endvideo")}})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.$n,{textAlign:"center",fluid:!0,fontSize:1.5,color:"bad",icon:"phone-slash",onClick:function(){return c("hang_up")}})})]})}),(0,e.jsx)(r.D1,{width:"200px",height:"200px",params:{id:m,type:"map"}})]}):null}},46873:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorHomeTab:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.homeScreen;return(0,e.jsx)(t.so,{mt:2,wrap:"wrap",align:"center",justify:"center",children:l.map(function(a){return(0,e.jsxs)(t.so.Item,{basis:"25%",textAlign:"center",mb:2,children:[(0,e.jsx)(t.$n,{style:{borderRadius:"10%",border:"1px solid #000"},width:"64px",height:"64px",position:"relative",onClick:function(){return u("switch_tab",{switch_tab:a.number})},children:(0,e.jsx)(t.In,{spin:s(a.module),color:s(a.module)?"bad":null,name:a.icon,position:"absolute",size:3,top:"25%",left:"25%"})}),(0,e.jsx)(t.az,{children:a.module})]},a.number)})})},s=function(g){var x=(0,i.Oc)().data,u=x.voice_mobs,o=x.communicating,l=x.requestsReceived,a=x.invitesSent,c=x.video_comm;return!!(g==="Phone"&&(u.length||o.length||l.length||a.length||c))}},51445:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorMessageSubTab:function(){return s}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=o.clipboardMode,m=o.onClipboardMode,v=c.targetAddress,j=c.targetAddressName,E=c.imList;return f?(0,e.jsxs)(r.wn,{title:(0,e.jsx)(r.az,{inline:!0,style:{whiteSpace:"nowrap",overflowX:"hidden"},width:"90%",children:x("Conversation with ",(0,i.jT)(j),30)}),buttons:(0,e.jsx)(r.$n,{icon:"eye",selected:f,tooltip:"Exit Clipboard Mode",tooltipPosition:"bottom-end",onClick:function(){return m(!f)}}),height:"100%",stretchContents:!0,children:[(0,e.jsx)(r.wn,{style:{height:"95%",overflowY:"auto"},children:E.map(function(y,M){return(y.to_address===v||y.address===v)&&(0,e.jsxs)(r.az,{className:g(y,v)?"ClassicMessage_Sent":"ClassicMessage_Received",children:[g(y,v)?"You":"Them",": ",y.im]},M)})}),(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){return a("message",{message:v})},children:"Message"})]}):(0,e.jsxs)(r.wn,{title:(0,e.jsx)(r.az,{inline:!0,style:{whiteSpace:"nowrap",overflowX:"hidden"},width:"100%",children:x("Conversation with ",(0,i.jT)(j),30)}),buttons:(0,e.jsx)(r.$n,{icon:"eye",selected:f,tooltip:"Enter Clipboard Mode",tooltipPosition:"bottom-end",onClick:function(){return m(!f)}}),height:"100%",stretchContents:!0,children:[(0,e.jsx)(r.wn,{style:{height:"95%",overflowY:"auto"},children:E.map(function(y,M,P){return(y.to_address===v||y.address===v)&&(0,e.jsx)(r.az,{textAlign:g(y,v)?"right":"left",mb:1,children:(0,e.jsx)(r.az,{maxWidth:"75%",className:u(y,v,M-1,P),inline:!0,children:(0,i.jT)(y.im)})},M)})}),(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){return a("message",{message:v})},children:"Message"})]})},g=function(o,l){return o.address!==l},x=function(o,l,a){return(o+l).length>a?l.length>a?l.slice(0,a)+"...":l:o+l},u=function(o,l,a,c){if(a<0||a>c.length)return g(o,l)?"TinderMessage_First_Sent":"TinderMessage_First_Received";var f=g(o,l),m=g(c[a],l);return f&&m?"TinderMessage_Subsequent_Sent":!f&&!m?"TinderMessage_Subsequent_Received":f?"TinderMessage_First_Sent":"TinderMessage_First_Received"}},26217:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorMessageTab:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.imContacts;return(0,e.jsx)(r.wn,{title:"Messaging",children:a.length&&(0,e.jsx)(r.XI,{children:a.map(function(c){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsxs)(r.XI.Cell,{color:"label",style:{"word-break":"break-all"},children:[(0,i.jT)(c.name),":"]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsx)(r.az,{children:c.address}),(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){o("copy",{copy:c.address}),o("copy_name",{copy_name:c.name}),o("switch_tab",{switch_tab:s.MESSSUBTAB})},children:"View Conversation"})})]})]},c.address)})})||(0,e.jsxs)(r.az,{children:["You haven't sent any messages yet.",(0,e.jsx)(r.$n,{fluid:!0,icon:"user",onClick:function(){return o("switch_tab",{switch_tab:s.CONTTAB})},children:"Contacts"})]})})}},28953:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorNewsTab:function(){return s}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),u=x.act,o=x.data,l=o.feeds,a=o.target_feed,c=o.latest_news;return(0,e.jsx)(r.wn,{title:"News",stretchContents:!0,height:"100%",children:!l.length&&(0,e.jsx)(r.az,{color:"bad",children:"Error: No newsfeeds available. Please try again later."})||a&&(0,e.jsx)(r.wn,{title:(0,i.jT)(a.name)+" by "+(0,i.jT)(a.author),buttons:(0,e.jsx)(r.$n,{icon:"chevron-up",onClick:function(){return u("newsfeed",{newsfeed:null})},children:"Back"}),children:a.messages.map(function(f){return(0,e.jsxs)(r.wn,{children:["- ",(0,i.jT)(f.body),!!f.img&&(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r._V,{src:"data:image/png;base64,"+f.img}),(0,i.jT)(f.caption)||null]}),(0,e.jsxs)(r.az,{color:"grey",children:["[",f.message_type," by"," ",(0,i.jT)(f.author)," - ",f.time_stamp,"]"]})]},f.ref)})})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Recent News",children:(0,e.jsx)(r.wn,{children:c.map(function(f){return(0,e.jsxs)(r.az,{mb:2,children:[(0,e.jsxs)("h5",{children:[(0,i.jT)(f.channel),(0,e.jsx)(r.$n,{ml:1,icon:"chevron-up",onClick:function(){return u("newsfeed",{newsfeed:f.index})},children:"Go to"})]}),"- ",(0,i.jT)(f.body),!!f.img&&(0,e.jsxs)(r.az,{children:["[image omitted, view story for more details]",f.caption||null]}),(0,e.jsxs)(r.az,{fontSize:.9,children:["[",f.message_type," by"," ",(0,e.jsx)(r.az,{inline:!0,color:"average",children:f.author})," ","- ",f.time_stamp,"]"]})]},f.index)})})}),(0,e.jsx)(r.wn,{title:"News Feeds",children:l.map(function(f){return(0,e.jsx)(r.$n,{fluid:!0,icon:"chevron-up",onClick:function(){return u("newsfeed",{newsfeed:f.index})},children:f.name},f.index)})})]})})}},47106:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorNoteTab:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.note;return(0,e.jsx)(t.wn,{title:"Note Keeper",height:"100%",stretchContents:!0,buttons:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return x("edit")},children:"Edit Notes"}),children:(0,e.jsx)(t.wn,{color:"average",width:"100%",height:"100%",style:{wordBreak:"break-all",overflowY:"auto"},children:o})})}},10674:function(O,h,n){"use strict";n.r(h),n.d(h,{CommunicatorPhoneTab:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(74293),g=function(a){for(var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.selfie_mode,j=m.targetAddress,E=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"],y=E.map(function(D){return(0,e.jsx)(r.$n,{fontSize:2,fluid:!0,onClick:function(){return f("add_hex",{add_hex:D})},children:D},D)}),M=[],P=0;Pa?"average":u>c?"bad":"good"}},74293:function(O,h,n){"use strict";n.r(h),n.d(h,{CONTTAB:function(){return t},HOMETAB:function(){return e},MANITAB:function(){return o},MESSSUBTAB:function(){return s},MESSTAB:function(){return r},NEWSTAB:function(){return g},NOTETAB:function(){return x},PHONTAB:function(){return i},SETTTAB:function(){return l},WTHRTAB:function(){return u},notFound:function(){return c},tabs:function(){return a}});var e=1,i=2,t=3,r=4,s=40,g=5,x=6,u=7,o=8,l=9,a=[e,i,t,r,s,g,x,u,o,l];function c(f){return a.includes(f)}},42320:function(O,h,n){"use strict";n.r(h),n.d(h,{Communicator:function(){return y}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(58044),x=n(59546),u=n(28215),o=n(46873),l=n(51445),a=n(26217),c=n(28953),f=n(47106),m=n(10674),v=n(4435),j=n(81450),E=n(74293),y=function(){var M=function(ee){G(ee)},P=(0,t.Oc)(),D=P.act,S=P.data,B=S.currentTab,T=S.video_comm,L=[],W=(0,i.useState)(0),$=W[0],k=W[1],z=(0,i.useState)(!1),X=z[0],G=z[1];return L[E.tabs[0]]=(0,e.jsx)(o.CommunicatorHomeTab,{}),L[E.tabs[1]]=(0,e.jsx)(m.CommunicatorPhoneTab,{}),L[E.tabs[2]]=(0,e.jsx)(x.CommunicatorContactTab,{}),L[E.tabs[3]]=(0,e.jsx)(a.CommunicatorMessageTab,{}),L[E.tabs[4]]=(0,e.jsx)(l.CommunicatorMessageSubTab,{clipboardMode:X,onClipboardMode:M}),L[E.tabs[5]]=(0,e.jsx)(c.CommunicatorNewsTab,{}),L[E.tabs[6]]=(0,e.jsx)(f.CommunicatorNoteTab,{}),L[E.tabs[7]]=(0,e.jsx)(j.CommunicatorWeatherTab,{}),L[E.tabs[8]]=(0,e.jsx)(g.CrewManifestContent,{}),L[E.tabs[9]]=(0,e.jsx)(v.CommunicatorSettingsTab,{}),(0,e.jsx)(s.p8,{width:475,height:700,children:(0,e.jsxs)(s.p8.Content,{children:[T&&(0,e.jsx)(u.VideoComm,{videoSetting:$,setVideoSetting:k}),(!T||$!==0)&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(u.CommunicatorHeader,{}),(0,e.jsx)(r.az,{height:"88%",mb:1,style:{overflowY:"auto"},children:L[B]||(0,E.notFound)(B)&&(0,e.jsx)(u.TemplateError,{currentTab:B})}),(0,e.jsx)(u.CommunicatorFooter,{videoSetting:$,setVideoSetting:k})]})]})})}},96273:function(O,h,n){"use strict";n.r(h)},62311:function(O,h,n){"use strict";n.r(h),n.d(h,{CfStep1:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act;return(0,e.jsxs)(t.wn,{title:"Step 1",minHeight:"306px",children:[(0,e.jsx)(t.az,{mt:5,bold:!0,textAlign:"center",fontSize:"40px",children:"Choose your Device"}),(0,e.jsx)(t.az,{mt:3,children:(0,e.jsx)(t.XI,{width:"100%",children:(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,icon:"laptop",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return g("pick_device",{pick:"1"})},children:"Laptop"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,icon:"tablet-alt",textAlign:"center",fontSize:"30px",lineHeight:2,onClick:function(){return g("pick_device",{pick:"2"})},children:"Tablet"})})]})})})]})}},78820:function(O,h,n){"use strict";n.r(h),n.d(h,{CfStep2:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.totalprice,l=u.hw_battery,a=u.hw_disk,c=u.hw_netcard,f=u.hw_nanoprint,m=u.hw_card,v=u.devtype,j=u.hw_cpu,E=u.hw_tesla;return(0,e.jsxs)(t.wn,{title:"Step 2: Customize your device",minHeight:"282px",buttons:(0,e.jsxs)(t.az,{bold:!0,color:"good",children:[o,"\u20AE"]}),children:[(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Battery:",(0,e.jsx)(t.m_,{content:"\n Allows your device to operate without external utility power\n source. Advanced batteries increase battery life.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:l===1,onClick:function(){return x("hw_battery",{battery:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:l===2,onClick:function(){return x("hw_battery",{battery:"2"})},children:"Upgraded"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:l===3,onClick:function(){return x("hw_battery",{battery:"3"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Hard Drive:",(0,e.jsx)(t.m_,{content:"\n Stores file on your device. Advanced drives can store more\n files, but use more power, shortening battery life.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:a===1,onClick:function(){return x("hw_disk",{disk:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:a===2,onClick:function(){return x("hw_disk",{disk:"2"})},children:"Upgraded"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:a===3,onClick:function(){return x("hw_disk",{disk:"3"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Network Card:",(0,e.jsx)(t.m_,{content:"\n Allows your device to wirelessly connect to stationwide NTNet\n network. Basic cards are limited to on-station use, while\n advanced cards can operate anywhere near the station, which\n includes asteroid outposts\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:c===0,onClick:function(){return x("hw_netcard",{netcard:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:c===1,onClick:function(){return x("hw_netcard",{netcard:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:c===2,onClick:function(){return x("hw_netcard",{netcard:"2"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Nano Printer:",(0,e.jsx)(t.m_,{content:"\n A device that allows for various paperwork manipulations,\n such as, scanning of documents or printing new ones.\n This device was certified EcoFriendlyPlus and is capable of\n recycling existing paper for printing purposes.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:f===0,onClick:function(){return x("hw_nanoprint",{print:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:f===1,onClick:function(){return x("hw_nanoprint",{print:"1"})},children:"Standard"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Secondary Card Reader:",(0,e.jsx)(t.m_,{content:"\n Adds a secondary RFID card reader, for manipulating or\n reading from a second standard RFID card.\n Please note that a primary card reader is necessary to\n allow the device to read your identification, but one\n is included in the base price.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:m===0,onClick:function(){return x("hw_card",{card:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:m===1,onClick:function(){return x("hw_card",{card:"1"})},children:"Standard"})})]}),v!==2&&(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Processor Unit:",(0,e.jsx)(t.m_,{content:"\n A component critical for your device's functionality.\n It allows you to run programs from your hard drive.\n Advanced CPUs use more power, but allow you to run\n more programs on background at once.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:j===1,onClick:function(){return x("hw_cpu",{cpu:"1"})},children:"Standard"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:j===2,onClick:function(){return x("hw_cpu",{cpu:"2"})},children:"Advanced"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{bold:!0,position:"relative",children:["Tesla Relay:",(0,e.jsx)(t.m_,{content:"\n An advanced wireless power relay that allows your device\n to connect to nearby area power controller to provide\n alternative power source. This component is currently\n unavailable on tablet computers due to size restrictions.\n ",position:"right"})]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:E===0,onClick:function(){return x("hw_tesla",{tesla:"0"})},children:"None"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{selected:E===1,onClick:function(){return x("hw_tesla",{tesla:"1"})},children:"Standard"})})]})]}),(0,e.jsx)(t.$n,{fluid:!0,mt:3,color:"good",textAlign:"center",fontSize:"18px",lineHeight:2,onClick:function(){return x("confirm_order")},children:"Confirm Order"})]})}},3777:function(O,h,n){"use strict";n.r(h),n.d(h,{CfStep3:function(){return t}});var e=n(20462),i=n(88569),t=function(r){var s=r.totalprice;return(0,e.jsxs)(i.wn,{title:"Step 3: Payment",minHeight:"282px",children:[(0,e.jsx)(i.az,{italic:!0,textAlign:"center",fontSize:"20px",children:"Your device is ready for fabrication..."}),(0,e.jsxs)(i.az,{bold:!0,mt:2,textAlign:"center",fontSize:"16px",children:[(0,e.jsx)(i.az,{inline:!0,children:"Please swipe your ID now to authorize payment of:"}),"\xA0",(0,e.jsxs)(i.az,{inline:!0,color:"good",children:[s,"\u20AE"]})]})]})}},44430:function(O,h,n){"use strict";n.r(h),n.d(h,{CfStep4:function(){return t}});var e=n(20462),i=n(88569),t=function(r){return(0,e.jsxs)(i.wn,{minHeight:"282px",children:[(0,e.jsx)(i.az,{bold:!0,textAlign:"center",fontSize:"28px",mt:10,children:"Thank you for your purchase!"}),(0,e.jsx)(i.az,{italic:!0,mt:1,textAlign:"center",children:"If you experience any difficulties with your new device, please contact your local network administrator."})]})}},36229:function(O,h,n){"use strict";n.r(h),n.d(h,{ComputerFabricator:function(){return o}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(62311),g=n(78820),x=n(3777),u=n(44430),o=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.state,v=f.totalprice,j=[];return j[0]=(0,e.jsx)(s.CfStep1,{}),j[1]=(0,e.jsx)(g.CfStep2,{}),j[2]=(0,e.jsx)(x.CfStep3,{totalprice:v}),j[3]=(0,e.jsx)(u.CfStep4,{}),(0,e.jsx)(r.p8,{title:"Personal Computer Vendor",width:500,height:420,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{italic:!0,fontSize:"20px",children:"Your perfect device, only three steps away..."}),m!==0&&(0,e.jsx)(t.$n,{fluid:!0,mb:1,icon:"circle",onClick:function(){return c("clean_order")},children:"Clear Order"}),j[m]]})})}},75050:function(O,h,n){"use strict";n.r(h)},31681:function(O,h,n){"use strict";n.r(h),n.d(h,{CookingAppliance:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.temperature,a=o.optimalTemp,c=o.temperatureEnough,f=o.efficiency,m=o.containersRemovable,v=o.our_contents;return(0,e.jsx)(r.p8,{width:600,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(t.z2,{color:c?"good":"blue",value:l,maxValue:a,children:[(0,e.jsx)(t.zv,{value:l}),"\xB0C / ",a,"\xB0C"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Efficiency",children:[(0,e.jsx)(t.zv,{value:f}),"%"]})]})}),(0,e.jsx)(t.wn,{title:"Containers",children:(0,e.jsx)(t.Ki,{children:v.map(function(j,E){return j.empty?(0,e.jsx)(t.Ki.Item,{label:"Slot #"+(E+1),children:(0,e.jsx)(t.$n,{onClick:function(){return u("slot",{slot:E+1})},children:"Empty"})},E):(0,e.jsx)(t.Ki.Item,{label:"Slot #"+(E+1),verticalAlign:"middle",children:(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{disabled:!m,onClick:function(){return u("slot",{slot:E+1})},children:j.container||"No Container"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.z2,{color:j.progressText[0],value:j.progress,maxValue:1,children:j.progressText[1]})})]})},E)})})})]})})}},58044:function(O,h,n){"use strict";n.r(h),n.d(h,{CrewManifest:function(){return x},CrewManifestContent:function(){return u}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(79500),g=n(15581),x=function(){return(0,e.jsx)(g.p8,{width:400,height:600,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsx)(u,{})})})},u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.manifest;return(0,e.jsx)(r.wn,{title:"Crew Manifest",noTopPadding:!0,children:f.map(function(m){return!!m.elems.length&&(0,e.jsx)(r.wn,{title:(0,e.jsx)(r.az,{backgroundColor:s.lm.manifest[m.cat.toLowerCase()],m:-1,pt:1,pb:1,children:(0,e.jsx)(r.az,{ml:1,textAlign:"center",fontSize:1.4,children:m.cat})}),children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,color:"white",children:[(0,e.jsx)(r.XI.Cell,{children:"Name"}),(0,e.jsx)(r.XI.Cell,{children:"Rank"}),(0,e.jsx)(r.XI.Cell,{children:"Active"})]}),m.elems.map(function(v){return(0,e.jsxs)(r.XI.Row,{color:"average",children:[(0,e.jsx)(r.XI.Cell,{children:(0,i.jT)(v.name)}),(0,e.jsx)(r.XI.Cell,{children:v.rank}),(0,e.jsx)(r.XI.Cell,{children:v.active})]},v.name+v.rank)})]})},m.cat)})})}},70117:function(O,h,n){"use strict";n.r(h),n.d(h,{CrewMonitor:function(){return l},CrewMonitorContent:function(){return a}});var e=n(20462),i=n(7402),t=n(15813),r=n(61358),s=n(7081),g=n(88569),x=n(15581),u=function(m){return m.dead?"Deceased":m.stat===1?"Unconscious":"Living"},o=function(m){return m.dead?"red":m.stat===1?"orange":"green"},l=function(){var m=function(B){y(B)},v=function(B){D(B)},j=(0,r.useState)(0),E=j[0],y=j[1],M=(0,r.useState)(1),P=M[0],D=M[1];return(0,e.jsx)(x.p8,{width:800,height:600,children:(0,e.jsx)(x.p8.Content,{children:(0,e.jsx)(a,{tabIndex:E,zoom:P,onTabIndex:m,onZoom:v})})})},a=function(m){var v=(0,s.Oc)().data,j=v.crewmembers,E=j===void 0?[]:j,y=(0,t.L)([function(P){return(0,i.Ul)(P,function(D){return D.name})},function(P){return(0,i.Ul)(P,function(D){return D==null?void 0:D.x})},function(P){return(0,i.Ul)(P,function(D){return D==null?void 0:D.y})},function(P){return(0,i.Ul)(P,function(D){return D==null?void 0:D.realZ})}])(E),M=[];return M[0]=(0,e.jsx)(c,{crew:y}),M[1]=(0,e.jsx)(f,{zoom:m.zoom,onZoom:m.onZoom}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(g.tU,{children:[(0,e.jsxs)(g.tU.Tab,{selected:m.tabIndex===0,onClick:function(){return m.onTabIndex(0)},children:[(0,e.jsx)(g.In,{name:"table"})," Data View"]},"DataView"),(0,e.jsxs)(g.tU.Tab,{selected:m.tabIndex===1,onClick:function(){return m.onTabIndex(1)},children:[(0,e.jsx)(g.In,{name:"map-marked-alt"})," Map View"]},"MapView")]}),(0,e.jsx)(g.az,{m:2,children:M[m.tabIndex]||(0,e.jsx)(g.az,{textColor:"red",children:"ERROR"})})]})},c=function(m){var v=(0,s.Oc)(),j=v.act,E=v.data,y=m.crew,M=E.isAI;return(0,e.jsxs)(g.XI,{children:[(0,e.jsxs)(g.XI.Row,{header:!0,children:[(0,e.jsx)(g.XI.Cell,{children:"Name"}),(0,e.jsx)(g.XI.Cell,{children:"Status"}),(0,e.jsx)(g.XI.Cell,{children:"Location"})]}),y.map(function(P){return(0,e.jsxs)(g.XI.Row,{children:[(0,e.jsxs)(g.XI.Cell,{children:[P.name," (",P.assignment,")"]}),(0,e.jsxs)(g.XI.Cell,{children:[(0,e.jsx)(g.az,{inline:!0,color:o(P),children:u(P)}),P.sensor_type>=2?(0,e.jsxs)(g.az,{inline:!0,children:["(",(0,e.jsx)(g.az,{inline:!0,color:"red",children:P.brute}),"|",(0,e.jsx)(g.az,{inline:!0,color:"orange",children:P.fire}),"|",(0,e.jsx)(g.az,{inline:!0,color:"green",children:P.tox}),"|",(0,e.jsx)(g.az,{inline:!0,color:"blue",children:P.oxy}),")"]}):null]}),(0,e.jsx)(g.XI.Cell,{children:P.sensor_type===3?M?(0,e.jsx)(g.$n,{fluid:!0,icon:"location-arrow",onClick:function(){return j("track",{track:P.ref})},children:P.area+" ("+P.x+", "+P.y+")"}):P.area+" ("+P.x+", "+P.y+", "+P.z+")":"Not Available"})]},P.ref)})]})},f=function(m){var v=(0,s.Oc)(),j=v.config,E=v.data,y=E.zoomScale,M=E.crewmembers;return(0,e.jsx)(g.az,{height:"526px",mb:"0.5rem",overflow:"hidden",children:(0,e.jsx)(g.tx,{zoomScale:y,onZoom:function(P){return m.onZoom(P)},children:M.filter(function(P){return P.sensor_type===3&&~~P.realZ===~~j.mapZLevel}).map(function(P){return(0,e.jsx)(g.tx.Marker,{x:P.x,y:P.y,zoom:m.zoom,icon:"circle",tooltip:P.name+" ("+P.assignment+")",color:o(P)},P.ref)})})})}},67268:function(O,h,n){"use strict";n.r(h),n.d(h,{CryoStorage:function(){return g},CryoStorageCrew:function(){return x},CryoStorageDefaultError:function(){return o},CryoStorageItems:function(){return u}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(l){var a=(0,t.Oc)().data,c=a.real_name,f=a.allow_items,m=(0,i.useState)(0),v=m[0],j=m[1],E=[];return E[0]=(0,e.jsx)(x,{}),E[1]=f?(0,e.jsx)(u,{}):(0,e.jsx)(o,{}),(0,e.jsx)(s.p8,{width:400,height:600,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.tU,{children:[(0,e.jsx)(r.tU.Tab,{selected:v===0,onClick:function(){return j(0)},children:"Crew"}),!!f&&(0,e.jsx)(r.tU.Tab,{selected:v===1,onClick:function(){return j(1)},children:"Items"})]}),(0,e.jsxs)(r.IC,{info:!0,children:["Welcome, ",c,"."]}),E[v]]})})},x=function(l){var a=(0,t.Oc)().data,c=a.crew;return(0,e.jsx)(r.wn,{title:"Stored Crew",children:c.length&&c.map(function(f){return(0,e.jsx)(r.az,{color:"label",children:f},f)})||(0,e.jsx)(r.az,{color:"good",children:"No crew currently stored."})})},u=function(l){var a=(0,t.Oc)().data,c=a.items;return(0,e.jsx)(r.wn,{title:"Stored Items",children:c.length&&c.map(function(f){return(0,e.jsx)(r.az,{color:"label",children:f},f)})||(0,e.jsx)(r.az,{color:"average",children:"No items stored."})})},o=function(l){return(0,e.jsx)(r.az,{textColor:"red",children:"Disabled"})}},41628:function(O,h,n){"use strict";n.r(h),n.d(h,{CryoContent:function(){return g}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(17639),g=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.isOperating,f=a.hasOccupant,m=a.occupant,v=a.cellTemperature,j=a.cellTemperatureStatus,E=a.isBeakerLoaded;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Occupant",flexGrow:!0,buttons:(0,e.jsx)(r.$n,{icon:"user-slash",onClick:function(){return l("ejectOccupant")},disabled:!f,children:"Eject"}),children:f?(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Occupant",children:m.name||"Unknown"}),(0,e.jsx)(r.Ki.Item,{label:"Health",children:(0,e.jsx)(r.z2,{minValue:0,maxValue:1,value:m.health/m.maxHealth,color:m.health>0?"good":"average",children:(0,e.jsx)(r.zv,{value:m.health,format:function(y){return(0,i.Mg)(y)}})})}),(0,e.jsx)(r.Ki.Item,{label:"Status",color:s.statNames[m.stat][0],children:s.statNames[m.stat][1]}),(0,e.jsx)(r.Ki.Item,{label:"Temperature",children:(0,e.jsx)(r.zv,{value:m.bodyTemperature,format:function(y){return(0,i.Mg)(y)+" K"}})}),(0,e.jsx)(r.Ki.Divider,{}),s.damageTypes.map(function(y,M){return(0,e.jsx)(r.Ki.Item,{label:y.label,children:(0,e.jsx)(r.z2,{value:m[y.type]/100,ranges:{bad:[.01,1/0]},children:(0,e.jsx)(r.zv,{value:m[y.type],format:function(P){return(0,i.Mg)(P)}})})},M)})]}):(0,e.jsx)(r.so,{height:"100%",textAlign:"center",children:(0,e.jsxs)(r.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(r.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No occupant detected."]})})}),(0,e.jsx)(r.wn,{title:"Cell",buttons:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return l("ejectBeaker")},disabled:!E,children:"Eject Beaker"}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Power",children:(0,e.jsx)(r.$n,{icon:"power-off",onClick:function(){return l(c?"switchOff":"switchOn")},selected:c,children:c?"On":"Off"})}),(0,e.jsxs)(r.Ki.Item,{label:"Temperature",color:j,children:[(0,e.jsx)(r.zv,{value:v})," K"]}),(0,e.jsx)(r.Ki.Item,{label:"Beaker",children:(0,e.jsx)(x,{})})]})})]})},x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.isBeakerLoaded,f=a.beakerLabel,m=a.beakerVolume;return c?(0,e.jsxs)(e.Fragment,{children:[f||(0,e.jsx)(r.az,{color:"average",children:"No label"}),(0,e.jsx)(r.az,{color:!m&&"bad",children:m?(0,e.jsx)(r.zv,{value:m,format:function(v){return(0,i.Mg)(v)+" units remaining"}}):"Beaker is empty"})]}):(0,e.jsx)(r.az,{color:"average",children:"No beaker loaded"})}},17639:function(O,h,n){"use strict";n.r(h),n.d(h,{damageTypes:function(){return e},statNames:function(){return i}});var e=[{label:"Resp.",type:"oxyLoss"},{label:"Toxin",type:"toxLoss"},{label:"Brute",type:"bruteLoss"},{label:"Burn",type:"fireLoss"}],i=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]]},85970:function(O,h,n){"use strict";n.r(h),n.d(h,{Cryo:function(){return r}});var e=n(20462),i=n(15581),t=n(41628),r=function(s){return(0,e.jsx)(i.p8,{width:520,height:470,children:(0,e.jsx)(i.p8.Content,{className:"Layout__content--flexColumn",children:(0,e.jsx)(t.CryoContent,{})})})}},40599:function(O,h,n){"use strict";n.r(h)},39699:function(O,h,n){"use strict";n.r(h),n.d(h,{DNAForensics:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.scan_progress,a=o.scanning,c=o.bloodsamp,f=o.bloodsamp_desc;return(0,e.jsx)(r.p8,{width:540,height:326,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{selected:a,disabled:!c,icon:"power-off",onClick:function(){return u("scanItem")},children:a?"Halt Scan":"Begin Scan"}),(0,e.jsx)(t.$n,{disabled:!c,icon:"eject",onClick:function(){return u("ejectItem")},children:"Eject Bloodsample"})]}),children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Scan Progress",children:(0,e.jsx)(t.z2,{ranges:{good:[99,1/0],violet:[-1/0,99]},value:l,maxValue:100})})})}),(0,e.jsx)(t.wn,{title:"Blood Sample",children:c&&(0,e.jsxs)(t.az,{children:[c,(0,e.jsx)(t.az,{color:"label",children:f})]})||(0,e.jsx)(t.az,{color:"bad",children:"No blood sample inserted."})})]})})}},63501:function(O,h,n){"use strict";n.r(h),n.d(h,{DNAModifierBlocks:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){for(var g=function(j){for(var E=function(D){var S=D+1;M.push((0,e.jsx)(t.$n,{selected:o===y&&l===S,mb:"0",onClick:function(){return x(c,{block:y,subblock:S})},children:f[j+D]}))},y=j/a+1,M=[],P=0;PE,icon:"syringe",onClick:function(){return m("injectRejuvenators",{amount:M})},children:M},P)}),(0,e.jsx)(t.$n,{disabled:E<=0,icon:"syringe",onClick:function(){return m("injectRejuvenators",{amount:E})},children:"All"})]}),(0,e.jsxs)(t.Ki.Item,{label:"Beaker",children:[(0,e.jsx)(t.az,{mb:"0.5rem",children:y||"No label"}),E?(0,e.jsxs)(t.az,{color:"good",children:[E," unit",E===1?"":"s"," remaining"]}):(0,e.jsx)(t.az,{color:"bad",children:"Empty"})]})]}):(0,e.jsxs)(t.az,{color:"label",textAlign:"center",my:"25%",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",size:4}),(0,e.jsx)("br",{}),"No beaker loaded."]})})}},25475:function(O,h,n){"use strict";n.r(h),n.d(h,{DNAModifierMainBuffers:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(x){var u=(0,i.Oc)().data,o=u.buffers,l=o.map(function(a,c){return(0,e.jsx)(s,{id:c+1,name:"Buffer "+(c+1),buffer:a},c)});return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Buffers",children:l}),(0,e.jsx)(g,{})]})},s=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=x.id,c=x.name,f=x.buffer,m=l.isInjectorReady,v=c+(f.data?" - "+f.label:"");return(0,e.jsx)(t.az,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.jsxs)(t.wn,{title:v,mx:"0",lineHeight:"18px",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:!f.data,icon:"trash",onClick:function(){return o("bufferOption",{option:"clear",id:a})},children:"Clear"}),(0,e.jsx)(t.$n,{disabled:!f.data,icon:"pen",onClick:function(){return o("bufferOption",{option:"changeLabel",id:a})},children:"Rename"}),(0,e.jsx)(t.$n,{disabled:!f.data||!l.hasDisk,icon:"save",tooltip:"Exports this buffer to the currently loaded data disk.",tooltipPosition:"bottom-end",onClick:function(){return o("bufferOption",{option:"saveDisk",id:a})},children:"Export"})]}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Write",children:[(0,e.jsx)(t.$n,{icon:"arrow-circle-down",mb:"0",onClick:function(){return o("bufferOption",{option:"saveUI",id:a})},children:"Subject U.I"}),(0,e.jsx)(t.$n,{icon:"arrow-circle-down",mb:"0",onClick:function(){return o("bufferOption",{option:"saveUIAndUE",id:a})},children:"Subject U.I and U.E."}),(0,e.jsx)(t.$n,{icon:"arrow-circle-down",mb:"0",onClick:function(){return o("bufferOption",{option:"saveSE",id:a})},children:"Subject S.E."}),(0,e.jsx)(t.$n,{disabled:!l.hasDisk||!l.disk.data,icon:"arrow-circle-down",mb:"0",onClick:function(){return o("bufferOption",{option:"loadDisk",id:a})},children:"From Disk"})]}),!!f.data&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Subject",children:f.owner||(0,e.jsx)(t.az,{color:"average",children:"Unknown"})}),(0,e.jsxs)(t.Ki.Item,{label:"Data Type",children:[f.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!f.ue&&" and Unique Enzymes"]}),(0,e.jsxs)(t.Ki.Item,{label:"Transfer to",children:[(0,e.jsx)(t.$n,{disabled:!m,icon:m?"syringe":"spinner",iconSpin:!m,mb:"0",onClick:function(){return o("bufferOption",{option:"createInjector",id:a})},children:"Injector"}),(0,e.jsx)(t.$n,{disabled:!m,icon:m?"syringe":"spinner",iconSpin:!m,mb:"0",onClick:function(){return o("bufferOption",{option:"createInjector",id:a,block:1})},children:"Block Injector"}),(0,e.jsx)(t.$n,{icon:"user",mb:"0",onClick:function(){return o("bufferOption",{option:"transfer",id:a})},children:"Subject"})]})]})]}),!f.data&&(0,e.jsx)(t.az,{color:"label",mt:"0.5rem",children:"This buffer is empty."})]})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.hasDisk,c=l.disk;return(0,e.jsx)(t.wn,{title:"Data Disk",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:!a||!c.data,icon:"trash",onClick:function(){return o("wipeDisk")},children:"Wipe"}),(0,e.jsx)(t.$n,{disabled:!a,icon:"eject",onClick:function(){return o("ejectDisk")},children:"Eject"})]}),children:a?c.data?(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Label",children:c.label?c.label:"No label"}),(0,e.jsx)(t.Ki.Item,{label:"Subject",children:c.owner?c.owner:(0,e.jsx)(t.az,{color:"average",children:"Unknown"})}),(0,e.jsxs)(t.Ki.Item,{label:"Data Type",children:[c.type==="ui"?"Unique Identifiers":"Structural Enzymes",!!c.ue&&" and Unique Enzymes"]})]}):(0,e.jsx)(t.az,{color:"label",children:"Disk is blank."}):(0,e.jsxs)(t.az,{color:"label",textAlign:"center",my:"1rem",children:[(0,e.jsx)(t.In,{name:"save-o",size:4}),(0,e.jsx)("br",{}),"No disk inserted."]})})}},76282:function(O,h,n){"use strict";n.r(h),n.d(h,{DNAModifierOccupant:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(22724),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.locked,a=o.hasOccupant,c=o.occupant;return(0,e.jsx)(t.wn,{title:"Occupant",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"label",inline:!0,mr:"0.5rem",children:"Door Lock:"}),(0,e.jsx)(t.$n,{disabled:!a,selected:l,icon:l?"toggle-on":"toggle-off",onClick:function(){return u("toggleLock")},children:l?"Engaged":"Disengaged"}),(0,e.jsx)(t.$n,{disabled:!a||l,icon:"user-slash",onClick:function(){return u("ejectOccupant")},children:"Eject"})]}),children:a?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:c.name}),(0,e.jsx)(t.Ki.Item,{label:"Health",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:c.health/c.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),(0,e.jsx)(t.Ki.Item,{label:"Status",color:r.stats[c.stat][0],children:r.stats[c.stat][1]}),(0,e.jsx)(t.Ki.Divider,{})]})}),g.isDNAInvalid?(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-circle"}),"\xA0 The occupant's DNA structure is ruined beyond recognition, please insert a subject with an intact DNA structure."]}):(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Radiation",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:c.radiationLevel/100,color:"average"})}),(0,e.jsx)(t.Ki.Item,{label:"Unique Enzymes",children:o.occupant.uniqueEnzymes?o.occupant.uniqueEnzymes:(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-circle"}),"\xA0 Unknown"]})})]})]}):(0,e.jsx)(t.az,{color:"label",children:"Cell unoccupied."})})}},22724:function(O,h,n){"use strict";n.r(h),n.d(h,{operations:function(){return i},rejuvenatorsDoses:function(){return t},stats:function(){return e}});var e=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],i=[["ui","Modify U.I.","dna"],["se","Modify S.E.","dna"],["buffer","Transfer Buffers","syringe"],["rejuvenators","Rejuvenators","flask"]],t=[5,10,20,30,50]},62343:function(O,h,n){"use strict";n.r(h),n.d(h,{DNAModifier:function(){return u}});var e=n(20462),i=n(7081),t=n(15581),r=n(86471),s=n(11619),g=n(89100),x=n(76282),u=function(o){var l=(0,i.Oc)().data,a=l.irradiating,c=l.occupant,f=!c.isViableSubject||!c.uniqueIdentity||!c.structuralEnzymes;return(0,e.jsxs)(t.p8,{width:660,height:870,children:[(0,e.jsx)(r.ComplexModal,{}),a&&(0,e.jsx)(s.DNAModifierIrradiating,{duration:a}),(0,e.jsxs)(t.p8.Content,{className:"Layout__content--flexColumn",children:[(0,e.jsx)(x.DNAModifierOccupant,{isDNAInvalid:f}),(0,e.jsx)(g.DNAModifierMain,{isDNAInvalid:f})]})]})}},14512:function(O,h,n){"use strict";n.r(h)},80603:function(O,h,n){"use strict";n.r(h),n.d(h,{DestinationTagger:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.currTag,a=o.taggerLevels,c=a===void 0?[]:a,f=o.taggerLocs,m=c.filter(function(v,j){return j===c.findIndex(function(E){return v.location===E.location})});return(0,e.jsx)(r.p8,{width:450,height:310,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:"Tagger Locations",children:m.map(function(v){return(0,e.jsx)(t.wn,{title:v.location,children:(0,e.jsx)(t.so,{wrap:"wrap",spacing:1,justify:"center",children:f.map(function(j){return v.z===j.level&&(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{icon:l===j.tag?"check-square-o":"square-o",selected:l===j.tag,onClick:function(){return u("set_tag",{tag:j.tag})},children:j.tag})},j.tag)})})},v.location)})})})})}},17956:function(O,h,n){"use strict";n.r(h),n.d(h,{DiseaseSplicer:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.busy;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:c?(0,e.jsx)(t.wn,{title:"The Splicer is currently busy.",color:"bad",children:(0,e.jsx)("center",{children:(0,e.jsx)(t.az,{color:"bad",children:c})})}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g,{}),(0,e.jsx)(x,{})]})})})},g=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.dish_inserted,f=a.effects,m=f===void 0?[]:f,v=a.info,j=a.growth,E=a.affected_species;return(0,e.jsxs)(t.wn,{title:"Virus Dish",buttons:(0,e.jsx)(t.$n,{icon:"eject",disabled:!c,onClick:function(){return l("eject")},children:"Eject Dish"}),children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Growth Density",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{good:[50,1/0],average:[25,50],bad:[-1/0,25]},value:j})})}),v?(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.az,{color:"bad",children:v})}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Symptoms",children:m.length>0?m.map(function(y){return(0,e.jsxs)(t.az,{color:"label",children:["(",y.stage,") ",y.name," ",y.badness>1?"Dangerous!":null]},y.stage)}):(0,e.jsx)(t.az,{children:"No virus sample loaded."})}),(0,e.jsx)(t.wn,{title:"Affected Species",color:"label",children:!E||!E.length?"None":E.sort().join(", ")}),(0,e.jsxs)(t.wn,{title:"Reverse Engineering",children:[(0,e.jsx)(t.az,{color:"bad",mb:1,children:(0,e.jsx)("i",{children:"CAUTION: Reverse engineering will destroy the viral sample."})}),!!m.length&&m.map(function(y){return(0,e.jsx)(t.$n,{icon:"exchange-alt",onClick:function(){return l("grab",{grab:y.reference})},children:y.stage},y.stage)}),(0,e.jsx)(t.$n,{icon:"exchange-alt",onClick:function(){return l("affected_species")},children:"Species"})]})]})]})},x=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.buffer,f=a.species_buffer,m=a.info;return(0,e.jsxs)(t.wn,{title:"Storage",children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Memory Buffer",children:c?(0,e.jsxs)(t.az,{children:[c.name," (",c.stage,")"]}):f?(0,e.jsx)(t.az,{children:f}):"Empty"})}),(0,e.jsx)(t.$n,{mt:1,icon:"save",disabled:!c&&!f,onClick:function(){return l("disk")},children:"Save To Disk"}),c?(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>1,onClick:function(){return l("splice",{splice:1})},children:"Splice #1"}),(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>2,onClick:function(){return l("splice",{splice:2})},children:"Splice #2"}),(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>3,onClick:function(){return l("splice",{splice:3})},children:"Splice #3"}),(0,e.jsx)(t.$n,{icon:"pen",disabled:c.stage>4,onClick:function(){return l("splice",{splice:4})},children:"Splice #4"})]}):f?(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"pen",disabled:!f||!!m,onClick:function(){return l("splice",{splice:5})},children:"Splice Species"})}):null]})}},4843:function(O,h,n){"use strict";n.r(h),n.d(h,{DishIncubator:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(41242),s=n(15581),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.on,c=l.system_in_use,f=l.food_supply,m=l.radiation,v=l.growth,j=l.toxins,E=l.chemicals_inserted,y=l.can_breed_virus,M=l.chemical_volume,P=l.max_chemical_volume,D=l.dish_inserted,S=l.blood_already_infected,B=l.virus,T=l.analysed,L=l.infection_rate;return(0,e.jsx)(s.p8,{width:400,height:600,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.wn,{title:"Environmental Conditions",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:a,onClick:function(){return o("power")},children:a?"On":"Off"}),children:[(0,e.jsxs)(t.so,{spacing:1,mb:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"radiation",onClick:function(){return o("rad")},children:"Add Radiation"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n.Confirm,{fluid:!0,color:"red",icon:"trash",confirmIcon:"trash",disabled:!c,onClick:function(){return o("flush")},children:"Flush System"})})]}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Virus Food",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{good:[40,1/0],average:[20,40],bad:[-1/0,20]},value:f})}),(0,e.jsx)(t.Ki.Item,{label:"Radiation Level",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:100,color:m>=50?"bad":v>=25?"average":"good",value:m,children:[(0,r.qQ)(m*1e4)," \xB5Sv"]})}),(0,e.jsx)(t.Ki.Item,{label:"Toxicity",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{bad:[50,1/0],average:[25,50],good:[-1/0,25]},value:j})})]})]}),(0,e.jsx)(t.wn,{title:y?"Vial":"Chemicals",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"eject",disabled:!E,onClick:function(){return o("ejectchem")},children:"Eject "+(y?"Vial":"Chemicals")}),(0,e.jsx)(t.$n,{icon:"virus",disabled:!y,onClick:function(){return o("virus")},children:"Breed Virus"})]}),children:E&&(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Volume",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:P,value:M,children:[M,"/",P]})}),(0,e.jsxs)(t.Ki.Item,{label:"Breeding Environment",color:y?"good":"average",children:[D?y?"Suitable":"No hemolytic samples detected":"N/A",S?(0,e.jsx)(t.az,{color:"bad",children:"CAUTION: Viral infection detected in blood sample."}):null]})]})})||(0,e.jsx)(t.az,{color:"average",children:"No chemicals inserted."})}),(0,e.jsx)(t.wn,{title:"Virus Dish",buttons:(0,e.jsx)(t.$n,{icon:"eject",disabled:!D,onClick:function(){return o("ejectdish")},children:"Eject Dish"}),children:D?B?(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Growth Density",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:100,ranges:{good:[50,1/0],average:[25,50],bad:[-1/0,25]},value:v})}),(0,e.jsx)(t.Ki.Item,{label:"Infection Rate",children:T?L:"Unknown."})]}):(0,e.jsx)(t.az,{color:"bad",children:"No virus detected."}):(0,e.jsx)(t.az,{color:"average",children:"No dish loaded."})})]})})}},43978:function(O,h,n){"use strict";n.r(h),n.d(h,{DisposalBin:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.mode,a=o.pressure,c=o.isAI,f=o.panel_open,m=o.flushing,v,j;return l===2?(v="good",j="Ready"):l<=0?(v="bad",j="N/A"):l===1?(v="average",j="Pressurizing"):(v="average",j="Idle"),(0,e.jsx)(r.p8,{width:300,height:250,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.az,{bold:!0,m:1,children:"Status"}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"State",color:v,children:j}),(0,e.jsx)(t.Ki.Item,{label:"Pressure",children:(0,e.jsx)(t.z2,{ranges:{bad:[-1/0,0],average:[0,99],good:[99,1/0]},value:a,minValue:0,maxValue:100})})]}),(0,e.jsx)(t.az,{bold:!0,m:1,children:"Controls"}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Handle",children:[(0,e.jsx)(t.$n,{icon:"toggle-off",disabled:c||f,selected:m?null:!0,onClick:function(){return u("disengageHandle")},children:"Disengaged"}),(0,e.jsx)(t.$n,{icon:"toggle-on",disabled:c||f,selected:m?!0:null,onClick:function(){return u("engageHandle")},children:"Engaged"})]}),(0,e.jsxs)(t.Ki.Item,{label:"Power",children:[(0,e.jsx)(t.$n,{icon:"toggle-off",disabled:l===-1,selected:l?null:!0,onClick:function(){return u("pumpOff")},children:"Off"}),(0,e.jsx)(t.$n,{icon:"toggle-on",disabled:l===-1,selected:l?!0:null,onClick:function(){return u("pumpOn")},children:"On"})]}),(0,e.jsx)(t.Ki.Item,{label:"Eject",children:(0,e.jsx)(t.$n,{icon:"sign-out-alt",disabled:c,onClick:function(){return u("eject")},children:"Eject Contents"})})]})]})})})}},16381:function(O,h,n){"use strict";n.r(h),n.d(h,{DroneConsole:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.drones,a=o.areas,c=o.selected_area,f=o.fabricator,m=o.fabPower;return(0,e.jsx)(r.p8,{width:600,height:350,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Drone Fabricator",buttons:(0,e.jsx)(t.$n,{disabled:!f,selected:m,icon:"power-off",onClick:function(){return u("toggle_fab")},children:m?"Enabled":"Disabled"}),children:f?(0,e.jsx)(t.az,{color:"good",children:"Linked."}):(0,e.jsxs)(t.az,{color:"bad",children:["Fabricator not detected.",(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return u("search_fab")},children:"Search for Fabricator"})]})}),(0,e.jsxs)(t.wn,{title:"Request Drone",children:[(0,e.jsx)(t.ms,{autoScroll:!1,options:a?a.sort():[],selected:c,width:"100%",onSelected:function(v){return u("set_dcall_area",{area:v})}}),(0,e.jsx)(t.$n,{icon:"share-square",onClick:function(){return u("ping")},children:"Send Ping"})]}),(0,e.jsx)(t.wn,{title:"Maintenance Units",children:l&&l.length?(0,e.jsx)(t.Ki,{children:l.map(function(v){return(0,e.jsx)(t.Ki.Item,{label:v.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return u("resync",{ref:v.ref})},children:"Resync"}),(0,e.jsx)(t.$n.Confirm,{icon:"exclamation-triangle",color:"red",onClick:function(){return u("shutdown",{ref:v.ref})},children:"Shutdown"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Location",children:v.loc}),(0,e.jsxs)(t.Ki.Item,{label:"Charge",children:[v.charge," / ",v.maxCharge]}),(0,e.jsx)(t.Ki.Item,{label:"Active",children:v.active?"Yes":"No"})]})},v.name)})}):(0,e.jsx)(t.az,{color:"bad",children:"No drones detected."})})]})})}},27133:function(O,h,n){"use strict";n.r(h),n.d(h,{AirlockConsoleAdvanced:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=function(y){return y<80||y>120?"bad":y<95||y>110?"average":"good"},u=(0,i.Oc)(),o=u.act,l=u.data,a=l.external_pressure,c=l.chamber_pressure,f=l.internal_pressure,m=l.processing,v={external_pressure:a,internal_pressure:f,chamber_pressure:c},j=[{minValue:0,maxValue:202,value:a,label:"External Pressure",textValue:a+" kPa",color:x},{minValue:0,maxValue:202,value:c,label:"Chamber Pressure",textValue:c+" kPa",color:x},{minValue:0,maxValue:202,value:f,label:"Internal Pressure",textValue:f+" kPa",color:x}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.StatusDisplay,{bars:j}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{pressure_range:v}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return o("purge")},children:"Purge"}),(0,e.jsx)(t.$n,{icon:"lock-open",onClick:function(){return o("secure")},children:"Secure"})]}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!m,icon:"ban",color:"bad",onClick:function(){return o("abort")},children:"Abort"})})]})]})}},34012:function(O,h,n){"use strict";n.r(h),n.d(h,{AirlockConsoleDocking:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.interior_status,a=o.exterior_status,c=o.chamber_pressure,f=o.airlock_disabled,m=o.override_enabled,v=o.docking_status,j=o.processing,E={interior_status:l,exterior_status:a},y=[{minValue:0,maxValue:202,value:c,label:"Chamber Pressure",textValue:c+" kPa",color:function(M){return M<80||M>120?"bad":M<95||M>110?"average":"good"}}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Dock",buttons:f||m?(0,e.jsx)(t.$n,{icon:"exclamation-triangle",color:m?"red":"",onClick:function(){return u("toggle_override")},children:"Override"}):null,children:(0,e.jsx)(r.DockStatus,{docking_status:v,override_enabled:m})}),(0,e.jsx)(r.StatusDisplay,{bars:y}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{status_range:E}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!j,icon:"ban",color:"bad",onClick:function(){return u("abort")},children:"Abort"})})]})]})}},29935:function(O,h,n){"use strict";n.r(h),n.d(h,{AirlockConsolePhoron:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.chamber_pressure,a=o.chamber_phoron,c=o.interior_status,f=o.exterior_status,m=o.processing,v={interior_status:c,exterior_status:f},j=[{minValue:0,maxValue:202,value:l,label:"Chamber Pressure",textValue:l+" kPa",color:function(E){return E<80||E>120?"bad":E<95||E>110?"average":"good"}},{minValue:0,maxValue:100,value:a,label:"Chamber Phoron",textValue:a+" mol",color:function(E){return E>5?"bad":E>.5?"average":"good"}}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.StatusDisplay,{bars:j}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{status_range:v}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!m,icon:"ban",color:"bad",onClick:function(){return u("abort")},children:"Abort"})})]})]})}},32965:function(O,h,n){"use strict";n.r(h),n.d(h,{AirlockConsoleSimple:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.exterior_status,a=o.chamber_pressure,c=o.processing,f=o.interior_status,m={interior_status:f,exterior_status:l},v=[{minValue:0,maxValue:202,value:a,label:"Chamber Pressure",textValue:a+" kPa",color:function(j){return j<80||j>120?"bad":j<95||j>110?"average":"good"}}];return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.StatusDisplay,{bars:v}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.StandardControls,{status_range:m}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{disabled:!c,icon:"ban",color:"bad",onClick:function(){return u("abort")},children:"Abort"})})]})]})}},74390:function(O,h,n){"use strict";n.r(h),n.d(h,{DockingConsoleMulti:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)().data,u=x.docking_status;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Docking Status",children:(0,e.jsx)(r.DockStatus,{docking_status:u,override_enabled:!1})}),(0,e.jsx)(t.wn,{title:"Airlocks",children:x.airlocks.length?(0,e.jsx)(t.Ki,{children:x.airlocks.map(function(o){return(0,e.jsx)(t.Ki.Item,{color:o.override_enabled?"bad":"good",label:o.name,children:o.override_enabled?"OVERRIDE ENABLED":"STATUS OK"},o.name)})}):(0,e.jsx)(t.so,{height:"100%",mt:"0.5em",children:(0,e.jsxs)(t.so.Item,{grow:"1",align:"center",textAlign:"center",color:"bad",children:[(0,e.jsx)(t.In,{name:"door-closed",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No airlocks found."]})})})]})}},75355:function(O,h,n){"use strict";n.r(h),n.d(h,{DockingConsoleSimple:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.exterior_status,a=o.override_enabled,c=o.docking_status;return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"exclamation-triangle",disabled:!a,onClick:function(){return u("force_door")},children:"Force exterior door"}),(0,e.jsx)(t.$n,{icon:"exclamation-triangle",color:a?"red":"",onClick:function(){return u("toggle_override")},children:"Override"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Dock Status",children:(0,e.jsx)(r.DockStatus,{docking_status:c,override_enabled:a})}),(0,e.jsx)(r.DockingStatus,{state:l.state})]})})}},77506:function(O,h,n){"use strict";n.r(h),n.d(h,{DoorAccessConsole:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.interior_status,l=u.exterior_status,a=o.state==="open"||l.state==="closed",c=l.state==="open"||o.state==="closed";return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:a?"arrow-left":"exclamation-triangle",onClick:function(){x(a?"cycle_ext_door":"force_ext")},children:a?"Cycle To Exterior":"Lock Exterior Door"}),(0,e.jsx)(t.$n,{icon:c?"arrow-right":"exclamation-triangle",onClick:function(){x(c?"cycle_int_door":"force_int")},children:c?"Cycle To Interior":"Lock Interior Door"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Exterior Door Status",children:l.state==="closed"?"Locked":"Open"}),(0,e.jsx)(t.Ki.Item,{label:"Interior Door Status",children:o.state==="closed"?"Locked":"Open"})]})})}},64894:function(O,h,n){"use strict";n.r(h),n.d(h,{DockStatus:function(){return l},DockingStatus:function(){return x},EscapePodControls:function(){return o},EscapePodStatus:function(){return g},StandardControls:function(){return s},StatusDisplay:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(a){var c=a.bars;return(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsx)(t.Ki,{children:c.map(function(f){return(0,e.jsx)(t.Ki.Item,{label:f.label,children:(0,e.jsx)(t.z2,{color:f.color(f.value),minValue:f.minValue,maxValue:f.maxValue,value:f.value,children:f.textValue})},f.label)})})})},s=function(a){var c=(0,i.Oc)().act,f=a.status_range,m=a.pressure_range,v=a.airlock_disabled,j=f||{},E=j.interior_status,y=j.exterior_status,M=m||{},P=M.external_pressure,D=M.internal_pressure,S=M.chamber_pressure,B=!0;E&&E.state==="open"?B=!1:P&&S&&(B=!(Math.abs(P-S)>5));var T=!0;return y&&y.state==="open"?T=!1:D&&S&&(T=!(Math.abs(D-S)>5)),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{disabled:v,icon:"arrow-left",onClick:function(){return c("cycle_ext")},children:"Cycle to Exterior"}),(0,e.jsx)(t.$n,{disabled:v,icon:"arrow-right",onClick:function(){return c("cycle_int")},children:"Cycle to Interior"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:v,color:B?"":"bad",icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",onClick:function(){return c("force_ext")},children:"Force Exterior Door"}),(0,e.jsx)(t.$n.Confirm,{disabled:v,color:T?"":"bad",icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",onClick:function(){return c("force_int")},children:"Force Interior Door"})]})]})},g=function(a){var c=a.exterior_status,f=a.docking_status,m=a.armed,v={docked:(0,e.jsx)(u,{armed:m}),undocking:(0,e.jsx)(t.az,{color:"average",children:"EJECTING-STAND CLEAR!"}),undocked:(0,e.jsx)(t.az,{color:"grey",children:"POD EJECTED"}),docking:(0,e.jsx)(t.az,{color:"good",children:"INITIALIZING..."})};return(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Escape Pod Status",children:v[f]}),(0,e.jsx)(x,{state:c.state})]})})},x=function(a){var c=a.state,f=[];return f.open=(0,e.jsx)(t.az,{color:"average",children:"OPEN"}),f.unlocked=(0,e.jsx)(t.az,{color:"average",children:"UNSECURED"}),f.locked=(0,e.jsx)(t.az,{color:"good",children:"SECURED"}),(0,e.jsx)(t.Ki.Item,{label:"Docking Hatch",children:f[c]||(0,e.jsx)(t.az,{color:"bad",children:"ERROR"})})},u=function(a){var c=a.armed;return c?(0,e.jsx)(t.az,{color:"average",children:"ARMED"}):(0,e.jsx)(t.az,{color:"good",children:"SYSTEMS OK"})},o=function(a){var c=(0,i.Oc)().act,f=a.docking_status,m=a.override_enabled;return(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{disabled:!m,icon:"exclamation-triangle",color:f!=="docked"?"bad":"",onClick:function(){return c("force_door")},children:"Force Exterior Door"}),(0,e.jsx)(t.$n,{selected:m,color:f!=="docked"?"bad":"average",icon:"exclamation-triangle",onClick:function(){return c("toggle_override")},children:"Override"})]})},l=function(a){var c=a.docking_status,f=a.override_enabled,m={docked:(0,e.jsx)(t.az,{color:"good",children:"DOCKED"}),docking:(0,e.jsx)(t.az,{color:"average",children:"DOCKING"}),undocking:(0,e.jsx)(t.az,{color:"average",children:"UNDOCKING"}),undocked:(0,e.jsx)(t.az,{color:"grey",children:"NOT IN USE"})},v=m[c];return f&&(v=(0,e.jsxs)(t.az,{color:"bad",children:[c.toUpperCase(),"-OVERRIDE ENABLED"]})),v}},83783:function(O,h,n){"use strict";n.r(h),n.d(h,{EscapePodBerthConsole:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)().data,u=x.exterior_status,o=x.docking_status,l=x.armed,a=x.override_enabled;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.EscapePodStatus,{exterior_status:u,docking_status:o,armed:l}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsx)(r.EscapePodControls,{docking_status:o,override_enabled:a})})]})}},13802:function(O,h,n){"use strict";n.r(h),n.d(h,{EscapePodConsole:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(64894),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.exterior_status,a=o.docking_status,c=o.override_enabled,f=o.armed,m=o.can_force;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.EscapePodStatus,{exterior_status:l,docking_status:a,armed:f}),(0,e.jsxs)(t.wn,{title:"Controls",children:[(0,e.jsx)(r.EscapePodControls,{docking_status:a,override_enabled:c}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"exclamation-triangle",disabled:f,color:f?"bad":"average",onClick:function(){return u("manual_arm")},children:"ARM"}),(0,e.jsx)(t.$n,{icon:"exclamation-triangle",disabled:!m,color:"bad",onClick:function(){return u("force_launch")},children:"MANUAL EJECT"})]})]})]})}},84323:function(O,h,n){"use strict";n.r(h),n.d(h,{EmbeddedController:function(){return f}});var e=n(20462),i=n(7081),t=n(15581),r=n(27133),s=n(34012),g=n(29935),x=n(32965),u=n(74390),o=n(75355),l=n(77506),a=n(83783),c=n(13802),f=function(m){var v=(0,i.Oc)().data,j=v.internalTemplateName,E={};E.AirlockConsoleAdvanced=(0,e.jsx)(r.AirlockConsoleAdvanced,{}),E.AirlockConsoleSimple=(0,e.jsx)(x.AirlockConsoleSimple,{}),E.AirlockConsolePhoron=(0,e.jsx)(g.AirlockConsolePhoron,{}),E.AirlockConsoleDocking=(0,e.jsx)(s.AirlockConsoleDocking,{}),E.DockingConsoleSimple=(0,e.jsx)(o.DockingConsoleSimple,{}),E.DockingConsoleMulti=(0,e.jsx)(u.DockingConsoleMulti,{}),E.DoorAccessConsole=(0,e.jsx)(l.DoorAccessConsole,{}),E.EscapePodConsole=(0,e.jsx)(c.EscapePodConsole,{}),E.EscapePodBerthConsole=(0,e.jsx)(a.EscapePodBerthConsole,{});var y=E[j];if(!y)throw Error("Unable to find Component for template name: "+j);return(0,e.jsx)(t.p8,{width:450,height:340,children:(0,e.jsx)(t.p8.Content,{children:y})})}},2076:function(O,h,n){"use strict";n.r(h)},26356:function(O,h,n){"use strict";n.r(h),n.d(h,{DisplayDetails:function(){return u},EntityNarrate:function(){return g},EntitySelection:function(){return x},ModeSelector:function(){return o},NarrationInput:function(){return l}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data;return(0,e.jsx)(s.p8,{width:800,height:470,theme:"abstract",children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{scrollable:!0,grow:2,fill:!0,children:(0,e.jsx)(r.wn,{scrollable:!0,children:(0,e.jsx)(x,{})})}),(0,e.jsx)(r.so.Item,{grow:.25,fill:!0,children:(0,e.jsx)(r.cG,{vertical:!0})}),(0,e.jsx)(r.so.Item,{grow:6.75,fill:!0,children:(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{direction:"column",justify:"space-between",children:[(0,e.jsx)(r.so.Item,{Flex:!0,children:(0,e.jsx)(r.wn,{title:"Details",children:(0,e.jsx)(u,{})})}),(0,e.jsx)(r.so.Item,{Flex:!0,children:(0,e.jsx)(r.wn,{title:"Select Behaviour",children:(0,e.jsx)(o,{})})}),(0,e.jsx)(r.so.Item,{Flex:!0,children:(0,e.jsx)(l,{})})]})})})]})})})})},x=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.selection_mode,j=m.multi_id_selection,E=m.entity_names;return(0,e.jsx)(r.so,{direction:"column",grow:!0,children:(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.wn,{title:"Choose!",buttons:(0,e.jsx)(r.$n,{selected:v,onClick:function(){return f("change_mode_multi")},children:"Multi-Selection"}),children:(0,e.jsx)(r.tU,{vertical:!0,children:E.map(function(y){return(0,e.jsx)(r.tU.Tab,{selected:j.includes(y),onClick:function(){return f("select_entity",{id_selected:y})},children:(0,e.jsx)(r.az,{inline:!0,children:y})},y)})})})})})},u=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.selection_mode,j=m.number_mob_selected,E=m.selected_id,y=m.selected_name,M=m.selected_type;return v?(0,e.jsxs)(r.az,{children:[(0,e.jsx)("b",{children:"Number of entities selected:"})," ",j]}):(0,e.jsxs)(r.az,{children:[(0,e.jsx)("b",{children:"Selected ID:"})," ",E," ",(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Selected Name:"})," ",y," ",(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Selected Type:"})," ",M," ",(0,e.jsx)("br",{})]})},o=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.privacy_select,j=m.mode_select;return(0,e.jsxs)(r.so,{direction:"row",children:[(0,e.jsx)(r.so.Item,{grow:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return f("change_mode_privacy")},selected:v,fluid:!0,tooltip:"This button changes whether your narration is loud (any who see/hear) or subtle (range of 1 tile) "+(v?"Click here to disable subtle mode":"Click here to enable subtle mode"),children:v?"Currently: Subtle":"Currently: Loud"})}),(0,e.jsx)(r.so.Item,{grow:!0,children:(0,e.jsx)(r.$n,{onClick:function(){return f("change_mode_narration")},selected:j,fluid:!0,tooltip:"This button sets your narration to talk audiably or emote visibly "+(j?"Click here to emote visibly.":"Click here to talk audiably."),children:j?"Currently: Emoting":"Currently: Talking"})})]})},l=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=(0,i.useState)(""),j=v[0],E=v[1];return(0,e.jsx)(r.wn,{title:"Narration Text",buttons:(0,e.jsx)(r.$n,{onClick:function(){return f("narrate",{message:j})},children:"Send Narration"}),children:(0,e.jsx)(r.so,{children:(0,e.jsx)(r.so.Item,{width:"85%",children:(0,e.jsx)(r.fs,{height:"18rem",onChange:function(y,M){return E(M)},value:j||""})})})})}},63183:function(O,h,n){"use strict";n.r(h),n.d(h,{ExonetNode:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.allowPDAs,c=o.allowCommunicators,f=o.allowNewscasters,m=o.logs;return(0,e.jsx)(r.p8,{width:400,height:400,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return u("toggle_power")},children:"Power "+(l?"On":"Off")}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Incoming PDA Messages",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:a,onClick:function(){return u("toggle_PDA_port")},children:a?"Open":"Closed"})}),(0,e.jsx)(t.Ki.Item,{label:"Incoming Communicators",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c,onClick:function(){return u("toggle_communicator_port")},children:c?"Open":"Closed"})}),(0,e.jsx)(t.Ki.Item,{label:"Incoming Newscaster Content",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:f,onClick:function(){return u("toggle_newscaster_port")},children:f?"Open":"Closed"})})]})}),(0,e.jsx)(t.wn,{title:"Logging",children:(0,e.jsxs)(t.so,{wrap:"wrap",children:[m.map(function(v,j){return(0,e.jsx)(t.so.Item,{m:"2px",basis:"49%",grow:j%2,children:v},j)}),!m||m.length===0?(0,e.jsx)(t.az,{color:"average",children:"No logs found."}):null]})})]})})}},2858:function(O,h,n){"use strict";n.r(h),n.d(h,{MaterialAmount:function(){return a},Materials:function(){return l}});var e=n(20462),i=n(4089),t=n(65380),r=n(61282),s=n(7081),g=n(88569),x=n(41242),u=n(51890),o=function(c){var f=(0,s.Oc)().act,m=c.material,v=m.name,j=m.removable,E=m.sheets,y=(0,s.QY)("remove_mats_"+v,1),M=y[0],P=y[1];return M>1&&E0});return M.length===0?(0,e.jsxs)(g.az,{textAlign:"center",children:[(0,e.jsx)(g.In,{textAlign:"center",size:5,name:"inbox"}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"No Materials Loaded."})]}):(0,e.jsx)(g.so,{wrap:"wrap",children:M.map(function(P){return(0,e.jsxs)(g.so.Item,{width:"80px",children:[(0,e.jsx)(a,{name:P.name,amount:P.amount,formatsi:!0}),!j&&(0,e.jsx)(g.az,{mt:1,style:{textAlign:"center"},children:(0,e.jsx)(o,{material:P})})]},P.name)||""})})},a=function(c){var f=c.name,m=c.amount,v=c.formatsi,j=c.formatmoney,E=c.color,y=c.style,M="0";return m<1&&m>0?M=(0,i.Mg)(m,2):v?M=(0,x.QL)(m,0):j?M=(0,x.up)(m):M=m.toString(),(0,e.jsxs)(g.so,{direction:"column",align:"center",children:[(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.m_,{position:"bottom",content:(0,r.Sn)(f),children:(0,e.jsx)(g.az,{className:(0,t.Ly)(["sheetmaterials32x32",u.MATERIAL_KEYS[f]]),position:"relative",style:y})})}),(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.az,{textColor:E,style:{textAlign:"center"},children:M})})]})}},61763:function(O,h,n){"use strict";n.r(h),n.d(h,{PartLists:function(){return o},PartSets:function(){return u}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(51890),g=n(42878),x=n(2858),u=function(a){var c=(0,t.Oc)().data,f=c.partSets,m=f===void 0?[]:f,v=c.buildableParts,j=v===void 0?[]:v,E=(0,t.QY)("part_tab",m.length?j[0]:""),y=E[0],M=E[1];return(0,e.jsx)(r.tU,{vertical:!0,children:m.map(function(P){return!!j[P]&&(0,e.jsx)(r.tU.Tab,{selected:P===y,onClick:function(){return M(P)},children:P},P)})})},o=function(a){var c=(0,t.Oc)().data,f=c.partSets,m=f===void 0?[]:f,v=c.buildableParts,j=v===void 0?[]:v,E=a.queueMaterials,y=a.materials,M=(0,t.QY)("part_tab",(0,g.getFirstValidPartSet)(m,j)),P=M[0],D=M[1],S=(0,t.QY)("search_text",""),B=S[0],T=S[1];if(!P||!j[P]){var L=(0,g.getFirstValidPartSet)(m,j);if(L)D(L);else return}var W={Parts:[]},$=[];return B?(0,g.searchFilter)(B,j).forEach(function(k){k.format=(0,g.partCondFormat)(y,E,k),$.push(k)}):(W={Parts:[]},j[P].forEach(function(k){if(k.format=(0,g.partCondFormat)(y,E,k),!k.subCategory){W.Parts.push(k);return}k.subCategory in W||(W[k.subCategory]=[]),W[k.subCategory].push(k)})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{mr:1,children:(0,e.jsx)(r.In,{name:"search"})}),(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.pd,{fluid:!0,placeholder:"Search for...",value:B,onInput:function(k,z){return T(z)}})})]})}),!!B&&(0,e.jsx)(l,{name:"Search Results",parts:$,forceShow:!0,placeholder:"No matching results..."})||Object.keys(W).map(function(k){return(0,e.jsx)(l,{name:k,parts:W[k]},k)})]})},l=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.buildingPart,j=a.parts,E=a.name,y=a.forceShow,M=a.placeholder,P=(0,t.QY)("display_mats",!1),D=P[0];return(!!j.length||y)&&(0,e.jsxs)(r.wn,{title:E,buttons:(0,e.jsx)(r.$n,{disabled:!j.length,color:"good",icon:"plus-circle",onClick:function(){return f("add_queue_set",{part_list:j.map(function(S){return S.id})})},children:"Queue All"}),children:[!j.length&&M,j.map(function(S){return(0,e.jsxs)(i.Fragment,{children:[(0,e.jsxs)(r.so,{align:"center",children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{disabled:!!v||S.format.textColor===s.COLOR_BAD,color:"good",height:"20px",mr:1,icon:"play",onClick:function(){return f("build_part",{id:S.id})}})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{color:"average",height:"20px",mr:1,icon:"plus-circle",onClick:function(){return f("add_queue_part",{id:S.id})}})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.az,{inline:!0,textColor:s.COLOR_KEYS[S.format.textColor],children:S.name})}),(0,e.jsx)(r.so.Item,{grow:1}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{icon:"question-circle",color:"transparent",height:"20px",tooltip:"Build Time: "+S.printTime+"s. "+(S.desc||""),tooltipPosition:"left"})})]}),D&&(0,e.jsx)(r.so,{mb:2,children:Object.keys(S.cost).map(function(B){return(0,e.jsx)(r.so.Item,{width:"50px",color:s.COLOR_KEYS[S.format[B].color],children:(0,e.jsx)(x.MaterialAmount,{formatmoney:!0,style:{transform:"scale(0.75) translate(0%, 10%)"},name:B,amount:S.cost[B]})},B)})})]},S.name)})]})}},46372:function(O,h,n){"use strict";n.r(h),n.d(h,{Queue:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(41242),s=n(51890),g=n(2858),x=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.isProcessingQueue,j=m.queue,E=j===void 0?[]:j,y=a.queueMaterials,M=a.missingMaterials,P=a.textColors,D=!E||!E.length;return(0,e.jsxs)(t.so,{height:"100%",width:"100%",direction:"column",children:[(0,e.jsx)(t.so.Item,{height:0,grow:1,children:(0,e.jsx)(t.wn,{height:"100%",title:"Queue",overflowY:"auto",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{disabled:D,color:"bad",icon:"minus-circle",onClick:function(){return f("clear_queue")},children:"Clear Queue"}),!!v&&(0,e.jsx)(t.$n,{disabled:D,icon:"stop",onClick:function(){return f("stop_queue")},children:"Stop"})||(0,e.jsx)(t.$n,{disabled:D,icon:"play",onClick:function(){return f("build_queue")},children:"Build Queue"})]}),children:(0,e.jsxs)(t.so,{direction:"column",height:"100%",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(l,{})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(o,{textColors:P})})]})})}),!D&&(0,e.jsx)(t.so.Item,{mt:1,children:(0,e.jsx)(t.wn,{title:"Material Cost",children:(0,e.jsx)(u,{queueMaterials:y,missingMaterials:M})})})]})},u=function(a){var c=a.queueMaterials,f=a.missingMaterials;return(0,e.jsx)(t.so,{wrap:"wrap",children:Object.keys(c).map(function(m){return(0,e.jsxs)(t.so.Item,{width:"12%",children:[(0,e.jsx)(g.MaterialAmount,{formatmoney:!0,name:m,amount:c[m]}),!!f[m]&&(0,e.jsx)(t.az,{textColor:"bad",style:{textAlign:"center"},children:(0,r.up)(f[m])})]},m)})})},o=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=a.textColors,j=m.queue,E=j===void 0?[]:j;return!E||!E.length?(0,e.jsx)(e.Fragment,{children:"No parts in queue."}):E.map(function(y,M){return(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.so,{mb:.5,direction:"column",justify:"center",wrap:"wrap",height:"20px",inline:!0,children:[(0,e.jsx)(t.so.Item,{basis:"content",children:(0,e.jsx)(t.$n,{height:"20px",mr:1,icon:"minus-circle",color:"bad",onClick:function(){return f("del_queue_part",{index:M+1})}})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{inline:!0,textColor:s.COLOR_KEYS[v[M]],children:y.name})})]})},y.name)})},l=function(a){var c=(0,i.Oc)().data,f=c.buildingPart,m=c.storedPart;if(m)return(0,e.jsx)(t.az,{children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:1,color:"average",children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{children:m}),(0,e.jsx)(t.so.Item,{grow:1}),(0,e.jsx)(t.so.Item,{children:"Fabricator outlet obstructed..."})]})})});if(f){var v=f.name,j=f.duration,E=f.printTime,y=Math.ceil(j/10);return(0,e.jsx)(t.az,{children:(0,e.jsx)(t.z2,{minValue:0,maxValue:E,value:j,children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{children:v}),(0,e.jsx)(t.so.Item,{grow:1}),(0,e.jsx)(t.so.Item,{children:y>=0&&y+"s"||"Dispensing..."})]})})})}}},51890:function(O,h,n){"use strict";n.r(h),n.d(h,{COLOR_AVERAGE:function(){return t},COLOR_BAD:function(){return r},COLOR_KEYS:function(){return g},COLOR_NONE:function(){return i},MATERIAL_KEYS:function(){return e}});var e={steel:"sheet-metal_3",glass:"sheet-glass_3",silver:"sheet-silver_3",graphite:"sheet-puck_3",plasteel:"sheet-plasteel_3",durasteel:"sheet-durasteel_3",verdantium:"sheet-wavy_3",morphium:"sheet-wavy_3",mhydrogen:"sheet-mythril_3",gold:"sheet-gold_3",diamond:"sheet-diamond",supermatter:"sheet-super_3",osmium:"sheet-silver_3",phoron:"sheet-phoron_3",uranium:"sheet-uranium_3",titanium:"sheet-titanium_3",lead:"sheet-adamantine_3",platinum:"sheet-adamantine_3",plastic:"sheet-plastic_3"},i=0,t=1,r=2,s,g=(s={},s[i]=void 0,s[t]="average",s[r]="bad",s)},42878:function(O,h,n){"use strict";n.r(h),n.d(h,{getFirstValidPartSet:function(){return c},materialArrayToObj:function(){return x},partBuildColor:function(){return u},partCondFormat:function(){return o},queueCondFormat:function(){return l},searchFilter:function(){return a}});var e=n(7402),i=n(61282),t=n(51890);function r(f,m){(m==null||m>f.length)&&(m=f.length);for(var v=0,j=new Array(m);v=f.length?{done:!0}:{done:!1,value:f[j++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function x(f){var m={};return f.forEach(function(v){m[v.name]=v.amount}),m}function u(f,m,v){return f>v?{color:t.COLOR_BAD,deficit:f-v}:m>v?{color:t.COLOR_AVERAGE,deficit:f}:f+m>v?{color:t.COLOR_AVERAGE,deficit:f+m-v}:{color:t.COLOR_NONE,deficit:0}}function o(f,m,v){var j={textColor:t.COLOR_NONE};return Object.keys(v.cost).forEach(function(E){j[E]=u(v.cost[E],m[E],f[E]),j[E].color>j.textColor&&(j.textColor=j[E].color)}),j}function l(f,m){var v={},j={},E={},y={};return m&&m.forEach(function(M,P){y[P]=t.COLOR_NONE,Object.keys(M.cost).forEach(function(D){v[D]=v[D]||0,E[D]=E[D]||0,j[D]=u(M.cost[D],v[D],f[D]),j[D].color!==t.COLOR_NONE?y[P]=100?c="Running":!l&&a>0&&(c="DISCHARGING"),(0,e.jsx)(r.p8,{width:500,height:400,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n.Confirm,{icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",color:"red",confirmContent:l?"This will disable gravity!":"This will enable gravity!",onClick:function(){return u("gentoggle")},children:"Toggle Breaker"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Breaker Setting",children:l?"Generator Enabled":"Generator Disabled"}),(0,e.jsxs)(t.Ki.Item,{label:"Charge Mode",children:["Generator ",c]}),(0,e.jsxs)(t.Ki.Item,{label:"Charge Status",children:[a,"%"]})]})})})})}},88941:function(O,h,n){"use strict";n.r(h),n.d(h,{GuestPass:function(){return g}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.area,c=l.giver,f=l.giveName,m=l.reason,v=l.duration,j=l.mode,E=l.log,y=l.uid;return(0,e.jsx)(s.p8,{width:500,height:520,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:j===1&&(0,e.jsxs)(r.wn,{title:"Activity Log",buttons:(0,e.jsx)(r.$n,{icon:"scroll",selected:!0,onClick:function(){return o("mode",{mode:0})},children:"Activity Log"}),children:[(0,e.jsx)(r.$n,{icon:"print",onClick:function(){return o("print")},fluid:!0,mb:1,children:"Print"}),(0,e.jsx)(r.wn,{title:"Logs",children:E.length&&E.map(function(M){return(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:M}},M)})||(0,e.jsx)(r.az,{children:"No logs."})})]})||(0,e.jsxs)(r.wn,{title:"Guest pass terminal #"+y,buttons:(0,e.jsx)(r.$n,{icon:"scroll",onClick:function(){return o("mode",{mode:1})},children:"Activity Log"}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Issuing ID",children:(0,e.jsx)(r.$n,{onClick:function(){return o("id")},children:c||"Insert ID"})}),(0,e.jsx)(r.Ki.Item,{label:"Issued To",children:(0,e.jsx)(r.$n,{onClick:function(){return o("giv_name")},children:f})}),(0,e.jsx)(r.Ki.Item,{label:"Reason",children:(0,e.jsx)(r.$n,{onClick:function(){return o("reason")},children:m})}),(0,e.jsx)(r.Ki.Item,{label:"Duration (minutes)",children:(0,e.jsx)(r.$n,{onClick:function(){return o("duration")},children:v})})]}),(0,e.jsx)(r.$n.Confirm,{icon:"check",fluid:!0,onClick:function(){return o("issue")},children:"Issue Pass"}),(0,e.jsx)(r.wn,{title:"Access",children:(0,i.Ul)(a,function(M){return M.area_name}).map(function(M){return(0,e.jsx)(r.$n.Checkbox,{checked:M.on,onClick:function(){return o("access",{access:M.area})},children:M.area_name},M.area)})})]})})})}},52149:function(O,h,n){"use strict";n.r(h),n.d(h,{GyrotronControl:function(){return s},GyrotronControlContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:627,height:700,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.gyros;return(0,e.jsx)(t.wn,{title:"Gyrotrons",buttons:(0,e.jsx)(t.$n,{icon:"pencil-alt",onClick:function(){return o("set_tag")},children:"Set Tag"}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Position"}),(0,e.jsx)(t.XI.Cell,{children:"Status"}),(0,e.jsx)(t.XI.Cell,{children:"Fire Delay"}),(0,e.jsx)(t.XI.Cell,{children:"Strength"})]}),a.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsxs)(t.XI.Cell,{children:[c.x,", ",c.y,", ",c.z]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c.active,disabled:!c.deployed,onClick:function(){return o("toggle_active",{gyro:c.ref})},children:c.active?"Online":"Offline"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.N6,{width:"60px",size:1.25,color:!!c.active&&"yellow",value:c.fire_delay,unit:"decisecond(s)",minValue:1,maxValue:60,stepPixelSize:1,onDrag:function(f,m){return o("set_rate",{gyro:c.ref,rate:m})}})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.N6,{width:"60px",size:1.25,color:!!c.active&&"yellow",value:c.strength,unit:"penta-dakw",minValue:1,maxValue:50,stepPixelSize:1,onDrag:function(f,m){return o("set_str",{gyro:c.ref,str:m})}})})]},c.name)})]})})}},44791:function(O,h,n){"use strict";n.r(h),n.d(h,{Holodeck:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.supportedPrograms,a=o.restrictedPrograms,c=o.currentProgram,f=o.isSilicon,m=o.safetyDisabled,v=o.emagged,j=o.gravity,E=l;return m&&(E=E.concat(a)),(0,e.jsx)(r.p8,{width:400,height:610,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Programs",children:E.map(function(y){return(0,e.jsx)(t.$n,{color:a.indexOf(y)!==-1?"bad":null,icon:"eye",selected:c===y,fluid:!0,onClick:function(){return u("program",{program:y})},children:y},y)})}),!!f&&(0,e.jsx)(t.wn,{title:"Override",children:(0,e.jsxs)(t.$n,{icon:"exclamation-triangle",fluid:!0,disabled:v,color:m?"good":"bad",onClick:function(){return u("AIoverride")},children:[!!v&&"Error, unable to control. ",m?"Enable Safeties":"Disable Safeties"]})}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Safeties",children:m?(0,e.jsx)(t.az,{color:"bad",children:"DISABLED"}):(0,e.jsx)(t.az,{color:"good",children:"ENABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Gravity",children:(0,e.jsx)(t.$n,{icon:"user-astronaut",selected:j,onClick:function(){return u("gravity")},children:j?"Enabled":"Disabled"})})]})})]})})}},83860:function(O,h,n){"use strict";n.r(h),n.d(h,{ICAssembly:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(o){var l=(0,t.Oc)().data,a=l.total_parts,c=l.max_components,f=l.total_complexity,m=l.max_complexity,v=l.battery_charge,j=l.battery_max,E=l.net_power,y=l.unremovable_circuits,M=l.removable_circuits;return(0,e.jsx)(g.p8,{width:600,height:380,children:(0,e.jsxs)(g.p8.Content,{scrollable:!0,children:[(0,e.jsx)(r.wn,{title:"Status",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Space in Assembly",children:(0,e.jsx)(r.z2,{ranges:{good:[0,.25],average:[.5,.75],bad:[.75,1]},value:a/c,maxValue:1,children:a+" / "+c+" ("+(0,i.Mg)(a/c*100,1)+"%)"})}),(0,e.jsx)(r.Ki.Item,{label:"Complexity",children:(0,e.jsx)(r.z2,{ranges:{good:[0,.25],average:[.5,.75],bad:[.75,1]},value:f/m,maxValue:1,children:f+" / "+m+" ("+(0,i.Mg)(f/m*100,1)+"%)"})}),(0,e.jsx)(r.Ki.Item,{label:"Cell Charge",children:v&&(0,e.jsx)(r.z2,{ranges:{bad:[0,.25],average:[.5,.75],good:[.75,1]},value:v/j,maxValue:1,children:v+" / "+j+" ("+(0,i.Mg)(v/j*100,1)+"%)"})||(0,e.jsx)(r.az,{color:"bad",children:"No cell detected."})}),(0,e.jsx)(r.Ki.Item,{label:"Net Energy",children:E===0&&"0 W/s"||(0,e.jsx)(r.zv,{value:E,format:function(P){return"-"+(0,s.d5)(Math.abs(P))+"/s"}})})]})}),y.length&&(0,e.jsx)(u,{title:"Built-in Components",circuits:y})||null,M.length&&(0,e.jsx)(u,{title:"Removable Components",circuits:M})||null]})})},u=function(o){var l=(0,t.Oc)().act,a=o.title,c=o.circuits;return(0,e.jsx)(r.wn,{title:a,children:(0,e.jsx)(r.Ki,{children:c.map(function(f){return(0,e.jsxs)(r.Ki.Item,{label:f.name,children:[(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("open_circuit",{ref:f.ref})},children:"View"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("rename_circuit",{ref:f.ref})},children:"Rename"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("scan_circuit",{ref:f.ref})},children:"Debugger Scan"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("remove_circuit",{ref:f.ref})},children:"Remove"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return l("bottom_circuit",{ref:f.ref})},children:"Move to Bottom"})]},f.ref)})})})}},23343:function(O,h,n){"use strict";n.r(h),n.d(h,{ICCircuit:function(){return x}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.desc,v=f.displayed_name,j=f.complexity,E=f.power_draw_idle,y=f.power_draw_per_use,M=f.extended_desc,P=f.inputs,D=f.outputs,S=f.activators;return(0,e.jsx)(g.p8,{width:600,height:400,title:v,children:(0,e.jsxs)(g.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.wn,{title:"Stats",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{onClick:function(){return c("rename")},children:"Rename"}),(0,e.jsx)(r.$n,{onClick:function(){return c("scan")},children:"Scan with Device"}),(0,e.jsx)(r.$n,{onClick:function(){return c("remove")},children:"Remove"})]}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Complexity",children:j}),E&&(0,e.jsx)(r.Ki.Item,{label:"Power Draw (Idle)",children:(0,s.d5)(E)})||null,y&&(0,e.jsx)(r.Ki.Item,{label:"Power Draw (Active)",children:(0,s.d5)(y)})||null]}),M]}),(0,e.jsxs)(r.wn,{title:"Circuit",children:[(0,e.jsxs)(r.so,{textAlign:"center",spacing:1,children:[P.length&&(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.wn,{title:"Inputs",children:(0,e.jsx)(u,{list:P})})})||null,(0,e.jsx)(r.so.Item,{basis:P.length&&D.length?"33%":P.length||D.length?"45%":"100%",children:(0,e.jsx)(r.wn,{title:v,mb:1,children:(0,e.jsx)(r.az,{children:m})})}),D.length&&(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.wn,{title:"Outputs",children:(0,e.jsx)(u,{list:D})})})||null]}),(0,e.jsx)(r.wn,{title:"Triggers",children:S.map(function(B){return(0,e.jsxs)(r.Ki.Item,{label:B.name,children:[(0,e.jsx)(r.$n,{onClick:function(){return c("pin_name",{pin:B.ref})},children:B.pulse_out?"":""}),(0,e.jsx)(o,{pin:B})]},B.name)})})]})]})})},u=function(l){var a=(0,t.Oc)().act,c=l.list;return c.map(function(f){return(0,e.jsxs)(r.az,{children:[(0,e.jsxs)(r.$n,{onClick:function(){return a("pin_name",{pin:f.ref})},children:[(0,i.jT)(f.type),": ",f.name]}),(0,e.jsx)(r.$n,{onClick:function(){return a("pin_data",{pin:f.ref})},children:f.data}),(0,e.jsx)(o,{pin:f})]},f.ref)})},o=function(l){var a=(0,t.Oc)().act,c=l.pin;return c.linked.map(function(f){return(0,e.jsxs)(r.az,{inline:!0,children:[(0,e.jsx)(r.$n,{onClick:function(){return a("pin_unwire",{pin:c.ref,link:f.ref})},children:f.name}),"@\xA0",(0,e.jsx)(r.$n,{onClick:function(){return a("examine",{ref:f.holder_ref})},children:f.holder_name})]},f.ref)})}},87134:function(O,h,n){"use strict";n.r(h),n.d(h,{ICDetailer:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.detail_color,c=l.color_list;return(0,e.jsx)(s.p8,{width:420,height:254,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.wn,{children:Object.keys(c).map(function(f,m){return(0,e.jsx)(r.$n,{ml:0,mr:0,mb:-.4,mt:0,tooltip:(0,i.Sn)(f),tooltipPosition:m%6===5?"left":"right",height:"64px",width:"64px",onClick:function(){return o("change_color",{color:f})},style:c[f]===a?{border:"4px solid black",borderRadius:"0"}:{borderRadius:"0"},backgroundColor:c[f]},f)})})})})}},92306:function(O,h,n){"use strict";n.r(h),n.d(h,{ICPrinter:function(){return g}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(o){var l=(0,t.Oc)().data,a=l.metal,c=l.max_metal,f=l.metal_per_sheet,m=l.upgraded,v=l.can_clone;return(0,e.jsx)(s.p8,{width:600,height:630,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.wn,{title:"Status",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Metal",children:(0,e.jsxs)(r.z2,{value:a,maxValue:c,children:[a/f," / ",c/f," sheets"]})}),(0,e.jsx)(r.Ki.Item,{label:"Circuits Available",children:m?"Advanced":"Regular"}),(0,e.jsx)(r.Ki.Item,{label:"Assembly Cloning",children:v?"Available":"Unavailable"})]}),(0,e.jsx)(r.az,{mt:1,children:"Note: A red component name means that the printer must be upgraded to create that component."})]}),(0,e.jsx)(u,{})]})})};function x(o,l){return!(!o.can_build||o.cost>l.metal)}var u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.categories,m=(0,t.QY)("categoryTarget",""),v=m[0],j=m[1],E=(0,i.pb)(f,function(y){return y.name===v})[0];return(0,e.jsx)(r.wn,{title:"Circuits",children:(0,e.jsxs)(r.BJ,{fill:!0,children:[(0,e.jsx)(r.BJ.Item,{mr:2,children:(0,e.jsx)(r.tU,{vertical:!0,children:(0,i.Ul)(f,function(y){return y.name}).map(function(y){return(0,e.jsx)(r.tU.Tab,{selected:v===y.name,onClick:function(){return j(y.name)},children:y.name},y.name)})})}),(0,e.jsx)(r.BJ.Item,{children:E?(0,e.jsx)(r.wn,{children:(0,e.jsx)(r.Ki,{children:(0,i.Ul)(E.items,function(y){return y.name}).map(function(y){return(0,e.jsx)(r.Ki.Item,{label:y.name,labelColor:y.can_build?"good":"bad",buttons:(0,e.jsx)(r.$n,{disabled:!x(y,c),icon:"print",onClick:function(){return a("build",{build:y.path})},children:"Print"}),children:y.desc},y.name)})})}):(0,e.jsx)(r.az,{children:"No category selected."})})]})})}},98309:function(O,h,n){"use strict";n.r(h),n.d(h,{IDCard:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(10921),g=function(x){var u=(0,i.Oc)().data,o=u.registered_name,l=u.sex,a=u.species,c=u.age,f=u.assignment,m=u.fingerprint_hash,v=u.blood_type,j=u.dna_hash,E=u.photo_front,y=[{name:"Sex",val:l},{name:"Species",val:a},{name:"Age",val:c},{name:"Blood Type",val:v},{name:"Fingerprint",val:m},{name:"DNA Hash",val:j}];return(0,e.jsx)(r.p8,{width:470,height:250,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{basis:"25%",textAlign:"left",children:(0,e.jsx)(t.az,{inline:!0,style:{width:"101px",height:"120px",overflow:"hidden",outline:"2px solid #4972a1"},children:E&&(0,e.jsx)(t._V,{src:E.substring(1,E.length-1),style:{width:"300px",marginLeft:"-94px"}})||(0,e.jsx)(t.In,{name:"user",size:8,ml:1.5,mt:2.5})})}),(0,e.jsx)(t.so.Item,{basis:0,grow:1,children:(0,e.jsx)(t.Ki,{children:y.map(function(M){return(0,e.jsx)(t.Ki.Item,{label:M.name,children:M.val},M.name)})})})]}),(0,e.jsxs)(t.so,{className:"IDCard__NamePlate",align:"center",justify:"space-around",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{textAlign:"center",children:o})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{textAlign:"center",children:(0,e.jsx)(s.RankIcon,{color:"",rank:f})})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.az,{textAlign:"center",children:f})})]})]})})})}},39841:function(O,h,n){"use strict";n.r(h),n.d(h,{IdentificationComputer:function(){return o},IdentificationComputerAccessModification:function(){return c},IdentificationComputerContent:function(){return l},IdentificationComputerPrinting:function(){return a},IdentificationComputerRegions:function(){return f}});var e=n(20462),i=n(7402),t=n(61282),r=n(61358),s=n(7081),g=n(88569),x=n(15581),u=n(58044),o=function(){return(0,e.jsx)(x.p8,{width:600,height:700,children:(0,e.jsx)(x.p8.Content,{children:(0,e.jsx)(l,{})})})},l=function(m){var v=(0,s.Oc)(),j=v.act,E=v.data,y=m.ntos,M=E.mode,P=E.has_modify,D=E.printing,S=E.have_id_slot,B=E.have_printer,T=(0,e.jsx)(c,{ntos:y});return y&&!S?T=(0,e.jsx)(u.CrewManifestContent,{}):D?T=(0,e.jsx)(a,{}):M===1&&(T=(0,e.jsx)(u.CrewManifestContent,{})),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(g.tU,{children:[(!y||!!S)&&(0,e.jsx)(g.tU.Tab,{icon:"home",selected:M===0,onClick:function(){return j("mode",{mode_target:0})},children:"Access Modification"}),(0,e.jsx)(g.tU.Tab,{icon:"home",selected:M===1,onClick:function(){return j("mode",{mode_target:1})},children:"Crew Manifest"}),!y||!!B&&(0,e.jsx)(g.tU.Tab,{style:{float:"right"},icon:"print",onClick:function(){return(M||P)&&j("print")},color:!M&&!P?"transparent":"",children:"Print"})]}),T]})},a=function(m){return(0,e.jsx)(g.wn,{title:"Printing",children:"Please wait..."})},c=function(m){var v=(0,s.Oc)(),j=v.act,E=v.data,y=m.ntos,M=E.station_name,P=E.target_name,D=E.target_owner,S=D===void 0?"":D,B=E.scan_name,T=E.authenticated,L=E.has_modify,W=E.account_number,$=W===void 0?"":W,k=E.centcom_access,z=E.all_centcom_access,X=E.id_rank,G=E.departments;return(0,e.jsxs)(g.wn,{title:"Access Modification",children:[!T&&(0,e.jsx)(g.az,{italic:!0,mb:1,children:"Please insert the IDs into the terminal to proceed."}),(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Target Identitity",children:(0,e.jsx)(g.$n,{icon:"eject",fluid:!0,onClick:function(){return j("modify")},children:P})}),!y&&(0,e.jsx)(g.Ki.Item,{label:"Authorized Identitity",children:(0,e.jsx)(g.$n,{icon:"eject",fluid:!0,onClick:function(){return j("scan")},children:B})})]}),!!T&&!!L&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.wn,{title:"Details",children:(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Registered Name",children:(0,e.jsx)(g.pd,{value:S,fluid:!0,onInput:function(Q,ee){return j("reg",{reg:ee})}})}),(0,e.jsx)(g.Ki.Item,{label:"Account Number",children:(0,e.jsx)(g.pd,{value:$,fluid:!0,onInput:function(Q,ee){return j("account",{account:ee})}})}),(0,e.jsx)(g.Ki.Item,{label:"Dismissals",children:(0,e.jsx)(g.$n.Confirm,{color:"bad",icon:"exclamation-triangle",confirmIcon:"fire",fluid:!0,confirmContent:"You are dismissing "+S+", confirm?",onClick:function(){return j("terminate")},children:"Dismiss "+S})})]})}),(0,e.jsx)(g.wn,{title:"Assignment",children:(0,e.jsxs)(g.XI,{children:[G.map(function(Q){return(0,e.jsxs)(r.Fragment,{children:[(0,e.jsxs)(g.XI.Row,{children:[(0,e.jsx)(g.XI.Cell,{header:!0,verticalAlign:"middle",children:Q.department_name}),(0,e.jsx)(g.XI.Cell,{children:Q.jobs.map(function(ee){return(0,e.jsx)(g.$n,{selected:ee.job===X,onClick:function(){return j("assign",{assign_target:ee.job})},children:(0,t.jT)(ee.display_name)},ee.job)})})]}),(0,e.jsx)(g.az,{mt:-1,children:"\xA0"})," "]},Q.department_name)}),(0,e.jsxs)(g.XI.Row,{children:[(0,e.jsx)(g.XI.Cell,{header:!0,verticalAlign:"middle",children:"Special"}),(0,e.jsx)(g.XI.Cell,{children:(0,e.jsx)(g.$n,{onClick:function(){return j("assign",{assign_target:"Custom"})},children:"Custom"})})]})]})}),!!k&&(0,e.jsx)(g.wn,{title:"Central Command",children:z.map(function(Q){return(0,e.jsx)(g.az,{children:(0,e.jsx)(g.$n,{fluid:!0,selected:Q.allowed,onClick:function(){return j("access",{access_target:Q.ref,allowed:Q.allowed})},children:(0,t.jT)(Q.desc)})},Q.ref)})})||(0,e.jsx)(g.wn,{title:M,children:(0,e.jsx)(f,{actName:"access"})})]})]})},f=function(m){var v=(0,s.Oc)(),j=v.act,E=v.data,y=m.actName,M=E.regions;return(0,e.jsx)(g.so,{wrap:"wrap",spacing:1,children:M&&(0,i.Ul)(M,function(P){return P.name}).map(function(P){return(0,e.jsx)(g.so.Item,{mb:1,basis:"content",grow:1,children:(0,e.jsx)(g.wn,{title:P.name,height:"100%",children:(0,i.Ul)(P.accesses,function(D){return D.desc}).map(function(D){return(0,e.jsx)(g.az,{children:(0,e.jsx)(g.$n,{fluid:!0,selected:D.allowed,onClick:function(){return j(y,{access_target:D.ref,allowed:D.allowed})},children:(0,t.jT)(D.desc)})},D.ref)})})},P.name)})})}},15450:function(O,h,n){"use strict";n.r(h),n.d(h,{InventoryPanel:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.slots,a=o.internalsValid;return(0,e.jsx)(r.p8,{width:400,height:200,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.Ki,{children:l&&l.length&&l.map(function(c){return(0,e.jsx)(t.Ki.Item,{label:c.name,children:(0,e.jsx)(t.$n,{mb:-1,icon:c.item?"hand-paper":"gift",onClick:function(){return u(c.act)},children:c.item||"Nothing"})},c.name)})})}),a&&(0,e.jsx)(t.wn,{title:"Actions",children:a&&(0,e.jsx)(t.$n,{fluid:!0,icon:"lungs",onClick:function(){return u("internals")},children:"Set Internals"})||null})||null]})})}},66855:function(O,h,n){"use strict";n.r(h),n.d(h,{InventoryPanelHuman:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.slots,a=o.specialSlots,c=o.internalsValid,f=o.sensors,m=o.handcuffed,v=o.handcuffedParams,j=o.legcuffed,E=o.legcuffedParams,y=o.accessory;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[l&&l.length&&l.map(function(M){return(0,e.jsx)(t.Ki.Item,{label:M.name,children:(0,e.jsx)(t.$n,{mb:-1,icon:M.item?"hand-paper":"gift",onClick:function(){return u(M.act,M.params)},children:M.item||"Nothing"})},M.name)}),(0,e.jsx)(t.Ki.Divider,{}),a&&a.length&&a.map(function(M){return(0,e.jsx)(t.Ki.Item,{label:M.name,children:(0,e.jsx)(t.$n,{mb:-1,icon:M.item?"hand-paper":"gift",onClick:function(){return u(M.act,M.params)},children:M.item||"Nothing"})},M.name)})]})}),(0,e.jsxs)(t.wn,{title:"Actions",children:[(0,e.jsx)(t.$n,{fluid:!0,icon:"running",onClick:function(){return u("targetSlot",{slot:"splints"})},children:"Remove Splints"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"hand-paper",onClick:function(){return u("targetSlot",{slot:"pockets"})},children:"Empty Pockets"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"socks",onClick:function(){return u("targetSlot",{slot:"underwear"})},children:"Remove or Replace Underwear"}),c&&(0,e.jsx)(t.$n,{fluid:!0,icon:"lungs",onClick:function(){return u("targetSlot",{slot:"internals"})},children:"Set Internals"})||null,f&&(0,e.jsx)(t.$n,{fluid:!0,icon:"book-medical",onClick:function(){return u("targetSlot",{slot:"sensors"})},children:"Set Sensors"})||null,m&&(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"unlink",onClick:function(){return u("targetSlot",v)},children:"Handcuffed"})||null,j&&(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"unlink",onClick:function(){return u("targetSlot",E)},children:"Legcuffed"})||null,y&&(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"unlink",onClick:function(){return u("targetSlot",{slot:"tie"})},children:"Remove Accessory"})||null]})]})})}},42592:function(O,h,n){"use strict";n.r(h),n.d(h,{IsolationCentrifuge:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.busy,a=o.antibodies,c=o.pathogens,f=o.is_antibody_sample,m=o.sample_inserted,v=(0,e.jsx)(t.az,{color:"average",children:"No vial detected."});return m&&(!a&&!c?v=(0,e.jsx)(t.az,{color:"average",children:"No antibodies or viral strains detected."}):v=(0,e.jsxs)(e.Fragment,{children:[a?(0,e.jsx)(t.wn,{title:"Antibodies",children:a}):"",c.length?(0,e.jsx)(t.wn,{title:"Pathogens",children:(0,e.jsx)(t.Ki,{children:c.map(function(j){return(0,e.jsx)(t.Ki.Item,{label:j.name,children:j.spread_type},j.name)})})}):""]})),(0,e.jsx)(r.p8,{width:400,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:l?(0,e.jsx)(t.wn,{title:"The Centrifuge is currently busy.",color:"bad",children:(0,e.jsx)("center",{children:(0,e.jsx)(t.az,{color:"bad",children:l})})}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.wn,{title:f?"Antibody Sample":"Blood Sample",children:[(0,e.jsxs)(t.so,{spacing:1,mb:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"print",disabled:!a&&!c.length,onClick:function(){return u("print")},children:"Print"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",disabled:!m,onClick:function(){return u("sample")},children:"Eject Vial"})})]}),v]}),a&&!f||c.length?(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Ki,{children:[a&&!f?(0,e.jsx)(t.Ki.Item,{label:"Isolate Antibodies",children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return u("antibody")},children:a})}):"",c.length?(0,e.jsx)(t.Ki.Item,{label:"Isolate Strain",children:c.map(function(j){return(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return u("isolate",{isolate:j.reference})},children:j.name},j.name)})}):""]})}):""]})})})}},40939:function(O,h,n){"use strict";n.r(h),n.d(h,{JanitorCart:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.mybag,f=a.mybucket,m=a.mymop,v=a.myspray,j=a.myreplacer,E=a.signs;return(0,e.jsx)(r.p8,{width:210,height:180,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:c||"Garbage Bag Slot",tooltipPosition:"bottom-end",color:c?"grey":"transparent",style:{border:c?void 0:"2px solid grey"},onClick:function(){return l("bag")},children:(0,e.jsx)(x,{iconkey:"mybag"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:f||"Bucket Slot",tooltipPosition:"bottom",color:f?"grey":"transparent",style:{border:f?void 0:"2px solid grey"},onClick:function(){return l("bucket")},children:(0,e.jsx)(x,{iconkey:"mybucket"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:m||"Mop Slot",tooltipPosition:"bottom-end",color:m?"grey":"transparent",style:{border:m?void 0:"2px solid grey"},onClick:function(){return l("mop")},children:(0,e.jsx)(x,{iconkey:"mymop"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:v||"Spray Slot",tooltipPosition:"top-end",color:v?"grey":"transparent",style:{border:v?void 0:"2px solid grey"},onClick:function(){return l("spray")},children:(0,e.jsx)(x,{iconkey:"myspray"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:j||"Light Replacer Slot",tooltipPosition:"top",color:j?"grey":"transparent",style:{border:j?void 0:"2px solid grey"},onClick:function(){return l("replacer")},children:(0,e.jsx)(x,{iconkey:"myreplacer"})}),(0,e.jsx)(t.$n,{width:"64px",height:"64px",position:"relative",tooltip:E||"Signs Slot",tooltipPosition:"top-start",color:E?"grey":"transparent",style:{border:E?void 0:"2px solid grey"},onClick:function(){return l("sign")},children:(0,e.jsx)(x,{iconkey:"signs"})})]})})},g={mybag:"trash",mybucket:"fill",mymop:"broom",myspray:"spray-can",myreplacer:"lightbulb",signs:"sign"},x=function(u){var o=(0,i.Oc)().data,l=u.iconkey,a=o.icons;return l in a?(0,e.jsx)(t._V,{src:a[l].substr(1,a[l].length-1),style:{position:"absolute",left:"0",right:"0",top:"0",bottom:"0",width:"64px",height:"64px"}}):(0,e.jsx)(t.In,{style:{position:"absolute",left:"4px",right:"0",top:"20px",bottom:"0",width:"64px",height:"64px"},fontSize:2,name:g[l]})}},25244:function(O,h,n){"use strict";n.r(h),n.d(h,{Jukebox:function(){return o}});var e=n(20462),i=n(4089),t=n(61282),r=n(61358),s=n(7081),g=n(88569),x=n(41242),u=n(15581),o=function(l){var a=function(){on&&ce("Admin"),Xe(!on)},c=(0,s.Oc)(),f=c.act,m=c.data,v=m.playing,j=m.loop_mode,E=m.volume,y=m.current_track_ref,M=m.current_track,P=m.current_genre,D=m.percent,S=m.tracks,B=m.admin,T=S.length&&S.reduce(function(Pe,qe){var jn=qe.genre||"Uncategorized";return Pe[jn]||(Pe[jn]=[]),Pe[jn].push(qe),Pe},{}),L=v&&(P||"Uncategorized"),W=(0,r.useState)("Unknown"),$=W[0],k=W[1],z=(0,r.useState)(""),X=z[0],G=z[1],Q=(0,r.useState)(0),ee=Q[0],se=Q[1],ne=(0,r.useState)("Unknown"),Y=ne[0],J=ne[1],V=(0,r.useState)("Admin"),te=V[0],ce=V[1],le=(0,r.useState)(!1),fe=le[0],ge=le[1],Ie=(0,r.useState)(!1),Ee=Ie[0],je=Ie[1],Ne=(0,r.useState)(!1),on=Ne[0],Xe=Ne[1];return(0,e.jsx)(u.p8,{width:450,height:600,children:(0,e.jsxs)(u.p8.Content,{scrollable:!0,children:[(0,e.jsx)(g.wn,{title:"Currently Playing",children:(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Title",children:v&&M&&(0,e.jsxs)(g.az,{children:[M.title," by ",M.artist||"Unkown"]})||(0,e.jsx)(g.az,{children:"Stopped"})}),(0,e.jsxs)(g.Ki.Item,{label:"Controls",children:[(0,e.jsx)(g.$n,{icon:"play",disabled:v,onClick:function(){return f("play")},children:"Play"}),(0,e.jsx)(g.$n,{icon:"stop",disabled:!v,onClick:function(){return f("stop")},children:"Stop"})]}),(0,e.jsxs)(g.Ki.Item,{label:"Loop Mode",children:[(0,e.jsx)(g.$n,{icon:"play",onClick:function(){return f("loopmode",{loopmode:1})},selected:j===1,children:"Next"}),(0,e.jsx)(g.$n,{icon:"random",onClick:function(){return f("loopmode",{loopmode:2})},selected:j===2,children:"Shuffle"}),(0,e.jsx)(g.$n,{icon:"redo",onClick:function(){return f("loopmode",{loopmode:3})},selected:j===3,children:"Repeat"}),(0,e.jsx)(g.$n,{icon:"step-forward",onClick:function(){return f("loopmode",{loopmode:4})},selected:j===4,children:"Once"})]}),(0,e.jsx)(g.Ki.Item,{label:"Progress",children:(0,e.jsx)(g.z2,{value:D,maxValue:1,color:"good"})}),(0,e.jsx)(g.Ki.Item,{label:"Volume",children:(0,e.jsx)(g.Ap,{minValue:0,step:1,value:E*100,maxValue:100,ranges:{good:[75,1/0],average:[25,75],bad:[0,25]},format:function(Pe){return(0,i.Mg)(Pe,1)+"%"},onChange:function(Pe,qe){return f("volume",{val:(0,i.LI)(qe/100,2)})}})})]})}),(0,e.jsx)(g.wn,{title:"Available Tracks",children:S.length&&Object.keys(T).sort().map(function(Pe){return(0,t.ZH)(Pe)!=="Admin"&&(0,e.jsx)(g.Nt,{title:Pe,color:L===Pe?"green":"default",child_mt:0,children:(0,e.jsx)("div",{style:{marginLeft:"1em"},children:T[Pe].map(function(qe){return(0,e.jsx)(g.$n,{fluid:!0,icon:"play",selected:y===qe.ref,onClick:function(){return f("change_track",{change_track:qe.ref})},children:qe.title},qe.ref)})})},Pe)})||(0,e.jsx)(g.az,{color:"bad",children:"Error: No songs loaded."})}),B&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.wn,{title:"Admin Tracks",children:S.length&&Object.keys(T).sort().map(function(Pe){return(0,t.ZH)(Pe)==="Admin"&&(0,e.jsx)(g.Nt,{title:Pe,color:L===Pe?"green":"default",child_mt:0,children:(0,e.jsx)("div",{style:{marginLeft:"1em"},children:T[Pe].map(function(qe){return(0,e.jsxs)(g.so,{children:[(0,e.jsx)(g.so.Item,{grow:1,children:(0,e.jsx)(g.$n,{fluid:!0,icon:"play",selected:y===qe.ref,onClick:function(){return f("change_track",{change_track:qe.ref})},children:qe.title},qe.ref)}),(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.$n.Confirm,{icon:"trash",onClick:function(){return f("remove_new_track",{ref:qe.ref})}})})]},qe.ref)})})},Pe)})||(0,e.jsx)(g.az,{color:"bad",children:"Error: No songs added."})}),(0,e.jsx)(g.wn,{title:"Admin Options",children:(0,e.jsxs)(g.Nt,{title:"Add Track",children:[(0,e.jsxs)(g.Ki,{children:[(0,e.jsx)(g.Ki.Item,{label:"Title",children:(0,e.jsx)(g.pd,{width:"100%",value:$,onChange:function(Pe,qe){return k(qe)}})}),(0,e.jsx)(g.Ki.Item,{label:"URL",children:(0,e.jsx)(g.pd,{width:"100%",value:X,onChange:function(Pe,qe){return G(qe)}})}),(0,e.jsx)(g.Ki.Item,{label:"Playtime",children:(0,e.jsx)(g.Q7,{step:1,value:ee,minValue:0,maxValue:3600,onChange:function(Pe){return se(Pe)},format:function(Pe){return(0,x.fU)((0,i.LI)(Pe*10,0))}})}),(0,e.jsx)(g.Ki.Item,{label:"Artist",children:(0,e.jsx)(g.pd,{width:"100%",value:Y,onChange:function(Pe,qe){return J(qe)}})}),(0,e.jsx)(g.Ki.Item,{label:"Genre",children:(0,e.jsxs)(g.so,{children:[(0,e.jsx)(g.so.Item,{grow:1,children:on?(0,e.jsx)(g.pd,{width:"100%",value:te,onChange:function(Pe,qe){return ce(qe)}}):(0,e.jsx)(g.az,{children:te})}),(0,e.jsx)(g.so.Item,{children:(0,e.jsx)(g.$n.Checkbox,{icon:on?"lock-open":"lock",color:on?"good":"bad",onClick:function(){return a()}})})]})}),(0,e.jsx)(g.Ki.Item,{label:"Secret",children:(0,e.jsx)(g.$n.Checkbox,{checked:fe,onClick:function(){return ge(!fe)}})}),(0,e.jsx)(g.Ki.Item,{label:"Lobby",children:(0,e.jsx)(g.$n.Checkbox,{checked:Ee,onClick:function(){return je(!Ee)}})})]}),(0,e.jsx)(g.cG,{}),(0,e.jsx)(g.$n,{disabled:!($&&X&&ee&&Y&&te),onClick:function(){return f("add_new_track",{title:$,url:X,duration:ee,artist:Y,genre:te,secret:fe,lobby:Ee})},children:"Add new Track"})]})})]})]})})}},7881:function(O,h,n){"use strict";n.r(h),n.d(h,{LawManager:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581);function s(){return s=Object.assign||function(c){for(var f=1;f=0)&&(m[j]=c[j]);return m}var x=function(c){var f=(0,i.Oc)().data,m=f.isSlaved;return(0,e.jsx)(r.p8,{width:800,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[m?(0,e.jsxs)(t.IC,{info:!0,children:["Law-synced to ",m]}):"",(0,e.jsx)(u,{})]})})},u=function(c){var f=(0,i.QY)("lawsTabIndex",0),m=f[0],v=f[1],j=[];return j[0]=(0,e.jsx)(o,{}),j[1]=(0,e.jsx)(a,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:m===0,onClick:function(){return v(0)},children:"Law Management"}),(0,e.jsx)(t.tU.Tab,{selected:m===1,onClick:function(){return v(1)},children:"Law Sets"})]}),j[m]]})},o=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.ion_law_nr,E=v.ion_law,y=v.zeroth_law,M=v.inherent_law,P=v.supplied_law,D=v.supplied_law_position,S=v.zeroth_laws,B=v.has_zeroth_laws,T=v.ion_laws,L=v.has_ion_laws,W=v.inherent_laws,$=v.has_inherent_laws,k=v.supplied_laws,z=v.has_supplied_laws,X=v.isAI,G=v.isMalf,Q=v.isAdmin,ee=v.channel,se=v.channels,ne=S.map(function(Y){return Y.zero=!0,Y}).concat(W);return(0,e.jsxs)(t.wn,{children:[L?(0,e.jsx)(l,{laws:T,title:j+" Laws:",mt:-2}):"",B||$?(0,e.jsx)(l,{laws:ne,title:"Inherent Laws",mt:-2}):"",z?(0,e.jsx)(l,{laws:k,title:"Supplied Laws",mt:-2}):"",(0,e.jsx)(t.wn,{title:"Controls",mt:-2,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Statement Channel",children:se.map(function(Y){return(0,e.jsx)(t.$n,{selected:ee===Y.channel,onClick:function(){return m("law_channel",{law_channel:Y.channel})},children:Y.channel},Y.channel)})}),(0,e.jsx)(t.Ki.Item,{label:"State Laws",children:(0,e.jsx)(t.$n,{icon:"volume-up",onClick:function(){return m("state_laws")},children:"State Laws"})}),X?(0,e.jsx)(t.Ki.Item,{label:"Law Notification",children:(0,e.jsx)(t.$n,{icon:"exclamation",onClick:function(){return m("notify_laws")},children:"Notify"})}):""]})}),G?(0,e.jsx)(t.wn,{title:"Add Laws",mt:-2,children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Type"}),(0,e.jsx)(t.XI.Cell,{children:"Law"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Index"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Add"})]}),Q&&!B?(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Zero"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:y,fluid:!0,onChange:function(Y,J){return m("change_zeroth_law",{val:J})}})}),(0,e.jsx)(t.XI.Cell,{children:"N/A"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_zeroth_law")},children:"Add"})})]}):"",(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Ion"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:E,fluid:!0,onChange:function(Y,J){return m("change_ion_law",{val:J})}})}),(0,e.jsx)(t.XI.Cell,{children:"N/A"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_ion_law")},children:"Add"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:"Inherent"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:M,fluid:!0,onChange:function(Y,J){return m("change_inherent_law",{val:J})}})}),(0,e.jsx)(t.XI.Cell,{children:"N/A"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_inherent_law")},children:"Add"})})]}),(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:"Supplied"}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.pd,{value:P,fluid:!0,onChange:function(Y,J){return m("change_supplied_law",{val:J})}})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return m("change_supplied_law_position")},children:D})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return m("add_supplied_law")},children:"Add"})})]})]})}):""]})},l=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.isMalf,E=v.isAdmin,y=c.laws,M=c.title,P=c.noButtons,D=g(c,["laws","title","noButtons"]);return(0,e.jsx)(t.wn,s({title:M},D,{children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Index"}),(0,e.jsx)(t.XI.Cell,{children:"Law"}),P?"":(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"State"}),j&&!P?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Edit"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Delete"})]}):""]}),y.map(function(S){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{collapsing:!0,children:[S.index,"."]}),(0,e.jsx)(t.XI.Cell,{color:S.zero?"bad":void 0,children:S.law}),P?"":(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"volume-up",selected:S.state,onClick:function(){return m("state_law",{ref:S.ref,state_law:!S.state})},children:S.state?"Yes":"No"})}),j&&!P?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{disabled:S.zero&&!E,icon:"pen",onClick:function(){return m("edit_law",{edit_law:S.ref})},children:"Edit"})}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{disabled:S.zero&&!E,color:"bad",icon:"trash",onClick:function(){return m("delete_law",{delete_law:S.ref})},children:"Delete"})})]}):""]},S.index)})]})}))},a=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.isMalf,E=v.law_sets,y=v.ion_law_nr;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.IC,{children:"Remember: Stating laws other than those currently loaded may be grounds for decommissioning! - NanoTrasen"}),E.length?E.map(function(M){return(0,e.jsxs)(t.wn,{title:M.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{disabled:!j,icon:"sync",onClick:function(){return m("transfer_laws",{transfer_laws:M.ref})},children:"Load Laws"}),(0,e.jsx)(t.$n,{icon:"volume-up",onClick:function(){return m("state_law_set",{state_law_set:M.ref})},children:"State Laws"})]}),children:[M.laws.has_ion_laws?(0,e.jsx)(l,{noButtons:!0,laws:M.laws.ion_laws,title:y+" Laws:"}):"",M.laws.has_zeroth_laws||M.laws.has_inherent_laws?(0,e.jsx)(l,{noButtons:!0,laws:M.laws.zeroth_laws.concat(M.laws.inherent_laws),title:M.header}):"",M.laws.has_supplied_laws?(0,e.jsx)(l,{noButtons:!0,laws:M.laws.supplied_laws,title:"Supplied Laws"}):""]},M.name)}):""]})}},94979:function(O,h,n){"use strict";n.r(h),n.d(h,{ListInputModal:function(){return o}});var e=n(20462),i=n(61358),t=n(6544),r=n(7081),s=n(88569),g=n(15581),x=n(5335),u=n(44149),o=function(c){var f=(0,r.Oc)(),m=f.act,v=f.data,j=v.items,E=j===void 0?[]:j,y=v.message,M=y===void 0?"":y,P=v.init_value,D=v.large_buttons,S=v.timeout,B=v.title,T=(0,i.useState)(E.indexOf(P)),L=T[0],W=T[1],$=(0,i.useState)(E.length>9),k=$[0],z=$[1],X=(0,i.useState)(""),G=X[0],Q=X[1],ee=function(le){var fe=te.length-1;if(le===t.R)if(L===null||L===fe){var ge;W(0),(ge=document.getElementById("0"))==null||ge.scrollIntoView()}else{var Ie;W(L+1),(Ie=document.getElementById((L+1).toString()))==null||Ie.scrollIntoView()}else if(le===t.gf)if(L===null||L===0){var Ee;W(fe),(Ee=document.getElementById(fe.toString()))==null||Ee.scrollIntoView()}else{var je;W(L-1),(je=document.getElementById((L-1).toString()))==null||je.scrollIntoView()}},se=function(le){le!==L&&W(le)},ne=function(){z(!1),z(!0)},Y=function(le){var fe=String.fromCharCode(le),ge=E.find(function(je){return je==null?void 0:je.toLowerCase().startsWith(fe==null?void 0:fe.toLowerCase())});if(ge){var Ie,Ee=E.indexOf(ge);W(Ee),(Ie=document.getElementById(Ee.toString()))==null||Ie.scrollIntoView()}},J=function(le){var fe;le!==G&&(Q(le),W(0),(fe=document.getElementById("0"))==null||fe.scrollIntoView())},V=function(){z(!k),Q("")},te=E.filter(function(le){return le==null?void 0:le.toLowerCase().includes(G.toLowerCase())}),ce=325+Math.ceil(M.length/3)+(D?5:0);return k||setTimeout(function(){var le;return(le=document.getElementById(L.toString()))==null?void 0:le.focus()},1),(0,e.jsxs)(g.p8,{title:B,width:325,height:ce,children:[S&&(0,e.jsx)(u.Loader,{value:S}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(le){var fe=window.event?le.which:le.keyCode;(fe===t.R||fe===t.gf)&&(le.preventDefault(),ee(fe)),fe===t.Ri&&(le.preventDefault(),m("submit",{entry:te[L]})),!k&&fe>=t.W8&&fe<=t.bh&&(le.preventDefault(),Y(fe)),fe===t.s6&&(le.preventDefault(),m("cancel"))},children:(0,e.jsx)(s.wn,{buttons:(0,e.jsx)(s.$n,{compact:!0,icon:k?"search":"font",selected:!0,tooltip:k?"Search Mode. Type to search or use arrow keys to select manually.":"Hotkey Mode. Type a letter to jump to the first match. Enter to select.",tooltipPosition:"left",onClick:function(){return V()}}),className:"ListInput__Section",fill:!0,title:M,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(l,{filteredItems:te,onClick:se,onFocusSearch:ne,searchBarVisible:k,selected:L})}),k&&(0,e.jsx)(a,{filteredItems:te,onSearch:J,searchQuery:G,selected:L}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(x.InputButtons,{input:te[L]})})]})})})]})},l=function(c){var f=(0,r.Oc)().act,m=c.filteredItems,v=c.onClick,j=c.onFocusSearch,E=c.searchBarVisible,y=c.selected;return(0,e.jsxs)(s.wn,{fill:!0,scrollable:!0,children:[(0,e.jsx)(s.y5,{}),m.map(function(M,P){return(0,e.jsx)(s.$n,{color:"transparent",fluid:!0,onClick:function(){return v(P)},onDoubleClick:function(D){D.preventDefault(),f("submit",{entry:m[y]})},onKeyDown:function(D){var S=window.event?D.which:D.keyCode;E&&S>=t.W8&&S<=t.bh&&(D.preventDefault(),j())},selected:P===y,style:{animation:"none",transition:"none"},children:M.replace(/^\w/,function(D){return D.toUpperCase()})},P)})]})},a=function(c){var f=(0,r.Oc)().act,m=c.filteredItems,v=c.onSearch,j=c.searchQuery,E=c.selected;return(0,e.jsx)(s.pd,{autoFocus:!0,autoSelect:!0,fluid:!0,onEnter:function(y){y.preventDefault(),f("submit",{entry:m[E]})},onInput:function(y,M){return v(M)},placeholder:"Search...",value:j})}},30373:function(O,h,n){"use strict";n.r(h),n.d(h,{LookingGlass:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.supportedPrograms,a=o.currentProgram,c=o.immersion,f=o.gravity,m=Math.min(180+l.length*23,600);return(0,e.jsx)(r.p8,{width:300,height:m,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Programs",children:l.map(function(v){return(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",selected:v===a,onClick:function(){return u("program",{program:v})},children:v},v)})}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Gravity",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"user-astronaut",selected:f,onClick:function(){return u("gravity")},children:f?"Enabled":"Disabled"})}),(0,e.jsx)(t.Ki.Item,{label:"Full Immersion",children:(0,e.jsx)(t.$n,{mt:-1,fluid:!0,icon:"eye",selected:c,onClick:function(){return u("immersion")},children:c?"Enabled":"Disabled"})})]})})]})})}},88504:function(O,h,n){"use strict";n.r(h),n.d(h,{MechaControlConsole:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.beacons,c=a===void 0?[]:a,f=l.stored_data,m=f===void 0?[]:f;return(0,e.jsx)(s.p8,{width:600,height:600,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[m.length?(0,e.jsx)(r.aF,{children:(0,e.jsx)(r.wn,{height:"400px",style:{overflowY:"auto"},title:"Log",buttons:(0,e.jsx)(r.$n,{icon:"window-close",onClick:function(){return o("clear_log")}}),children:m.map(function(v){return(0,e.jsxs)(r.az,{children:[(0,e.jsxs)(r.az,{color:"label",children:["(",v.time,") (",v.year,")"]}),(0,e.jsx)(r.az,{children:(0,i.jT)(v.message)})]},v.time)})})}):"",c.length&&c.map(function(v){return(0,e.jsx)(r.wn,{title:v.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"comment",onClick:function(){return o("send_message",{mt:v.ref})},children:"Message"}),(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return o("get_log",{mt:v.ref})},children:"View Log"}),(0,e.jsx)(r.$n.Confirm,{color:"red",icon:"bomb",onClick:function(){return o("shock",{mt:v.ref})},children:"EMP"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Health",children:(0,e.jsx)(r.z2,{ranges:{good:[v.maxHealth*.75,1/0],average:[v.maxHealth*.5,v.maxHealth*.75],bad:[-1/0,v.maxHealth*.5]},value:v.health,maxValue:v.maxHealth})}),(0,e.jsx)(r.Ki.Item,{label:"Cell Charge",children:v.cell&&(0,e.jsx)(r.z2,{ranges:{good:[v.cellMaxCharge*.75,1/0],average:[v.cellMaxCharge*.5,v.cellMaxCharge*.75],bad:[-1/0,v.cellMaxCharge*.5]},value:v.cellCharge,maxValue:v.cellMaxCharge})||(0,e.jsx)(r.IC,{children:"No Cell Installed"})}),(0,e.jsxs)(r.Ki.Item,{label:"Air Tank",children:[v.airtank,"kPa"]}),(0,e.jsx)(r.Ki.Item,{label:"Pilot",children:v.pilot||"Unoccupied"}),(0,e.jsx)(r.Ki.Item,{label:"Location",children:(0,i.Sn)(v.location)||"Unknown"}),(0,e.jsx)(r.Ki.Item,{label:"Active Equipment",children:v.active||"None"}),v.cargoMax?(0,e.jsx)(r.Ki.Item,{label:"Cargo Space",children:(0,e.jsx)(r.z2,{ranges:{bad:[v.cargoMax*.75,1/0],average:[v.cargoMax*.5,v.cargoMax*.75],good:[-1/0,v.cargoMax*.5]},value:v.cargoUsed,maxValue:v.cargoMax})}):""]})},v.name)})||(0,e.jsx)(r.IC,{children:"No mecha beacons found."})]})})}},94921:function(O,h,n){"use strict";n.r(h),n.d(h,{Medbot:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.open,c=o.beaker,f=o.beaker_total,m=o.beaker_max,v=o.locked,j=o.heal_threshold,E=o.heal_threshold_max,y=o.injection_amount_min,M=o.injection_amount,P=o.injection_amount_max,D=o.use_beaker,S=o.declare_treatment,B=o.vocal;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Automatic Medical Unit v2.0",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return u("power")},children:l?"On":"Off"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Maintenance Panel",color:a?"bad":"good",children:a?"Open":"Closed"}),(0,e.jsx)(t.Ki.Item,{label:"Beaker",buttons:(0,e.jsx)(t.$n,{disabled:!c,icon:"eject",onClick:function(){return u("eject")},children:"Eject"}),children:c&&(0,e.jsxs)(t.z2,{value:f,maxValue:m,children:[f," / ",m]})||(0,e.jsx)(t.az,{color:"average",children:"No beaker loaded."})}),(0,e.jsx)(t.Ki.Item,{label:"Behavior Controls",color:v?"good":"bad",children:v?"Locked":"Unlocked"})]})}),!v&&(0,e.jsx)(t.wn,{title:"Behavioral Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Healing Threshold",children:(0,e.jsx)(t.Q7,{fluid:!0,step:1,minValue:0,maxValue:E,value:j,onDrag:function(T){return u("adj_threshold",{val:T})}})}),(0,e.jsx)(t.Ki.Item,{label:"Injection Amount",children:(0,e.jsx)(t.Q7,{fluid:!0,step:1,minValue:y,maxValue:P,value:M,onDrag:function(T){return u("adj_inject",{val:T})}})}),(0,e.jsx)(t.Ki.Item,{label:"Reagent Source",children:(0,e.jsx)(t.$n,{fluid:!0,icon:D?"toggle-on":"toggle-off",selected:D,onClick:function(){return u("use_beaker")},children:D?"Loaded Beaker (When available)":"Internal Synthesizer"})}),(0,e.jsx)(t.Ki.Item,{label:"Treatment Report",children:(0,e.jsx)(t.$n,{fluid:!0,icon:S?"toggle-on":"toggle-off",selected:S,onClick:function(){return u("declaretreatment")},children:S?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Speaker",children:(0,e.jsx)(t.$n,{fluid:!0,icon:B?"toggle-on":"toggle-off",selected:B,onClick:function(){return u("togglevoice")},children:B?"On":"Off"})})]})})||null]})})}},47407:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecordsList:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.records;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.pd,{fluid:!0,placeholder:"Search by Name, DNA, or ID",onChange:function(l,a){return x("search",{t1:a})}}),(0,e.jsx)(t.az,{mt:"0.5rem",children:o.map(function(l,a){return(0,e.jsx)(t.$n,{icon:"user",mb:"0.5rem",onClick:function(){return x("d_rec",{d_rec:l.ref})},children:l.id+": "+l.name},a)})})]})}},43131:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecordsMedbots:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().data,x=g.medbots;return!x||x.length===0?(0,e.jsx)(t.az,{color:"label",children:"There are no Medbots."}):x.map(function(u,o){return(0,e.jsx)(t.Nt,{open:!0,title:u.name,children:(0,e.jsx)(t.az,{px:"0.5rem",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Location",children:[u.area||"Unknown"," (",u.x,", ",u.y,")"]}),(0,e.jsx)(t.Ki.Item,{label:"Status",children:u.on?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{color:"good",children:"Online"}),(0,e.jsx)(t.az,{mt:"0.5rem",children:u.use_beaker?"Reservoir: "+u.total_volume+"/"+u.maximum_volume:"Using internal synthesizer."})]}):(0,e.jsx)(t.az,{color:"average",children:"Offline"})})]})})},o)})}},70734:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecordsMaintenance:function(){return g},MedicalRecordsNavigation:function(){return u},MedicalRecordsView:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(72886),s=n(8615),g=function(o){var l=(0,i.Oc)().act;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"download",disabled:!0,children:"Backup to Disk"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{icon:"upload",my:"0.5rem",disabled:!0,children:"Upload from Disk"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n.Confirm,{icon:"trash",onClick:function(){return l("del_all")},children:"Delete All Medical Records"})]})},x=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.medical,m=c.printing;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"General Data",mt:"-6px",children:(0,e.jsx)(r.MedicalRecordsViewGeneral,{})}),(0,e.jsx)(t.wn,{title:"Medical Data",children:(0,e.jsx)(s.MedicalRecordsViewMedical,{})}),(0,e.jsxs)(t.wn,{title:"Actions",children:[(0,e.jsx)(t.$n.Confirm,{icon:"trash",disabled:!!f.empty,color:"bad",onClick:function(){return a("del_r")},children:"Delete Medical Record"}),(0,e.jsx)(t.$n,{icon:m?"spinner":"print",disabled:m,iconSpin:!!m,ml:"0.5rem",onClick:function(){return a("print_p")},children:"Print Entry"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{icon:"arrow-left",mt:"0.5rem",onClick:function(){return a("screen",{screen:2})},children:"Back"})]})]})},u=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.screen;return(0,e.jsxs)(t.tU,{children:[(0,e.jsxs)(t.tU.Tab,{selected:f===2,onClick:function(){return a("screen",{screen:2})},children:[(0,e.jsx)(t.In,{name:"list"}),"List Records"]}),(0,e.jsxs)(t.tU.Tab,{selected:f===5,onClick:function(){return a("screen",{screen:5})},children:[(0,e.jsx)(t.In,{name:"database"}),"Virus Database"]}),(0,e.jsxs)(t.tU.Tab,{selected:f===6,onClick:function(){return a("screen",{screen:6})},children:[(0,e.jsx)(t.In,{name:"plus-square"}),"Medbot Tracking"]}),(0,e.jsxs)(t.tU.Tab,{selected:f===3,onClick:function(){return a("screen",{screen:3})},children:[(0,e.jsx)(t.In,{name:"wrench"}),"Record Maintenance"]})]})}},72886:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecordsViewGeneral:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(80724),s=function(g){var x=(0,i.Oc)().data,u=x.general;return!u||!u.fields?(0,e.jsx)(t.az,{color:"bad",children:"General records lost!"}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.az,{width:"50%",style:{float:"left"},children:(0,e.jsx)(t.Ki,{children:u.fields.map(function(o,l){return(0,e.jsx)(t.Ki.Item,{label:o.field,children:(0,e.jsxs)(t.az,{height:"20px",inline:!0,preserveWhitespace:!0,children:[o.value,!!o.edit&&(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return(0,r.doEdit)(o)}})]})},l)})})}),(0,e.jsx)(t.az,{width:"50%",style:{float:"right"},textAlign:"right",children:!!u.has_photos&&u.photos.map(function(o,l){return(0,e.jsxs)(t.az,{inline:!0,textAlign:"center",color:"label",children:[(0,e.jsx)(t._V,{src:o.substring(1,o.length-1),style:{width:"96px",marginBottom:"0.5rem"}}),(0,e.jsx)("br",{}),"Photo #",l+1]},l)})})]})}},8615:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecordsViewMedical:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(86471),s=n(80724),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.medical;return!a||!a.fields?(0,e.jsxs)(t.az,{color:"bad",children:["Medical records lost!",(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return o("new")},children:"New Record"})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki,{children:a.fields.map(function(c,f){return(0,e.jsx)(t.Ki.Item,{label:c.field,children:(0,e.jsxs)(t.az,{preserveWhitespace:!0,children:[c.value,(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return(0,s.doEdit)(c)}})]})},f)})}),(0,e.jsxs)(t.wn,{title:"Comments/Log",children:[a.comments&&a.comments.length===0?(0,e.jsx)(t.az,{color:"label",children:"No comments found."}):a.comments&&a.comments.map(function(c,f){return(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.az,{color:"label",inline:!0,children:c.header}),(0,e.jsx)("br",{}),c.text,(0,e.jsx)(t.$n,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return o("del_c",{del_c:f+1})}})]},f)}),(0,e.jsx)(t.$n,{icon:"comment-medical",color:"good",mt:"0.5rem",mb:"0",onClick:function(){return(0,r.modalOpen)("add_c")},children:"Add Entry"})]})]})}},3748:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecordsViruses:function(){return s}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),u=x.act,o=x.data,l=o.virus;return l&&l.sort(function(a,c){return a.name>c.name?1:-1}),l&&l.map(function(a,c){return(0,e.jsxs)(i.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"flask",mb:"0.5rem",onClick:function(){return u("vir",{vir:a.D})},children:a.name}),(0,e.jsx)("br",{})]},c)})}},46069:function(O,h,n){"use strict";n.r(h),n.d(h,{severities:function(){return e}});var e={Minor:"good",Medium:"average","Dangerous!":"bad",Harmful:"bad","BIOHAZARD THREAT!":"bad"}},65456:function(O,h,n){"use strict";n.r(h),n.d(h,{MedicalRecords:function(){return m}});var e=n(20462),i=n(7081),t=n(88569),r=n(86471),s=n(15581),g=n(35069),x=n(97049),u=n(3751),o=n(47407),l=n(43131),a=n(70734),c=n(3748),f=n(4492),m=function(v){var j=(0,i.Oc)().data,E=j.authenticated,y=j.screen;if(!E)return(0,e.jsx)(s.p8,{width:800,height:380,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(x.LoginScreen,{})})});var M=[];return M[2]=(0,e.jsx)(o.MedicalRecordsList,{}),M[3]=(0,e.jsx)(a.MedicalRecordsMaintenance,{}),M[4]=(0,e.jsx)(a.MedicalRecordsView,{}),M[5]=(0,e.jsx)(c.MedicalRecordsViruses,{}),M[6]=(0,e.jsx)(l.MedicalRecordsMedbots,{}),(0,e.jsxs)(s.p8,{width:800,height:380,children:[(0,e.jsx)(r.ComplexModal,{maxHeight:"100%",maxWidth:"80%"}),(0,e.jsxs)(s.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:[(0,e.jsx)(g.LoginInfo,{}),(0,e.jsx)(u.TemporaryNotice,{}),(0,e.jsx)(a.MedicalRecordsNavigation,{}),(0,e.jsx)(t.wn,{height:"calc(100% - 5rem)",flexGrow:!0,children:y&&M[y]||""})]})]})};(0,r.modalRegisterBodyOverride)("virus",f.virusModalBodyOverride)},86097:function(O,h,n){"use strict";n.r(h)},4492:function(O,h,n){"use strict";n.r(h),n.d(h,{virusModalBodyOverride:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.args;return(0,e.jsx)(t.wn,{m:"-1rem",title:x.name||"Virus",buttons:(0,e.jsx)(t.$n,{icon:"times",color:"red",onClick:function(){return g("modal_close")}}),children:(0,e.jsx)(t.az,{mx:"0.5rem",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Spread",children:[x.spreadtype," Transmission"]}),(0,e.jsx)(t.Ki.Item,{label:"Possible cure",children:x.antigen}),(0,e.jsx)(t.Ki.Item,{label:"Rate of Progression",children:x.rate}),(0,e.jsxs)(t.Ki.Item,{label:"Antibiotic Resistance",children:[x.resistance,"%"]}),(0,e.jsx)(t.Ki.Item,{label:"Species Affected",children:x.species}),(0,e.jsx)(t.Ki.Item,{label:"Symptoms",children:(0,e.jsx)(t.Ki,{children:x.symptoms.map(function(u){return(0,e.jsxs)(t.Ki.Item,{label:u.stage+". "+u.name,children:[(0,e.jsx)(t.az,{inline:!0,color:"label",children:"Strength:"})," ",u.strength,"\xA0",(0,e.jsx)(t.az,{inline:!0,color:"label",children:"Aggressiveness:"})," ",u.aggressiveness]},u.stage)})})})]})})})}},4477:function(O,h,n){"use strict";n.r(h),n.d(h,{MentorTicketPanel:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g={open:"Open",resolved:"Resolved",unknown:"Unknown"},x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.id,f=a.name,m=a.state,v=a.opened_at,j=a.closed_at,E=a.opened_at_date,y=a.closed_at_date,M=a.actions,P=a.log;return(0,e.jsx)(s.p8,{width:900,height:600,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsx)(r.wn,{title:"Ticket #"+c,buttons:(0,e.jsxs)(r.az,{nowrap:!0,children:[(0,e.jsx)(r.$n,{icon:"arrow-up",onClick:function(){return l("escalate")},children:"Escalate"}),(0,e.jsx)(r.$n,{onClick:function(){return l("legacy")},children:"Legacy UI"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Mentor Help Ticket",children:["#",c,": ",(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:f}})]}),(0,e.jsx)(r.Ki.Item,{label:"State",children:g[m]}),g[m]===g.open?(0,e.jsx)(r.Ki.Item,{label:"Opened At",children:E+" ("+(0,i.Mg)((0,i.LI)(v/600*10,0)/10,1)+" minutes ago.)"}):(0,e.jsxs)(r.Ki.Item,{label:"Closed At",children:[y+" ("+(0,i.Mg)((0,i.LI)(j/600*10,0)/10,1)+" minutes ago.)",(0,e.jsx)(r.$n,{onClick:function(){return l("reopen")},children:"Reopen"})]}),(0,e.jsx)(r.Ki.Item,{label:"Actions",children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:M}})}),(0,e.jsx)(r.Ki.Item,{label:"Log",children:Object.keys(P).map(function(D,S){return(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:P[D]}},S)})})]})})})})}},26948:function(O,h,n){"use strict";n.r(h),n.d(h,{MessageMonitorContent:function(){return g}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(5871),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.linkedServer,c=(0,i.useState)(0),f=c[0],m=c[1],v=[];return v[0]=(0,e.jsx)(s.MessageMonitorMain,{}),v[1]=(0,e.jsx)(s.MessageMonitorLogs,{logs:a.pda_msgs,pda:!0}),v[2]=(0,e.jsx)(s.MessageMonitorLogs,{logs:a.rc_msgs,rc:!0}),v[3]=(0,e.jsx)(s.MessageMonitorAdmin,{}),v[4]=(0,e.jsx)(s.MessageMonitorSpamFilter,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(r.tU,{children:[(0,e.jsxs)(r.tU.Tab,{selected:f===0,onClick:function(){return m(0)},children:[(0,e.jsx)(r.In,{name:"bars"})," Main Menu"]},"Main"),(0,e.jsxs)(r.tU.Tab,{selected:f===1,onClick:function(){return m(1)},children:[(0,e.jsx)(r.In,{name:"font"})," Message Logs"]},"MessageLogs"),(0,e.jsxs)(r.tU.Tab,{selected:f===2,onClick:function(){return m(2)},children:[(0,e.jsx)(r.In,{name:"bold"})," Request Logs"]},"RequestLogs"),(0,e.jsxs)(r.tU.Tab,{selected:f===3,onClick:function(){return m(3)},children:[(0,e.jsx)(r.In,{name:"comment-alt"})," Admin Messaging"]},"AdminMessage"),(0,e.jsxs)(r.tU.Tab,{selected:f===4,onClick:function(){return m(4)},children:[(0,e.jsx)(r.In,{name:"comment-slash"})," Spam Filter"]},"SpamFilter"),(0,e.jsxs)(r.tU.Tab,{color:"red",onClick:function(){return o("deauth")},children:[(0,e.jsx)(r.In,{name:"sign-out-alt"})," Log Out"]},"Logout")]}),(0,e.jsx)(r.az,{m:2,children:v[f]})]})}},9760:function(O,h,n){"use strict";n.r(h),n.d(h,{MessageMonitorHack:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(72859),s=function(g){var x=(0,i.Oc)().data,u=x.isMalfAI;return(0,e.jsx)(r.FullscreenNotice,{title:"ERROR",children:u?(0,e.jsx)(t.az,{children:"Brute-forcing for server key. It will take 20 seconds for every character that the password has."}):(0,e.jsxs)(t.az,{children:["01000010011100100111010101110100011001010010110",(0,e.jsx)("br",{}),"10110011001101111011100100110001101101001011011100110011",(0,e.jsx)("br",{}),"10010000001100110011011110111001000100000011100110110010",(0,e.jsx)("br",{}),"10111001001110110011001010111001000100000011010110110010",(0,e.jsx)("br",{}),"10111100100101110001000000100100101110100001000000111011",(0,e.jsx)("br",{}),"10110100101101100011011000010000001110100011000010110101",(0,e.jsx)("br",{}),"10110010100100000001100100011000000100000011100110110010",(0,e.jsx)("br",{}),"10110001101101111011011100110010001110011001000000110011",(0,e.jsx)("br",{}),"00110111101110010001000000110010101110110011001010111001",(0,e.jsx)("br",{}),"00111100100100000011000110110100001100001011100100110000",(0,e.jsx)("br",{}),"10110001101110100011001010111001000100000011101000110100",(0,e.jsx)("br",{}),"00110000101110100001000000111010001101000011001010010000",(0,e.jsx)("br",{}),"00111000001100001011100110111001101110111011011110111001",(0,e.jsx)("br",{}),"00110010000100000011010000110000101110011001011100010000",(0,e.jsx)("br",{}),"00100100101101110001000000111010001101000011001010010000",(0,e.jsx)("br",{}),"00110110101100101011000010110111001110100011010010110110",(0,e.jsx)("br",{}),"10110010100101100001000000111010001101000011010010111001",(0,e.jsx)("br",{}),"10010000001100011011011110110111001110011011011110110110",(0,e.jsx)("br",{}),"00110010100100000011000110110000101101110001000000111001",(0,e.jsx)("br",{}),"00110010101110110011001010110000101101100001000000111100",(0,e.jsx)("br",{}),"10110111101110101011100100010000001110100011100100111010",(0,e.jsx)("br",{}),"10110010100100000011010010110111001110100011001010110111",(0,e.jsx)("br",{}),"00111010001101001011011110110111001110011001000000110100",(0,e.jsx)("br",{}),"10110011000100000011110010110111101110101001000000110110",(0,e.jsx)("br",{}),"00110010101110100001000000111001101101111011011010110010",(0,e.jsx)("br",{}),"10110111101101110011001010010000001100001011000110110001",(0,e.jsx)("br",{}),"10110010101110011011100110010000001101001011101000010111",(0,e.jsx)("br",{}),"00010000001001101011000010110101101100101001000000111001",(0,e.jsx)("br",{}),"10111010101110010011001010010000001101110011011110010000",(0,e.jsx)("br",{}),"00110100001110101011011010110000101101110011100110010000",(0,e.jsx)("br",{}),"00110010101101110011101000110010101110010001000000111010",(0,e.jsx)("br",{}),"00110100001100101001000000111001001101111011011110110110",(0,e.jsx)("br",{}),"10010000001100100011101010111001001101001011011100110011",(0,e.jsx)("br",{}),"10010000001110100011010000110000101110100001000000111010",(0,e.jsx)("br",{}),"001101001011011010110010100101110"]})})}},38860:function(O,h,n){"use strict";n.r(h),n.d(h,{MessageMonitorLogin:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(72859),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.isMalfAI;return(0,e.jsxs)(r.FullscreenNotice,{title:"Welcome",children:[(0,e.jsxs)(t.az,{fontSize:"1.5rem",bold:!0,children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"}),"Unauthorized"]}),(0,e.jsxs)(t.az,{color:"label",my:"1rem",children:["Decryption Key:",(0,e.jsx)(t.pd,{placeholder:"Decryption Key",ml:"0.5rem",onChange:function(a,c){return u("auth",{key:c})}})]}),!!l&&(0,e.jsx)(t.$n,{icon:"terminal",onClick:function(){return u("hack")},children:"Hack"}),(0,e.jsx)(t.az,{color:"label",children:"Please authenticate with the server in order to show additional options."})]})}},5871:function(O,h,n){"use strict";n.r(h),n.d(h,{MessageMonitorAdmin:function(){return x},MessageMonitorLogs:function(){return g},MessageMonitorMain:function(){return s},MessageMonitorSpamFilter:function(){return u}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.linkedServer;return(0,e.jsxs)(r.wn,{title:"Main Menu",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"link",onClick:function(){return a("find")},children:"Server Link"}),(0,e.jsx)(r.$n,{icon:"power-off",selected:f.active,onClick:function(){return a("active")},children:"Server "+(f.active?"Enabled":"Disabled")})]}),children:[(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Server Status",children:(0,e.jsx)(r.az,{color:"good",children:"Good"})})}),(0,e.jsx)(r.$n,{mt:1,icon:"key",onClick:function(){return a("pass")},children:"Set Custom Key"}),(0,e.jsx)(r.$n.Confirm,{color:"red",confirmIcon:"exclamation-triangle",icon:"exclamation-triangle",children:"Clear Message Logs"}),(0,e.jsx)(r.$n.Confirm,{color:"red",confirmIcon:"exclamation-triangle",icon:"exclamation-triangle",children:"Clear Request Logs"})]})},g=function(o){var l=(0,t.Oc)().act,a=o.logs,c=o.pda,f=o.rc;return(0,e.jsx)(r.wn,{title:c?"PDA Logs":f?"Request Logs":"Logs",buttons:(0,e.jsx)(r.$n.Confirm,{color:"red",icon:"trash",confirmIcon:"trash",onClick:function(){return l(c?"del_pda":"del_rc")},children:"Delete All"}),children:(0,e.jsx)(r.so,{wrap:"wrap",children:a.map(function(m,v){return(0,e.jsx)(r.so.Item,{m:"2px",basis:"49%",grow:v%2,children:(0,e.jsx)(r.wn,{title:m.sender+" -> "+m.recipient,buttons:(0,e.jsx)(r.$n.Confirm,{confirmContent:"Delete Log?",color:"bad",icon:"trash",confirmIcon:"trash",onClick:function(){return l("delete",{id:m.ref,type:f?"rc":"pda"})}}),children:f?(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Message",children:m.message}),(0,e.jsx)(r.Ki.Item,{label:"Verification",color:m.id_auth==="Unauthenticated"?"bad":"good",children:!!m.id_auth&&(0,i.jT)(m.id_auth)}),(0,e.jsx)(r.Ki.Item,{label:"Stamp",children:m.stamp})]}):m.message})},m.ref)})})})},x=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.possibleRecipients,m=c.customsender,v=c.customrecepient,j=c.customjob,E=c.custommessage,y=Object.keys(f);return(0,e.jsxs)(r.wn,{title:"Admin Messaging",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Sender",children:(0,e.jsx)(r.pd,{fluid:!0,value:m,onChange:function(M,P){return a("set_sender",{val:P})}})}),(0,e.jsx)(r.Ki.Item,{label:"Sender's Job",children:(0,e.jsx)(r.pd,{fluid:!0,value:j,onChange:function(M,P){return a("set_sender_job",{val:P})}})}),(0,e.jsx)(r.Ki.Item,{label:"Recipient",children:(0,e.jsx)(r.ms,{autoScroll:!1,selected:v,options:y,width:"100%",mb:-.7,onSelected:function(M){return a("set_recipient",{val:f[M]})}})}),(0,e.jsx)(r.Ki.Item,{label:"Message",verticalAlign:"top",children:(0,e.jsx)(r.pd,{fluid:!0,mb:.5,value:E,onChange:function(M,P){return a("set_message",{val:P})}})})]}),(0,e.jsx)(r.$n,{fluid:!0,icon:"comment",onClick:function(){return a("send_message")},children:"Send Message"})]})},u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.linkedServer;return(0,e.jsxs)(r.wn,{title:"Spam Filtering",children:[(0,e.jsx)(r.Ki,{children:f.spamFilter.map(function(m){return(0,e.jsx)(r.Ki.Item,{label:m.index,buttons:(0,e.jsx)(r.$n,{icon:"trash",color:"bad",onClick:function(){return a("deltoken",{deltoken:m.index})},children:"Delete"}),children:m.token},m.index)})}),(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return a("addtoken")},children:"Add New Entry"})]})}},34692:function(O,h,n){"use strict";n.r(h),n.d(h,{MessageMonitor:function(){return o}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(3751),g=n(26948),x=n(9760),u=n(38860),o=function(l){var a=(0,i.Oc)().data,c=a.auth,f=a.linkedServer,m=a.hacking,v=a.emag,j;return m||v?j=(0,e.jsx)(x.MessageMonitorHack,{}):c?f?j=(0,e.jsx)(g.MessageMonitorContent,{}):j=(0,e.jsx)(t.az,{color:"bad",children:"ERROR"}):j=(0,e.jsx)(u.MessageMonitorLogin,{}),(0,e.jsx)(r.p8,{width:670,height:450,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.TemporaryNotice,{}),j]})})}},25029:function(O,h,n){"use strict";n.r(h)},41785:function(O,h,n){"use strict";n.r(h),n.d(h,{Microwave:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.config,l=x.data,a=l.broken,c=l.operating,f=l.dirty,m=l.items;return(0,e.jsx)(r.p8,{width:400,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:a&&(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.az,{color:"bad",children:"Bzzzzttttt!!"})})||c&&(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.az,{color:"good",children:["Microwaving in progress!",(0,e.jsx)("br",{}),"Please wait...!"]})})||f&&(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.az,{color:"bad",children:["This microwave is dirty!",(0,e.jsx)("br",{}),"Please clean it before use!"]})})||m.length&&(0,e.jsx)(t.wn,{title:"Ingredients",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"radiation",onClick:function(){return u("cook")},children:"Microwave"}),(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return u("dispose")},children:"Eject"})]}),children:(0,e.jsx)(t.Ki,{children:m.map(function(v){return(0,e.jsxs)(t.Ki.Item,{label:v.name,children:[v.amt," ",v.extra]},v.name)})})})||(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.az,{color:"bad",children:[o.title," is empty."]})})})})}},10844:function(O,h,n){"use strict";n.r(h),n.d(h,{MiningOreProcessingConsole:function(){return x}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(15581),g=n(22588),x=function(c){var f=(0,t.Oc)(),m=f.act,v=f.data,j=v.unclaimedPoints,E=v.power,y=v.speed;return(0,e.jsx)(s.p8,{width:400,height:500,children:(0,e.jsxs)(s.p8.Content,{children:[(0,e.jsx)(g.MiningUser,{insertIdText:(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"arrow-right",mr:1,onClick:function(){return m("insert")},children:"Insert ID"}),"in order to claim points."]})}),(0,e.jsx)(r.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"bolt",selected:y,onClick:function(){return m("speed_toggle")},children:y?"High-Speed Active":"High-Speed Inactive"}),(0,e.jsx)(r.$n,{icon:"power-off",selected:E,onClick:function(){return m("power")},children:E?"Smelting":"Not Smelting"})]}),children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Current unclaimed points",buttons:(0,e.jsx)(r.$n,{disabled:j<1,icon:"download",onClick:function(){return m("claim")},children:"Claim"}),children:(0,e.jsx)(r.zv,{value:j})})})}),(0,e.jsx)(a,{})]})})},u=["Not Processing","Smelting","Compressing","Alloying"],o=["verdantium","mhydrogen","diamond","platinum","uranium","gold","silver","rutile","phoron","marble","lead","sand","carbon","hematite"],l=function(c,f){return o.indexOf(c.ore)===-1||o.indexOf(f.ore)===-1?c.ore-f.ore:o.indexOf(f.ore)-o.indexOf(c.ore)},a=function(c){var f=(0,t.Oc)(),m=f.act,v=f.data,j=v.ores,E=v.showAllOres;return(0,e.jsx)(r.wn,{title:"Ore Processing Controls",buttons:(0,e.jsx)(r.$n,{icon:E?"toggle-on":"toggle-off",selected:E,onClick:function(){return m("showAllOres")},children:E?"All Ores":"Ores in Machine"}),children:(0,e.jsx)(r.Ki,{children:j.length&&j.sort(l).map(function(y){return(0,e.jsx)(r.Ki.Item,{label:(0,i.Sn)(y.name),buttons:(0,e.jsx)(r.ms,{autoScroll:!1,width:"120px",color:y.processing===0&&"red"||y.processing===1&&"green"||y.processing===2&&"blue"||y.processing===3&&"yellow"||void 0,options:u,selected:u[y.processing],onSelected:function(M){return m("toggleSmelting",{ore:y.ore,set:u.indexOf(M)})}}),children:(0,e.jsx)(r.az,{inline:!0,children:(0,e.jsx)(r.zv,{value:y.amount})})},y.ore)})||(0,e.jsx)(r.az,{color:"bad",textAlign:"center",children:"No ores in machine."})})})}},71297:function(O,h,n){"use strict";n.r(h),n.d(h,{MiningStackingConsole:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.stacktypes,c=l.stackingAmt;return(0,e.jsx)(s.p8,{width:400,height:500,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.wn,{title:"Stacker Controls",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Stacking",children:(0,e.jsx)(r.Q7,{fluid:!0,step:1,value:c,minValue:1,maxValue:50,stepPixelSize:5,onChange:function(f){return o("change_stack",{amt:f})}})}),(0,e.jsx)(r.Ki.Divider,{}),a.length&&a.sort().map(function(f){return(0,e.jsx)(r.Ki.Item,{label:(0,i.Sn)(f.type),buttons:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return o("release_stack",{stack:f.type})},children:"Eject"}),children:(0,e.jsx)(r.zv,{value:f.amt})},f.type)})||(0,e.jsx)(r.Ki.Item,{label:"Empty",color:"average",children:"No stacks in machine."})]})})})})}},602:function(O,h,n){"use strict";n.r(h),n.d(h,{MiningVendor:function(){return a}});var e=n(20462),i=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(22588);function u(){return u=Object.assign||function(v){for(var j=1;j=0)&&(E[M]=v[M]);return E}var l={Alphabetical:function(v,j){return v.name>j.name},"By availability":function(v,j){return-(v.affordable-j.affordable)},"By price":function(v,j){return v.price-j.price}},a=function(v){var j=function(z){D(z)},E=function(z){T(z)},y=function(z){$(z)},M=(0,t.useState)(""),P=M[0],D=M[1],S=(0,t.useState)("Alphabetical"),B=S[0],T=S[1],L=(0,t.useState)(!1),W=L[0],$=L[1];return(0,e.jsx)(g.p8,{width:400,height:450,children:(0,e.jsxs)(g.p8.Content,{className:"Layout__content--flexColumn",scrollable:!0,children:[(0,e.jsx)(x.MiningUser,{insertIdText:"Please insert an ID in order to make purchases."}),(0,e.jsx)(f,{searchText:P,sortOrder:B,descending:W,onSearchText:j,onSortOrder:E,onDescending:y}),(0,e.jsx)(c,{searchText:P,sortOrder:B,descending:W})]})})},c=function(v){var j=(0,r.Oc)(),E=j.act,y=j.data,M=y.has_id,P=y.id,D=y.items,S=(0,i.XZ)(v.searchText,function(L){return L[0]}),B=!1,T=Object.entries(D).map(function(L,W){var $=Object.entries(L[1]).filter(S).map(function(k){return k[1].affordable=+(M&&P.points>=k[1].price),k[1]}).sort(l[v.sortOrder]);if($.length!==0)return v.descending&&($=$.reverse()),B=!0,(0,e.jsx)(m,{title:L[0],items:$},L[0])});return(0,e.jsx)(s.so.Item,{grow:"1",overflow:"auto",children:(0,e.jsx)(s.wn,{children:B?T:(0,e.jsx)(s.az,{color:"label",children:"No items matching your criteria was found!"})})})},f=function(v){return(0,e.jsx)(s.az,{mb:"0.5rem",children:(0,e.jsxs)(s.so,{width:"100%",children:[(0,e.jsx)(s.so.Item,{grow:"1",mr:"0.5rem",children:(0,e.jsx)(s.pd,{placeholder:"Search by item name..",value:v.searchText,width:"100%",onInput:function(j,E){return v.onSearchText(E)}})}),(0,e.jsx)(s.so.Item,{basis:"30%",children:(0,e.jsx)(s.ms,{autoScroll:!1,selected:v.sortOrder,options:Object.keys(l),width:"100%",lineHeight:"19px",onSelected:function(j){return v.onSortOrder(j)}})}),(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.$n,{icon:v.descending?"arrow-down":"arrow-up",height:"19px",tooltip:v.descending?"Descending order":"Ascending order",tooltipPosition:"bottom-end",ml:"0.5rem",onClick:function(){return v.onDescending(!v.descending)}})})]})})},m=function(v){var j=(0,r.Oc)(),E=j.act,y=j.data,M=y.has_id,P=y.id,D=v.title,S=v.items,B=o(v,["title","items"]);return(0,e.jsx)(s.Nt,u({open:!0,title:D},B,{children:S.map(function(T){return(0,e.jsxs)(s.az,{children:[(0,e.jsx)(s.az,{inline:!0,verticalAlign:"middle",lineHeight:"20px",style:{float:"left"},children:T.name}),(0,e.jsx)(s.$n,{disabled:!M||P.points=450?"Overcharged":r>=250?"Good Charge":"Low Charge":r>=250?"NIF Power Requirement met.":r>=150?"Fluctuations in available power.":"Power failure imminent."}},63300:function(O,h,n){"use strict";n.r(h),n.d(h,{NIF:function(){return u}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(7428),x=n(84772),u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.config,f=l.data,m=f.theme,v=f.last_notification,j=(0,i.useState)(!1),E=j[0],y=j[1],M=(0,i.useState)(null),P=M[0],D=M[1];return(0,e.jsx)(s.p8,{theme:m,width:500,height:400,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!!v&&(0,e.jsx)(r.IC,{info:!0,children:(0,e.jsx)(r.XI,{verticalAlign:"middle",children:(0,e.jsxs)(r.XI.Row,{verticalAlign:"middle",children:[(0,e.jsx)(r.XI.Cell,{verticalAlign:"middle",children:v}),(0,e.jsx)(r.XI.Cell,{verticalAlign:"middle",collapsing:!0,children:(0,e.jsx)(r.$n,{color:"red",icon:"times",tooltip:"Dismiss",tooltipPosition:"left",onClick:function(){return a("dismissNotification")}})})]})})}),!!P&&(0,e.jsx)(r.aF,{m:1,p:0,color:"label",children:(0,e.jsxs)(r.wn,{m:0,title:P.name,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n.Confirm,{icon:"ban",color:"bad",confirmIcon:"ban",confirmContent:"Uninstall "+P.name+"?",onClick:function(){a("uninstall",{module:P.ref}),D(null)},children:"Uninstall"}),(0,e.jsx)(r.$n,{icon:"window-close",onClick:function(){return D(null)}})]}),children:[(0,e.jsx)(r.az,{children:P.desc}),(0,e.jsxs)(r.az,{children:["It consumes",(0,e.jsx)(r.az,{color:"good",inline:!0,children:P.p_drain}),"energy units while installed, and",(0,e.jsx)(r.az,{color:"average",inline:!0,children:P.a_drain}),"additionally while active."]}),(0,e.jsxs)(r.az,{color:P.illegal?"bad":"good",children:["It is ",P.illegal?"NOT ":"","a legal software package."]}),(0,e.jsxs)(r.az,{children:["The MSRP of the package is",(0,e.jsxs)(r.az,{color:"good",inline:!0,children:[P.cost,"\u20AE."]})]}),(0,e.jsxs)(r.az,{children:["The difficulty to construct the associated implant is\xA0",(0,e.jsxs)(r.az,{color:"good",inline:!0,children:["Rating ",P.wear]}),"."]})]})}),(0,e.jsx)(r.wn,{title:"Welcome to your NIF, "+c.user.name,buttons:(0,e.jsx)(r.$n,{icon:"cogs",tooltip:"Settings",tooltipPosition:"bottom-end",selected:E,onClick:function(){return y(!E)}}),children:E&&(0,e.jsx)(x.NIFSettings,{})||(0,e.jsx)(g.NIFMain,{setViewing:D})})]})})}},11045:function(O,h,n){"use strict";n.r(h)},14910:function(O,h,n){"use strict";n.r(h),n.d(h,{NTNetRelay:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(72859),g=function(o){var l=(0,i.Oc)().data,a=l.dos_crashed,c=(0,e.jsx)(x,{});return a&&(c=(0,e.jsx)(u,{})),(0,e.jsx)(r.p8,{width:a?700:500,height:a?600:300,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:c})})},x=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.enabled,m=c.dos_overload,v=c.dos_capacity;return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:f,onClick:function(){return a("toggle")},children:"Relay "+(f?"On":"Off")}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Network Buffer Status",children:[m," / ",v," GQ"]}),(0,e.jsx)(t.Ki.Item,{label:"Options",children:(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return a("purge")},children:"Purge network blacklist"})})]})})},u=function(o){var l=(0,i.Oc)().act;return(0,e.jsxs)(s.FullscreenNotice,{title:"ERROR",children:[(0,e.jsxs)(t.az,{fontSize:"1.5rem",bold:!0,color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"}),(0,e.jsx)("h2",{children:"NETWORK BUFFERS OVERLOADED"}),(0,e.jsx)("h3",{children:"Overload Recovery Mode"}),(0,e.jsx)("i",{children:"This system is suffering temporary outage due to overflow of traffic buffers. Until buffered traffic is processed, all further requests will be dropped. Frequent occurences of this error may indicate insufficient hardware capacity of your network. Please contact your network planning department for instructions on how to resolve this issue."}),(0,e.jsx)("h3",{children:"ADMINISTRATIVE OVERRIDE"}),(0,e.jsx)("b",{children:" CAUTION - Data loss may occur "})]}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return l("restart")},children:"Purge buffered traffic"})})]})}},3949:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterMainMenu:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(42501),s=function(g){var x=(0,i.Oc)().data,u=x.securityCaster,o=x.wanted_issue,l=g.setScreen;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.wn,{title:"Main Menu",children:[o&&(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",onClick:function(){return l(r.NEWSCASTER_SCREEN_VIEWWANTED)},color:"bad",children:"Read WANTED Issue"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",onClick:function(){return l(r.NEWSCASTER_SCREEN_VIEWLIST)},children:"View Feed Channels"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return l(r.NEWSCASTER_SCREEN_NEWCHANNEL)},children:"Create Feed Channel"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return l(r.NEWSCASTER_SCREEN_NEWSTORY)},children:"Create Feed Message"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"print",onClick:function(){return l(r.NEWSCASTER_SCREEN_PRINT)},children:"Print Newspaper"})]}),!!u&&(0,e.jsx)(t.wn,{title:"Feed Security Functions",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return l(r.NEWSCASTER_SCREEN_NEWWANTED)},children:'Manage "Wanted" Issue'})})]})}},71588:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterNewChannel:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.channel_name,c=l.c_locked,f=l.user,m=x.setScreen;return(0,e.jsxs)(r.wn,{title:"Creating new Feed Channel",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Channel Name",children:(0,e.jsx)(r.pd,{fluid:!0,value:(0,i.jT)(a),onInput:function(v,j){return o("set_channel_name",{val:j})}})}),(0,e.jsx)(r.Ki.Item,{label:"Channel Author",color:"good",children:f}),(0,e.jsx)(r.Ki.Item,{label:"Accept Public Feeds",children:(0,e.jsx)(r.$n,{icon:c?"lock":"lock-open",selected:!c,onClick:function(){return o("set_channel_lock")},children:c?"No":"Yes"})})]}),(0,e.jsx)(r.$n,{fluid:!0,color:"good",icon:"plus",onClick:function(){return o("submit_new_channel")},children:"Submit Channel"}),(0,e.jsx)(r.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},85578:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterNewStory:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(42501),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.channel_name,a=o.user,c=o.title,f=o.msg,m=o.photo_data,v=g.setScreen;return(0,e.jsxs)(t.wn,{title:"Creating new Feed Message...",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return v(r.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Receiving Channel",children:(0,e.jsx)(t.$n,{fluid:!0,onClick:function(){return u("set_channel_receiving")},children:l||"Unset"})}),(0,e.jsx)(t.Ki.Item,{label:"Message Author",color:"good",children:a}),(0,e.jsx)(t.Ki.Item,{label:"Message Title",verticalAlign:"top",children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.wn,{width:"99%",inline:!0,children:c||"(no title yet)"})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{verticalAlign:"top",onClick:function(){return u("set_new_title")},icon:"pen",tooltip:"Edit Title",tooltipPosition:"left"})})]})}),(0,e.jsx)(t.Ki.Item,{label:"Message Body",verticalAlign:"top",children:(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.wn,{width:"99%",inline:!0,children:f||"(no message yet)"})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{verticalAlign:"top",onClick:function(){return u("set_new_message")},icon:"pen",tooltip:"Edit Message",tooltipPosition:"left"})})]})}),(0,e.jsx)(t.Ki.Item,{label:"Attach Photo",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"image",onClick:function(){return u("set_attachment")},children:m?"Photo Attached":"No Photo"})})]}),(0,e.jsx)(t.$n,{fluid:!0,color:"good",icon:"plus",onClick:function(){return u("submit_new_message")},children:"Submit Message"}),(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return v(r.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},92432:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterNewWanted:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.channel_name,c=l.msg,f=l.photo_data,m=l.user,v=l.wanted_issue,j=x.setScreen;return(0,e.jsxs)(r.wn,{title:"Wanted Issue Handler",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return j(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(r.Ki,{children:[!!v&&(0,e.jsx)(r.Ki.Item,{label:"Already In Circulation",children:"A wanted issue is already in circulation. You can edit or cancel it below."}),(0,e.jsx)(r.Ki.Item,{label:"Criminal Name",children:(0,e.jsx)(r.pd,{fluid:!0,value:(0,i.jT)(a),onInput:function(E,y){return o("set_channel_name",{val:y})}})}),(0,e.jsx)(r.Ki.Item,{label:"Description",children:(0,e.jsx)(r.pd,{fluid:!0,value:(0,i.jT)(c),onInput:function(E,y){return o("set_wanted_desc",{val:y})}})}),(0,e.jsx)(r.Ki.Item,{label:"Attach Photo",children:(0,e.jsx)(r.$n,{fluid:!0,icon:"image",onClick:function(){return o("set_attachment")},children:f?"Photo Attached":"No Photo"})}),(0,e.jsx)(r.Ki.Item,{label:"Prosecutor",color:"good",children:m})]}),(0,e.jsx)(r.$n,{mt:1,fluid:!0,color:"good",icon:"plus",onClick:function(){return o("submit_wanted")},children:"Submit Wanted Issue"}),!!v&&(0,e.jsx)(r.$n,{fluid:!0,color:"average",icon:"minus",onClick:function(){return o("cancel_wanted")},children:"Take Down Issue"}),(0,e.jsx)(r.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return j(s.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},7662:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterPrint:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(42501),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.total_num,a=o.active_num,c=o.message_num,f=o.paper_remaining,m=g.setScreen;return(0,e.jsxs)(t.wn,{title:"Printing",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return m(r.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:[(0,e.jsxs)(t.az,{color:"label",mb:1,children:["Newscaster currently serves a total of ",l," Feed channels,"," ",a," of which are active, and a total of ",c," Feed stories."]}),(0,e.jsx)(t.Ki,{children:(0,e.jsxs)(t.Ki.Item,{label:"Liquid Paper remaining",children:[f*100," cm\xB3"]})}),(0,e.jsx)(t.$n,{mt:1,fluid:!0,color:"good",icon:"plus",onClick:function(){return u("print_paper")},children:"Print Paper"}),(0,e.jsx)(t.$n,{fluid:!0,color:"bad",icon:"undo",onClick:function(){return m(r.NEWSCASTER_SCREEN_MAIN)},children:"Cancel"})]})}},12512:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterViewList:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.channels,c=x.setScreen;return(0,e.jsx)(r.wn,{title:"Station Feed Channels",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return c(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:a.map(function(f){return(0,e.jsx)(r.$n,{fluid:!0,icon:"eye",color:f.admin?"good":f.censored?"bad":"",onClick:function(){o("show_channel",{show_channel:f.ref}),c(s.NEWSCASTER_SCREEN_SELECTEDCHANNEL)},children:(0,i.jT)(f.name)},f.name)})})}},96935:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterViewSelected:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.viewing_channel,c=l.securityCaster,f=l.company,m=x.setScreen;return a?(0,e.jsxs)(r.wn,{title:(0,i.jT)(a.name),buttons:(0,e.jsxs)(e.Fragment,{children:[!!c&&(0,e.jsx)(r.$n.Confirm,{color:"bad",icon:"ban",confirmIcon:"ban",onClick:function(){return o("toggle_d_notice",{ref:a.ref})},children:"Issue D-Notice"}),(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_VIEWLIST)},children:"Back"})]}),children:[(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Channel Created By",children:c&&(0,e.jsx)(r.$n.Confirm,{color:"bad",icon:"strikethrough",confirmIcon:"strikethrough",tooltip:"Censor?",confirmContent:"Censor Author",onClick:function(){return o("censor_channel_author",{ref:a.ref})},children:(0,i.jT)(a.author)})||(0,e.jsx)(r.az,{children:(0,i.jT)(a.author)})})}),!!a.censored&&(0,e.jsxs)(r.az,{color:"bad",children:["ATTENTION: This channel has been deemed as threatening to the welfare of the station, and marked with a ",f," D-Notice. No further feed story additions are allowed while the D-Notice is in effect."]}),!!a.messages.length&&a.messages.map(function(v){return(0,e.jsxs)(r.wn,{children:["- ",(0,i.jT)(v.body),!!v.img&&(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r._V,{src:"data:image/png;base64,"+v.img}),!!v.caption&&(0,i.jT)(v.caption)||null]}),(0,e.jsxs)(r.az,{color:"grey",children:["[Story by ",(0,i.jT)(v.author)," -"," ",v.timestamp,"]"]}),!!c&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n.Confirm,{mt:1,color:"bad",icon:"strikethrough",confirmIcon:"strikethrough",onClick:function(){return o("censor_channel_story_body",{ref:v.ref})},children:"Censor Story"}),(0,e.jsx)(r.$n.Confirm,{color:"bad",icon:"strikethrough",confirmIcon:"strikethrough",onClick:function(){return o("censor_channel_story_author",{ref:v.ref})},children:"Censor Author"})]})]},v.ref)})||!a.censored&&(0,e.jsx)(r.az,{color:"average",children:"No feed messages found in channel."})]}):(0,e.jsx)(r.wn,{title:"Channel Not Found",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return m(s.NEWSCASTER_SCREEN_VIEWLIST)},children:"Back"}),children:"The channel you were looking for no longer exists."})}},28189:function(O,h,n){"use strict";n.r(h),n.d(h,{NewscasterViewWanted:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(42501),g=function(x){var u=(0,t.Oc)().data,o=u.wanted_issue,l=x.setScreen;return o?(0,e.jsx)(r.wn,{title:"--STATIONWIDE WANTED ISSUE--",color:"bad",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return l(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:(0,e.jsx)(r.az,{color:"white",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Submitted by",color:"good",children:(0,i.jT)(o.author)}),(0,e.jsx)(r.Ki.Divider,{}),(0,e.jsx)(r.Ki.Item,{label:"Criminal",children:(0,i.jT)(o.criminal)}),(0,e.jsx)(r.Ki.Item,{label:"Description",children:(0,i.jT)(o.desc)}),(0,e.jsx)(r.Ki.Item,{label:"Photo",children:o.img&&(0,e.jsx)(r._V,{src:o.img})||"None"})]})})}):(0,e.jsx)(r.wn,{title:"No Outstanding Wanted Issues",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return l(s.NEWSCASTER_SCREEN_MAIN)},children:"Back"}),children:"There are no wanted issues currently outstanding."})}},42501:function(O,h,n){"use strict";n.r(h),n.d(h,{NEWSCASTER_SCREEN_MAIN:function(){return e},NEWSCASTER_SCREEN_NEWCHANNEL:function(){return i},NEWSCASTER_SCREEN_NEWSTORY:function(){return r},NEWSCASTER_SCREEN_NEWWANTED:function(){return g},NEWSCASTER_SCREEN_PRINT:function(){return s},NEWSCASTER_SCREEN_SELECTEDCHANNEL:function(){return u},NEWSCASTER_SCREEN_VIEWLIST:function(){return t},NEWSCASTER_SCREEN_VIEWWANTED:function(){return x}});var e="Main Menu",i="New Channel",t="View List",r="New Story",s="Print",g="New Wanted",x="View Wanted",u="View Selected Channel"},93856:function(O,h,n){"use strict";n.r(h),n.d(h,{Newscaster:function(){return v}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(3751),g=n(42501),x=n(3949),u=n(71588),o=n(85578),l=n(92432),a=n(7662),c=n(12512),f=n(96935),m=n(28189),v=function(E){return(0,e.jsx)(r.p8,{width:600,height:600,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.TemporaryNotice,{decode:!0}),(0,e.jsx)(j,{})]})})},j=function(E){var y=(0,i.QY)("screen",g.NEWSCASTER_SCREEN_MAIN),M=y[0],P=y[1],D=[];return D[g.NEWSCASTER_SCREEN_MAIN]=(0,e.jsx)(x.NewscasterMainMenu,{setScreen:P}),D[g.NEWSCASTER_SCREEN_NEWCHANNEL]=(0,e.jsx)(u.NewscasterNewChannel,{setScreen:P}),D[g.NEWSCASTER_SCREEN_VIEWLIST]=(0,e.jsx)(c.NewscasterViewList,{setScreen:P}),D[g.NEWSCASTER_SCREEN_NEWSTORY]=(0,e.jsx)(o.NewscasterNewStory,{setScreen:P}),D[g.NEWSCASTER_SCREEN_PRINT]=(0,e.jsx)(a.NewscasterPrint,{setScreen:P}),D[g.NEWSCASTER_SCREEN_NEWWANTED]=(0,e.jsx)(l.NewscasterNewWanted,{setScreen:P}),D[g.NEWSCASTER_SCREEN_VIEWWANTED]=(0,e.jsx)(m.NewscasterViewWanted,{setScreen:P}),D[g.NEWSCASTER_SCREEN_SELECTEDCHANNEL]=(0,e.jsx)(f.NewscasterViewSelected,{setScreen:P}),(0,e.jsx)(t.az,{children:D[M]})}},5537:function(O,h,n){"use strict";n.r(h)},4418:function(O,h,n){"use strict";n.r(h),n.d(h,{NoticeBoard:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.notices;return(0,e.jsx)(r.p8,{width:330,height:300,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:l.length?(0,e.jsx)(t.Ki,{children:l.map(function(a,c){return(0,e.jsxs)(t.Ki.Item,{label:a.name,children:[a.isphoto&&(0,e.jsx)(t.$n,{icon:"image",onClick:function(){return u("look",{ref:a.ref})},children:"Look"})||a.ispaper&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"sticky-note",onClick:function(){return u("read",{ref:a.ref})},children:"Read"}),(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return u("write",{ref:a.ref})},children:"Write"})]})||"Unknown Entity",(0,e.jsx)(t.$n,{icon:"minus-circle",onClick:function(){return u("remove",{ref:a.ref})},children:"Remove"})]},c)})}):(0,e.jsx)(t.az,{color:"average",children:"No notices posted here."})})})})}},78610:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosAccessDecrypter:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(39841),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.message,c=l.running,f=l.rate,m=l.factor,v=l.regions,j=function(y){for(var M="";M.lengthm?M+="0":M+="1";return M},E=45;return(0,e.jsx)(r.Zm,{width:600,height:600,theme:"syndicate",children:(0,e.jsx)(r.Zm.Content,{children:a&&(0,e.jsx)(t.IC,{children:a})||c&&(0,e.jsxs)(t.wn,{children:["Attempting to decrypt network access codes. Please wait. Rate:"," ",f," PHash/s",(0,e.jsx)(t.az,{children:j(E)}),(0,e.jsx)(t.az,{children:j(E)}),(0,e.jsx)(t.az,{children:j(E)}),(0,e.jsx)(t.az,{children:j(E)}),(0,e.jsx)(t.az,{children:j(E)}),(0,e.jsx)(t.$n,{fluid:!0,icon:"ban",onClick:function(){return o("PRG_reset")},children:"Abort"})]})||(0,e.jsx)(t.wn,{title:"Pick access code to decrypt",children:v.length&&(0,e.jsx)(s.IdentificationComputerRegions,{actName:"PRG_execute"})||(0,e.jsx)(t.az,{children:"Please insert ID card."})})})})}},25316:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosArcade:function(){return g}});var e=n(20462),i=n(31200),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.PlayerHitpoints,c=l.PlayerMP,f=l.PauseState,m=l.Status,v=l.Hitpoints,j=l.BossID,E=l.GameActive,y=l.TicketCount;return(0,e.jsx)(s.Zm,{width:450,height:350,children:(0,e.jsx)(s.Zm.Content,{children:(0,e.jsxs)(r.wn,{title:"Outbomb Cuban Pete Ultra",textAlign:"center",children:[(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.XI,{children:(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsxs)(r.XI.Cell,{size:2,children:[(0,e.jsx)(r.az,{m:1}),(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Player Health",children:(0,e.jsxs)(r.z2,{value:a,minValue:0,maxValue:30,ranges:{olive:[31,1/0],good:[20,31],average:[10,20],bad:[-1/0,10]},children:[a,"HP"]})}),(0,e.jsx)(r.Ki.Item,{label:"Player Magic",children:(0,e.jsxs)(r.z2,{value:c,minValue:0,maxValue:10,ranges:{purple:[11,1/0],violet:[3,11],bad:[-1/0,3]},children:[c,"MP"]})})]}),(0,e.jsx)(r.az,{my:1,mx:4}),(0,e.jsx)(r.wn,{backgroundColor:f===1?"#1b3622":"#471915",children:m})]}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsxs)(r.z2,{value:v,minValue:0,maxValue:45,ranges:{good:[30,1/0],average:[5,30],bad:[-1/0,5]},children:[(0,e.jsx)(r.zv,{value:v}),"HP"]}),(0,e.jsx)(r.az,{m:1}),(0,e.jsx)(r.wn,{inline:!0,width:"156px",textAlign:"center",children:(0,e.jsx)(r._V,{src:(0,i.l)(j)})})]})]})}),(0,e.jsx)(r.az,{my:1,mx:4}),(0,e.jsx)(r.$n,{icon:"fist-raised",tooltip:"Go in for the kill!",tooltipPosition:"top",disabled:E===0||f===1,onClick:function(){return o("Attack")},children:"Attack!"}),(0,e.jsx)(r.$n,{icon:"band-aid",tooltip:"Heal yourself!",tooltipPosition:"top",disabled:E===0||f===1,onClick:function(){return o("Heal")},children:"Heal!"}),(0,e.jsx)(r.$n,{icon:"magic",tooltip:"Recharge your magic!",tooltipPosition:"top",disabled:E===0||f===1,onClick:function(){return o("Recharge_Power")},children:"Recharge!"})]}),(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.$n,{icon:"sync-alt",tooltip:"One more game couldn't hurt.",tooltipPosition:"top",disabled:E===1,onClick:function(){return o("Start_Game")},children:"Begin Game"}),(0,e.jsx)(r.$n,{icon:"ticket-alt",tooltip:"Claim at your local Arcade Computer for Prizes!",tooltipPosition:"top",disabled:E===1,onClick:function(){return o("Dispense_Tickets")},children:"Claim Tickets"})]}),(0,e.jsxs)(r.az,{color:y>=1?"good":"normal",children:["Earned Tickets: ",y]})]})})})}},98669:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosAtmosControl:function(){return r}});var e=n(20462),i=n(15581),t=n(74737),r=function(){return(0,e.jsx)(i.Zm,{width:870,height:708,children:(0,e.jsx)(i.Zm.Content,{children:(0,e.jsx)(t.AtmosControlContent,{})})})}},34470:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosCameraConsole:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(18490),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.mapRef,c=l.activeCamera,f=l.cameras,m=(0,s.selectCameras)(f),v=(0,s.prevNextCamera)(m,c),j=v[0],E=v[1];return(0,e.jsx)(r.Zm,{width:870,height:708,children:(0,e.jsxs)(r.Zm.Content,{children:[(0,e.jsx)("div",{className:"CameraConsole__left",children:(0,e.jsx)(s.CameraConsoleContent,{})}),(0,e.jsxs)("div",{className:"CameraConsole__right",children:[(0,e.jsxs)("div",{className:"CameraConsole__toolbar",children:[(0,e.jsx)("b",{children:"Camera: "}),c&&c.name||"\u2014"]}),(0,e.jsxs)("div",{className:"CameraConsole__toolbarRight",children:["SEL:",(0,e.jsx)(t.$n,{icon:"chevron-left",disabled:!j,onClick:function(){return o("switch_camera",{name:j})}}),(0,e.jsx)(t.$n,{icon:"chevron-right",disabled:!E,onClick:function(){return o("switch_camera",{name:E})}}),"| PAN:",(0,e.jsx)(t.$n,{icon:"chevron-left",onClick:function(){return o("pan",{dir:8})}}),(0,e.jsx)(t.$n,{icon:"chevron-up",onClick:function(){return o("pan",{dir:1})}}),(0,e.jsx)(t.$n,{icon:"chevron-right",onClick:function(){return o("pan",{dir:4})}}),(0,e.jsx)(t.$n,{icon:"chevron-down",onClick:function(){return o("pan",{dir:2})}})]}),(0,e.jsx)(t.D1,{className:"CameraConsole__map",params:{id:a,type:"map"}})]})]})})}},77580:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosCommunicationsConsole:function(){return r}});var e=n(20462),i=n(15581),t=n(34116),r=function(){return(0,e.jsx)(i.Zm,{width:400,height:600,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.CommunicationsConsoleContent,{})})})}},35300:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosConfiguration:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.PC_device_theme,a=o.power_usage,c=o.battery_exists,f=o.battery,m=f===void 0?{}:f,v=o.disk_size,j=o.disk_used,E=o.hardware,y=E===void 0?[]:E;return(0,e.jsx)(r.Zm,{theme:l,width:520,height:630,children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Power Supply",buttons:(0,e.jsxs)(t.az,{inline:!0,bold:!0,mr:1,children:["Power Draw: ",a,"W"]}),children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Battery Status",color:!c&&"average"||void 0,children:c?(0,e.jsxs)(t.z2,{value:m.charge,minValue:0,maxValue:m.max,ranges:{good:[m.max/2,1/0],average:[m.max/4,m.max/2],bad:[-1/0,m.max/4]},children:[m.charge," / ",m.max]}):"Not Available"})})}),(0,e.jsx)(t.wn,{title:"File System",children:(0,e.jsxs)(t.z2,{value:j,minValue:0,maxValue:v,color:"good",children:[j," GQ / ",v," GQ"]})}),(0,e.jsx)(t.wn,{title:"Hardware Components",children:y.map(function(M){return(0,e.jsx)(t.wn,{title:M.name,buttons:(0,e.jsxs)(e.Fragment,{children:[!M.critical&&(0,e.jsx)(t.$n.Checkbox,{checked:M.enabled,mr:1,onClick:function(){return u("PC_toggle_component",{name:M.name})},children:"Enabled"}),(0,e.jsxs)(t.az,{inline:!0,bold:!0,mr:1,children:["Power Usage: ",M.powerusage,"W"]})]}),children:M.desc},M.name)})})]})})}},23984:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosCrewManifest:function(){return r}});var e=n(20462),i=n(15581),t=n(58044),r=function(){return(0,e.jsx)(i.Zm,{width:800,height:600,children:(0,e.jsx)(i.Zm.Content,{children:(0,e.jsx)(t.CrewManifestContent,{})})})}},69233:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosCrewMonitor:function(){return s}});var e=n(20462),i=n(61358),t=n(15581),r=n(70117),s=function(){var g=function(v){l(v)},x=function(v){f(v)},u=(0,i.useState)(0),o=u[0],l=u[1],a=(0,i.useState)(1),c=a[0],f=a[1];return(0,e.jsx)(t.Zm,{width:800,height:600,children:(0,e.jsx)(t.Zm.Content,{children:(0,e.jsx)(r.CrewMonitorContent,{tabIndex:o,zoom:c,onTabIndex:g,onZoom:x})})})}},6303:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosDigitalWarrant:function(){return g}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(l){var a=(0,t.Oc)().data,c=a.warrantauth,f=(0,e.jsx)(x,{});return c&&(f=(0,e.jsx)(o,{})),(0,e.jsx)(s.Zm,{width:500,height:350,children:(0,e.jsx)(s.Zm.Content,{scrollable:!0,children:f})})},x=function(l){var a=(0,t.Oc)().act;return(0,e.jsxs)(r.wn,{title:"Warrants",children:[(0,e.jsx)(r.$n,{icon:"plus",fluid:!0,onClick:function(){return a("addwarrant")},children:"Create New Warrant"}),(0,e.jsx)(r.wn,{title:"Arrest Warrants",children:(0,e.jsx)(u,{type:"arrest"})}),(0,e.jsx)(r.wn,{title:"Search Warrants",children:(0,e.jsx)(u,{type:"search"})})]})},u=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=l.type,v=f.allwarrants,j=v===void 0?[]:v,E=(0,i.pb)(j,function(y){return y.arrestsearch===m});return(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,children:[(0,e.jsx)(r.XI.Cell,{children:m==="arrest"?"Name":"Location"}),(0,e.jsx)(r.XI.Cell,{children:m==="arrest"?"Charges":"Reason"}),(0,e.jsx)(r.XI.Cell,{children:"Authorized By"}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:"Edit"})]}),E.length&&E.map(function(y){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:y.warrantname}),(0,e.jsx)(r.XI.Cell,{children:y.charges}),(0,e.jsx)(r.XI.Cell,{children:y.auth}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrant",{id:y.id})}})})]},y.id)})||(0,e.jsx)(r.XI.Row,{children:(0,e.jsxs)(r.XI.Cell,{colspan:"3",color:"bad",children:["No ",m," warrants found."]})})]})},o=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.warrantname,v=f.warrantcharges,j=f.warrantauth,E=f.type,y=E==="arrest",M=E==="arrest"?"Name":"Location",P=E==="arrest"?"Charges":"Reason";return(0,e.jsx)(r.wn,{title:y?"Editing Arrest Warrant":"Editing Search Warrant",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"save",onClick:function(){return c("savewarrant")},children:"Save"}),(0,e.jsx)(r.$n,{color:"bad",icon:"trash",onClick:function(){return c("deletewarrant")},children:"Delete"}),(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return c("back")},children:"Back"})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:M,buttons:y&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"search",onClick:function(){return c("editwarrantname")}}),(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrantnamecustom")}})]})||(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrantnamecustom")}}),children:m}),(0,e.jsx)(r.Ki.Item,{label:P,buttons:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("editwarrantcharges")}}),children:v}),(0,e.jsx)(r.Ki.Item,{label:"Authorized By",buttons:(0,e.jsx)(r.$n,{icon:"balance-scale",onClick:function(){return c("editwarrantauth")}}),children:j})]})})}},27896:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosEmailAdministration:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(94151),g=function(a){var c=(0,i.Oc)().data,f=c.error,m=c.cur_title,v=c.current_account,j=c.accounts,E=(0,e.jsx)(x,{accounts:j});return f?E=(0,e.jsx)(u,{error:f}):m?E=(0,e.jsx)(o,{}):v&&(E=(0,e.jsx)(l,{})),(0,e.jsx)(r.Zm,{width:600,height:450,children:(0,e.jsx)(r.Zm.Content,{scrollable:!0,children:E})})},x=function(a){var c=(0,i.Oc)().act,f=a.accounts;return(0,e.jsxs)(t.wn,{title:"Welcome to the NTNet Email Administration System",children:[(0,e.jsx)(t.az,{italic:!0,mb:1,children:"SECURE SYSTEM - Have your identification ready"}),(0,e.jsx)(t.$n,{fluid:!0,icon:"plus",onClick:function(){return c("newaccount")},children:"Create New Account"}),(0,e.jsx)(t.az,{bold:!0,mt:1,mb:1,children:"Select account to administrate"}),f.map(function(m){return(0,e.jsx)(t.$n,{fluid:!0,icon:"eye",onClick:function(){return c("viewaccount",{viewaccount:m.uid})},children:m.login},m.uid)})]})},u=function(a){var c=(0,i.Oc)().act,f=a.error;return(0,e.jsx)(t.wn,{title:"Message",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return c("back")},children:"Back"}),children:f})},o=function(a){return(0,e.jsx)(t.wn,{children:(0,e.jsx)(s.NtosEmailClientViewMessage,{administrator:!0})})},l=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.current_account,j=m.cur_suspended,E=m.messages,y=E===void 0?[]:E;return(0,e.jsxs)(t.wn,{title:"Viewing "+v+" in admin mode",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return f("back")},children:"Back"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Account Status",children:(0,e.jsx)(t.$n,{color:j?"bad":"",icon:"ban",tooltip:(j?"Uns":"S")+"uspend Account?",onClick:function(){return f("ban")},children:j?"Suspended":"Normal"})}),(0,e.jsx)(t.Ki.Item,{label:"Actions",children:(0,e.jsx)(t.$n,{icon:"key",onClick:function(){return f("changepass")},children:"Change Password"})})]}),(0,e.jsx)(t.wn,{title:"Messages",children:y.length&&(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Source"}),(0,e.jsx)(t.XI.Cell,{children:"Title"}),(0,e.jsx)(t.XI.Cell,{children:"Received at"}),(0,e.jsx)(t.XI.Cell,{children:"Actions"})]}),y.map(function(M){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:M.source}),(0,e.jsx)(t.XI.Cell,{children:M.title}),(0,e.jsx)(t.XI.Cell,{children:M.timestamp}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return f("viewmail",{viewmail:M.uid})},children:"View"})})]},M.uid)})]})||(0,e.jsx)(t.az,{color:"average",children:"No messages found in selected account."})})]})}},94151:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosEmailClient:function(){return g},NtosEmailClientViewMessage:function(){return l}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(v){var j=(0,t.Oc)().data,E=j.PC_device_theme,y=j.error,M=j.downloading,P=j.current_account,D=(0,e.jsx)(m,{});return y?D=(0,e.jsx)(f,{error:y}):M?D=(0,e.jsx)(x,{}):P&&(D=(0,e.jsx)(u,{})),(0,e.jsx)(s.Zm,{resizable:!0,theme:E,children:(0,e.jsx)(s.Zm.Content,{scrollable:!0,children:D})})},x=function(v){var j=(0,t.Oc)().data,E=j.down_filename,y=j.down_progress,M=j.down_size,P=j.down_speed;return(0,e.jsx)(r.wn,{title:"Downloading...",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"File",children:[E," (",M," GQ)"]}),(0,e.jsxs)(r.Ki.Item,{label:"Speed",children:[(0,e.jsx)(r.zv,{value:P})," GQ/s"]}),(0,e.jsx)(r.Ki.Item,{label:"Progress",children:(0,e.jsx)(r.z2,{color:"good",value:y,maxValue:M,children:y+"/"+M+" ("+(0,i.Mg)(y/M*100,1)+"%)"})})]})})},u=function(v){var j=(0,t.Oc)(),E=j.act,y=j.data,M=y.current_account,P=y.addressbook,D=y.new_message,S=y.cur_title,B=y.accounts,T=(0,e.jsx)(o,{});return P?T=(0,e.jsx)(a,{accounts:B}):D?T=(0,e.jsx)(c,{}):S&&(T=(0,e.jsx)(l,{})),(0,e.jsx)(r.wn,{title:"Logged in as: "+M,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"plus",tooltip:"New Message",tooltipPosition:"left",onClick:function(){return E("new_message")}}),(0,e.jsx)(r.$n,{icon:"cogs",tooltip:"Change Password",tooltipPosition:"left",onClick:function(){return E("changepassword")}}),(0,e.jsx)(r.$n,{icon:"sign-out-alt",tooltip:"Log Out",tooltipPosition:"left",onClick:function(){return E("logout")}})]}),children:T})},o=function(v){var j=(0,t.Oc)(),E=j.act,y=j.data,M=y.folder,P=y.messagecount,D=y.messages;return(0,e.jsxs)(r.wn,{noTopPadding:!0,children:[(0,e.jsxs)(r.tU,{children:[(0,e.jsx)(r.tU.Tab,{selected:M==="Inbox",onClick:function(){return E("set_folder",{set_folder:"Inbox"})},children:"Inbox"}),(0,e.jsx)(r.tU.Tab,{selected:M==="Spam",onClick:function(){return E("set_folder",{set_folder:"Spam"})},children:"Spam"}),(0,e.jsx)(r.tU.Tab,{selected:M==="Deleted",onClick:function(){return E("set_folder",{set_folder:"Deleted"})},children:"Deleted"})]}),P&&(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,children:[(0,e.jsx)(r.XI.Cell,{children:"Source"}),(0,e.jsx)(r.XI.Cell,{children:"Title"}),(0,e.jsx)(r.XI.Cell,{children:"Received At"}),(0,e.jsx)(r.XI.Cell,{children:"Actions"})]}),D.map(function(S){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:S.source}),(0,e.jsx)(r.XI.Cell,{children:S.title}),(0,e.jsx)(r.XI.Cell,{children:S.timestamp}),(0,e.jsxs)(r.XI.Cell,{children:[(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return E("view",{view:S.uid})},tooltip:"View"}),(0,e.jsx)(r.$n,{icon:"share",onClick:function(){return E("reply",{reply:S.uid})},tooltip:"Reply"}),(0,e.jsx)(r.$n,{color:"bad",icon:"trash",onClick:function(){return E("delete",{delete:S.uid})},tooltip:"Delete"})]})]},S.timestamp+S.title)})]})})||(0,e.jsxs)(r.az,{color:"bad",children:["No emails found in ",M,"."]})]})},l=function(v){var j=(0,t.Oc)(),E=j.act,y=j.data,M=v.administrator,P=y.cur_title,D=y.cur_source,S=y.cur_timestamp,B=y.cur_body,T=y.cur_hasattachment,L=y.cur_attachment_filename,W=y.cur_attachment_size,$=y.cur_uid;return(0,e.jsx)(r.wn,{title:P,buttons:M?(0,e.jsx)(r.$n,{icon:"times",onClick:function(){return E("back")}}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"share",tooltip:"Reply",tooltipPosition:"left",onClick:function(){return E("reply",{reply:$})}}),(0,e.jsx)(r.$n,{color:"bad",icon:"trash",tooltip:"Delete",tooltipPosition:"left",onClick:function(){return E("delete",{delete:$})}}),(0,e.jsx)(r.$n,{icon:"save",tooltip:"Save To Disk",tooltipPosition:"left",onClick:function(){return E("save",{save:$})}}),T&&(0,e.jsx)(r.$n,{icon:"paperclip",tooltip:"Save Attachment",tooltipPosition:"left",onClick:function(){return E("downloadattachment")}})||null,(0,e.jsx)(r.$n,{icon:"times",tooltip:"Close",tooltipPosition:"left",onClick:function(){return E("cancel",{cancel:$})}})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"From",children:D}),(0,e.jsx)(r.Ki.Item,{label:"At",children:S}),T&&!M&&(0,e.jsxs)(r.Ki.Item,{label:"Attachment",color:"average",children:[L," (",W,"GQ)"]})||"",(0,e.jsx)(r.Ki.Item,{label:"Message",verticalAlign:"top",children:(0,e.jsx)(r.wn,{children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:B}})})})]})})},a=function(v){var j=(0,t.Oc)().act,E=v.accounts;return(0,e.jsx)(r.wn,{title:"Address Book",buttons:(0,e.jsx)(r.$n,{color:"bad",icon:"times",onClick:function(){return j("set_recipient",{set_recipient:null})}}),children:E.map(function(y){return(0,e.jsx)(r.$n,{fluid:!0,onClick:function(){return j("set_recipient",{set_recipient:y.login})},children:y.login},y.login)})})},c=function(v){var j=(0,t.Oc)(),E=j.act,y=j.data,M=y.msg_title,P=M===void 0?"":M,D=y.msg_recipient,S=D===void 0?"":D,B=y.msg_body,T=y.msg_hasattachment,L=y.msg_attachment_filename,W=y.msg_attachment_size;return(0,e.jsx)(r.wn,{title:"New Message",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"share",onClick:function(){return E("send")},children:"Send Message"}),(0,e.jsx)(r.$n,{color:"bad",icon:"times",onClick:function(){return E("cancel")}})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Title",children:(0,e.jsx)(r.pd,{fluid:!0,value:P,onInput:function($,k){return E("edit_title",{val:k})}})}),(0,e.jsx)(r.Ki.Item,{label:"Recipient",verticalAlign:"top",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.pd,{fluid:!0,value:S,onInput:function($,k){return E("edit_recipient",{val:k})}})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{icon:"address-book",onClick:function(){return E("addressbook")},tooltip:"Find Receipients",tooltipPosition:"left"})})]})}),(0,e.jsx)(r.Ki.Item,{label:"Attachments",buttons:T&&(0,e.jsx)(r.$n,{color:"bad",icon:"times",onClick:function(){return E("remove_attachment")},children:"Remove Attachment"})||(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return E("addattachment")},children:"Add Attachment"}),children:T&&(0,e.jsxs)(r.az,{inline:!0,children:[L," (",W,"GQ)"]})||null}),(0,e.jsx)(r.Ki.Item,{label:"Message",verticalAlign:"top",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{grow:1,children:(0,e.jsx)(r.wn,{width:"99%",inline:!0,children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:B}})})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{verticalAlign:"top",onClick:function(){return E("edit_body")},icon:"pen",tooltip:"Edit Message",tooltipPosition:"left"})})]})})]})})},f=function(v){var j=(0,t.Oc)().act,E=v.error;return(0,e.jsx)(r.wn,{title:"Notification",buttons:(0,e.jsx)(r.$n,{icon:"arrow-left",onClick:function(){return j("reset")},children:"Return"}),children:(0,e.jsx)(r.az,{color:"bad",children:E})})},m=function(v){var j=(0,t.Oc)(),E=j.act,y=j.data,M=y.stored_login,P=M===void 0?"":M,D=y.stored_password,S=D===void 0?"":D;return(0,e.jsxs)(r.wn,{title:"Please Log In",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Email address",children:(0,e.jsx)(r.pd,{fluid:!0,value:P,onInput:function(B,T){return E("edit_login",{val:T})}})}),(0,e.jsx)(r.Ki.Item,{label:"Password",children:(0,e.jsx)(r.pd,{fluid:!0,value:S,onInput:function(B,T){return E("edit_password",{val:T})}})})]}),(0,e.jsx)(r.$n,{icon:"sign-in-alt",onClick:function(){return E("login")},children:"Log In"})]})}},12813:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosFileManager:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.PC_device_theme,c=l.usbconnected,f=l.filename,m=l.filedata,v=l.error,j=l.files,E=j===void 0?[]:j,y=l.usbfiles,M=y===void 0?[]:y;return(0,e.jsx)(r.Zm,{resizable:!0,theme:a,children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[f&&(0,e.jsx)(t.wn,{title:"Viewing File "+f,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return o("PRG_edit")},children:"Edit"}),(0,e.jsx)(t.$n,{icon:"print",onClick:function(){return o("PRG_printfile")},children:"Print"}),(0,e.jsx)(t.$n,{icon:"times",onClick:function(){return o("PRG_closefile")},children:"Close"})]}),children:m&&(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:m}})})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{children:(0,e.jsx)(g,{files:E,usbconnected:c,onUpload:function(P){return o("PRG_copytousb",{uid:P})},onDelete:function(P){return o("PRG_deletefile",{uid:P})},onOpen:function(P){return o("PRG_openfile",{uid:P})},onRename:function(P,D){return o("PRG_rename",{uid:P,new_name:D})},onDuplicate:function(P){return o("PRG_clone",{uid:P})}})}),c&&(0,e.jsx)(t.wn,{title:"Data Disk",children:(0,e.jsx)(g,{usbmode:!0,files:M,usbconnected:c,onUpload:function(P){return o("PRG_copyfromusb",{uid:P})},onDelete:function(P){return o("PRG_deletefile",{uid:P})},onOpen:function(P){return o("PRG_openfile",{uid:P})},onRename:function(P,D){return o("PRG_rename",{uid:P,new_name:D})},onDuplicate:function(P){return o("PRG_clone",{uid:P})}})})||null,(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.$n,{icon:"plus",onClick:function(){return o("PRG_newtextfile")},children:"New Text File"})})]}),v&&(0,e.jsxs)(t.so,{wrap:"wrap",position:"fixed",bottom:"5px",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.$n,{bottom:"0",left:"0",icon:"ban",onClick:function(){return o("PRG_clearerror")}})})}),(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.so.Item,{grow:!0,children:v})})]})]})})},g=function(x){var u=x.files,o=u===void 0?[]:u,l=x.usbconnected,a=x.usbmode,c=x.onUpload,f=x.onDelete,m=x.onRename,v=x.onOpen,j=x.onDuplicate;return(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"File"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Type"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:"Size"})]}),o.map(function(E){return(0,e.jsxs)(t.XI.Row,{className:"candystripe",children:[(0,e.jsx)(t.XI.Cell,{children:E.undeletable?E.name:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Input,{width:"80%",currentValue:E.name,tooltip:"Rename",onCommit:function(y,M){return m(E.uid,M)},children:E.name}),(0,e.jsx)(t.$n,{onClick:function(){return v(E.uid)},children:"Open"})]})}),(0,e.jsx)(t.XI.Cell,{children:E.type}),(0,e.jsx)(t.XI.Cell,{children:E.size}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:!E.undeletable&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{icon:"trash",confirmIcon:"times",confirmContent:"",tooltip:"Delete",onClick:function(){return f(E.uid)}}),!!l&&(a?(0,e.jsx)(t.$n,{icon:"download",tooltip:"Download",onClick:function(){return c(E.uid)}}):(0,e.jsx)(t.$n,{icon:"upload",tooltip:"Upload",onClick:function(){return c(E.uid)}}))]})})]},E.name)})]})}},39925:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosIdentificationComputer:function(){return r}});var e=n(20462),i=n(15581),t=n(39841),r=function(){return(0,e.jsx)(i.Zm,{width:600,height:700,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.IdentificationComputerContent,{ntos:!0})})})}},45319:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosMain:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s={compconfig:"cog",ntndownloader:"download",filemanager:"folder",smmonitor:"radiation",alarmmonitor:"bell",cardmod:"id-card",arcade:"gamepad",ntnrc_client:"comment-alt",nttransfer:"exchange-alt",powermonitor:"plug",job_manage:"address-book",crewmani:"clipboard-list",robocontrol:"robot",atmosscan:"thermometer-half",shipping:"tags"},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.device_theme,c=l.programs,f=c===void 0?[]:c,m=l.has_light,v=l.light_on,j=l.comp_light_color,E=l.removable_media,y=E===void 0?[]:E,M=l.login,P=M===void 0?{}:M;return(0,e.jsx)(r.Zm,{title:a==="syndicate"&&"Syndix Main Menu"||"NtOS Main Menu",theme:a,width:400,height:500,children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[!!m&&(0,e.jsxs)(t.wn,{children:[(0,e.jsxs)(t.$n,{width:"144px",icon:"lightbulb",selected:v,onClick:function(){return o("PC_toggle_light")},children:["Flashlight: ",v?"ON":"OFF"]}),(0,e.jsxs)(t.$n,{ml:1,onClick:function(){return o("PC_light_color")},children:["Color:",(0,e.jsx)(t.BK,{ml:1,color:j})]})]}),(0,e.jsx)(t.wn,{title:"User Login",buttons:(0,e.jsx)(t.$n,{icon:"eject",disabled:!P.IDName,onClick:function(){return o("PC_Eject_Disk",{name:"ID"})},children:"Eject ID"}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{children:["ID Name: ",P.IDName]}),(0,e.jsxs)(t.XI.Row,{children:["Assignment: ",P.IDJob]})]})}),!!y.length&&(0,e.jsx)(t.wn,{title:"Media Eject",children:(0,e.jsx)(t.XI,{children:y.map(function(D){return(0,e.jsx)(t.XI.Row,{children:(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,color:"transparent",icon:"eject",onClick:function(){return o("PC_Eject_Disk",{name:D})},children:D})})},D)})})}),(0,e.jsx)(t.wn,{title:"Programs",children:(0,e.jsx)(t.XI,{children:f.map(function(D){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,color:"transparent",icon:s[D.name]||"window-maximize-o",onClick:function(){return o("PC_runprogram",{name:D.name})},children:D.desc})}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,width:"18px",children:!!D.running&&(0,e.jsx)(t.$n,{color:"transparent",icon:"times",tooltip:"Close program",tooltipPosition:"left",onClick:function(){return o("PC_killprogram",{name:D.name})}})}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,width:"18px",children:(0,e.jsx)(t.$n,{color:"transparent",tooltip:"Set Autorun",tooltipPosition:"left",selected:D.autorun,onClick:function(){return o("PC_setautorun",{name:D.name})},children:"AR"})})]},D.name)})})})]})})}},9785:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosNetChat:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.can_admin,a=o.adminmode,c=o.authed,f=o.username,m=o.active_channel,v=o.is_operator,j=o.all_channels,E=j===void 0?[]:j,y=o.clients,M=y===void 0?[]:y,P=o.messages,D=P===void 0?[]:P,S=m!==null,B=c||a;return(0,e.jsx)(r.Zm,{width:900,height:675,children:(0,e.jsx)(r.Zm.Content,{children:(0,e.jsx)(t.wn,{height:"600px",children:(0,e.jsx)(t.XI,{height:"580px",children:(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{verticalAlign:"top",style:{width:"200px"},children:[(0,e.jsxs)(t.az,{height:"560px",overflowY:"scroll",children:[(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(T,L){return u("PRG_newchannel",{new_channel_name:L})},children:"New Channel..."}),E.map(function(T){return(0,e.jsx)(t.$n,{fluid:!0,selected:T.id===m,color:"transparent",onClick:function(){return u("PRG_joinchannel",{id:T.id})},children:T.chan},T.chan)})]}),(0,e.jsx)(t.$n.Input,{fluid:!0,mt:1,currentValue:f,onCommit:function(T,L){return u("PRG_changename",{new_name:L})},children:f+"..."}),!!l&&(0,e.jsx)(t.$n,{fluid:!0,bold:!0,color:a?"bad":"good",onClick:function(){return u("PRG_toggleadmin")},children:"ADMIN MODE: "+(a?"ON":"OFF")})]}),(0,e.jsxs)(t.XI.Cell,{children:[(0,e.jsx)(t.az,{height:"560px",overflowY:"scroll",children:S&&(B?D.map(function(T){return(0,e.jsx)(t.az,{children:T.msg},T.msg)}):(0,e.jsxs)(t.az,{textAlign:"center",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle",mt:4,fontSize:"40px"}),(0,e.jsx)(t.az,{mt:1,bold:!0,fontSize:"18px",children:"THIS CHANNEL IS PASSWORD PROTECTED"}),(0,e.jsx)(t.az,{mt:1,children:"INPUT PASSWORD TO ACCESS"})]}))}),(0,e.jsx)(t.pd,{fluid:!0,selfClear:!0,mt:1,onEnter:function(T,L){return u("PRG_speak",{message:L})}})]}),(0,e.jsxs)(t.XI.Cell,{verticalAlign:"top",style:{width:"150px"},children:[(0,e.jsx)(t.az,{height:"465px",overflowY:"scroll",children:M.map(function(T){return(0,e.jsx)(t.az,{children:T.name},T.name)})}),S&&B&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Input,{fluid:!0,defaultValue:"new_log",onCommit:function(T,L){return u("PRG_savelog",{log_name:L})},children:"Save log..."}),(0,e.jsx)(t.$n.Confirm,{fluid:!0,onClick:function(){return u("PRG_leavechannel")},children:"Leave Channel"})]}),!!v&&c&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n.Confirm,{fluid:!0,onClick:function(){return u("PRG_deletechannel")},children:"Delete Channel"}),(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(T,L){return u("PRG_renamechannel",{new_name:L})},children:"Rename Channel..."}),(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(T,L){return u("PRG_setpassword",{new_password:L})},children:"Set Password..."})]})]})]})})})})})}},82193:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosNetDos:function(){return s},NtosNetDosContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.Zm,{width:400,height:250,theme:"syndicate",children:(0,e.jsx)(r.Zm.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.relays,c=a===void 0?[]:a,f=l.focus,m=l.target,v=l.speed,j=l.overload,E=l.capacity,y=l.error;if(y)return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.IC,{children:y}),(0,e.jsx)(t.$n,{fluid:!0,textAlign:"center",onClick:function(){return o("PRG_reset")},children:"Reset"})]});var M=function(D){for(var S="",B=j/E;S.lengthB?S+="0":S+="1";return S},P=45;return m?(0,e.jsxs)(t.wn,{fontFamily:"monospace",textAlign:"center",children:[(0,e.jsxs)(t.az,{children:["CURRENT SPEED: ",v," GQ/s"]}),(0,e.jsx)(t.az,{children:M(P)}),(0,e.jsx)(t.az,{children:M(P)}),(0,e.jsx)(t.az,{children:M(P)}),(0,e.jsx)(t.az,{children:M(P)}),(0,e.jsx)(t.az,{children:M(P)})]}):(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Target",children:c.map(function(D){return(0,e.jsx)(t.$n,{selected:f===D.id,onClick:function(){return o("PRG_target_relay",{targid:D.id})},children:D.id},D.id)})})}),(0,e.jsx)(t.$n,{fluid:!0,bold:!0,color:"bad",textAlign:"center",disabled:!f,mt:1,onClick:function(){return o("PRG_execute")},children:"EXECUTE"})]})}},43726:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosNetDownloader:function(){return g}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.PC_device_theme,f=a.disk_size,m=a.disk_used,v=a.downloadable_programs,j=v===void 0?[]:v,E=a.error,y=a.hacked_programs,M=y===void 0?[]:y,P=a.hackedavailable;return(0,e.jsx)(s.Zm,{theme:c,width:480,height:735,children:(0,e.jsxs)(s.Zm.Content,{scrollable:!0,children:[!!E&&(0,e.jsxs)(r.IC,{children:[(0,e.jsx)(r.az,{mb:1,children:E}),(0,e.jsx)(r.$n,{onClick:function(){return l("PRG_reseterror")},children:"Reset"})]}),(0,e.jsx)(r.wn,{children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Disk usage",children:(0,e.jsx)(r.z2,{value:m,minValue:0,maxValue:f,children:m+" GQ / "+f+" GQ"})})})}),(0,e.jsx)(r.wn,{children:j.map(function(D){return(0,e.jsx)(x,{program:D},D.filename)})}),!!P&&(0,e.jsxs)(r.wn,{title:"UNKNOWN Software Repository",children:[(0,e.jsx)(r.IC,{mb:1,children:"Please note that Nanotrasen does not recommend download of software from non-official servers."}),M.map(function(D){return(0,e.jsx)(x,{program:D},D.filename)})]})]})})},x=function(u){var o=u.program,l=(0,t.Oc)(),a=l.act,c=l.data,f=c.disk_size,m=c.disk_used,v=c.downloadcompletion,j=c.downloadname,E=c.downloadsize,y=c.downloadspeed,M=c.downloads_queue,P=f-m;return(0,e.jsxs)(r.az,{mb:3,children:[(0,e.jsxs)(r.so,{align:"baseline",children:[(0,e.jsx)(r.so.Item,{bold:!0,grow:1,children:o.filedesc}),(0,e.jsxs)(r.so.Item,{color:"label",nowrap:!0,children:[o.size," GQ"]}),(0,e.jsx)(r.so.Item,{ml:2,width:"110px",textAlign:"center",children:o.filename===j&&(0,e.jsxs)(r.z2,{color:"green",minValue:0,maxValue:E,value:v,children:[(0,i.Mg)(v/E*100,1),"%\xA0","("+y+"GQ/s)"]})||M.indexOf(o.filename)!==-1&&(0,e.jsx)(r.$n,{icon:"ban",color:"bad",onClick:function(){return a("PRG_removequeued",{filename:o.filename})},children:"Queued..."})||(0,e.jsx)(r.$n,{fluid:!0,icon:"download",disabled:o.size>P,onClick:function(){return a("PRG_downloadfile",{filename:o.filename})},children:"Download"})})]}),o.compatibility!=="Compatible"&&(0,e.jsxs)(r.az,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,e.jsx)(r.In,{mx:1,color:"red",name:"times"}),"Incompatible!"]}),o.size>P&&(0,e.jsxs)(r.az,{mt:1,italic:!0,fontSize:"12px",position:"relative",children:[(0,e.jsx)(r.In,{mx:1,color:"red",name:"times"}),"Not enough disk space!"]}),(0,e.jsx)(r.az,{mt:1,italic:!0,color:"label",fontSize:"12px",children:o.fileinfo})]})}},30817:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosNetMonitor:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.ntnetrelays,a=o.ntnetstatus,c=o.config_softwaredownload,f=o.config_peertopeer,m=o.config_communication,v=o.config_systemcontrol,j=o.idsalarm,E=o.idsstatus,y=o.ntnetmaxlogs,M=o.maxlogs,P=o.minlogs,D=o.banned_nids,S=o.ntnetlogs,B=S===void 0?[]:S;return(0,e.jsx)(r.Zm,{children:(0,e.jsxs)(r.Zm.Content,{scrollable:!0,children:[(0,e.jsx)(t.IC,{children:"WARNING: Disabling wireless transmitters when using a wireless device may prevent you from reenabling them!"}),(0,e.jsx)(t.wn,{title:"Wireless Connectivity",buttons:(0,e.jsx)(t.$n.Confirm,{icon:a?"power-off":"times",selected:a,onClick:function(){return u("toggleWireless")},children:a?"ENABLED":"DISABLED"}),children:l?(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Active NTNet Relays",children:l})}):"No Relays Connected"}),(0,e.jsx)(t.wn,{title:"Firewall Configuration",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Software Downloads",buttons:(0,e.jsx)(t.$n,{icon:c?"power-off":"times",selected:c,onClick:function(){return u("toggle_function",{id:"1"})},children:c?"ENABLED":"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Peer to Peer Traffic",buttons:(0,e.jsx)(t.$n,{icon:f?"power-off":"times",selected:f,onClick:function(){return u("toggle_function",{id:"2"})},children:f?"ENABLED":"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Communication Systems",buttons:(0,e.jsx)(t.$n,{icon:m?"power-off":"times",selected:m,onClick:function(){return u("toggle_function",{id:"3"})},children:m?"ENABLED":"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Remote System Control",buttons:(0,e.jsx)(t.$n,{icon:v?"power-off":"times",selected:v,onClick:function(){return u("toggle_function",{id:"4"})},children:v?"ENABLED":"DISABLED"})})]})}),(0,e.jsxs)(t.wn,{title:"Security Systems",children:[!!j&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.IC,{children:"NETWORK INCURSION DETECTED"}),(0,e.jsx)(t.az,{italic:!0,children:"Abnormal activity has been detected in the network. Check system logs for more information"})]}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Banned NIDs",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return u("ban_nid")},children:"Ban NID"}),(0,e.jsx)(t.$n,{icon:"balance-scale",onClick:function(){return u("unban_nid")},children:"Unban NID"})]}),children:D.join(", ")||"None"}),(0,e.jsx)(t.Ki.Item,{label:"IDS Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:E?"power-off":"times",selected:E,onClick:function(){return u("toggleIDS")},children:E?"ENABLED":"DISABLED"}),(0,e.jsx)(t.$n,{icon:"sync",color:"bad",onClick:function(){return u("resetIDS")},children:"Reset"})]})}),(0,e.jsx)(t.Ki.Item,{label:"Max Log Count",buttons:(0,e.jsx)(t.Q7,{step:1,value:y,minValue:P,maxValue:M,width:"39px",onChange:function(T){return u("updatemaxlogs",{new_number:T})}})})]}),(0,e.jsx)(t.wn,{title:"System Log",buttons:(0,e.jsx)(t.$n.Confirm,{icon:"trash",onClick:function(){return u("purgelogs")},children:"Clear Logs"}),children:B.map(function(T){return(0,e.jsx)(t.az,{className:"candystripe",children:T.entry},T.entry)})})]})]})})}},49106:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosNetTransfer:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(a){var c=(0,i.Oc)().data,f=c.error,m=c.downloading,v=c.uploading,j=c.upload_filelist,E=(0,e.jsx)(l,{});return f?E=(0,e.jsx)(g,{}):m?E=(0,e.jsx)(x,{}):v?E=(0,e.jsx)(u,{}):j.length&&(E=(0,e.jsx)(o,{})),(0,e.jsx)(r.Zm,{width:575,height:700,children:(0,e.jsx)(r.Zm.Content,{scrollable:!0,children:E})})},g=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.error;return(0,e.jsxs)(t.wn,{title:"An error has occured during operation.",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return f("PRG_reset")},children:"Reset"}),children:["Additional Information: ",v]})},x=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.download_name,j=m.download_progress,E=m.download_size,y=m.download_netspeed;return(0,e.jsx)(t.wn,{title:"Download in progress",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Downloaded File",children:v}),(0,e.jsx)(t.Ki.Item,{label:"Progress",children:(0,e.jsxs)(t.z2,{value:j,maxValue:E,children:[j," / ",E," GQ"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Transfer Speed",children:[y," GQ/s"]}),(0,e.jsx)(t.Ki.Item,{label:"Controls",children:(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return f("PRG_reset")},children:"Cancel Download"})})]})})},u=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.upload_clients,j=m.upload_filename,E=m.upload_haspassword;return(0,e.jsx)(t.wn,{title:"Server enabled",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Clients Connected",children:v}),(0,e.jsx)(t.Ki.Item,{label:"Provided file",children:j}),(0,e.jsx)(t.Ki.Item,{label:"Server Password",children:E?"Enabled":"Disabled"}),(0,e.jsxs)(t.Ki.Item,{label:"Commands",children:[(0,e.jsx)(t.$n,{icon:"lock",onClick:function(){return f("PRG_setpassword")},children:"Set Password"}),(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return f("PRG_reset")},children:"Cancel Upload"})]})]})})},o=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.upload_filelist;return(0,e.jsxs)(t.wn,{title:"File transfer server ready.",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return f("PRG_reset")},children:"Cancel"}),children:[(0,e.jsx)(t.$n,{fluid:!0,icon:"lock",onClick:function(){return f("PRG_setpassword")},children:"Set Password"}),(0,e.jsx)(t.wn,{title:"Pick file to serve.",children:v.map(function(j){return(0,e.jsxs)(t.$n,{fluid:!0,icon:"upload",onClick:function(){return f("PRG_uploadfile",{uid:j.uid})},children:[j.filename," (",j.size,"GQ)"]},j.uid)})})]})},l=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.servers;return(0,e.jsx)(t.wn,{title:"Available Files",buttons:(0,e.jsx)(t.$n,{icon:"upload",onClick:function(){return f("PRG_uploadmenu")},children:"Send File"}),children:v.length&&(0,e.jsx)(t.Ki,{children:v.map(function(j){return(0,e.jsxs)(t.Ki.Item,{label:j.uid,children:[!!j.haspassword&&(0,e.jsx)(t.In,{name:"lock",mr:1}),j.filename,"\xA0 (",j.size,"GQ)\xA0",(0,e.jsx)(t.$n,{icon:"download",onClick:function(){return f("PRG_downloadfile",{uid:j.uid})},children:"Download"})]},j.uid)})})||(0,e.jsx)(t.az,{children:"No upload servers found."})})}},50653:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosNewsBrowser:function(){return g}});var e=n(20462),i=n(31200),t=n(7081),r=n(88569),s=n(15581),g=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.article,v=f.download,j=f.message,E=(0,e.jsx)(u,{});return m?E=(0,e.jsx)(x,{}):v&&(E=(0,e.jsx)(o,{})),(0,e.jsx)(s.Zm,{width:575,height:750,children:(0,e.jsxs)(s.Zm.Content,{scrollable:!0,children:[!!j&&(0,e.jsxs)(r.IC,{children:[j," ",(0,e.jsx)(r.$n,{icon:"times",onClick:function(){return c("PRG_clearmessage")}})]}),E]})})},x=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.article;if(!m)return(0,e.jsx)(r.wn,{children:"Error: Article not found."});var v=m.title,j=m.cover,E=m.content;return(0,e.jsxs)(r.wn,{title:"Viewing: "+v,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"save",onClick:function(){return c("PRG_savearticle")},children:"Save"}),(0,e.jsx)(r.$n,{icon:"times",onClick:function(){return c("PRG_reset")},children:"Close"})]}),children:[!!j&&(0,e.jsx)(r._V,{src:(0,i.l)(j)}),(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:E}})]})},u=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.showing_archived,v=f.all_articles;return(0,e.jsx)(r.wn,{title:"Articles List",buttons:(0,e.jsx)(r.$n.Checkbox,{onClick:function(){return c("PRG_toggle_archived")},checked:m,children:"Show Archived"}),children:(0,e.jsx)(r.Ki,{children:v.length&&v.map(function(j){return(0,e.jsxs)(r.Ki.Item,{label:j.name,buttons:(0,e.jsx)(r.$n,{icon:"download",onClick:function(){return c("PRG_openarticle",{uid:j.uid})}}),children:[j.size," GQ"]},j.uid)})||(0,e.jsx)(r.Ki.Item,{label:"Error",children:"There appear to be no outstanding news articles on NTNet today."})})})},o=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.download,v=m.download_progress,j=m.download_maxprogress,E=m.download_rate;return(0,e.jsx)(r.wn,{title:"Downloading...",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Progress",children:(0,e.jsxs)(r.z2,{color:"good",minValue:0,value:v,maxValue:j,children:[v," / ",j," GQ"]})}),(0,e.jsxs)(r.Ki.Item,{label:"Download Speed",children:[E," GQ/s"]}),(0,e.jsx)(r.Ki.Item,{label:"Controls",children:(0,e.jsx)(r.$n,{icon:"ban",fluid:!0,onClick:function(){return c("PRG_reset")},children:"Abort Download"})})]})})}},95436:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosOvermapNavigation:function(){return r}});var e=n(20462),i=n(15581),t=n(65912),r=function(){return(0,e.jsx)(i.Zm,{width:380,height:530,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.OvermapNavigationContent,{})})})}},75655:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosPowerMonitor:function(){return r}});var e=n(20462),i=n(15581),t=n(91276),r=function(){return(0,e.jsx)(i.Zm,{width:550,height:700,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.PowerMonitorContent,{})})})}},81986:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosRCON:function(){return r}});var e=n(20462),i=n(15581),t=n(72778),r=function(){return(0,e.jsx)(i.Zm,{width:630,height:440,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.RCONContent,{})})})}},35399:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosRevelation:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.armed;return(0,e.jsx)(r.Zm,{width:400,height:250,theme:"syndicate",children:(0,e.jsx)(r.Zm.Content,{children:(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.$n.Input,{fluid:!0,onCommit:function(a,c){return u("PRG_obfuscate",{new_name:c})},mb:1,children:"Obfuscate Name..."}),(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Payload Status",buttons:(0,e.jsx)(t.$n,{color:l?"bad":"average",onClick:function(){return u("PRG_arm")},children:l?"ARMED":"DISARMED"})})}),(0,e.jsx)(t.$n,{fluid:!0,bold:!0,textAlign:"center",color:"bad",disabled:!l,children:"ACTIVATE"})]})})})}},79389:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosShutoffMonitor:function(){return r}});var e=n(20462),i=n(15581),t=n(67889),r=function(){return(0,e.jsx)(i.Zm,{width:627,height:700,children:(0,e.jsx)(i.Zm.Content,{children:(0,e.jsx)(t.ShutoffMonitorContent,{})})})}},98011:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosStationAlertConsole:function(){return r}});var e=n(20462),i=n(15581),t=n(68679),r=function(){return(0,e.jsx)(i.Zm,{width:315,height:500,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.StationAlertConsoleContent,{})})})}},57488:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosSupermatterMonitor:function(){return r}});var e=n(20462),i=n(15581),t=n(50028),r=function(){return(0,e.jsx)(i.Zm,{width:600,height:400,children:(0,e.jsx)(i.Zm.Content,{scrollable:!0,children:(0,e.jsx)(t.SupermatterMonitorContent,{})})})}},10774:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosUAV:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.current_uav,a=o.signal_strength,c=o.in_use,f=o.paired_uavs;return(0,e.jsx)(r.Zm,{width:600,height:500,children:(0,e.jsxs)(r.Zm.Content,{children:[(0,e.jsx)(t.wn,{title:"Selected UAV",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"UAV",children:l&&l.status||"[Not Connected]"}),(0,e.jsx)(t.Ki.Item,{label:"Signal",children:l&&a||"[Not Connected]"}),(0,e.jsx)(t.Ki.Item,{label:"Power",children:l&&(0,e.jsx)(t.$n,{icon:"power-off",selected:l.power,onClick:function(){return u("power_uav")},children:l.power?"Online":"Offline"})||"[Not Connected]"}),(0,e.jsx)(t.Ki.Item,{label:"Camera",children:l&&(0,e.jsx)(t.$n,{icon:"power-off",selected:c,disabled:!l.power,onClick:function(){return u("view_uav")},children:l.power?"Available":"Unavailable"})||"[Not Connected]"})]})}),(0,e.jsx)(t.wn,{title:"Paired UAVs",children:f.length&&f.map(function(m){return(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{fluid:!0,icon:"quidditch",onClick:function(){return u("switch_uav",{switch_uav:m.uavref})},children:m.name})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{color:"bad",icon:"times",onClick:function(){return u("del_uav",{del_uav:m.uavref})}})})]},m.uavref)})||(0,e.jsx)(t.az,{color:"average",children:"No UAVs Paired."})})]})})}},69062:function(O,h,n){"use strict";n.r(h),n.d(h,{NtosWordProcessor:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.PC_device_theme,a=o.error,c=o.browsing,f=o.files,m=o.filename,v=o.filedata;return(0,e.jsx)(r.Zm,{resizable:!0,theme:l,children:(0,e.jsx)(r.Zm.Content,{scrollable:!0,children:a&&(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)("h2",{children:"An Error has occured:"}),"Additional Information: ",a,"Please try again. If the problem persists, contact your system administrator for assistance.",(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return u("PRG_backtomenu")},children:"Back to menu"})]})||c&&(0,e.jsx)(t.wn,{title:"File Browser",buttons:(0,e.jsx)(t.$n,{icon:"arrow-left",onClick:function(){return u("PRG_closebrowser")},children:"Back to editor"}),children:(0,e.jsx)(t.wn,{title:"Available documents (local)",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Size (GQ)"}),(0,e.jsx)(t.XI.Cell,{collapsing:!0})]}),f.map(function(j,E){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:j.name}),(0,e.jsx)(t.XI.Cell,{children:j.size}),(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(t.$n,{icon:"file-word",onClick:function(){return u("PRG_openfile",{PRG_openfile:j.name})},children:"Open"})})]},E)})]})})})||(0,e.jsxs)(t.wn,{title:"Document: "+m,children:[(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_newfile")},children:"New"}),(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_loadmenu")},children:"Load"}),(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_savefile")},children:"Save"}),(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_saveasfile")},children:"Save As"})]}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_editfile")},children:"Edit"}),(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_txtrpeview")},children:"Preview"}),(0,e.jsx)(t.$n,{onClick:function(){return u("PRG_taghelp")},children:"Formatting Help"}),(0,e.jsx)(t.$n,{disabled:!v,onClick:function(){return u("PRG_printfile")},children:"Print"})]}),(0,e.jsx)(t.wn,{mt:1,children:(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:v}})})]})})})}},46836:function(O,h,n){"use strict";n.r(h),n.d(h,{NumberInputModal:function(){return o}});var e=n(20462),i=n(87239),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(5335),u=n(44149),o=function(a){var c=(0,r.Oc)(),f=c.act,m=c.data,v=m.init_value,j=m.large_buttons,E=m.message,y=E===void 0?"":E,M=m.timeout,P=m.title,D=(0,t.useState)(v),S=D[0],B=D[1],T=function(W){W!==S&&B(W)},L=140+(y.length>30?Math.ceil(y.length/3):0)+(y.length&&j?5:0);return(0,e.jsxs)(g.p8,{title:P,width:270,height:L,children:[M&&(0,e.jsx)(u.Loader,{value:M}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(W){W.key===i._.Enter&&f("submit",{entry:S}),(0,i.K)(W.key)&&f("cancel")},children:(0,e.jsx)(s.wn,{fill:!0,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(s.az,{color:"label",children:y})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(l,{input:S,onClick:T,onChange:T,onBlur:T})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(x.InputButtons,{input:S})})]})})})]})},l=function(a){var c=(0,r.Oc)(),f=c.act,m=c.data,v=m.min_value,j=m.max_value,E=m.init_value,y=m.round_value,M=a.input,P=a.onClick,D=a.onChange,S=a.onBlur;return(0,e.jsxs)(s.BJ,{fill:!0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.$n,{disabled:M===v,icon:"angle-double-left",onClick:function(){return P(v)},tooltip:v?"Min ("+v+")":"Min"})}),(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(s.SM,{autoFocus:!0,autoSelect:!0,fluid:!0,allowFloats:!y,minValue:v,maxValue:j,onChange:function(B,T){return D(T)},onBlur:function(B,T){return S(T)},onEnter:function(B,T){return f("submit",{entry:T})},value:M})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.$n,{disabled:M===j,icon:"angle-double-right",onClick:function(){return P(j)},tooltip:j?"Max ("+j+")":"Max"})}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.$n,{disabled:M===E,icon:"redo",onClick:function(){return P(E)},tooltip:E?"Reset ("+E+")":"Reset"})})]})}},12333:function(O,h,n){"use strict";n.r(h),n.d(h,{OmniFilter:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){return x.input?"Input":x.output?"Output":x.f_type?x.f_type:"Disabled"},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.power,c=l.config,f=l.ports,m=l.set_flow_rate,v=l.last_flow_rate;return(0,e.jsx)(r.p8,{width:360,height:330,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:c?"Configuration":"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"power-off",selected:a,disabled:c,onClick:function(){return o("power")},children:a?"On":"Off"}),(0,e.jsx)(t.$n,{icon:"wrench",selected:c,onClick:function(){return o("configure")}})]}),children:(0,e.jsx)(t.Ki,{children:f?f.map(function(j){return(0,e.jsx)(t.Ki.Item,{label:j.dir+" Port",children:c?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{selected:j.input,icon:"compress-arrows-alt",onClick:function(){return o("switch_mode",{mode:"in",dir:j.dir})},children:"IN"}),(0,e.jsx)(t.$n,{selected:j.output,icon:"expand-arrows-alt",onClick:function(){return o("switch_mode",{mode:"out",dir:j.dir})},children:"OUT"}),(0,e.jsx)(t.$n,{icon:"wrench",disabled:j.input||j.output,onClick:function(){return o("switch_filter",{mode:j.f_type,dir:j.dir})},children:j.f_type||"None"})]}):s(j)},j.dir)}):(0,e.jsx)(t.az,{color:"bad",children:"No Ports Detected"})})}),(0,e.jsx)(t.wn,{title:"Flow Rate",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Current Flow Rate",children:[v," L/s"]}),(0,e.jsx)(t.Ki.Item,{label:"Flow Rate Limit",children:c?(0,e.jsx)(t.$n,{icon:"wrench",onClick:function(){return o("set_flow_rate")},children:m+" L/s"}):m+" L/s"})]})})]})})}},60780:function(O,h,n){"use strict";n.r(h),n.d(h,{OmniMixer:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(u){return u.input?"Input":u.output?"Output":u.f_type?u.f_type:"Disabled"},g=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.power,f=a.config,m=a.ports,v=a.set_flow_rate,j=a.last_flow_rate;return(0,e.jsx)(r.p8,{width:390,height:330,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:f?"Configuration":"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"power-off",selected:c,disabled:f,onClick:function(){return l("power")},children:c?"On":"Off"}),(0,e.jsx)(t.$n,{icon:"wrench",selected:f,onClick:function(){return l("configure")}})]}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Port"}),f?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Input"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Output"})]}):(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Mode"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Concentration"}),f?(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Lock"}):null]}),m?m.map(function(E){return(0,e.jsx)(x,{port:E,config:f},E.dir)}):(0,e.jsx)(t.az,{color:"bad",children:"No Ports Detected"})]})}),(0,e.jsx)(t.wn,{title:"Flow Rate",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Current Flow Rate",children:[j," L/s"]}),(0,e.jsx)(t.Ki.Item,{label:"Flow Rate Limit",children:f?(0,e.jsx)(t.$n,{icon:"wrench",onClick:function(){return l("set_flow_rate")},children:v+" L/s"}):v+" L/s"})]})})]})})},x=function(u){var o=(0,i.Oc)().act,l=u.port,a=u.config;return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:l.dir+" Port"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:a?(0,e.jsx)(t.$n,{selected:l.input,disabled:l.output,icon:"compress-arrows-alt",onClick:function(){return o("switch_mode",{mode:l.input?"none":"in",dir:l.dir})},children:"IN"}):s(l)}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:a?(0,e.jsx)(t.$n,{selected:l.output,icon:"expand-arrows-alt",onClick:function(){return o("switch_mode",{mode:"out",dir:l.dir})},children:"OUT"}):l.concentration*100+"%"}),a?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",width:"20%",children:(0,e.jsx)(t.$n,{width:"100%",icon:"wrench",disabled:!l.input,onClick:function(){return o("switch_con",{dir:l.dir})},children:l.input?l.concentration*100+" %":"-"})}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:(0,e.jsx)(t.$n,{icon:l.con_lock?"lock":"lock-open",disabled:!l.input,selected:l.con_lock,onClick:function(){return o("switch_conlock",{dir:l.dir})},children:l.f_type||"None"})})]}):null]})}},43213:function(O,h,n){"use strict";n.r(h),n.d(h,{OperatingComputerOptions:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.verbose,l=u.health,a=u.healthAlarm,c=u.oxy,f=u.oxyAlarm,m=u.crit;return(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Loudspeaker",children:(0,e.jsx)(t.$n,{selected:o,icon:o?"toggle-on":"toggle-off",onClick:function(){return x(o?"verboseOff":"verboseOn")},children:o?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Health Announcer",children:(0,e.jsx)(t.$n,{selected:l,icon:l?"toggle-on":"toggle-off",onClick:function(){return x(l?"healthOff":"healthOn")},children:l?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Health Announcer Threshold",children:(0,e.jsx)(t.N6,{bipolar:!0,minValue:-100,maxValue:100,value:a,stepPixelSize:5,ml:"0",format:function(v){return v+"%"},onChange:function(v,j){return x("health_adj",{new:j})}})}),(0,e.jsx)(t.Ki.Item,{label:"Oxygen Alarm",children:(0,e.jsx)(t.$n,{selected:c,icon:c?"toggle-on":"toggle-off",onClick:function(){return x(c?"oxyOff":"oxyOn")},children:c?"On":"Off"})}),(0,e.jsx)(t.Ki.Item,{label:"Oxygen Alarm Threshold",children:(0,e.jsx)(t.N6,{bipolar:!0,minValue:-100,maxValue:100,value:f,stepPixelSize:5,ml:"0",onChange:function(v,j){return x("oxy_adj",{new:j})}})}),(0,e.jsx)(t.Ki.Item,{label:"Critical Alert",children:(0,e.jsx)(t.$n,{selected:m,icon:m?"toggle-on":"toggle-off",onClick:function(){return x(m?"critOff":"critOn")},children:m?"On":"Off"})})]})}},88424:function(O,h,n){"use strict";n.r(h),n.d(h,{OperatingComputerPatient:function(){return s}});var e=n(20462),i=n(4089),t=n(88569),r=n(6050),s=function(g){var x=g.occupant;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Patient",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:x.name}),(0,e.jsx)(t.Ki.Item,{label:"Status",color:r.stats[x.stat][0],children:r.stats[x.stat][1]}),(0,e.jsx)(t.Ki.Item,{label:"Health",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:x.health/x.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]}})}),r.damages.map(function(u,o){return(0,e.jsx)(t.Ki.Item,{label:u[0]+" Damage",children:(0,e.jsx)(t.z2,{minValue:0,maxValue:1,value:x[u[1]]/100,ranges:r.damageRange,children:(0,i.Mg)(x[u[1]])},o)},o)}),(0,e.jsx)(t.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:1,value:x.bodyTemperature/x.maxTemp,color:r.tempColors[x.temperatureSuitability+3],children:[(0,i.Mg)(x.btCelsius),"\xB0C, ",(0,i.Mg)(x.btFaren),"\xB0F"]})}),!!x.hasBlood&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Blood Level",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:1,value:x.bloodLevel/x.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[x.bloodPercent,"%, ",x.bloodLevel,"cl"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Pulse",children:[x.pulse," BPM"]})]})]})}),(0,e.jsx)(t.wn,{title:"Current Procedure",children:x.surgery&&x.surgery.length?(0,e.jsx)(t.Ki,{children:x.surgery.map(function(u){return(0,e.jsx)(t.Ki.Item,{label:u.name,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current State",children:u.currentStage}),(0,e.jsx)(t.Ki.Item,{label:"Possible Next Steps",children:u.nextSteps.map(function(o){return(0,e.jsx)("div",{children:o},o)})})]})},u.name)})}):(0,e.jsx)(t.az,{color:"label",children:"No procedure ongoing."})})]})}},13846:function(O,h,n){"use strict";n.r(h),n.d(h,{OperatingComputerUnoccupied:function(){return t}});var e=n(20462),i=n(88569),t=function(r){return(0,e.jsx)(i.so,{textAlign:"center",height:"100%",children:(0,e.jsxs)(i.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(i.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No patient detected."]})})}},6050:function(O,h,n){"use strict";n.r(h),n.d(h,{damageRange:function(){return t},damages:function(){return i},stats:function(){return e},tempColors:function(){return r}});var e=[["good","Conscious"],["average","Unconscious"],["bad","DEAD"]],i=[["Resp.","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],t={average:[.25,.5],bad:[.5,1/0]},r=["bad","average","average","good","average","average","bad"]},70509:function(O,h,n){"use strict";n.r(h),n.d(h,{OperatingComputer:function(){return u}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(43213),g=n(88424),x=n(13846),u=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.hasOccupant,m=c.choice,v=c.occupant,j;return m?j=(0,e.jsx)(s.OperatingComputerOptions,{}):j=f?(0,e.jsx)(g.OperatingComputerPatient,{occupant:v}):(0,e.jsx)(x.OperatingComputerUnoccupied,{}),(0,e.jsx)(r.p8,{width:650,height:455,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:!m,icon:"user",onClick:function(){return a("choiceOff")},children:"Patient"}),(0,e.jsx)(t.tU.Tab,{selected:!!m,icon:"cog",onClick:function(){return a("choiceOn")},children:"Options"})]}),(0,e.jsx)(t.wn,{flexGrow:!0,children:j})]})})}},36882:function(O,h,n){"use strict";n.r(h)},81105:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapDisperser:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(91198),g=function(u){return(0,e.jsx)(r.p8,{width:400,height:550,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.faillink,f=a.calibration,m=a.overmapdir,v=a.cal_accuracy,j=a.strength,E=a.range,y=a.next_shot,M=a.nopower,P=a.chargeload;return c?(0,e.jsx)(t.wn,{title:"Error",children:"Machine is incomplete, out of range, or misaligned!"}):(0,e.jsxs)(t.so,{wrap:"wrap",spacing:1,children:[(0,e.jsx)(t.so.Item,{basis:"22%",children:(0,e.jsx)(t.wn,{title:"Targeting",textAlign:"center",children:(0,e.jsx)(s.OvermapPanControls,{actToDo:"choose",selected:function(D){return D===m}})})}),(0,e.jsx)(t.so.Item,{basis:"74%",grow:1,children:(0,e.jsx)(t.wn,{title:"Charge",children:(0,e.jsxs)(t.Ki,{children:[M&&(0,e.jsx)(t.Ki.Item,{label:"Error",children:"At least one part of the machine is unpowered."})||"",(0,e.jsx)(t.Ki.Item,{label:"Charge Load Type",children:P}),(0,e.jsx)(t.Ki.Item,{label:"Cooldown",children:y===0&&(0,e.jsx)(t.az,{color:"good",children:"Ready"})||y>1&&(0,e.jsxs)(t.az,{color:"average",children:[(0,e.jsx)(t.zv,{value:y})," Seconds",(0,e.jsx)(t.az,{color:"bad",children:"Warning: Do not fire during cooldown."})]})||""})]})})}),(0,e.jsx)(t.so.Item,{basis:"50%",mt:1,children:(0,e.jsxs)(t.wn,{title:"Calibration",children:[(0,e.jsx)(t.zv,{value:v}),"%",(0,e.jsx)(t.$n,{ml:1,icon:"exchange-alt",onClick:function(){return l("skill_calibration")},children:"Pre-Calibration"}),(0,e.jsx)(t.az,{mt:1,children:f.map(function(D,S){return(0,e.jsxs)(t.az,{children:["Cal #",S,":",(0,e.jsx)(t.$n,{ml:1,icon:"random",onClick:function(){return l("calibration",{calibration:S})},children:D.toString()})]},S)})})]})}),(0,e.jsx)(t.so.Item,{basis:"45%",grow:1,mt:1,children:(0,e.jsx)(t.wn,{title:"Setup",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Strength",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"fist-raised",onClick:function(){return l("strength")},children:j})}),(0,e.jsx)(t.Ki.Item,{label:"Radius",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"expand-arrows-alt",onClick:function(){return l("range")},children:E})})]})})}),(0,e.jsx)(t.so.Item,{grow:1,mt:1,children:(0,e.jsx)(t.$n,{fluid:!0,color:"red",icon:"bomb",onClick:function(){return l("fire")},children:"Fire ORB"})})]})}},22813:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapEngines:function(){return s},OvermapEnginesContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){return(0,e.jsx)(r.p8,{width:390,height:530,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.global_state,c=l.global_limit,f=l.engines_info,m=l.total_thrust;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Engines",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:a,onClick:function(){return o("global_toggle")},children:a?"Shut All Engines Down":"Start All Engines"})}),(0,e.jsxs)(t.Ki.Item,{label:"Volume Limit",children:[(0,e.jsx)(t.$n,{onClick:function(){return o("global_limit",{global_limit:-.1})},icon:"minus"}),(0,e.jsxs)(t.$n,{onClick:function(){return o("set_global_limit")},children:[c,"%"]}),(0,e.jsx)(t.$n,{onClick:function(){return o("global_limit",{global_limit:.1})},icon:"plus"})]}),(0,e.jsx)(t.Ki.Item,{label:"Total Thrust",children:(0,e.jsx)(t.zv,{value:m})})]})}),(0,e.jsx)(t.wn,{title:"Engines",height:"340px",style:{overflowY:"auto"},children:f.map(function(v,j){return(0,e.jsxs)(t.so,{spacing:1,mt:j!==0&&-1,children:[(0,e.jsx)(t.so.Item,{basis:"80%",children:(0,e.jsx)(t.Nt,{title:(0,e.jsxs)(t.az,{inline:!0,children:["Engine #",j+1," | Thrust:"," ",(0,e.jsx)(t.zv,{value:v.eng_thrust})," | Limit:"," ",(0,e.jsx)(t.zv,{value:v.eng_thrust_limiter,format:function(E){return E+"%"}})]}),children:(0,e.jsx)(t.wn,{width:"127%",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Type",children:v.eng_type}),(0,e.jsxs)(t.Ki.Item,{label:"Status",children:[(0,e.jsx)(t.az,{color:v.eng_on?v.eng_on===1?"good":"average":"bad",children:v.eng_on?v.eng_on===1?"Online":"Booting":"Offline"}),v.eng_status.map(function(E,y){return Array.isArray(E)?(0,e.jsx)(t.az,{color:E[1],children:E[0]},y):(0,e.jsx)(t.az,{children:E},y)})]}),(0,e.jsx)(t.Ki.Item,{label:"Current Thrust",children:v.eng_thrust}),(0,e.jsxs)(t.Ki.Item,{label:"Volume Limit",children:[(0,e.jsx)(t.$n,{onClick:function(){return o("limit",{limit:-.1,engine:v.eng_reference})},icon:"minus"}),(0,e.jsxs)(t.$n,{onClick:function(){return o("set_limit",{engine:v.eng_reference})},children:[v.eng_thrust_limiter,"%"]}),(0,e.jsx)(t.$n,{onClick:function(){return o("limit",{limit:.1,engine:v.eng_reference})},icon:"plus"})]})]})})})}),(0,e.jsx)(t.so.Item,{basis:"20%",children:(0,e.jsx)(t.$n,{fluid:!0,iconSpin:v.eng_on===-1,color:v.eng_on===-1?"purple":void 0,selected:v.eng_on===1,icon:"power-off",onClick:function(){return o("toggle_engine",{engine:v.eng_reference})},children:v.eng_on?v.eng_on===1?"Shutoff":"Booting":"Startup"})})]},j)})})]})}},61321:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapFull:function(){return u}});var e=n(20462),i=n(61358),t=n(88569),r=n(15581),s=n(22813),g=n(7558),x=n(97275),u=function(o){var l=(0,i.useState)(0),a=l[0],c=l[1];return(0,e.jsx)(r.p8,{width:800,height:800,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:a===0,onClick:function(){return c(0)},children:"Engines"}),(0,e.jsx)(t.tU.Tab,{selected:a===1,onClick:function(){return c(1)},children:"Helm"}),(0,e.jsx)(t.tU.Tab,{selected:a===2,onClick:function(){return c(2)},children:"Sensors"})]}),a===0&&(0,e.jsx)(s.OvermapEnginesContent,{}),a===1&&(0,e.jsx)(g.OvermapHelmContent,{}),a===2&&(0,e.jsx)(x.OvermapShipSensorsContent,{})]})})}},7558:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapFlightDataWrap:function(){return u},OvermapHelm:function(){return g},OvermapHelmContent:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(91198),g=function(c){return(0,e.jsx)(r.p8,{width:565,height:545,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(c){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{basis:"40%",height:"180px",children:(0,e.jsx)(u,{})}),(0,e.jsx)(t.so.Item,{basis:"25%",height:"180px",children:(0,e.jsx)(o,{})}),(0,e.jsx)(t.so.Item,{basis:"35%",height:"180px",children:(0,e.jsx)(l,{})})]}),(0,e.jsx)(a,{})]})},u=function(c){return(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1",margin:"none"},className:"Section",children:[(0,e.jsx)("legend",{children:"Flight Data"}),(0,e.jsx)(s.OvermapFlightData,{})]})},o=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.canburn,E=v.manual_control;return(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1"},className:"Section",children:[(0,e.jsx)("legend",{children:"Manual Control"}),(0,e.jsx)(t.so,{align:"center",justify:"center",children:(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(s.OvermapPanControls,{disabled:!j,actToDo:"move"})})}),(0,e.jsxs)(t.az,{textAlign:"center",mt:1,children:[(0,e.jsx)(t.az,{bold:!0,underline:!0,children:"Direct Control"}),(0,e.jsx)(t.$n,{selected:E,onClick:function(){return m("manual")},icon:"compass",children:E?"Enabled":"Disabled"})]})]})},l=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.dest,E=v.d_x,y=v.d_y,M=v.speedlimit,P=v.autopilot,D=v.autopilot_disabled;return D?(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1"},className:"Section",children:[(0,e.jsx)("legend",{children:"Autopilot"}),(0,e.jsx)(t.az,{textAlign:"center",color:"bad",fontSize:1.2,children:"AUTOPILOT DISABLED"}),(0,e.jsx)(t.az,{textAlign:"center",color:"average",children:"Warning: This vessel is equipped with a class I autopilot. Class I autopilots are unable to do anything but fly in a straight line directly towards the target, and may result in collisions."}),(0,e.jsx)(t.az,{textAlign:"center",children:(0,e.jsx)(t.$n.Confirm,{mt:1,color:"bad",confirmContent:"ACCEPT RISKS?",icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",onClick:function(){return m("apilot_lock")},children:"Unlock Autopilot"})})]}):(0,e.jsxs)("fieldset",{style:{height:"100%",border:"1px solid #4972a1"},className:"Section",children:[(0,e.jsx)("legend",{children:"Autopilot"}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Target",children:j&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{onClick:function(){return m("setcoord",{setx:!0})},children:E}),(0,e.jsx)(t.$n,{onClick:function(){return m("setcoord",{sety:!0})},children:y})]})||(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return m("setcoord",{setx:!0,sety:!0})},children:"None"})}),(0,e.jsx)(t.Ki.Item,{label:"Speed Limit",children:(0,e.jsxs)(t.$n,{icon:"tachometer-alt",onClick:function(){return m("speedlimit")},children:[M," Gm/h"]})})]}),(0,e.jsx)(t.$n,{mt:1,fluid:!0,selected:P,disabled:!j,icon:"robot",onClick:function(){return m("apilot")},children:P?"Engaged":"Disengaged"}),(0,e.jsx)(t.$n,{fluid:!0,color:"good",icon:"exclamation-triangle",onClick:function(){return m("apilot_lock")},children:"Lock Autopilot"})]})},a=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.sector,E=v.s_x,y=v.s_y,M=v.sector_info,P=v.landed,D=v.locations;return(0,e.jsxs)(t.wn,{title:"Navigation Data",m:.3,mt:1,children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Location",children:j}),(0,e.jsxs)(t.Ki.Item,{label:"Coordinates",children:[E," : ",y]}),(0,e.jsx)(t.Ki.Item,{label:"Scan Data",children:M}),(0,e.jsx)(t.Ki.Item,{label:"Status",children:P})]}),(0,e.jsxs)(t.so,{mt:1,align:"center",justify:"center",spacing:1,children:[(0,e.jsx)(t.so.Item,{basis:"50%",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"save",onClick:function(){return m("add",{add:"current"})},children:"Save Current Position"})}),(0,e.jsx)(t.so.Item,{basis:"50%",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"sticky-note",onClick:function(){return m("add",{add:"new"})},children:"Add New Entry"})})]}),(0,e.jsx)(t.wn,{mt:1,scrollable:!0,fill:!0,height:"130px",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Coordinates"}),(0,e.jsx)(t.XI.Cell,{children:"Actions"})]}),D.map(function(S){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:S.name}),(0,e.jsxs)(t.XI.Cell,{children:[S.x," : ",S.y]}),(0,e.jsxs)(t.XI.Cell,{collapsing:!0,children:[(0,e.jsx)(t.$n,{icon:"rocket",onClick:function(){return m("setds",{x:S.x,y:S.y})},children:"Plot Course"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return m("remove",{remove:S.reference})},children:"Remove"})]})]},S.name)})]})})]})}},65912:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapNavigation:function(){return g},OvermapNavigationContent:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(91198),g=function(){return(0,e.jsx)(r.p8,{width:380,height:530,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.sector,f=a.s_x,m=a.s_y,v=a.sector_info,j=a.viewing;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Current Location",buttons:(0,e.jsx)(t.$n,{icon:"eye",selected:j,onClick:function(){return l("viewing")},children:"Map View"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current Location",children:c}),(0,e.jsxs)(t.Ki.Item,{label:"Coordinates",children:[f," : ",m]}),(0,e.jsx)(t.Ki.Item,{label:"Additional Information",children:v})]})}),(0,e.jsx)(t.wn,{title:"Flight Data",children:(0,e.jsx)(s.OvermapFlightData,{disableLimiterControls:!0})})]})}},30766:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapShieldGenerator:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(o){return(0,e.jsx)(r.p8,{width:500,height:760,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.modes,m=c.offline_for;return m?(0,e.jsxs)(t.wn,{title:"EMERGENCY SHUTDOWN",color:"bad",children:["An emergency shutdown has been initiated - generator cooling down. Please wait until the generator cools down before resuming operation. Estimated time left: ",m," seconds."]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(x,{}),(0,e.jsx)(u,{}),(0,e.jsx)(t.wn,{title:"Field Calibration",children:f.map(function(v){return(0,e.jsxs)(t.wn,{title:v.name,buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:v.status,onClick:function(){return a("toggle_mode",{toggle_mode:v.flag})},children:v.status?"Enabled":"Disabled"}),children:[(0,e.jsx)(t.az,{color:"label",children:v.desc}),(0,e.jsxs)(t.az,{mt:.5,children:["Multiplier: ",v.multiplier]})]},v.name)})})]})},x=function(o){var l=(0,i.Oc)().data,a=l.running,c=l.overloaded,f=l.mitigation_max,m=l.mitigation_physical,v=l.mitigation_em,j=l.mitigation_heat,E=l.field_integrity,y=l.max_energy,M=l.current_energy,P=l.percentage_energy,D=l.total_segments,S=l.functional_segments,B=l.field_radius,T=l.target_radius,L=l.input_cap_kw,W=l.upkeep_power_usage,$=l.power_usage,k=l.spinup_counter,z=[];return z[1]=(0,e.jsx)(t.az,{color:"average",children:"Shutting Down"}),z[2]=(0,e.jsx)(t.az,{color:"bad",children:"Overloaded"}),z[3]=(0,e.jsx)(t.az,{color:"average",children:"Inactive"}),z[4]=(0,e.jsxs)(t.az,{color:"blue",children:["Spinning Up\xA0",T!==B&&(0,e.jsx)(t.az,{inline:!0,children:"(Adjusting Radius)"})||(0,e.jsxs)(t.az,{inline:!0,children:[k*2,"s"]})]}),(0,e.jsx)(t.wn,{title:"System Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Generator is",children:z[a]||(0,e.jsx)(t.az,{color:"bad",children:"Offline"})}),(0,e.jsx)(t.Ki.Item,{label:"Energy Storage",children:(0,e.jsxs)(t.z2,{value:M,maxValue:y,children:[M," / ",y," MJ (",P,"%)"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Shield Integrity",children:[(0,e.jsx)(t.zv,{value:E}),"%"]}),(0,e.jsxs)(t.Ki.Item,{label:"Mitigation",children:[v,"% EM / ",m,"% PH / ",j,"% HE / ",f,"% MAX"]}),(0,e.jsxs)(t.Ki.Item,{label:"Upkeep Energy Use",children:[(0,e.jsx)(t.zv,{value:W})," kW"]}),(0,e.jsx)(t.Ki.Item,{label:"Total Energy Use",children:L&&(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.z2,{value:$,maxValue:L,children:[$," / ",L," kW"]})})||(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.zv,{value:$})," kW (No Limit)"]})}),(0,e.jsxs)(t.Ki.Item,{label:"Field Size",children:[(0,e.jsx)(t.zv,{value:S}),"\xA0/\xA0",(0,e.jsx)(t.zv,{value:D})," m\xB2 (radius"," ",(0,e.jsx)(t.zv,{value:B}),", target"," ",(0,e.jsx)(t.zv,{value:T}),")"]})]})})},u=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.running,m=c.hacked,v=c.idle_multiplier,j=c.idle_valid_values;return(0,e.jsxs)(t.wn,{title:"Controls",buttons:(0,e.jsxs)(e.Fragment,{children:[f>=2&&(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return a("begin_shutdown")},selected:!0,children:"Turn off"}),f===3&&(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return a("toggle_idle",{toggle_idle:0})},children:"Activate"})||(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return a("toggle_idle",{toggle_idle:1})},selected:!0,children:"Deactivate"})]})||(0,e.jsx)(t.$n,{icon:"power-off",onClick:function(){return a("start_generator")},children:"Turn on"}),f&&m&&(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return a("emergency_shutdown")},color:"bad",children:"EMERGENCY SHUTDOWN"})||""]}),children:[(0,e.jsx)(t.$n,{icon:"expand-arrows-alt",onClick:function(){return a("set_range")},children:"Set Field Range"}),(0,e.jsx)(t.$n,{icon:"bolt",onClick:function(){return a("set_input_cap")},children:"Set Input Cap"}),(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Set inactive power use intensity",children:j.map(function(E){return(0,e.jsx)(t.$n,{selected:E===v,disabled:f===4,onClick:function(){return a("switch_idle",{switch_idle:E})},children:E},E)})})})]})}},97275:function(O,h,n){"use strict";n.r(h),n.d(h,{OvermapShipSensors:function(){return s},OvermapShipSensorsContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){return(0,e.jsx)(r.p8,{width:375,height:545,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.viewing,c=l.on,f=l.range,m=l.health,v=l.max_health,j=l.heat,E=l.critical_heat,y=l.status,M=l.contacts;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"eye",selected:a,onClick:function(){return o("viewing")},children:"Map View"}),(0,e.jsx)(t.$n,{icon:"power-off",selected:c,onClick:function(){return o("toggle_sensor")},children:c?"Sensors Enabled":"Sensors Disabled"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Status",children:y}),(0,e.jsx)(t.Ki.Item,{label:"Range",children:(0,e.jsx)(t.$n,{icon:"signal",onClick:function(){return o("range")},children:f})}),(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsxs)(t.z2,{ranges:{good:[v*.75,1/0],average:[v*.25,v*.75],bad:[-1/0,v*.25]},value:m,maxValue:v,children:[m," / ",v]})}),(0,e.jsx)(t.Ki.Item,{label:"Temperature",children:(0,e.jsx)(t.z2,{ranges:{bad:[E*.75,1/0],average:[E*.5,E*.75],good:[-1/0,E*.5]},value:j,maxValue:E,children:j0||!v)&&(0,e.jsx)(r.$n,{ml:1,icon:"times",onClick:function(){return l("cancel",{cancel:P+1})},children:"Cancel"})||""]},M)})||(0,e.jsx)(r.IC,{info:!0,children:"Queue Empty"})}),(0,e.jsx)(r.wn,{title:"Recipes",children:y.length&&y.map(function(M){return(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:"wrench",onClick:function(){return l("queue",{queue:M.type})},children:(0,i.Sn)(M.name)})},M.name)})})]})})}},71675:function(O,h,n){"use strict";n.r(h),n.d(h,{PathogenicIsolator:function(){return u}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(86471),x=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.can_print,j=a.args;return(0,e.jsx)(r.wn,{m:"-1rem",title:j.name||"Virus",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{disabled:!v,icon:"print",onClick:function(){return f("print",{type:"virus_record",vir:j.record})},children:"Print"}),(0,e.jsx)(r.$n,{icon:"times",color:"red",onClick:function(){return f("modal_close")}})]}),children:(0,e.jsx)(r.az,{mx:"0.5rem",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Spread",children:[j.spreadtype," Transmission"]}),(0,e.jsx)(r.Ki.Item,{label:"Possible cure",children:j.antigen}),(0,e.jsx)(r.Ki.Item,{label:"Rate of Progression",children:j.rate}),(0,e.jsxs)(r.Ki.Item,{label:"Antibiotic Resistance",children:[j.resistance,"%"]}),(0,e.jsx)(r.Ki.Item,{label:"Species Affected",children:j.species}),(0,e.jsx)(r.Ki.Item,{label:"Symptoms",children:(0,e.jsx)(r.Ki,{children:j.symptoms.map(function(E){return(0,e.jsxs)(r.Ki.Item,{label:E.stage+". "+E.name,children:[(0,e.jsxs)(r.az,{inline:!0,children:[(0,e.jsx)(r.az,{inline:!0,color:"label",children:"Strength:"})," ",E.strength,"\xA0"]}),(0,e.jsxs)(r.az,{inline:!0,children:[(0,e.jsx)(r.az,{inline:!0,color:"label",children:"Aggressiveness:"})," ",E.aggressiveness]})]},E.stage)})})})]})})})},u=function(a){var c=(0,t.Oc)().data,f=c.isolating,m=(0,i.useState)(0),v=m[0],j=m[1],E=[];return E[0]=(0,e.jsx)(o,{}),E[1]=(0,e.jsx)(l,{}),(0,g.modalRegisterBodyOverride)("virus",x),(0,e.jsxs)(s.p8,{height:500,width:520,children:[(0,e.jsx)(g.ComplexModal,{maxHeight:"100%",maxWidth:"95%"}),(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[f&&(0,e.jsx)(r.IC,{warning:!0,children:"The Isolator is currently isolating..."})||"",(0,e.jsxs)(r.tU,{children:[(0,e.jsx)(r.tU.Tab,{selected:v===0,onClick:function(){return j(0)},children:"Home"}),(0,e.jsx)(r.tU.Tab,{selected:v===1,onClick:function(){return j(1)},children:"Database"})]}),E[v]||""]})]})},o=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.syringe_inserted,j=m.pathogen_pool,E=m.can_print;return(0,e.jsx)(r.wn,{title:"Pathogens",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"print",disabled:!E,onClick:function(){return f("print",{type:"patient_diagnosis"})},children:"Print"}),(0,e.jsx)(r.$n,{icon:"eject",disabled:!v,onClick:function(){return f("eject")},children:"Eject Syringe"})]}),children:j.length&&j.map(function(y){return(0,e.jsxs)(r.wn,{children:[(0,e.jsx)(r.az,{color:"label",children:(0,e.jsxs)(r.so,{align:"center",children:[(0,e.jsxs)(r.so.Item,{grow:1,children:[(0,e.jsxs)("u",{children:["Stamm #",y.unique_id]}),y.is_in_database?" (Analyzed)":" (Not Analyzed)"]}),(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{icon:"virus",onClick:function(){return f("isolate",{isolate:y.reference})},children:"Isolate"}),(0,e.jsx)(r.$n,{icon:"search",disabled:!y.is_in_database,onClick:function(){return f("view_entry",{vir:y.record})},children:"Database"})]})]})}),(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.az,{color:"average",mb:1,children:y.name}),y.dna]})]},y.unique_id)})||(v?(0,e.jsx)(r.az,{color:"average",children:"No samples detected."}):(0,e.jsx)(r.az,{color:"average",children:"No syringe inserted."}))})},l=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.database,j=m.can_print;return(0,e.jsx)(r.wn,{title:"Database",buttons:(0,e.jsx)(r.$n,{icon:"print",disabled:!j,onClick:function(){return f("print",{type:"virus_list"})},children:"Print"}),children:v.length&&v.map(function(E){return(0,e.jsx)(r.$n,{fluid:!0,icon:"search",onClick:function(){return f("view_entry",{vir:E.record})},children:E.name},E.name)})||(0,e.jsx)(r.az,{color:"average",children:"The viral database is empty."})})}},6787:function(O,h,n){"use strict";n.r(h),n.d(h,{Pda:function(){return o}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(15857),x=n(37865);function u(f){var m;try{m=x("./"+f+".tsx")}catch(j){if(j.code==="MODULE_NOT_FOUND")return(0,g.z)("notFound",f);throw j}var v=m[f];return v||(0,g.z)("missingExport",f)}var o=function(f){var m=function(T){S(T)},v=(0,t.Oc)().data,j=v.app,E=v.owner,y=v.useRetro;if(!E)return(0,e.jsx)(s.p8,{children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(r.wn,{stretchContents:!0,children:"Warning: No ID information found! Please swipe ID!"})})});var M=u(j.template),P=(0,i.useState)(!1),D=P[0],S=P[1];return(0,e.jsx)(s.p8,{width:580,height:670,theme:y?"pda-retro":void 0,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsx)(l,{settingsMode:D,onSettingsMode:m}),D&&(0,e.jsx)(a,{})||(0,e.jsx)(r.wn,{title:(0,e.jsxs)(r.az,{children:[(0,e.jsx)(r.In,{name:j.icon,mr:1}),j.name]}),p:1,children:(0,e.jsx)(M,{})}),(0,e.jsx)(r.az,{mb:8}),(0,e.jsx)(c,{onSettingsMode:m})]})})},l=function(f){var m=(0,t.Oc)(),v=m.act,j=m.data,E=j.idInserted,y=j.idLink,M=j.stationTime;return(0,e.jsx)(r.az,{mb:1,children:(0,e.jsxs)(r.so,{align:"center",justify:"space-between",children:[!!E&&(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.$n,{icon:"eject",color:"transparent",onClick:function(){return v("Authenticate")},children:y})}),(0,e.jsx)(r.so.Item,{grow:1,textAlign:"center",bold:!0,children:M}),(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{selected:f.settingsMode,onClick:function(){return f.onSettingsMode(!f.settingsMode)},icon:"cog"}),(0,e.jsx)(r.$n,{onClick:function(){return v("Retro")},icon:"adjust"})]})]})})},a=function(f){var m=(0,t.Oc)(),v=m.act,j=m.data,E=j.idInserted,y=j.idLink,M=j.cartridge_name,P=j.touch_silent;return(0,e.jsx)(r.wn,{title:"Settings",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"R.E.T.R.O Mode",children:(0,e.jsx)(r.$n,{icon:"cog",onClick:function(){return v("Retro")},children:"Retro Theme"})}),(0,e.jsx)(r.Ki.Item,{label:"Touch Sounds",children:(0,e.jsx)(r.$n,{icon:"cog",selected:!P,onClick:function(){return v("TouchSounds")},children:P?"Disabled":"Enabled"})}),!!M&&(0,e.jsx)(r.Ki.Item,{label:"Cartridge",children:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return v("Eject")},children:M})}),!!E&&(0,e.jsx)(r.Ki.Item,{label:"ID Card",children:(0,e.jsx)(r.$n,{icon:"eject",onClick:function(){return v("Authenticate")},children:y})})]})})},c=function(f){var m=(0,t.Oc)(),v=m.act,j=m.data,E=j.app,y=j.useRetro;return(0,e.jsx)(r.az,{position:"fixed",bottom:"0%",left:"0%",right:"0%",backgroundColor:y?"#6f7961":"#1b1b1b",children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{basis:"33%",children:(0,e.jsx)(r.$n,{fluid:!0,color:"transparent",iconColor:E.has_back?"white":"disabled",textAlign:"center",icon:"undo",mb:0,fontSize:1.7,onClick:function(){return v("Back")}})}),(0,e.jsx)(r.so.Item,{basis:"33%",children:(0,e.jsx)(r.$n,{fluid:!0,color:"transparent",iconColor:E.is_home?"disabled":"white",textAlign:"center",icon:"home",mb:0,fontSize:1.7,onClick:function(){f.onSettingsMode(!1),v("Home")}})})]})})}},75418:function(O,h,n){"use strict";n.r(h),n.d(h,{PersonalCrafting:function(){return l}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581);function g(c,f){(f==null||f>c.length)&&(f=c.length);for(var m=0,v=new Array(f);m=c.length?{done:!0}:{done:!1,value:c[v++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l=function(c){for(var f,m=(0,t.Oc)(),v=m.act,j=m.data,E=j.busy,y=j.display_craftable_only,M=j.display_compact,P=j.crafting_recipes||{},D=[],S=[],B=o(Object.keys(P)),T;!(T=B()).done;){var L=T.value,W=P[L];if("has_subcats"in W){for(var $=o(Object.keys(W)),k;!(k=$()).done;){var z=k.value;if(z!=="has_subcats"){D.push({name:z,category:L,subcategory:z});for(var X=W[z],G=o(X),Q;!(Q=G()).done;){var ee=Q.value;S.push(x({},ee,{category:z}))}}}continue}D.push({name:L,category:L});for(var se=P[L],ne=o(se),Y;!(Y=ne()).done;){var J=Y.value;S.push(x({},J,{category:L}))}}var V=(0,i.useState)((f=D[0])==null?void 0:f.name),te=V[0],ce=V[1],le=S.filter(function(fe){return fe.category===te});return(0,e.jsx)(s.p8,{title:"Crafting Menu",width:700,height:800,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!!E&&(0,e.jsxs)(r.Rr,{fontSize:"32px",children:[(0,e.jsx)(r.In,{name:"cog",spin:1})," Crafting..."]}),(0,e.jsx)(r.wn,{title:"Personal Crafting",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n.Checkbox,{checked:M,onClick:function(){return v("toggle_compact")},children:"Compact"}),(0,e.jsx)(r.$n.Checkbox,{checked:y,onClick:function(){return v("toggle_recipes")},children:"Craftable Only"})]}),children:(0,e.jsxs)(r.so,{children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.tU,{vertical:!0,children:D.map(function(fe){return(0,e.jsx)(r.tU.Tab,{selected:fe.name===te,onClick:function(){ce(fe.name),v("set_category",{category:fe.category,subcategory:fe.subcategory})},children:fe.name},fe.name)})})}),(0,e.jsx)(r.so.Item,{grow:1,basis:0,children:(0,e.jsx)(a,{craftables:le})})]})})]})})},a=function(c){var f=c.craftables,m=f===void 0?[]:f,v=(0,t.Oc)(),j=v.act,E=v.data,y=E.craftability,M=y===void 0?{}:y,P=E.display_compact,D=E.display_craftable_only;return m.map(function(S){return D&&!M[S.ref]?null:P?(0,e.jsx)(r.Ki.Item,{label:S.name,className:"candystripe",buttons:(0,e.jsx)(r.$n,{icon:"cog",disabled:!M[S.ref],tooltip:S.tool_text&&"Tools needed: "+S.tool_text,tooltipPosition:"left",onClick:function(){return j("make",{recipe:S.ref})},children:"Craft"}),children:S.req_text},S.name):(0,e.jsx)(r.wn,{title:S.name,buttons:(0,e.jsx)(r.$n,{icon:"cog",disabled:!M[S.ref],onClick:function(){return j("make",{recipe:S.ref})},children:"Craft"}),children:(0,e.jsxs)(r.Ki,{children:[!!S.req_text&&(0,e.jsx)(r.Ki.Item,{label:"Required",children:S.req_text}),!!S.catalyst_text&&(0,e.jsx)(r.Ki.Item,{label:"Catalyst",children:S.catalyst_text}),!!S.tool_text&&(0,e.jsx)(r.Ki.Item,{label:"Tools",children:S.tool_text})]})},S.name)})}},6924:function(O,h,n){"use strict";n.r(h),n.d(h,{Photocopier:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(o){var l=(0,i.Oc)().data,a=l.isAI,c=l.has_toner,f=l.has_item;return(0,e.jsx)(r.p8,{title:"Photocopier",width:240,height:a?309:234,children:(0,e.jsxs)(r.p8.Content,{children:[c?(0,e.jsx)(g,{}):(0,e.jsx)(t.wn,{title:"Toner",children:(0,e.jsx)(t.az,{color:"average",children:"No inserted toner cartridge."})}),f?(0,e.jsx)(x,{}):(0,e.jsx)(t.wn,{title:"Options",children:(0,e.jsx)(t.az,{color:"average",children:"No inserted item."})}),!!a&&(0,e.jsx)(u,{})]})})},g=function(o){var l=(0,i.Oc)().data,a=l.max_toner,c=l.current_toner,f=a*.66,m=a*.33;return(0,e.jsx)(t.wn,{title:"Toner",children:(0,e.jsx)(t.z2,{ranges:{good:[f,a],average:[m,f],bad:[0,m]},value:c,minValue:0,maxValue:a})})},x=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.num_copies;return(0,e.jsxs)(t.wn,{title:"Options",children:[(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{mt:.4,width:11,color:"label",children:"Make copies:"}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.Q7,{animated:!0,width:"2.6",height:"1.65",step:1,stepPixelSize:8,minValue:1,maxValue:10,value:f,onDrag:function(m){return a("set_copies",{num_copies:m})}})}),(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.$n,{ml:.2,icon:"copy",textAlign:"center",onClick:function(){return a("make_copy")},children:"Copy"})})]}),(0,e.jsx)(t.$n,{mt:.5,textAlign:"center",icon:"reply",fluid:!0,onClick:function(){return a("remove")},children:"Remove item"})]})},u=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.can_AI_print;return(0,e.jsx)(t.wn,{title:"AI Options",children:(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{fluid:!0,icon:"images",textAlign:"center",disabled:!f,onClick:function(){return a("ai_photo")},children:"Print photo from database"})})})}},11727:function(O,h,n){"use strict";n.r(h),n.d(h,{PipeDispenser:function(){return x}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=n(66947),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.disposals,f=a.p_layer,m=a.pipe_layers,v=a.categories,j=v===void 0?[]:v,E=(0,i.useState)("categoryName"),y=E[0],M=E[1],P=j.find(function(D){return D.cat_name===y})||j[0];return(0,e.jsx)(s.p8,{width:425,height:515,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!c&&(0,e.jsx)(r.wn,{title:"Layer",children:(0,e.jsx)(r.az,{children:Object.keys(m).map(function(D){return(0,e.jsx)(r.$n.Checkbox,{fluid:!0,checked:m[D]===f,onClick:function(){return l("p_layer",{p_layer:m[D]})},children:D},D)})})}),(0,e.jsxs)(r.wn,{title:"Pipes",children:[(0,e.jsx)(r.tU,{children:j.map(function(D){return(0,e.jsx)(r.tU.Tab,{icon:g.ICON_BY_CATEGORY_NAME[D.cat_name],selected:D.cat_name===P.cat_name,onClick:function(){return M(D.cat_name)},children:D.cat_name},D.cat_name)})}),P==null?void 0:P.recipes.map(function(D){return(0,e.jsx)(r.$n,{fluid:!0,ellipsis:!0,onClick:function(){return l("dispense_pipe",{ref:D.ref,bent:D.bent,category:P.cat_name})},children:D.pipe_name},D.pipe_name)})]})]})})}},28291:function(O,h,n){"use strict";n.r(h),n.d(h,{PlantAnalyzer:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){var u=(0,i.Oc)().data,o=u.seed,l=u.reagents,a=250;return o&&(a+=18*o.trait_info.length),l&&l.length&&(a+=55,a+=20*l.length),(0,e.jsx)(r.p8,{width:400,height:a,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.no_seed,c=l.seed,f=l.reagents;return a?(0,e.jsx)(t.wn,{title:"Analyzer Unused",children:"You should go scan a plant! There is no data currently loaded."}):(0,e.jsxs)(t.wn,{title:"Plant Information",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"print",onClick:function(){return o("print")},children:"Print Report"}),(0,e.jsx)(t.$n,{icon:"window-close",color:"red",onClick:function(){return o("close")}})]}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Plant Name",children:[c.name,"#",c.uid]}),(0,e.jsx)(t.Ki.Item,{label:"Endurance",children:c.endurance}),(0,e.jsx)(t.Ki.Item,{label:"Yield",children:c.yield}),(0,e.jsx)(t.Ki.Item,{label:"Maturation Time",children:c.maturation_time}),(0,e.jsx)(t.Ki.Item,{label:"Production Time",children:c.production_time}),(0,e.jsx)(t.Ki.Item,{label:"Potency",children:c.potency})]}),f.length&&(0,e.jsx)(t.wn,{title:"Plant Reagents",children:(0,e.jsx)(t.Ki,{children:f.map(function(m){return(0,e.jsxs)(t.Ki.Item,{label:m.name,children:[m.volume," unit(s)."]},m.name)})})})||null,(0,e.jsx)(t.wn,{title:"Other Data",children:c.trait_info.map(function(m){return(0,e.jsx)(t.az,{color:"label",mb:.4,children:m},m)})})]})}},12588:function(O,h,n){"use strict";n.r(h),n.d(h,{PlayerNotes:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.device_theme,a=o.filter,c=o.pages,f=o.ckeys,m=function(v){return v()};return(0,e.jsx)(r.p8,{title:"Player Notes",theme:l,width:400,height:500,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsxs)(t.wn,{title:"Player notes",children:[(0,e.jsx)(t.$n,{icon:"filter",onClick:function(){return u("filter_player_notes")},children:"Apply Filter"}),(0,e.jsx)(t.$n,{icon:"sidebar",onClick:function(){return u("open_legacy_ui")},children:"Open Legacy UI"}),(0,e.jsx)(t.cG,{}),(0,e.jsx)(t.$n.Input,{onCommit:function(v,j){return u("show_player_info",{name:j})},children:"CKEY to Open"}),(0,e.jsx)(t.cG,{vertical:!0}),(0,e.jsx)(t.$n,{color:"green",onClick:function(){return u("clear_player_info_filter")},children:a}),(0,e.jsx)(t.cG,{}),(0,e.jsx)(t.XI,{children:f.map(function(v){return(0,e.jsx)(t.XI.Row,{children:(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,color:"transparent",icon:"user",onClick:function(){return u("show_player_info",{name:v.name})},children:v.name})})},v.name)})}),(0,e.jsx)(t.cG,{}),m(function(){for(var v=function(y){j.push((0,e.jsx)(t.$n,{onClick:function(){return u("set_page",{index:y})},children:y},y))},j=[],E=1;E=.5&&"good"||W>.15&&"average"||"bad";return(0,e.jsx)(s.p8,{width:450,height:340,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[!f&&(0,e.jsx)(r.IC,{children:"Generator not anchored."}),(0,e.jsx)(r.wn,{title:"Status",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Power switch",children:(0,e.jsx)(r.$n,{icon:m?"power-off":"times",onClick:function(){return o("toggle_power")},selected:m,disabled:!v,children:m?"On":"Off"})}),(0,e.jsx)(r.Ki.Item,{label:"Fuel Type",buttons:a>=1&&(0,e.jsx)(r.$n,{ml:1,icon:"eject",disabled:m,onClick:function(){return o("eject")},children:"Eject"}),children:(0,e.jsxs)(r.az,{color:$,children:[a,"cm\xB3 ",j]})}),(0,e.jsx)(r.Ki.Item,{label:"Current fuel level",children:(0,e.jsxs)(r.z2,{value:a/c,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]},children:[a,"cm\xB3 / ",c,"cm\xB3"]})}),(0,e.jsxs)(r.Ki.Item,{label:"Fuel Usage",children:[E," cm\xB3/s"]}),(0,e.jsx)(r.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(r.z2,{value:y,maxValue:M+30,color:P?"bad":"good",children:[(0,i.Mg)(y),"\xB0C"]})})]})}),(0,e.jsx)(r.wn,{title:"Output",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Current output",color:D?"bad":void 0,children:S}),(0,e.jsxs)(r.Ki.Item,{label:"Adjust output",children:[(0,e.jsx)(r.$n,{icon:"minus",onClick:function(){return o("lower_power")},children:B}),(0,e.jsx)(r.$n,{icon:"plus",onClick:function(){return o("higher_power")},children:B})]}),(0,e.jsx)(r.Ki.Item,{label:"Power available",children:(0,e.jsx)(r.az,{inline:!0,color:!T&&"bad",children:T?L:"Unconnected"})})]})})]})})}},31991:function(O,h,n){"use strict";n.r(h),n.d(h,{PortablePump:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(95823),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.direction,c=l.target_pressure,f=l.default_pressure,m=l.min_pressure,v=l.max_pressure;return(0,e.jsx)(r.p8,{width:330,height:375,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.PortableBasicInfo,{}),(0,e.jsx)(t.wn,{title:"Pump",buttons:(0,e.jsx)(t.$n,{icon:a?"sign-in-alt":"sign-out-alt",selected:a,onClick:function(){return o("direction")},children:a?"In":"Out"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Output",children:(0,e.jsx)(t.Ap,{mt:"0.4em",animated:!0,minValue:m,maxValue:v,value:c,unit:"kPa",stepPixelSize:.3,onChange:function(j,E){return o("pressure",{pressure:E})}})}),(0,e.jsxs)(t.Ki.Item,{label:"Presets",children:[(0,e.jsx)(t.$n,{icon:"minus",disabled:c===m,onClick:function(){return o("pressure",{pressure:"min"})}}),(0,e.jsx)(t.$n,{icon:"sync",disabled:c===f,onClick:function(){return o("pressure",{pressure:"reset"})}}),(0,e.jsx)(t.$n,{icon:"plus",disabled:c===v,onClick:function(){return o("pressure",{pressure:"max"})}})]})]})})]})})}},33353:function(O,h,n){"use strict";n.r(h),n.d(h,{PortableScrubber:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(95823),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.rate,c=l.minrate,f=l.maxrate;return(0,e.jsx)(r.p8,{width:320,height:350,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(s.PortableBasicInfo,{}),(0,e.jsx)(t.wn,{title:"Power Regulator",children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Volume Rate",children:(0,e.jsx)(t.Ap,{mt:"0.4em",animated:!0,minValue:c,maxValue:f,value:a,unit:"L/s",onChange:function(m,v){return o("volume_adj",{vol:v})}})})})})]})})}},96527:function(O,h,n){"use strict";n.r(h),n.d(h,{PortableTurret:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.locked,a=o.on,c=o.lethal,f=o.lethal_is_configurable,m=o.targetting_is_configurable,v=o.check_weapons,j=o.neutralize_noaccess,E=o.neutralize_norecord,y=o.neutralize_criminals,M=o.neutralize_all,P=o.neutralize_nonsynth,D=o.neutralize_unidentified,S=o.neutralize_down;return(0,e.jsx)(r.p8,{width:500,height:400,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.IC,{children:["Swipe an ID card to ",l?"unlock":"lock"," this interface."]}),(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Status",children:(0,e.jsx)(t.$n,{icon:a?"power-off":"times",selected:a,disabled:l,onClick:function(){return u("power")},children:a?"On":"Off"})}),!!f&&(0,e.jsx)(t.Ki.Item,{label:"Lethals",children:(0,e.jsx)(t.$n,{icon:c?"exclamation-triangle":"times",color:c?"bad":"",disabled:l,onClick:function(){return u("lethal")},children:c?"On":"Off"})})]})}),!!m&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.wn,{title:"Humanoid Targets",children:[(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:y,disabled:l,onClick:function(){return u("autharrest")},children:"Wanted Criminals"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:E,disabled:l,onClick:function(){return u("authnorecord")},children:"No Sec Record"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:v,disabled:l,onClick:function(){return u("authweapon")},children:"Unauthorized Weapons"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:j,disabled:l,onClick:function(){return u("authaccess")},children:"Unauthorized Access"})]}),(0,e.jsxs)(t.wn,{title:"Other Targets",children:[(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:D,disabled:l,onClick:function(){return u("authxeno")},children:"Unidentified Lifesigns (Xenos, Animals, Etc)"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:P,disabled:l,onClick:function(){return u("authsynth")},children:"All Non-Synthetics"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:S,disabled:l,onClick:function(){return u("authdown")},children:"Downed Targets"}),(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:M,disabled:l,onClick:function(){return u("authall")},children:"All Entities"})]})]})]})})}},91276:function(O,h,n){"use strict";n.r(h),n.d(h,{PowerMonitorContent:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(27971),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.all_sensors,a=o.focus;if(a)return(0,e.jsx)(r.PowerMonitorFocus,{focus:a});var c=(0,e.jsx)(t.az,{color:"bad",children:"No sensors detected"});return l&&(c=(0,e.jsx)(t.XI,{children:l.map(function(f){return(0,e.jsx)(t.XI.Row,{children:(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:f.alarm?"bell":"sign-in-alt",onClick:function(){return u("setsensor",{id:f.name})},children:f.name})})},f.name)})})),(0,e.jsx)(t.wn,{title:"No active sensor. Listing all.",buttons:(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return u("refresh")},children:"Scan For Sensors"}),children:c})}},27971:function(O,h,n){"use strict";n.r(h),n.d(h,{PowerMonitorFocus:function(){return c}});var e=n(20462),i=n(7402),t=n(15813),r=n(4089),s=n(61358),g=n(7081),x=n(88569),u=n(92595),o=n(69788),l=n(88040);function a(){return a=Object.assign||function(f){for(var m=1;m50?"battery-half":"battery-quarter")||x===1&&"bolt"||x===2&&"battery-full"||"",color:x===0&&(u>50?"yellow":"red")||x===1&&"yellow"||x===2&&"green"}),(0,e.jsx)(t.az,{inline:!0,width:"36px",textAlign:"right",children:(0,i.Mg)(u)+"%"})]})},s=function(g){var x=g.status,u=!!(x&2),o=!!(x&1),l=(u?"On":"Off")+(" ["+(o?"auto":"manual")+"]");return(0,e.jsx)(t.m_,{content:l,children:(0,e.jsx)(t.BK,{color:u?"good":"bad",content:o?void 0:"M"})})}},92595:function(O,h,n){"use strict";n.r(h),n.d(h,{PEAK_DRAW:function(){return e}});var e=5e5},69788:function(O,h,n){"use strict";n.r(h),n.d(h,{powerRank:function(){return e}});function e(i){var t=String(i.split(" ")[1]).toLowerCase();return["w","kw","mw","gw"].indexOf(t)}},53414:function(O,h,n){"use strict";n.r(h),n.d(h,{PowerMonitor:function(){return r}});var e=n(20462),i=n(15581),t=n(91276),r=function(){return(0,e.jsx)(i.p8,{width:550,height:700,children:(0,e.jsx)(i.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.PowerMonitorContent,{})})})}},77243:function(O,h,n){"use strict";n.r(h)},96824:function(O,h,n){"use strict";n.r(h),n.d(h,{PressureRegulator:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.pressure_set,c=o.max_pressure,f=o.input_pressure,m=o.output_pressure,v=o.regulate_mode,j=o.set_flow_rate,E=o.last_flow_rate;return(0,e.jsx)(r.p8,{width:470,height:370,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Input Pressure",children:[(0,e.jsx)(t.zv,{value:f/100})," kPa"]}),(0,e.jsxs)(t.Ki.Item,{label:"Output Pressure",children:[(0,e.jsx)(t.zv,{value:m/100})," kPa"]}),(0,e.jsxs)(t.Ki.Item,{label:"Flow Rate",children:[(0,e.jsx)(t.zv,{value:E/10})," L/s"]})]})}),(0,e.jsx)(t.wn,{title:"Controls",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return u("toggle_valve")},children:l?"Unlocked":"Closed"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Pressure Regulation",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"power-off",selected:v===0,onClick:function(){return u("regulate_mode",{mode:"off"})},children:"Off"}),(0,e.jsx)(t.$n,{icon:"compress-arrows-alt",selected:v===1,onClick:function(){return u("regulate_mode",{mode:"input"})},children:"Input"}),(0,e.jsx)(t.$n,{icon:"expand-arrows-alt",selected:v===2,onClick:function(){return u("regulate_mode",{mode:"output"})},children:"Output"})]})}),(0,e.jsxs)(t.Ki.Item,{label:"Desired Output Pressure",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"compress-arrows-alt",onClick:function(){return u("set_press",{press:"min"})},children:"MIN"}),(0,e.jsx)(t.$n,{icon:"expand-arrows-alt",onClick:function(){return u("set_press",{press:"max"})},children:"MAX"}),(0,e.jsx)(t.$n,{icon:"wrench",onClick:function(){return u("set_press",{press:"set"})},children:"SET"})]}),children:[a/100," kPa"]}),(0,e.jsxs)(t.Ki.Item,{label:"Flow Rate Limit",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"compress-arrows-alt",onClick:function(){return u("set_flow_rate",{press:"min"})},children:"MIN"}),(0,e.jsx)(t.$n,{icon:"expand-arrows-alt",onClick:function(){return u("set_flow_rate",{press:"max"})},children:"MAX"}),(0,e.jsx)(t.$n,{icon:"wrench",onClick:function(){return u("set_flow_rate",{press:"set"})},children:"SET"})]}),children:[j/10," L/s"]})]})})]})})}},56257:function(O,h,n){"use strict";n.r(h),n.d(h,{PrisonerManagement:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.locked,a=o.chemImplants,c=o.trackImplants;return(0,e.jsx)(r.p8,{width:500,height:400,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:l&&(0,e.jsxs)(t.wn,{title:"Locked",textAlign:"center",children:["This interface is currently locked.",(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"unlock",onClick:function(){return u("lock")},children:"Unlock"})})]})||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"Interface Lock",buttons:(0,e.jsx)(t.$n,{icon:"lock",onClick:function(){return u("lock")},children:"Lock Interface"})}),(0,e.jsx)(t.wn,{title:"Chemical Implants",children:a.length&&(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Host"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Units Remaining"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Inject"})]}),a.map(function(f){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:f.host}),(0,e.jsxs)(t.XI.Cell,{textAlign:"center",children:[f.units,"u remaining"]}),(0,e.jsxs)(t.XI.Cell,{textAlign:"center",children:[(0,e.jsx)(t.$n,{onClick:function(){return u("inject",{imp:f.ref,val:1})},children:"(1)"}),(0,e.jsx)(t.$n,{onClick:function(){return u("inject",{imp:f.ref,val:5})},children:"(5)"}),(0,e.jsx)(t.$n,{onClick:function(){return u("inject",{imp:f.ref,val:10})},children:"(10)"})]})]},f.ref)})]})||(0,e.jsx)(t.az,{color:"average",children:"No chemical implants found."})}),(0,e.jsx)(t.wn,{title:"Tracking Implants",children:c.length&&(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Host"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Location"}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:"Message"})]}),c.map(function(f){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsxs)(t.XI.Cell,{textAlign:"center",children:[f.host," (",f.id,")"]}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:f.loc}),(0,e.jsx)(t.XI.Cell,{textAlign:"center",children:(0,e.jsx)(t.$n,{onClick:function(){return u("warn",{imp:f.ref})},children:"Message"})})]},f.ref)})]})||(0,e.jsx)(t.az,{color:"average",children:"No chemical implants found."})})]})})})}},13353:function(O,h,n){"use strict";n.r(h),n.d(h,{RCONBreakerList:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.breaker_info;return(0,e.jsx)(t.wn,{title:"Breakers",children:(0,e.jsx)(t.Ki,{children:o?o.map(function(l){return(0,e.jsx)(t.Ki.Item,{label:l.RCON_tag,buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l.enabled,color:l.enabled?null:"bad",onClick:function(){return x("toggle_breaker",{breaker:l.RCON_tag})},children:l.enabled?"Enabled":"Disabled"})},l.RCON_tag)}):(0,e.jsx)(t.Ki.Item,{color:"bad",children:"No breakers detected."})})})}},72778:function(O,h,n){"use strict";n.r(h),n.d(h,{RCONContent:function(){return g}});var e=n(20462),i=n(61358),t=n(88569),r=n(13353),s=n(14313),g=function(x){var u=(0,i.useState)(0),o=u[0],l=u[1],a=[];return a[0]=(0,e.jsx)(s.RCONSmesList,{}),a[1]=(0,e.jsx)(r.RCONBreakerList,{}),(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsxs)(t.tU.Tab,{selected:o===0,onClick:function(){return l(0)},children:[(0,e.jsx)(t.In,{name:"power-off"})," SMESs"]},"SMESs"),(0,e.jsxs)(t.tU.Tab,{selected:o===1,onClick:function(){return l(1)},children:[(0,e.jsx)(t.In,{name:"bolt"})," Breakers"]},"Breakers")]}),(0,e.jsx)(t.az,{m:2,children:a[o]||""})]})}},54323:function(O,h,n){"use strict";n.r(h),n.d(h,{SMESControls:function(){return x}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(41242),g=n(78784),x=function(u){var o=(0,t.Oc)().act,l=u.way,a=u.smes,c=a.inputAttempt,f=a.inputting,m=a.inputLevel,v=a.inputLevelMax,j=a.inputAvailable,E=a.outputAttempt,y=a.outputting,M=a.outputLevel,P=a.outputLevelMax,D=a.outputUsed,S=a.RCON_tag,B=0,T=0,L=0,W,$,k,z,X,G="";switch(l){case"input":B=m,T=v,L=j,W="IN",$="smes_in_toggle",k="smes_in_set",z=c,X=c?f?"green":"yellow":void 0,G=c?f?"The SMES is drawing power.":"The SMES lacks power.":"The SMES input is off.";break;case"output":B=M,T=P,L=D,W="OUT",$="smes_out_toggle",k="smes_out_set",z=E,X=E?y?"green":"yellow":void 0,G=E?y?"The SMES is outputting power.":"The SMES lacks any draw.":"The SMES output is off.";break}return(0,e.jsxs)(r.BJ,{fill:!0,children:[(0,e.jsx)(r.BJ.Item,{basis:"20%",children:(0,i.ZH)(l)}),(0,e.jsx)(r.BJ.Item,{grow:1,children:(0,e.jsxs)(r.BJ,{children:[(0,e.jsx)(r.BJ.Item,{children:(0,e.jsx)(r.$n,{icon:"power-off",color:X,tooltip:G,onClick:function(){return o($,{smes:S})}})}),(0,e.jsxs)(r.BJ.Item,{children:[(0,e.jsx)(r.$n,{icon:"fast-backward",disabled:B===0,onClick:function(){return o(k,{target:"min",smes:S})}}),(0,e.jsx)(r.$n,{icon:"backward",disabled:B===0,onClick:function(){return o(k,{adjust:-1e4,smes:S})}})]}),(0,e.jsx)(r.BJ.Item,{grow:1,children:(0,e.jsx)(r.Ap,{value:B/g.POWER_MUL,fillValue:L/g.POWER_MUL,minValue:0,maxValue:T/g.POWER_MUL,step:5,stepPixelSize:4,format:function(Q){return(0,s.d5)(L,1)+"/"+(0,s.d5)(Q*g.POWER_MUL,1)},onDrag:function(Q,ee){return o(k,{target:ee*g.POWER_MUL,smes:S})}})}),(0,e.jsxs)(r.BJ.Item,{children:[(0,e.jsx)(r.$n,{icon:"forward",disabled:B===T,onClick:function(){return o(k,{adjust:1e4,smes:S})}}),(0,e.jsx)(r.$n,{icon:"fast-forward",disabled:B===T,onClick:function(){return o(k,{target:"max",smes:S})}})]})]})})]})}},46380:function(O,h,n){"use strict";n.r(h),n.d(h,{SMESItem:function(){return s}});var e=n(20462),i=n(4089),t=n(88569),r=n(54323),s=function(g){var x=g.smes,u=x.capacityPercent,o=x.capacity,l=x.charge,a=x.RCON_tag;return(0,e.jsxs)(t.BJ,{vertical:!0,children:[(0,e.jsx)(t.BJ.Item,{children:(0,e.jsxs)(t.BJ,{fill:!0,justify:"space-between",children:[(0,e.jsx)(t.BJ.Item,{flexBasis:"40%",fontSize:1.2,children:a}),(0,e.jsx)(t.BJ.Item,{grow:1,children:(0,e.jsx)(t.z2,{value:u*.01,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]},children:(0,i.Mg)(l/(1e3*60),1)+"kWh / "+(0,i.Mg)(o/(1e3*60))+"kWh ("+u+"%)"})})]})}),(0,e.jsx)(t.BJ.Item,{children:(0,e.jsx)(r.SMESControls,{smes:g.smes,way:"input"})}),(0,e.jsx)(t.BJ.Item,{children:(0,e.jsx)(r.SMESControls,{smes:g.smes,way:"output"})}),(0,e.jsx)(t.BJ.Divider,{})]})}},14313:function(O,h,n){"use strict";n.r(h),n.d(h,{RCONSmesList:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(46380),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.smes_info,a=o.pages,c=o.current_page,f=function(m){return m()};return(0,e.jsxs)(t.wn,{title:"SMESs (Page "+c+")",children:[(0,e.jsx)(t.BJ,{vertical:!0,children:l.map(function(m){return(0,e.jsx)(t.BJ.Item,{children:(0,e.jsx)(r.SMESItem,{smes:m})},m.RCON_tag)})}),"Page Selection:",(0,e.jsx)("br",{}),f(function(){for(var m=function(E){v.push((0,e.jsx)(t.$n,{selected:c===E,onClick:function(){return u("set_smes_page",{index:E})},children:E},E))},v=[],j=1;j=2?(0,e.jsx)(r.az,{color:"bad",children:"-- MODULE DESTROYED --"}):(0,e.jsxs)(r.so,{spacing:1,children:[(0,e.jsxs)(r.so.Item,{grow:1,children:[(0,e.jsxs)(r.az,{color:"average",children:["Engage: ",m.engagecost]}),(0,e.jsxs)(r.az,{color:"average",children:["Active: ",m.activecost]}),(0,e.jsxs)(r.az,{color:"average",children:["Passive: ",m.passivecost]})]}),(0,e.jsx)(r.so.Item,{grow:1,children:m.desc})]}),m.charges?(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.wn,{title:"Module Charges",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Selected",children:(0,i.ZH)(m.chargetype)}),m.charges.map(function(j,E){return(0,e.jsx)(r.Ki.Item,{label:(0,i.ZH)(j.caption),children:(0,e.jsx)(r.$n,{selected:m.realchargetype===j.index,icon:"arrow-right",onClick:function(){return u("interact_module",{module:m.index,module_mode:"select_charge_type",charge_type:j.index})}})},j.caption)})]})})}):""]},v)})]})}},72273:function(O,h,n){"use strict";n.r(h),n.d(h,{RIGSuitStatus:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.chargestatus,l=u.charge,a=u.maxcharge,c=u.aioverride,f=u.sealing,m=u.sealed,v=u.cooling,j=u.emagged,E=u.securitycheck,y=u.coverlock,M=(0,e.jsx)(t.$n,{icon:f?"redo":m?"power-off":"lock-open",iconSpin:f,disabled:f,selected:m,onClick:function(){return x("toggle_seals")},children:"Suit "+(f?"seals working...":m?"is Active":"is Inactive")}),P=(0,e.jsx)(t.$n,{icon:"power-off",selected:v,onClick:function(){return x("toggle_cooling")},children:"Suit Cooling "+(v?"is Active":"is Inactive")}),D=(0,e.jsx)(t.$n,{selected:c,icon:"robot",onClick:function(){return x("toggle_ai_control")},children:"AI Control "+(c?"Enabled":"Disabled")});return(0,e.jsx)(t.wn,{title:"Status",buttons:(0,e.jsxs)(e.Fragment,{children:[M,D,P]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Power Supply",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:50,value:o,ranges:{good:[35,1/0],average:[15,35],bad:[-1/0,15]},children:[l," / ",a]})}),(0,e.jsx)(t.Ki.Item,{label:"Cover Status",children:j||!E?(0,e.jsx)(t.az,{color:"bad",children:"Error - Maintenance Lock Control Offline"}):(0,e.jsx)(t.$n,{icon:y?"lock":"lock-open",onClick:function(){return x("toggle_suit_lock")},children:y?"Locked":"Unlocked"})})]})})}},62938:function(O,h,n){"use strict";n.r(h),n.d(h,{RIGSuit:function(){return u}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(57483),g=n(24760),x=n(72273),u=function(o){var l=(0,i.Oc)().data,a=l.interfacelock,c=l.malf,f=l.aicontrol,m=l.ai,v=null;return a||c?v=(0,e.jsx)(t.az,{color:"bad",children:"--HARDSUIT INTERFACE OFFLINE--"}):!m&&f&&(v=(0,e.jsx)(t.az,{color:"bad",children:"-- HARDSUIT CONTROL OVERRIDDEN BY AI --"})),(0,e.jsx)(r.p8,{height:480,width:550,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:v||(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(x.RIGSuitStatus,{}),(0,e.jsx)(s.RIGSuitHardware,{}),(0,e.jsx)(g.RIGSuitModules,{})]})})})}},12671:function(O,h,n){"use strict";n.r(h)},36863:function(O,h,n){"use strict";n.r(h),n.d(h,{Radio:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(79500),g=n(15581),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.rawfreq,f=a.minFrequency,m=a.maxFrequency,v=a.listening,j=a.broadcasting,E=a.subspace,y=a.subspaceSwitchable,M=a.chan_list,P=a.loudspeaker,D=a.mic_cut,S=a.spk_cut,B=a.useSyndMode,T=s.Fo.find(function(W){return W.freq===Number(c)}),L=156;return M&&M.length>0?L+=M.length*28+6:L+=24,y&&(L+=38),(0,e.jsx)(g.p8,{width:310,height:L,theme:B?"syndicate":"",children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Frequency",children:[(0,e.jsx)(r.Q7,{animated:!0,unit:"kHz",step:.2,stepPixelSize:10,minValue:f/10,maxValue:m/10,value:c/10,format:function(W){return(0,i.Mg)(W,1)},onDrag:function(W){return l("setFrequency",{freq:(0,i.LI)(W*10,0)})}}),T&&(0,e.jsxs)(r.az,{inline:!0,color:T.color,ml:2,children:["[",T.name,"]"]})]}),(0,e.jsxs)(r.Ki.Item,{label:"Audio",children:[(0,e.jsx)(r.$n,{textAlign:"center",width:"37px",icon:v?"volume-up":"volume-mute",selected:v,disabled:S,onClick:function(){return l("listen")}}),(0,e.jsx)(r.$n,{textAlign:"center",width:"37px",icon:j?"microphone":"microphone-slash",selected:j,disabled:D,onClick:function(){return l("broadcast")}}),!!y&&(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:"bullhorn",selected:E,onClick:function(){return l("subspace")},children:"Subspace Tx "+(E?"ON":"OFF")})}),!!y&&(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:P?"volume-up":"volume-mute",selected:P,onClick:function(){return l("toggleLoudspeaker")},children:"Loudspeaker"})})]})]})}),(0,e.jsxs)(r.wn,{title:"Channels",children:[(!M||M.length===0)&&(0,e.jsx)(r.az,{inline:!0,color:"bad",children:"No channels detected."}),(0,e.jsx)(r.Ki,{children:M?M.map(function(W){var $=s.Fo.find(function(z){return z.freq===Number(W.freq)}),k="default";return $&&(k=$.color),(0,e.jsx)(r.Ki.Item,{label:W.display_name,labelColor:k,textAlign:"right",children:W.secure_channel&&E?(0,e.jsx)(r.$n,{icon:W.sec_channel_listen?"square-o":"check-square-o",selected:!W.sec_channel_listen,onClick:function(){return l("channel",{channel:W.chan})},children:W.sec_channel_listen?"Off":"On"}):(0,e.jsx)(r.$n,{selected:W.chan===c,onClick:function(){return l("specFreq",{channel:W.chan})},children:"Switch"})},W.chan)}):null})]})]})})}},49040:function(O,h,n){"use strict";n.r(h),n.d(h,{LayerSection:function(){return s}});var e=n(20462),i=n(65380),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),u=x.act,o=x.data,l=o.category,a=o.piping_layer,c=o.pipe_layers,f=o.preview_rows.flatMap(function(m){return m.previews});return(0,e.jsxs)(r.wn,{fill:!0,width:7.5,children:[l===0&&(0,e.jsx)(r.BJ,{vertical:!0,mb:1,children:Object.keys(c).map(function(m){return(0,e.jsx)(r.BJ.Item,{my:0,children:(0,e.jsx)(r.$n.Checkbox,{checked:c[m]===a,onClick:function(){return u("piping_layer",{piping_layer:c[m]})},children:m})},m)})}),(0,e.jsx)(r.az,{width:"120px",children:f.map(function(m){return(0,e.jsx)(r.$n,{ml:0,tooltip:m.dir_name,selected:m.selected,style:{width:"40px",height:"40px",padding:"0"},onClick:function(){return u("setdir",{dir:m.dir,flipped:m.flipped})},children:(0,e.jsx)(r.az,{className:(0,i.Ly)(["pipes32x32",m.dir+"-"+m.icon_state]),style:{transform:"scale(1.5) translate(9.5%, 9.5%)"}})},m.dir)})})]})}},22915:function(O,h,n){"use strict";n.r(h),n.d(h,{PipeTypeSection:function(){return g}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(66947),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.categories,c=a===void 0?[]:a,f=(0,i.useState)("categoryName"),m=f[0],v=f[1],j=c.find(function(E){return E.cat_name===m})||c[0];return(0,e.jsxs)(r.wn,{fill:!0,scrollable:!0,children:[(0,e.jsx)(r.tU,{fluid:!0,children:c.map(function(E,y){return(0,e.jsx)(r.tU.Tab,{icon:s.ICON_BY_CATEGORY_NAME[E.cat_name],selected:E.cat_name===j.cat_name,onClick:function(){return v(E.cat_name)},children:E.cat_name},E.cat_name)})}),j==null?void 0:j.recipes.map(function(E){return(0,e.jsx)(r.$n.Checkbox,{fluid:!0,ellipsis:!0,checked:E.selected,tooltip:E.pipe_name,onClick:function(){return o("pipe_type",{pipe_type:E.pipe_index,category:j.cat_name})},children:E.pipe_name},E.pipe_index)})]})}},59015:function(O,h,n){"use strict";n.r(h),n.d(h,{SelectionSection:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(66947),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.category,c=l.selected_color,f=l.mode,m=l.paint_colors;return(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Category",children:s.ROOT_CATEGORIES.map(function(v,j){return(0,e.jsx)(r.$n,{selected:a===j,icon:s.ICON_BY_CATEGORY_NAME[v],color:"transparent",onClick:function(){return o("category",{category:j})},children:v},v)})}),(0,e.jsx)(r.Ki.Item,{label:"Modes",children:(0,e.jsx)(r.BJ,{fill:!0,children:s.TOOLS.map(function(v){return(0,e.jsx)(r.BJ.Item,{grow:!0,children:(0,e.jsx)(r.$n.Checkbox,{checked:f&v.bitmask,fluid:!0,onClick:function(){return o("mode",{mode:v.bitmask})},children:v.name})},v.bitmask)})})}),(0,e.jsxs)(r.Ki.Item,{label:"Color",children:[(0,e.jsx)(r.az,{inline:!0,width:"64px",color:m[c],children:(0,i.ZH)(c)}),Object.keys(m).map(function(v){return(0,e.jsx)(r.BK,{ml:1,color:m[v],onClick:function(){return o("color",{paint_color:v})}},v)})]})]})})}},66947:function(O,h,n){"use strict";n.r(h),n.d(h,{ICON_BY_CATEGORY_NAME:function(){return i},ROOT_CATEGORIES:function(){return e},TOOLS:function(){return t}});var e=["Atmospherics","Disposals"],i={Atmospherics:"wrench",Disposals:"trash-alt","Transit Tubes":"bus",Pipes:"grip-lines","Disposal Pipes":"grip-lines",Devices:"microchip","Heat Exchange":"thermometer-half","Insulated pipes":"snowflake","Station Equipment":"microchip"},t=[{name:"Dispense",bitmask:1},{name:"Connect",bitmask:2},{name:"Destroy",bitmask:4},{name:"Paint",bitmask:8}]},98838:function(O,h,n){"use strict";n.r(h),n.d(h,{RapidPipeDispenser:function(){return x}});var e=n(20462),i=n(88569),t=n(15581),r=n(49040),s=n(22915),g=n(59015),x=function(u){return(0,e.jsx)(t.p8,{width:550,height:570,children:(0,e.jsx)(t.p8.Content,{children:(0,e.jsxs)(i.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(i.BJ.Item,{children:(0,e.jsx)(g.SelectionSection,{})}),(0,e.jsx)(i.BJ.Item,{grow:!0,children:(0,e.jsxs)(i.BJ,{fill:!0,children:[(0,e.jsx)(i.BJ.Item,{children:(0,e.jsx)(i.BJ,{vertical:!0,fill:!0,children:(0,e.jsx)(i.BJ.Item,{grow:!0,children:(0,e.jsx)(r.LayerSection,{})})})}),(0,e.jsx)(i.BJ.Item,{grow:!0,children:(0,e.jsx)(s.PipeTypeSection,{})})]})})]})})})}},1963:function(O,h,n){"use strict";n.r(h)},60195:function(O,h,n){"use strict";n.r(h),n.d(h,{RequestConsoleAssistance:function(){return g},RequestConsoleRelay:function(){return x},RequestConsoleSupplies:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(36219),s=function(u){var o=(0,i.Oc)().data,l=o.department,a=o.supply_dept;return(0,e.jsx)(t.wn,{title:"Supplies",children:(0,e.jsx)(r.RequestConsoleSendMenu,{dept_list:a,department:l})})},g=function(u){var o=(0,i.Oc)().data,l=o.department,a=o.assist_dept;return(0,e.jsx)(t.wn,{title:"Request assistance from another department",children:(0,e.jsx)(r.RequestConsoleSendMenu,{dept_list:a,department:l})})},x=function(u){var o=(0,i.Oc)().data,l=o.department,a=o.info_dept;return(0,e.jsx)(t.wn,{title:"Report Anonymous Information",children:(0,e.jsx)(r.RequestConsoleSendMenu,{dept_list:a,department:l})})}},4584:function(O,h,n){"use strict";n.r(h),n.d(h,{RequestConsoleAnnounce:function(){return u},RequestConsoleMessageAuth:function(){return x},RequestConsoleViewMessages:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(34416),g=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.message_log;return(0,e.jsx)(r.wn,{title:"Messages",children:f.length&&f.map(function(m,v){return(0,e.jsx)(r.Ki.Item,{label:(0,i.jT)(m[0]),buttons:(0,e.jsx)(r.$n,{icon:"print",onClick:function(){return a("print",{print:v+1})},children:"Print"}),children:(0,i.jT)(m[1])},v)})||(0,e.jsx)(r.az,{children:"No messages."})})},x=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.message,m=c.recipient,v=c.priority,j=c.msgStamped,E=c.msgVerified;return(0,e.jsxs)(r.wn,{title:"Message Authentication",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Message for "+m,children:f}),(0,e.jsx)(r.Ki.Item,{label:"Priority",children:v===2?"High Priority":v===1?"Normal Priority":"Unknown"}),(0,e.jsx)(r.Ki.Item,{label:"Validated By",color:E?"good":"bad",children:(0,i.jT)(E)||"No Validation"}),(0,e.jsx)(r.Ki.Item,{label:"Stamped By",color:j?"good":"bad",children:(0,i.jT)(j)||"No Stamp"})]}),(0,e.jsx)(r.$n,{mt:1,icon:"share",onClick:function(){return a("department",{department:m})},children:"Send Message"}),(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return a("setScreen",{setScreen:s.RCS_MAINMENU})},children:"Back"})]})},u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.message,m=c.announceAuth;return(0,e.jsxs)(r.wn,{title:"Send Station-Wide Announcement",children:[m&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.az,{bold:!0,color:"good",mb:1,children:"ID Verified. Authentication Accepted."}),(0,e.jsx)(r.wn,{title:"Message",mt:1,maxHeight:"200px",scrollable:!0,buttons:(0,e.jsx)(r.$n,{ml:1,icon:"pen",onClick:function(){return a("writeAnnouncement")},children:"Edit"}),children:f||"No Message"})]})||(0,e.jsx)(r.az,{bold:!0,color:"bad",mb:1,children:"Swipe your ID card to authenticate yourself."}),(0,e.jsx)(r.$n,{disabled:!f||!m,icon:"share",onClick:function(){return a("sendAnnouncement")},children:"Announce"}),(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return a("setScreen",{setScreen:s.RCS_MAINMENU})},children:"Back"})]})}},36219:function(O,h,n){"use strict";n.r(h),n.d(h,{RequestConsoleSendFail:function(){return x},RequestConsoleSendMenu:function(){return s},RequestConsoleSendPass:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(34416),s=function(u){var o=(0,i.Oc)().act,l=u.dept_list,a=u.department;return(0,e.jsx)(t.Ki,{children:l.sort().map(function(c){return c!==a&&(0,e.jsx)(t.Ki.Item,{label:c,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"envelope-open-text",onClick:function(){return o("write",{write:c,priority:1})},children:"Message"}),(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return o("write",{write:c,priority:2})},children:"High Priority"})]})})||null})})},g=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data;return(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.az,{fontSize:2,color:"good",children:"Message Sent Successfully"}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"arrow-right",onClick:function(){return l("setScreen",{setScreen:r.RCS_MAINMENU})},children:"Continue"})})]})},x=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data;return(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.az,{fontSize:1.5,bold:!0,color:"bad",children:"An error occured. Message Not Sent."}),(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"arrow-right",onClick:function(){return l("setScreen",{setScreen:r.RCS_MAINMENU})},children:"Continue"})})]})}},11986:function(O,h,n){"use strict";n.r(h),n.d(h,{RequestConsoleSettings:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.silent;return(0,e.jsx)(t.wn,{title:"Settings",children:(0,e.jsxs)(t.$n,{selected:!o,icon:o?"volume-mute":"volume-up",onClick:function(){return x("toggleSilent")},children:["Speaker ",o?"OFF":"ON"]})})}},34416:function(O,h,n){"use strict";n.r(h),n.d(h,{RCS_ANNOUNCE:function(){return o},RCS_MAINMENU:function(){return e},RCS_MESSAUTH:function(){return u},RCS_RQASSIST:function(){return i},RCS_RQSUPPLY:function(){return t},RCS_SENDINFO:function(){return r},RCS_SENTFAIL:function(){return g},RCS_SENTPASS:function(){return s},RCS_VIEWMSGS:function(){return x}});var e=0,i=1,t=2,r=3,s=4,g=5,x=6,u=7,o=8},7291:function(O,h,n){"use strict";n.r(h),n.d(h,{RequestConsole:function(){return l}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(34416),g=n(4584),x=n(36219),u=n(11986),o=n(60195),l=function(a){var c=(0,i.Oc)(),f=c.act,m=c.data,v=m.screen,j=m.newmessagepriority,E=m.announcementConsole,y=[];return y[s.RCS_MAINMENU]=(0,e.jsx)(u.RequestConsoleSettings,{}),y[s.RCS_RQASSIST]=(0,e.jsx)(o.RequestConsoleAssistance,{}),y[s.RCS_RQSUPPLY]=(0,e.jsx)(o.RequestConsoleSupplies,{}),y[s.RCS_SENDINFO]=(0,e.jsx)(o.RequestConsoleRelay,{}),y[s.RCS_SENTPASS]=(0,e.jsx)(x.RequestConsoleSendPass,{}),y[s.RCS_SENTFAIL]=(0,e.jsx)(x.RequestConsoleSendFail,{}),y[s.RCS_VIEWMSGS]=(0,e.jsx)(g.RequestConsoleViewMessages,{}),y[s.RCS_MESSAUTH]=(0,e.jsx)(g.RequestConsoleMessageAuth,{}),y[s.RCS_ANNOUNCE]=(0,e.jsx)(g.RequestConsoleAnnounce,{}),(0,e.jsx)(r.p8,{width:520,height:410,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:v===s.RCS_VIEWMSGS,onClick:function(){return f("setScreen",{setScreen:s.RCS_VIEWMSGS})},icon:"envelope-open-text",children:"Messages"}),(0,e.jsx)(t.tU.Tab,{selected:v===s.RCS_RQASSIST,onClick:function(){return f("setScreen",{setScreen:s.RCS_RQASSIST})},icon:"share-square",children:"Assistance"}),(0,e.jsx)(t.tU.Tab,{selected:v===s.RCS_RQSUPPLY,onClick:function(){return f("setScreen",{setScreen:s.RCS_RQSUPPLY})},icon:"share-square",children:"Supplies"}),(0,e.jsx)(t.tU.Tab,{selected:v===s.RCS_SENDINFO,onClick:function(){return f("setScreen",{setScreen:s.RCS_SENDINFO})},icon:"share-square-o",children:"Report"}),E&&(0,e.jsx)(t.tU.Tab,{selected:v===s.RCS_ANNOUNCE,onClick:function(){return f("setScreen",{setScreen:s.RCS_ANNOUNCE})},icon:"volume-up",children:"Announce"})||null,(0,e.jsx)(t.tU.Tab,{selected:v===s.RCS_MAINMENU,onClick:function(){return f("setScreen",{setScreen:s.RCS_MAINMENU})},icon:"cog"})]}),j&&(0,e.jsx)(t.wn,{title:j>1?"NEW PRIORITY MESSAGES":"There are new messages!",color:j>1?"bad":"average",bold:j>1})||null,y[v]||""]})})}},22292:function(O,h,n){"use strict";n.r(h)},99930:function(O,h,n){"use strict";n.r(h),n.d(h,{PaginationChevrons:function(){return x},ResearchConsoleBuildMenu:function(){return g}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(69358),g=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=u.target,f=u.designs,m=u.buildName,v=u.buildFiveName;return c?(0,e.jsxs)(r.wn,{title:(0,s.paginationTitle)("Designs",a.builder_page),buttons:(0,e.jsx)(x,{target:"builder_page"}),children:[(0,e.jsx)(r.pd,{fluid:!0,placeholder:"Search for...",value:a.search,onInput:function(j,E){return l("search",{search:E})},mb:1}),f&&f.length?f.map(function(j){return(0,e.jsxs)(i.Fragment,{children:[(0,e.jsxs)(r.so,{width:"100%",justify:"space-between",children:[(0,e.jsx)(r.so.Item,{width:"40%",style:{"word-wrap":"break-all"},children:j.name}),(0,e.jsxs)(r.so.Item,{width:"15%",textAlign:"center",children:[(0,e.jsx)(r.$n,{mb:-1,icon:"wrench",onClick:function(){return l(m,{build:j.id,imprint:j.id})},children:"Build"}),v&&(0,e.jsx)(r.$n,{mb:-1,onClick:function(){return l(v,{build:j.id,imprint:j.id})},children:"x5"})]}),(0,e.jsxs)(r.so.Item,{width:"45%",style:{"word-wrap":"break-all"},children:[(0,e.jsx)(r.az,{inline:!0,color:"label",children:j.mat_list.join(" ")}),(0,e.jsx)(r.az,{inline:!0,color:"average",ml:1,children:j.chem_list.join(" ")})]})]}),(0,e.jsx)(r.cG,{})]},j.id)}):(0,e.jsx)(r.az,{children:"No items could be found matching the parameters (page or search)."})]}):(0,e.jsx)(r.az,{color:"bad",children:"Error"})},x=function(u){var o=(0,t.Oc)().act,l=u.target;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return o(l,{reset:!0})}}),(0,e.jsx)(r.$n,{icon:"chevron-left",onClick:function(){return o(l,{reverse:-1})}}),(0,e.jsx)(r.$n,{icon:"chevron-right",onClick:function(){return o(l,{reverse:1})}})]})}},23119:function(O,h,n){"use strict";n.r(h),n.d(h,{ResearchConsoleConstructor:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(95411),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=g.name,a=g.matsStates,c=g.onMatsState,f=g.protoTab,m=g.onProtoTab,v=g.linked,j=g.designs;if(!v||!v.present)return(0,e.jsxs)(t.wn,{title:l,children:["No ",l," found."]});var E=v.total_materials,y=v.max_materials,M=v.total_volume,P=v.max_volume,D=v.busy,S=v.mats,B=v.reagents,T=v.queue,L="transparent",W=!1,$="layer-group";D?($="hammer",L="average",W=!0):T&&T.length&&($="sync",L="green",W=!0);var k=[];return k[0]=(0,e.jsx)(r.ResearchConsoleConstructorMenue,{name:l,linked:v,designs:j}),k[1]=(0,e.jsx)(r.ResearchConsoleConstructorQueue,{name:l,busy:D,queue:T}),k[2]=(0,e.jsx)(r.ResearchConsoleConstructorMats,{name:l,mats:S,matsStates:a,onMatsState:c}),k[3]=(0,e.jsx)(r.ResearchConsoleConstructorChems,{name:l,reagents:B}),(0,e.jsxs)(t.wn,{title:l,buttons:D&&(0,e.jsx)(t.In,{name:"sync",spin:!0})||null,children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Materials",children:(0,e.jsxs)(t.z2,{value:E,maxValue:y,children:[E," cm\xB3 / ",y," cm\xB3"]})}),(0,e.jsx)(t.Ki.Item,{label:"Chemicals",children:(0,e.jsxs)(t.z2,{value:M,maxValue:P,children:[M,"u / ",P,"u"]})})]}),(0,e.jsxs)(t.tU,{mt:1,children:[(0,e.jsx)(t.tU.Tab,{icon:"wrench",selected:f===0,onClick:function(){return m(0)},children:"Build"}),(0,e.jsx)(t.tU.Tab,{icon:$,iconSpin:W,color:L,selected:f===1,onClick:function(){return m(1)},children:"Queue"}),(0,e.jsx)(t.tU.Tab,{icon:"cookie-bite",selected:f===2,onClick:function(){return m(2)},children:"Mat Storage"}),(0,e.jsx)(t.tU.Tab,{icon:"flask",selected:f===3,onClick:function(){return m(3)},children:"Chem Storage"})]}),k[f]||(0,e.jsx)(t.az,{textColor:"red",children:"Error"})]})}},95411:function(O,h,n){"use strict";n.r(h),n.d(h,{ResearchConsoleConstructorChems:function(){return l},ResearchConsoleConstructorMats:function(){return o},ResearchConsoleConstructorMenue:function(){return x},ResearchConsoleConstructorQueue:function(){return u}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(99930);function g(){return g=Object.assign||function(a){for(var c=1;c=150?"good":"bad",inline:!0,children:[(0,e.jsx)(s.In,{name:m.biomass>=150?"circle":"circle-o"}),"\xA0",m.biomass]}),j]},v)}):""}},88315:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingConsolePodSleevers:function(){return s}});var e=n(20462),i=n(31200),t=n(7081),r=n(88569),s=function(g){var x=(0,t.Oc)(),u=x.act,o=x.data,l=o.sleevers,a=o.spods,c=o.selected_sleever;return l&&l.length?l.map(function(f,m){return(0,e.jsxs)(r.az,{width:"64px",textAlign:"center",inline:!0,mr:"0.5rem",children:[(0,e.jsx)(r._V,{src:(0,i.l)("sleeve_"+(f.occupied?"occupied":"empty")+".gif"),style:{width:"100%"}}),(0,e.jsx)(r.az,{color:f.occupied?"label":"bad",children:f.name}),(0,e.jsx)(r.$n,{selected:c===f.sleever,icon:c===f.sleever&&"check",mt:a&&a.length?"3rem":"1.5rem",onClick:function(){return u("selectsleever",{ref:f.sleever})},children:"Select"})]},m)}):""}},50123:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingConsolePodSpods:function(){return g}});var e=n(20462),i=n(4089),t=n(31200),r=n(7081),s=n(88569),g=function(x){var u=(0,r.Oc)(),o=u.act,l=u.data,a=l.spods,c=l.selected_printer;return a&&a.length?a.map(function(f,m){var v;return f.status==="cloning"?v=(0,e.jsx)(s.z2,{minValue:0,maxValue:1,value:f.progress/100,ranges:{good:[.75,1/0],average:[.25,.75],bad:[-1/0,.25]},mt:"0.5rem",children:(0,e.jsx)(s.az,{textAlign:"center",children:(0,i.Mg)(f.progress)+"%"})}):f.status==="mess"?v=(0,e.jsx)(s.az,{bold:!0,color:"bad",mt:"0.5rem",children:"ERROR"}):v=(0,e.jsx)(s.$n,{selected:c===f.spod,icon:c===f.spod&&"check",mt:"0.5rem",onClick:function(){return o("selectprinter",{ref:f.spod})},children:"Select"}),(0,e.jsxs)(s.az,{width:"64px",textAlign:"center",inline:!0,mr:"0.5rem",children:[(0,e.jsx)(s._V,{src:(0,t.l)("synthprinter"+(f.busy?"_working":"")+".gif"),style:{width:"100%"}}),(0,e.jsx)(s.az,{color:"label",children:f.name}),(0,e.jsxs)(s.az,{bold:!0,color:f.steel>=15e3?"good":"bad",inline:!0,children:[(0,e.jsx)(s.In,{name:f.steel>=15e3?"circle":"circle-o"}),"\xA0",f.steel]}),(0,e.jsxs)(s.az,{bold:!0,color:f.glass>=15e3?"good":"bad",inline:!0,children:[(0,e.jsx)(s.In,{name:f.glass>=15e3?"circle":"circle-o"}),"\xA0",f.glass]}),v]},m)}):""}},27529:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingConsoleRecords:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.records,u=s.actToDo;return x.length?(0,e.jsx)(t.az,{mt:"0.5rem",children:x.map(function(o,l){return(0,e.jsx)(t.$n,{icon:"user",mb:"0.5rem",onClick:function(){return g(u,{ref:o.recref})},children:o.name},l)})}):(0,e.jsx)(t.so,{height:"100%",mt:"0.5rem",children:(0,e.jsxs)(t.so.Item,{grow:"1",align:"center",textAlign:"center",color:"label",children:[(0,e.jsx)(t.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No records found."]})})}},60009:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingConsoleStatus:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().data,x=g.pods,u=g.spods,o=g.sleevers;return(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Pods",children:x&&x.length?(0,e.jsxs)(t.az,{color:"good",children:[x.length," connected"]}):(0,e.jsx)(t.az,{color:"bad",children:"None connected!"})}),(0,e.jsx)(t.Ki.Item,{label:"SynthFabs",children:u&&u.length?(0,e.jsxs)(t.az,{color:"good",children:[u.length," connected"]}):(0,e.jsx)(t.az,{color:"bad",children:"None connected!"})}),(0,e.jsx)(t.Ki.Item,{label:"Sleevers",children:o&&o.length?(0,e.jsxs)(t.az,{color:"good",children:[o.length," Connected"]}):(0,e.jsx)(t.az,{color:"bad",children:"None connected!"})})]})})}},87999:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingConsoleCoreDump:function(){return r},ResleevingConsoleDiskPrep:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=function(g){return(0,e.jsx)(t.Rr,{children:(0,e.jsxs)(t.so,{direction:"column",justify:"space-evenly",align:"center",children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.In,{size:12,color:"bad",name:"exclamation-triangle"})}),(0,e.jsx)(t.so.Item,{grow:1,color:"bad",mt:5,children:(0,e.jsx)("h2",{children:"TransCore dump completed. Resleeving offline."})})]})})},s=function(g){var x=(0,i.Oc)().act;return(0,e.jsxs)(t.Rr,{textAlign:"center",children:[(0,e.jsx)(t.az,{color:"bad",children:(0,e.jsx)("h1",{children:"TRANSCORE DUMP"})}),(0,e.jsx)(t.az,{color:"bad",children:(0,e.jsx)("h2",{children:"!!WARNING!!"})}),(0,e.jsx)(t.az,{color:"bad",children:"This will transfer all minds to the dump disk, and the TransCore will be made unusable until post-shift maintenance! This should only be used in emergencies!"}),(0,e.jsx)(t.az,{mt:4,children:(0,e.jsx)(t.$n,{icon:"eject",color:"good",onClick:function(){return x("ejectdisk")},children:"Eject Disk"})}),(0,e.jsx)(t.az,{mt:4,children:(0,e.jsx)(t.$n.Confirm,{icon:"exclamation-triangle",confirmIcon:"exclamation-triangle",confirmContent:"Disable Transcore?",color:"bad",onClick:function(){return x("coredump")},children:"Core Dump"})})]})}},69163:function(O,h,n){"use strict";n.r(h),n.d(h,{MENU_BODY:function(){return i},MENU_MAIN:function(){return e},MENU_MIND:function(){return t}});var e=1,i=2,t=3},86686:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingConsole:function(){return a}});var e=n(20462),i=n(7081),t=n(88569),r=n(86471),s=n(15581),g=n(35216),x=n(60009),u=n(87999),o=n(73509),l=n(769),a=function(c){var f=(0,i.Oc)().data,m=f.coredumped,v=f.emergency,j=(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.ResleevingConsoleTemp,{}),(0,e.jsx)(x.ResleevingConsoleStatus,{}),(0,e.jsx)(g.ResleevingConsoleNavigation,{}),(0,e.jsx)(t.wn,{noTopPadding:!0,flexGrow:!0,children:(0,e.jsx)(g.ResleevingConsoleBody,{})})]});return m&&(j=(0,e.jsx)(u.ResleevingConsoleCoreDump,{})),v&&(j=(0,e.jsx)(u.ResleevingConsoleDiskPrep,{})),(0,r.modalRegisterBodyOverride)("view_b_rec",o.viewBodyRecordModalBodyOverride),(0,r.modalRegisterBodyOverride)("view_m_rec",l.viewMindRecordModalBodyOverride),(0,e.jsxs)(s.p8,{width:640,height:520,children:[(0,e.jsx)(r.ComplexModal,{maxWidth:"75%",maxHeight:"75%"}),(0,e.jsx)(s.p8.Content,{className:"Layout__content--flexColumn",children:j})]})}},43795:function(O,h,n){"use strict";n.r(h)},73509:function(O,h,n){"use strict";n.r(h),n.d(h,{viewBodyRecordModalBodyOverride:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.args,u=x.activerecord,o=x.realname,l=x.species,a=x.sex,c=x.mind_compat,f=x.synthetic,m=x.oocnotes,v=x.can_grow_active;return(0,e.jsx)(t.wn,{m:"-1rem",pb:"1rem",title:"Body Record ("+o+")",buttons:(0,e.jsx)(t.$n,{icon:"times",color:"red",onClick:function(){return g("modal_close")}}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:o}),(0,e.jsx)(t.Ki.Item,{label:"Species",children:l}),(0,e.jsx)(t.Ki.Item,{label:"Bio. Sex",children:a}),(0,e.jsx)(t.Ki.Item,{label:"Mind Compat",children:c}),(0,e.jsx)(t.Ki.Item,{label:"Synthetic",children:f?"Yes":"No"}),(0,e.jsx)(t.Ki.Item,{label:"OOC Notes",children:(0,e.jsx)(t.wn,{style:{wordBreak:"break-all",height:"100px"},scrollable:!0,children:m})}),(0,e.jsx)(t.Ki.Item,{label:"Actions",children:(0,e.jsx)(t.$n,{disabled:!v,icon:"user-plus",onClick:function(){return g("create",{ref:u})},children:f?"Build":"Grow"})})]})})}},769:function(O,h,n){"use strict";n.r(h),n.d(h,{viewMindRecordModalBodyOverride:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)().act,x=s.args,u=x.activerecord,o=x.realname,l=x.obviously_dead,a=x.oocnotes,c=x.can_sleeve_active;return(0,e.jsx)(t.wn,{m:"-1rem",pb:"1rem",title:"Mind Record ("+o+")",buttons:(0,e.jsx)(t.$n,{icon:"times",color:"red",onClick:function(){return g("modal_close")}}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:o}),(0,e.jsx)(t.Ki.Item,{label:"Status",children:l}),(0,e.jsxs)(t.Ki.Item,{label:"Actions",children:[(0,e.jsx)(t.$n,{disabled:!c,icon:"user-plus",onClick:function(){return g("sleeve",{ref:u,mode:1})},children:"Sleeve"}),(0,e.jsx)(t.$n,{icon:"user-plus",onClick:function(){return g("sleeve",{ref:u,mode:2})},children:"Card"})]}),(0,e.jsx)(t.Ki.Item,{label:"OOC Notes",children:(0,e.jsx)(t.wn,{style:{wordBreak:"break-all",height:"100px"},scrollable:!0,children:a})})]})})}},18313:function(O,h,n){"use strict";n.r(h),n.d(h,{ResleevingPod:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)().data,u=x.occupied,o=x.name,l=x.health,a=x.maxHealth,c=x.stat,f=x.mindStatus,m=x.mindName,v=x.resleeveSick,j=x.initialSick;return(0,e.jsx)(r.p8,{width:300,height:350,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{title:"Occupant",children:u?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:o}),(0,e.jsx)(t.Ki.Item,{label:"Health",children:c===2?(0,e.jsx)(t.az,{color:"bad",children:"DEAD"}):c===1?(0,e.jsx)(t.az,{color:"average",children:"Unconscious"}):(0,e.jsxs)(t.z2,{ranges:{good:[.5,1/0],average:[.25,.5],bad:[-1/0,.25]},value:l/a,children:[l,"%"]})}),(0,e.jsx)(t.Ki.Item,{label:"Mind Status",children:f?"Present":"Missing"}),f?(0,e.jsx)(t.Ki.Item,{label:"Mind Occupying",children:m}):""]}),v?(0,e.jsxs)(t.az,{color:"average",mt:3,children:["Warning: Resleeving Sickness detected.",j?(0,e.jsxs)(e.Fragment,{children:[" ","Motion Sickness also detected. Please allow the newly resleeved person a moment to get their bearings. This warning will disappear when Motion Sickness is no longer detected."]}):""]}):""]}):(0,e.jsx)(t.az,{bold:!0,m:1,children:"Unoccupied."})})})})}},68297:function(O,h,n){"use strict";n.r(h),n.d(h,{RoboticsControlConsole:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.can_hack,c=l.safety,f=l.show_detonate_all,m=l.cyborgs,v=m===void 0?[]:m,j=l.auth;return(0,e.jsx)(r.p8,{width:500,height:460,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[!!f&&(0,e.jsxs)(t.wn,{title:"Emergency Self Destruct",children:[(0,e.jsx)(t.$n,{icon:c?"lock":"unlock",selected:c,children:c?"Disable Safety":"Enable Safety"}),(0,e.jsx)(t.$n,{icon:"bomb",disabled:c,color:"bad",onClick:function(){return o("nuke",{})},children:"Destroy ALL Cyborgs"})]}),(0,e.jsx)(g,{cyborgs:v,can_hack:a,auth:j})]})})},g=function(x){var u=x.cyborgs,o=x.can_hack,l=x.auth,a=(0,i.Oc)().act;return u.length?u.map(function(c){return(0,e.jsx)(t.wn,{title:c.name,buttons:(0,e.jsxs)(e.Fragment,{children:[!!c.hackable&&!c.emagged&&(0,e.jsx)(t.$n,{icon:"terminal",color:"bad",onClick:function(){return a("hackbot",{ref:c.ref})},children:"Hack"}),(0,e.jsx)(t.$n.Confirm,{icon:c.locked_down?"unlock":"lock",color:c.locked_down?"good":"default",disabled:!l,onClick:function(){return a("stopbot",{ref:c.ref})},children:c.locked_down?"Release":"Lockdown"}),(0,e.jsx)(t.$n.Confirm,{icon:"bomb",disabled:!l,color:"bad",onClick:function(){return a("killbot",{ref:c.ref})},children:"Detonate"})]}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Status",children:(0,e.jsx)(t.az,{color:c.status?"bad":c.locked_down?"average":"good",children:c.status?"Not Responding":c.locked_down?"Locked Down":"Nominal"})}),(0,e.jsx)(t.Ki.Item,{label:"Location",children:(0,e.jsx)(t.az,{children:c.locstring})}),(0,e.jsx)(t.Ki.Item,{label:"Integrity",children:(0,e.jsx)(t.z2,{color:c.health>50?"good":"bad",value:c.health/100})}),typeof c.charge=="number"&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Cell Charge",children:(0,e.jsx)(t.z2,{color:c.charge>30?"good":"bad",value:c.charge/100})}),(0,e.jsx)(t.Ki.Item,{label:"Cell Capacity",children:(0,e.jsx)(t.az,{color:c.cell_capacity<3e4?"average":"good",children:c.cell_capacity})})]})||(0,e.jsx)(t.Ki.Item,{label:"Cell",children:(0,e.jsx)(t.az,{color:"bad",children:"No Power Cell"})}),!!c.is_hacked&&(0,e.jsx)(t.Ki.Item,{label:"Safeties",children:(0,e.jsx)(t.az,{color:"bad",children:"DISABLED"})}),(0,e.jsx)(t.Ki.Item,{label:"Module",children:c.module}),(0,e.jsx)(t.Ki.Item,{label:"Master AI",children:(0,e.jsx)(t.az,{color:c.synchronization?"default":"average",children:c.synchronization||"None"})})]})},c.ref)}):(0,e.jsx)(t.IC,{children:"No cyborg units detected within access parameters."})}},2879:function(O,h,n){"use strict";n.r(h),n.d(h,{RogueZones:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.timeout_percent,a=o.diffstep,c=o.difficulty,f=o.occupied,m=o.scanning,v=o.updated,j=o.debug,E=o.shuttle_location,y=o.shuttle_at_station,M=o.scan_ready,P=o.can_recall_shuttle;return(0,e.jsx)(r.p8,{width:360,height:250,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Current Area",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Mineral Content",children:c}),(0,e.jsx)(t.Ki.Item,{label:"Shuttle Location",buttons:P&&(0,e.jsx)(t.$n,{color:"bad",icon:"rocket",onClick:function(){return u("recall_shuttle")},children:"Recall Shuttle"})||null,children:E}),f&&(0,e.jsxs)(t.Ki.Item,{color:"bad",labelColor:"bad",label:"Personnel",children:["WARNING: Area occupied by ",f," personnel!"]})||(0,e.jsx)(t.Ki.Item,{label:"Personnel",color:"good",children:"No personnel detected."})]})}),(0,e.jsx)(t.wn,{title:"Scanner",buttons:(0,e.jsx)(t.$n,{disabled:!M,fluid:!0,icon:"search",onClick:function(){return u("scan_for_new")},children:"Scan For Asteroids"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Scn Ramestat Core",children:(0,e.jsx)(t.z2,{value:l,maxValue:100,ranges:{good:[100,1/0],average:[75,100],bad:[-1/0,75]}})}),m&&(0,e.jsx)(t.Ki.Item,{label:"Scanning",children:"In progress."})||null,v&&!m&&(0,e.jsx)(t.Ki.Item,{label:"Info",children:"Updated shuttle destination!"})||null,j&&(0,e.jsxs)(t.Ki.Item,{label:"Debug",labelColor:"bad",children:[(0,e.jsxs)(t.az,{children:["Timeout Percent: ",l]}),(0,e.jsxs)(t.az,{children:["Diffstep: ",a]}),(0,e.jsxs)(t.az,{children:["Difficulty: ",c]}),(0,e.jsxs)(t.az,{children:["Occupied: ",f]}),(0,e.jsxs)(t.az,{children:["Debug: ",j]}),(0,e.jsxs)(t.az,{children:["Shuttle Location: ",E]}),(0,e.jsxs)(t.az,{children:["Shuttle at station: ",y]}),(0,e.jsxs)(t.az,{children:["Scan Ready: ",M]})]})||null]})})]})})}},1249:function(O,h,n){"use strict";n.r(h),n.d(h,{RustCoreMonitor:function(){return s},RustCoreMonitorContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:627,height:700,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.cores;return(0,e.jsx)(t.wn,{title:"Cores",buttons:(0,e.jsx)(t.$n,{icon:"pencil-alt",onClick:function(){return o("set_tag")},children:"Set Tag"}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Position"}),(0,e.jsx)(t.XI.Cell,{children:"Field Status"}),(0,e.jsx)(t.XI.Cell,{children:"Reactant Mode"}),(0,e.jsx)(t.XI.Cell,{children:"Field Instability"}),(0,e.jsx)(t.XI.Cell,{children:"Field Temperature"}),(0,e.jsx)(t.XI.Cell,{children:"Field Strength"}),(0,e.jsx)(t.XI.Cell,{children:"Plasma Content"})]}),a.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsxs)(t.XI.Cell,{children:[c.x,", ",c.y,", ",c.z]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c.has_field,disabled:!c.core_operational,onClick:function(){return o("toggle_active",{core:c.ref})},children:c.has_field?"Online":"Offline"})}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c.has_field,disabled:!c.core_operational,onClick:function(){return o("toggle_reactantdump",{core:c.ref})},children:c.reactant_dump?"Dump":"Maintain"})}),(0,e.jsx)(t.XI.Cell,{children:c.field_instability}),(0,e.jsx)(t.XI.Cell,{children:c.field_temperature}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.N6,{width:"60px",size:1.25,color:!!c.has_field&&"yellow",value:c.target_field_strength,unit:"(W.m^-3)",minValue:1,maxValue:1e3,stepPixelSize:1,onDrag:function(f,m){return o("set_fieldstr",{core:c.ref,fieldstr:m})}})}),(0,e.jsx)(t.XI.Cell,{})]},c.name)})]})})}},27095:function(O,h,n){"use strict";n.r(h),n.d(h,{RustFuelContent:function(){return g},RustFuelControl:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:627,height:700,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.fuels;return(0,e.jsx)(t.wn,{title:"Fuel Injectors",buttons:(0,e.jsx)(t.$n,{icon:"pencil-alt",onClick:function(){return o("set_tag")},children:"Set Tag"}),children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Position"}),(0,e.jsx)(t.XI.Cell,{children:"Status"}),(0,e.jsx)(t.XI.Cell,{children:"Remaining Fuel"}),(0,e.jsx)(t.XI.Cell,{children:"Fuel Rod Composition"})]}),a.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsxs)(t.XI.Cell,{children:[c.x,", ",c.y,", ",c.z]}),(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{icon:"power-off",selected:c.active,disabled:!c.deployed,onClick:function(){return o("toggle_active",{fuel:c.ref})},children:c.active?"Online":"Offline"})}),(0,e.jsx)(t.XI.Cell,{children:c.fuel_amt}),(0,e.jsx)(t.XI.Cell,{children:c.fuel_type})]},c.name)})]})})}},90406:function(O,h,n){"use strict";n.r(h),n.d(h,{Secbot:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.on,a=o.open,c=o.locked,f=o.idcheck,m=o.check_records,v=o.check_arrest,j=o.arrest_type,E=o.declare_arrests,y=o.bot_patrolling,M=o.patrol;return(0,e.jsx)(r.p8,{width:390,height:320,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Automatic Security Unit v2.0",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:l,onClick:function(){return u("power")},children:l?"On":"Off"}),children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Maintenance Panel",color:a?"bad":"good",children:a?"Open":"Closed"}),(0,e.jsx)(t.Ki.Item,{label:"Behavior Controls",color:c?"good":"bad",children:c?"Locked":"Unlocked"})]})}),!c&&(0,e.jsx)(t.wn,{title:"Behavior Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Check for Weapon Authorization",children:(0,e.jsx)(t.$n,{icon:f?"toggle-on":"toggle-off",selected:f,onClick:function(){return u("idcheck")},children:f?"Yes":"No"})}),(0,e.jsx)(t.Ki.Item,{label:"Check Security Records",children:(0,e.jsx)(t.$n,{icon:m?"toggle-on":"toggle-off",selected:m,onClick:function(){return u("ignorerec")},children:m?"Yes":"No"})}),(0,e.jsx)(t.Ki.Item,{label:"Check Arrest Status",children:(0,e.jsx)(t.$n,{icon:v?"toggle-on":"toggle-off",selected:v,onClick:function(){return u("ignorearr")},children:v?"Yes":"No"})}),(0,e.jsx)(t.Ki.Item,{label:"Operating Mode",children:(0,e.jsx)(t.$n,{icon:j?"toggle-on":"toggle-off",selected:j,onClick:function(){return u("switchmode")},children:j?"Detain":"Arrest"})}),(0,e.jsx)(t.Ki.Item,{label:"Report Arrests",children:(0,e.jsx)(t.$n,{icon:E?"toggle-on":"toggle-off",selected:E,onClick:function(){return u("declarearrests")},children:E?"Yes":"No"})}),!!y&&(0,e.jsx)(t.Ki.Item,{label:"Auto Patrol",children:(0,e.jsx)(t.$n,{icon:M?"toggle-on":"toggle-off",selected:M,onClick:function(){return u("patrol")},children:M?"Yes":"No"})})]})})||null]})})}},38575:function(O,h,n){"use strict";n.r(h),n.d(h,{SecureSafe:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=[["1","4","7","R"],["2","5","8","0"],["3","6","9","E"]],c=l.locked,f=l.l_setshort,m=l.code,v=l.emagged;return(0,e.jsx)(t.az,{width:"185px",children:(0,e.jsx)(t.XI,{width:"1px",children:a.map(function(j){return(0,e.jsx)(t.XI.Cell,{children:j.map(function(E){return(0,e.jsx)(t.$n,{fluid:!0,bold:!0,mb:"6px",textAlign:"center",fontSize:"40px",height:"50px",lineHeight:1.25,disabled:!!v||!!f&&1||E!=="R"&&!c||m==="ERROR"&&E!=="R"&&1,onClick:function(){return o("type",{digit:E})},children:E},E)})},j[0])})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.code,c=l.l_setshort,f=l.l_set,m=l.emagged,v=l.locked,j=!(f||c);return(0,e.jsx)(r.p8,{width:250,height:380,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.az,{m:"6px",children:[j&&(0,e.jsx)(t.IC,{textAlign:"center",info:!0,children:"ENTER NEW 5-DIGIT PASSCODE."}),!!m&&(0,e.jsx)(t.IC,{textAlign:"center",danger:!0,children:"LOCKING SYSTEM ERROR - 1701"}),!!c&&(0,e.jsx)(t.IC,{textAlign:"center",danger:!0,children:"ALERT: MEMORY SYSTEM ERROR - 6040 201"}),(0,e.jsx)(t.wn,{height:"60px",children:(0,e.jsx)(t.az,{textAlign:"center",position:"center",fontSize:"35px",children:a&&a||(0,e.jsx)(t.az,{textColor:v?"red":"green",children:v?"LOCKED":"UNLOCKED"})})}),(0,e.jsxs)(t.so,{ml:"3px",children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(s,{})}),(0,e.jsx)(t.so.Item,{ml:"6px",width:"129px"})]})]})})})}},26487:function(O,h,n){"use strict";n.r(h),n.d(h,{SecurityRecordsList:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.records;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.pd,{fluid:!0,placeholder:"Search by Name, DNA, or ID",onChange:function(l,a){return x("search",{t1:a})}}),(0,e.jsx)(t.az,{mt:"0.5rem",children:o.map(function(l,a){return(0,e.jsx)(t.$n,{icon:"user",mb:"0.5rem",color:l.color,onClick:function(){return x("d_rec",{d_rec:l.ref})},children:l.id+": "+l.name+" (Criminal Status: "+l.criminal+")"},a)})})]})}},12473:function(O,h,n){"use strict";n.r(h),n.d(h,{SecurityRecordsMaintenance:function(){return g},SecurityRecordsNavigation:function(){return u},SecurityRecordsView:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(64254),s=n(72462),g=function(o){var l=(0,i.Oc)().act;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"download",disabled:!0,children:"Backup to Disk"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{icon:"upload",my:"0.5rem",disabled:!0,children:"Upload from Disk"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n.Confirm,{icon:"trash",onClick:function(){return l("del_all")},children:"Delete All Security Records"})]})},x=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.security,m=c.printing;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.wn,{title:"General Data",mt:"-6px",children:(0,e.jsx)(r.SecurityRecordsViewGeneral,{})}),(0,e.jsx)(t.wn,{title:"Security Data",children:(0,e.jsx)(s.SecurityRecordsViewSecurity,{})}),(0,e.jsxs)(t.wn,{title:"Actions",children:[(0,e.jsx)(t.$n.Confirm,{icon:"trash",disabled:!!f.empty,color:"bad",onClick:function(){return a("del_r")},children:"Delete Security Record"}),(0,e.jsx)(t.$n.Confirm,{icon:"trash",disabled:!!f.empty,color:"bad",onClick:function(){return a("del_r_2")},children:"Delete Record (All)"}),(0,e.jsx)(t.$n,{icon:m?"spinner":"print",disabled:m,iconSpin:!!m,ml:"0.5rem",onClick:function(){return a("print_p")},children:"Print Entry"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{icon:"arrow-left",mt:"0.5rem",onClick:function(){return a("screen",{screen:2})},children:"Back"})]})]})},u=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.screen;return(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{selected:f===2,icon:"list",onClick:function(){return a("screen",{screen:2})},children:"List Records"}),(0,e.jsx)(t.tU.Tab,{icon:"wrench",selected:f===3,onClick:function(){return a("screen",{screen:3})},children:"Record Maintenance"})]})}},64254:function(O,h,n){"use strict";n.r(h),n.d(h,{SecurityRecordsViewGeneral:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(80724),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.general;return!l||!l.fields?(0,e.jsx)(t.az,{color:"bad",children:"General records lost!"}):(0,e.jsxs)(t.so,{children:[(0,e.jsx)(t.so.Item,{children:(0,e.jsx)(t.Ki,{children:l.fields.map(function(a,c){return(0,e.jsx)(t.Ki.Item,{label:a.field,children:(0,e.jsxs)(t.az,{height:"20px",inline:!0,preserveWhitespace:!0,children:[a.value,!!a.edit&&(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return(0,r.doEdit)(a)}})]})},c)})})}),(0,e.jsxs)(t.so.Item,{textAlign:"right",children:[!!l.has_photos&&l.photos.map(function(a,c){return(0,e.jsxs)(t.az,{inline:!0,textAlign:"center",color:"label",children:[(0,e.jsx)(t._V,{src:a.substring(1,a.length-1),style:{width:"96px",marginBottom:"0.5rem"}}),(0,e.jsx)("br",{}),"Photo #",c+1]},c)}),(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{onClick:function(){return u("photo_front")},children:"Update Front Photo"}),(0,e.jsx)(t.$n,{onClick:function(){return u("photo_side")},children:"Update Side Photo"})]})]})]})}},72462:function(O,h,n){"use strict";n.r(h),n.d(h,{SecurityRecordsViewSecurity:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(86471),s=n(80724),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.security;return!a||!a.fields?(0,e.jsxs)(t.az,{color:"bad",children:["Security records lost!",(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",onClick:function(){return o("new")},children:"New Record"})]}):(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki,{children:a.fields.map(function(c,f){return(0,e.jsx)(t.Ki.Item,{label:c.field,children:(0,e.jsxs)(t.az,{preserveWhitespace:!0,children:[c.value,(0,e.jsx)(t.$n,{icon:"pen",ml:"0.5rem",mb:"initial",onClick:function(){return(0,s.doEdit)(c)}})]})},f)})}),(0,e.jsxs)(t.wn,{title:"Comments/Log",children:[a.comments&&a.comments.length===0?(0,e.jsx)(t.az,{color:"label",children:"No comments found."}):a.comments&&a.comments.map(function(c,f){return(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.az,{color:"label",inline:!0,children:c.header}),(0,e.jsx)("br",{}),c.text,(0,e.jsx)(t.$n,{icon:"comment-slash",color:"bad",ml:"0.5rem",onClick:function(){return o("del_c",{del_c:f+1})}})]},f)}),(0,e.jsx)(t.$n,{icon:"comment",color:"good",mt:"0.5rem",mb:"0",onClick:function(){return(0,r.modalOpen)("add_c")},children:"Add Entry"})]})]})}},94779:function(O,h,n){"use strict";n.r(h),n.d(h,{SecurityRecords:function(){return a}});var e=n(20462),i=n(7081),t=n(88569),r=n(86471),s=n(15581),g=n(35069),x=n(97049),u=n(3751),o=n(26487),l=n(12473),a=function(c){var f=(0,i.Oc)().data,m=f.authenticated,v=f.screen;if(!m)return(0,e.jsx)(s.p8,{width:700,height:680,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(x.LoginScreen,{})})});var j=[];return j[2]=(0,e.jsx)(o.SecurityRecordsList,{}),j[3]=(0,e.jsx)(l.SecurityRecordsMaintenance,{}),j[4]=(0,e.jsx)(l.SecurityRecordsView,{}),(0,e.jsxs)(s.p8,{width:700,height:680,children:[(0,e.jsx)(r.ComplexModal,{maxHeight:"100%",maxWidth:"400px"}),(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsx)(g.LoginInfo,{}),(0,e.jsx)(u.TemporaryNotice,{}),(0,e.jsx)(l.SecurityRecordsNavigation,{}),(0,e.jsx)(t.wn,{flexGrow:!0,children:v&&j[v]||""})]})]})}},53588:function(O,h,n){"use strict";n.r(h)},62516:function(O,h,n){"use strict";n.r(h),n.d(h,{SeedStorage:function(){return x}});var e=n(20462),i=n(7402),t=n(61282),r=n(7081),s=n(88569),g=n(15581),x=function(u){var o=(0,r.Oc)(),l=o.act,a=o.data,c=a.seeds,f=(0,i.Ul)(c,function(m){return m.name.toLowerCase()});return(0,e.jsx)(g.p8,{width:600,height:760,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsx)(s.wn,{title:"Seeds",children:f.map(function(m){return(0,e.jsxs)(s.so,{spacing:1,mt:-1,children:[(0,e.jsx)(s.so.Item,{basis:"60%",children:(0,e.jsx)(s.Nt,{title:(0,t.Sn)(m.name)+" #"+m.uid,children:(0,e.jsx)(s.wn,{width:"165%",title:"Traits",children:(0,e.jsx)(s.Ki,{children:Object.keys(m.traits).map(function(v){return(0,e.jsx)(s.Ki.Item,{label:(0,t.Sn)(v),children:m.traits[v]},v)})})})})}),(0,e.jsxs)(s.so.Item,{mt:.4,children:[m.amount," Remaining"]}),(0,e.jsx)(s.so.Item,{grow:1,children:(0,e.jsx)(s.$n,{fluid:!0,icon:"download",onClick:function(){return l("vend",{id:m.id})},children:"Vend"})}),(0,e.jsx)(s.so.Item,{grow:1,children:(0,e.jsx)(s.$n,{fluid:!0,icon:"trash",onClick:function(){return l("purge",{id:m.id})},children:"Purge"})})]},m.name+m.uid)})})})})}},3967:function(O,h,n){"use strict";n.r(h),n.d(h,{ShieldCapacitor:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.active,f=a.time_since_fail,m=a.stored_charge,v=a.max_charge,j=a.charge_rate,E=a.max_charge_rate;return(0,e.jsx)(g.p8,{width:500,height:400,children:(0,e.jsx)(g.p8.Content,{children:(0,e.jsx)(r.wn,{title:"Status",buttons:(0,e.jsx)(r.$n,{icon:"power-off",selected:c,onClick:function(){return l("toggle")},children:c?"Online":"Offline"}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Capacitor Status",children:f>2?(0,e.jsx)(r.az,{color:"good",children:"OK."}):(0,e.jsx)(r.az,{color:"bad",children:"Discharging!"})}),(0,e.jsxs)(r.Ki.Item,{label:"Stored Energy",children:[(0,e.jsx)(r.zv,{value:m,format:function(y){return(0,s.QL)(y,0,"J")}}),(0,e.jsx)(r.zv,{value:100*(0,i.LI)(m/v,1),format:function(y){return" ("+(0,i.Mg)(y,1)+"%)"}})]}),(0,e.jsx)(r.Ki.Item,{label:"Charge Rate",children:(0,e.jsx)(r.Q7,{value:j,step:100,stepPixelSize:.2,minValue:1e4,maxValue:E,format:function(y){return(0,s.d5)(y)},onDrag:function(y){return l("charge_rate",{rate:y})}})})]})})})})}},7180:function(O,h,n){"use strict";n.r(h),n.d(h,{ShieldGenerator:function(){return u}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=n(72859),u=function(a){var c=(0,t.Oc)().data,f=c.locked;return(0,e.jsx)(g.p8,{width:500,height:400,children:(0,e.jsx)(g.p8.Content,{children:f?(0,e.jsx)(o,{}):(0,e.jsx)(l,{})})})},o=function(a){return(0,e.jsxs)(x.FullscreenNotice,{title:"Locked",children:[(0,e.jsx)(r.az,{fontSize:"1.5rem",bold:!0,children:(0,e.jsx)(r.In,{name:"exclamation-triangle",verticalAlign:"middle",size:3,mr:"1rem"})}),(0,e.jsx)(r.az,{color:"label",my:"1rem",children:"Swipe your ID to begin."})]})},l=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.lockedData,j=v.capacitors,E=v.active,y=v.failing,M=v.radius,P=v.max_radius,D=v.z_range,S=v.max_z_range,B=v.average_field_strength,T=v.target_field_strength,L=v.max_field_strength,W=v.shields,$=v.upkeep,k=v.strengthen_rate,z=v.max_strengthen_rate,X=v.gen_power,G=(j||[]).length;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.wn,{title:"Status",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Field Status",children:y?(0,e.jsx)(r.az,{color:"bad",children:"Unstable"}):(0,e.jsx)(r.az,{color:"good",children:"Stable"})}),(0,e.jsx)(r.Ki.Item,{label:"Overall Field Strength",children:(0,i.Mg)(B,2)+" Renwick ("+(T&&(0,i.Mg)(100*B/T,1)+"%)")||"NA)"}),(0,e.jsx)(r.Ki.Item,{label:"Upkeep Power",children:(0,s.d5)($)}),(0,e.jsx)(r.Ki.Item,{label:"Shield Generation Power",children:(0,s.d5)(X)}),(0,e.jsxs)(r.Ki.Item,{label:"Currently Shielded",children:[W," m\xB2"]}),(0,e.jsx)(r.Ki.Item,{label:"Capacitors",children:(0,e.jsx)(r.Ki,{children:G?j.map(function(Q,ee){return(0,e.jsxs)(r.Ki.Item,{label:"Capacitor #"+ee,children:[Q.active?(0,e.jsx)(r.az,{color:"good",children:"Online"}):(0,e.jsx)(r.az,{color:"bad",children:"Offline"}),(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Charge",children:(0,s.QL)(Q.stored_charge,0,"J")+" ("+(0,i.Mg)(100*(Q.stored_charge/Q.max_charge),2)+"%)"}),(0,e.jsx)(r.Ki.Item,{label:"Status",children:Q.failing?(0,e.jsx)(r.az,{color:"bad",children:"Discharging"}):(0,e.jsx)(r.az,{color:"good",children:"OK."})})]})]},ee)}):(0,e.jsx)(r.Ki.Item,{color:"bad",children:"No Capacitors Connected"})})})]})}),(0,e.jsx)(r.wn,{title:"Controls",buttons:(0,e.jsx)(r.$n,{icon:"power-off",selected:E,onClick:function(){return f("toggle")},children:E?"Online":"Offline"}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Coverage Radius",children:(0,e.jsx)(r.Q7,{fluid:!0,stepPixelSize:6,step:1,minValue:0,maxValue:P,value:M,unit:"m",onDrag:function(Q){return f("change_radius",{val:Q})}})}),(0,e.jsx)(r.Ki.Item,{label:"Vertical Shielding",children:(0,e.jsx)(r.Q7,{fluid:!0,stepPixelSize:12,step:1,minValue:0,maxValue:S,value:D,unit:"vertical range",onDrag:function(Q){return f("z_range",{val:Q})}})}),(0,e.jsx)(r.Ki.Item,{label:"Charge Rate",children:(0,e.jsx)(r.Q7,{fluid:!0,stepPixelSize:12,minValue:0,step:.1,maxValue:z,value:k,format:function(Q){return(0,i.Mg)(Q,1)},unit:"Renwick/s",onDrag:function(Q){return f("strengthen_rate",{val:Q})}})}),(0,e.jsx)(r.Ki.Item,{label:"Maximum Field Strength",children:(0,e.jsx)(r.Q7,{fluid:!0,stepPixelSize:12,step:1,minValue:1,maxValue:L,value:T,unit:"Renwick",onDrag:function(Q){return f("target_field_strength",{val:Q})}})})]})})]})}},67889:function(O,h,n){"use strict";n.r(h),n.d(h,{ShutoffMonitor:function(){return s},ShutoffMonitorContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){return(0,e.jsx)(r.p8,{width:627,height:700,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.valves;return(0,e.jsx)(t.wn,{title:"Valves",children:(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{header:!0,children:[(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Position"}),(0,e.jsx)(t.XI.Cell,{children:"Open"}),(0,e.jsx)(t.XI.Cell,{children:"Mode"}),(0,e.jsx)(t.XI.Cell,{children:"Actions"})]}),a.map(function(c){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:c.name}),(0,e.jsxs)(t.XI.Cell,{children:[c.x,", ",c.y,", ",c.z]}),(0,e.jsx)(t.XI.Cell,{children:c.open?"Yes":"No"}),(0,e.jsx)(t.XI.Cell,{children:c.enabled?"Auto":"Manual"}),(0,e.jsxs)(t.XI.Cell,{children:[(0,e.jsx)(t.$n,{icon:"power-off",selected:c.open,disabled:!c.enabled,onClick:function(){return o("toggle_open",{valve:c.ref})},children:c.open?"Opened":"Closed"}),(0,e.jsx)(t.$n,{icon:"power-off",selected:c.enabled,onClick:function(){return o("toggle_enable",{valve:c.ref})},children:c.enabled?"Auto":"Manual"})]})]},c.name)})]})})}},83491:function(O,h,n){"use strict";n.r(h),n.d(h,{ShuttleControlConsoleDefault:function(){return g},ShuttleControlConsoleExploration:function(){return u},ShuttleControlConsoleMulti:function(){return x}});var e=n(20462),i=n(7081),t=n(88569),r=n(13553),s=n(50705),g=function(o){return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.ShuttleControlSharedShuttleStatus,{}),(0,e.jsx)(r.ShuttleControlSharedShuttleControls,{})]})},x=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.can_cloak,m=c.can_pick,v=c.legit,j=c.cloaked;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.ShuttleControlSharedShuttleStatus,{}),(0,e.jsx)(t.wn,{title:"Multishuttle Controls",children:(0,e.jsxs)(t.Ki,{children:[f&&(0,e.jsx)(t.Ki.Item,{label:v?"ATC Inhibitor":"Cloaking",children:(0,e.jsx)(t.$n,{selected:j,icon:j?"eye":"eye-o",onClick:function(){return a("toggle_cloaked")},children:j?"Enabled":"Disabled"})})||"",(0,e.jsx)(t.Ki.Item,{label:"Current Destination",children:(0,e.jsx)(t.$n,{icon:"taxi",disabled:!m,onClick:function(){return a("pick")},children:o.destination_name})})]})}),(0,e.jsx)(r.ShuttleControlSharedShuttleControls,{})]})},u=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.can_pick,m=c.destination_name,v=c.fuel_usage,j=c.fuel_span,E=c.remaining_fuel;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(s.ShuttleControlSharedShuttleStatus,{engineName:"Engines"}),(0,e.jsx)(t.wn,{title:"Jump Controls",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Current Destination",children:(0,e.jsx)(t.$n,{icon:"taxi",disabled:!f,onClick:function(){return a("pick")},children:m})}),v&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Est. Delta-V Budget",color:j,children:[E," m/s"]}),(0,e.jsxs)(t.Ki.Item,{label:"Avg. Delta-V Per Maneuver",children:[v," m/s"]})]})||""]})}),(0,e.jsx)(r.ShuttleControlSharedShuttleControls,{})]})}},96366:function(O,h,n){"use strict";n.r(h),n.d(h,{ShuttleControlConsoleWeb:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(40420),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.autopilot,c=l.can_rename,f=l.shuttle_state,m=l.is_moving,v=l.skip_docking,j=l.docking_status,E=l.docking_override,y=l.shuttle_location,M=l.can_cloak,P=l.cloaked,D=l.can_autopilot,S=l.routes,B=l.is_in_transit,T=l.travel_progress,L=l.time_left,W=l.doors,$=l.sensors;return(0,e.jsxs)(e.Fragment,{children:[a&&(0,e.jsx)(r.wn,{title:"AI PILOT (CLASS D) ACTIVE",children:(0,e.jsx)(r.az,{inline:!0,italic:!0,children:"This vessel will start and stop automatically. Ensure that all non-cycling capable hatches and doors are closed, as the automated system may not be able to control them. Docking and flight controls are locked. To unlock, disable the automated flight system."})})||"",(0,e.jsxs)(r.wn,{title:"Shuttle Status",buttons:c&&(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return o("rename_command")},children:"Rename"})||"",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Engines",children:f==="idle"&&(0,e.jsx)(r.az,{color:"#676767",bold:!0,children:"IDLE"})||f==="warmup"&&(0,e.jsx)(r.az,{color:"#336699",children:"SPINNING UP"})||f==="in_transit"&&(0,e.jsx)(r.az,{color:"#336699",children:"ENGAGED"})||(0,e.jsx)(r.az,{color:"bad",children:"ERROR"})}),!m&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.Ki.Item,{label:"Current Location",children:(0,i.Sn)(y)}),!v&&(0,e.jsx)(r.Ki.Item,{label:"Docking Status",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{selected:j==="docked",disabled:j!=="undocked"&&j!=="docked",onClick:function(){return o("dock_command")},children:"Dock"}),(0,e.jsx)(r.$n,{selected:j==="undocked",disabled:j!=="docked"&&j!=="undocked",onClick:function(){return o("undock_command")},children:"Undock"})]}),children:(0,e.jsx)(r.az,{bold:!0,inline:!0,children:(0,s.getDockingStatus)(j,E)})})||"",M&&(0,e.jsx)(r.Ki.Item,{label:"Cloaking",children:(0,e.jsx)(r.$n,{selected:P,icon:P?"eye":"eye-o",onClick:function(){return o("toggle_cloaked")},children:P?"Enabled":"Disabled"})})||"",D&&(0,e.jsx)(r.Ki.Item,{label:"Autopilot",children:(0,e.jsx)(r.$n,{selected:a,icon:a?"eye":"eye-o",onClick:function(){return o("toggle_autopilot")},children:a?"Enabled":"Disabled"})})||""]})||""]}),!m&&(0,e.jsx)(r.wn,{title:"Available Destinations",children:(0,e.jsx)(r.Ki,{children:S.length&&S.map(function(k){return(0,e.jsx)(r.Ki.Item,{label:k.name,children:(0,e.jsx)(r.$n,{icon:"rocket",onClick:function(){return o("traverse",{traverse:k.index})},children:k.travel_time})},k.name)})||(0,e.jsx)(r.Ki.Item,{label:"Error",color:"bad",children:"No routes found."})})})||""]}),B&&(0,e.jsx)(r.wn,{title:"Transit ETA",children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Distance from target",children:(0,e.jsxs)(r.z2,{color:"good",minValue:0,maxValue:100,value:T,children:[L,"s"]})})})})||"",Object.keys(W).length&&(0,e.jsx)(r.wn,{title:"Hatch Status",children:(0,e.jsx)(r.Ki,{children:Object.keys(W).map(function(k){var z=W[k];return(0,e.jsxs)(r.Ki.Item,{label:k,children:[z.open&&(0,e.jsx)(r.az,{inline:!0,color:"bad",children:"Open"})||(0,e.jsx)(r.az,{inline:!0,color:"good",children:"Closed"}),"\xA0-\xA0",z.bolted&&(0,e.jsx)(r.az,{inline:!0,color:"good",children:"Bolted"})||(0,e.jsx)(r.az,{inline:!0,color:"bad",children:"Unbolted"})]},k)})})})||"",Object.keys($).length&&(0,e.jsx)(r.wn,{title:"Sensors",children:(0,e.jsx)(r.Ki,{children:Object.keys($).map(function(k,z){var X=$[k];return X.reading?(0,e.jsx)(r.Ki.Item,{label:k,children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Pressure",children:[X.pressure,"kPa"]}),(0,e.jsxs)(r.Ki.Item,{label:"Temperature",children:[X.temp,"\xB0C"]}),(0,e.jsxs)(r.Ki.Item,{label:"Oxygen",children:[X.oxygen,"%"]}),(0,e.jsxs)(r.Ki.Item,{label:"Nitrogen",children:[X.nitrogen,"%"]}),(0,e.jsxs)(r.Ki.Item,{label:"Carbon Dioxide",children:[X.carbon_dioxide,"%"]}),(0,e.jsxs)(r.Ki.Item,{label:"Phoron",children:[X.phoron,"%"]}),X.other&&(0,e.jsxs)(r.Ki.Item,{label:"Other",children:[X.other,"%"]})||""]})},k):(0,e.jsx)(r.Ki.Item,{label:k,color:"bad",children:"Unable to get sensor air reading."},z)})})})||""]})}},13553:function(O,h,n){"use strict";n.r(h),n.d(h,{ShuttleControlSharedShuttleControls:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.can_launch,l=u.can_cancel,a=u.can_force;return(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.so,{spacing:1,children:[(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{onClick:function(){return x("move")},disabled:!o,icon:"rocket",fluid:!0,children:"Launch Shuttle"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{onClick:function(){return x("cancel")},disabled:!l,icon:"ban",fluid:!0,children:"Cancel Launch"})}),(0,e.jsx)(t.so.Item,{grow:1,children:(0,e.jsx)(t.$n,{onClick:function(){return x("force")},color:"bad",disabled:!a,icon:"exclamation-triangle",fluid:!0,children:"Force Launch"})})]})})}},50705:function(O,h,n){"use strict";n.r(h),n.d(h,{ShuttleControlSharedShuttleStatus:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(40420),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=g.engineName,a=l===void 0?"Bluespace Drive":l,c=o.shuttle_status,f=o.shuttle_state,m=o.has_docking,v=o.docking_status,j=o.docking_override,E=o.docking_codes;return(0,e.jsxs)(t.wn,{title:"Shuttle Status",children:[(0,e.jsx)(t.az,{color:"label",mb:1,children:c}),(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:a,children:f==="idle"&&(0,e.jsx)(t.az,{color:"#676767",bold:!0,children:"IDLE"})||f==="warmup"&&(0,e.jsx)(t.az,{color:"#336699",children:"SPINNING UP"})||f==="in_transit"&&(0,e.jsx)(t.az,{color:"#336699",children:"ENGAGED"})||(0,e.jsx)(t.az,{color:"bad",children:"ERROR"})}),m&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.Ki.Item,{label:"Docking Status",children:(0,r.getDockingStatus)(v,j)}),(0,e.jsx)(t.Ki.Item,{label:"Docking Codes",children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return u("set_codes")},children:E||"Not Set"})})]})||""]})]})}},40420:function(O,h,n){"use strict";n.r(h),n.d(h,{getDockingStatus:function(){return t}});var e=n(20462),i=n(88569);function t(r,s){var g="ERROR",x="bad",u=!1;return r==="docked"?(g="DOCKED",x="good"):r==="docking"?(g="DOCKING",x="average",u=!0):r==="undocking"?(g="UNDOCKING",x="average",u=!0):r==="undocked"&&(g="UNDOCKED",x="#676767"),u&&s&&(g=g+"-MANUAL"),(0,e.jsx)(i.az,{color:x,children:g})}},93147:function(O,h,n){"use strict";n.r(h),n.d(h,{ShuttleControl:function(){return g}});var e=n(20462),i=n(7081),t=n(15581),r=n(83491),s=n(96366),g=function(x){var u=(0,i.Oc)().data,o=u.subtemplate,l=u.destination_name;return(0,e.jsx)(t.p8,{width:470,height:o==="ShuttleControlConsoleWeb"?560:370,children:(0,e.jsx)(t.p8.Content,{children:o==="ShuttleControlConsoleDefault"&&(0,e.jsx)(r.ShuttleControlConsoleDefault,{})||o==="ShuttleControlConsoleMulti"&&(0,e.jsx)(r.ShuttleControlConsoleMulti,{destination_name:l})||o==="ShuttleControlConsoleExploration"&&(0,e.jsx)(r.ShuttleControlConsoleExploration,{})||o==="ShuttleControlConsoleWeb"&&(0,e.jsx)(s.ShuttleControlConsoleWeb,{})})})}},41396:function(O,h,n){"use strict";n.r(h)},46321:function(O,h,n){"use strict";n.r(h),n.d(h,{Signaler:function(){return g},SignalerContent:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(){return(0,e.jsx)(s.p8,{width:280,height:132,children:(0,e.jsx)(s.p8.Content,{children:(0,e.jsx)(x,{})})})},x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.code,f=a.frequency,m=a.minFrequency,v=a.maxFrequency;return(0,e.jsx)(r.wn,{children:(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{size:1.4,color:"label",children:"Frequency:"}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.Q7,{animated:!0,unit:"kHz",step:.2,stepPixelSize:6,minValue:m/10,maxValue:v/10,value:f/10,format:function(j){return(0,i.Mg)(j,1)},width:"80px",onDrag:function(j){return l("freq",{freq:j})}})}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.$n,{ml:1.3,icon:"sync",onClick:function(){return l("reset",{reset:"freq"})},children:"Reset"})})]}),(0,e.jsxs)(r.XI.Row,{mt:.6,children:[(0,e.jsx)(r.XI.Cell,{size:1.4,color:"label",children:"Code:"}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.Q7,{animated:!0,step:1,stepPixelSize:6,minValue:1,maxValue:100,value:c,width:"80px",onDrag:function(j){return l("code",{code:j})}})}),(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.$n,{ml:1.3,icon:"sync",onClick:function(){return l("reset",{reset:"code"})},children:"Reset"})})]}),(0,e.jsx)(r.XI.Row,{mt:.8,children:(0,e.jsx)(r.XI.Cell,{children:(0,e.jsx)(r.$n,{mb:-.1,fluid:!0,icon:"arrow-up",textAlign:"center",onClick:function(){return l("signal")},children:"Send Signal"})})})]})})}},63e3:function(O,h,n){"use strict";n.r(h),n.d(h,{SleeperChemicals:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.occupant,l=u.chemicals,a=u.maxchem,c=u.amounts;return(0,e.jsx)(t.wn,{title:"Chemicals",flexGrow:!0,children:l.map(function(f,m){var v="",j;return f.overdosing?(v="bad",j=(0,e.jsxs)(t.az,{color:"bad",children:[(0,e.jsx)(t.In,{name:"exclamation-circle"}),"\xA0 Overdosing!"]})):f.od_warning&&(v="average",j=(0,e.jsxs)(t.az,{color:"average",children:[(0,e.jsx)(t.In,{name:"exclamation-triangle"}),"\xA0 Close to overdosing"]})),(0,e.jsx)(t.az,{backgroundColor:"rgba(0, 0, 0, 0.33)",mb:"0.5rem",children:(0,e.jsx)(t.wn,{title:f.title,mx:"0",lineHeight:"18px",buttons:j,children:(0,e.jsxs)(t.so,{align:"flex-start",children:[(0,e.jsxs)(t.z2,{minValue:0,maxValue:1,value:f.occ_amount/a,color:v,mr:"0.5rem",children:[f.pretty_amount,"/",a,"u"]}),c.map(function(E,y){return(0,e.jsx)(t.$n,{disabled:!f.injectable||f.occ_amount+E>a||o.stat===2,icon:"syringe",mb:"0",height:"19px",onClick:function(){return x("chemical",{chemid:f.id,amount:E})},children:E},y)})]})})},m)})})}},57224:function(O,h,n){"use strict";n.r(h),n.d(h,{SleeperDamage:function(){return g}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(40308),g=function(x){var u=(0,t.Oc)().data,o=u.occupant;return(0,e.jsx)(r.wn,{title:"Damage",children:(0,e.jsx)(r.Ki,{children:s.damages.map(function(l,a){return(0,e.jsx)(r.Ki.Item,{label:l[0],children:(0,e.jsx)(r.z2,{minValue:0,maxValue:1,value:o[l[1]]/100,ranges:s.damageRange,children:(0,i.Mg)(o[l[1]])},a)},a)})})})}},54695:function(O,h,n){"use strict";n.r(h),n.d(h,{SleeperDialysisPump:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=s.active,l=s.actToDo,a=s.title,c=u.isBeakerLoaded,f=u.beakerMaxSpace,m=u.beakerFreeSpace,v=o&&m>0;return(0,e.jsx)(t.wn,{title:a,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{disabled:!c||m<=0,selected:v,icon:v?"toggle-on":"toggle-off",onClick:function(){return x(l)},children:v?"Active":"Inactive"}),(0,e.jsx)(t.$n,{disabled:!c,icon:"eject",onClick:function(){return x("removebeaker")},children:"Eject"})]}),children:c?(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Remaining Space",children:(0,e.jsxs)(t.z2,{minValue:0,maxValue:1,value:m/f,ranges:{good:[.5,1/0],average:[.25,.5],bad:[-1/0,.25]},children:[m,"u"]})})}):(0,e.jsx)(t.az,{color:"label",children:"No beaker loaded."})})}},39176:function(O,h,n){"use strict";n.r(h),n.d(h,{SleeperEmpty:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.isBeakerLoaded;return(0,e.jsx)(t.wn,{textAlign:"center",flexGrow:!0,children:(0,e.jsx)(t.so,{height:"100%",children:(0,e.jsxs)(t.so.Item,{grow:"1",align:"center",color:"label",children:[(0,e.jsx)(t.In,{name:"user-slash",mb:"0.5rem",size:5}),(0,e.jsx)("br",{}),"No occupant detected.",o&&(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return x("removebeaker")},children:"Remove Beaker"})})||null]})})})}},44092:function(O,h,n){"use strict";n.r(h),n.d(h,{SleeperMain:function(){return x}});var e=n(20462),i=n(7081),t=n(63e3),r=n(57224),s=n(54695),g=n(86570),x=function(u){var o=(0,i.Oc)().data,l=o.dialysis,a=o.stomachpumping;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(g.SleeperOccupant,{}),(0,e.jsx)(r.SleeperDamage,{}),(0,e.jsx)(s.SleeperDialysisPump,{title:"Dialysis",active:l,actToDo:"togglefilter"}),(0,e.jsx)(s.SleeperDialysisPump,{title:"Stomach Pump",active:a,actToDo:"togglepump"}),(0,e.jsx)(t.SleeperChemicals,{})]})}},86570:function(O,h,n){"use strict";n.r(h),n.d(h,{SleeperOccupant:function(){return g}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(40308),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.occupant,c=l.auto_eject_dead,f=l.stasis;return(0,e.jsx)(r.wn,{title:"Occupant",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.az,{color:"label",inline:!0,children:"Auto-eject if dead:\xA0"}),(0,e.jsx)(r.$n,{icon:c?"toggle-on":"toggle-off",selected:c,onClick:function(){return o("auto_eject_dead_"+(c?"off":"on"))},children:c?"On":"Off"}),(0,e.jsx)(r.$n,{icon:"user-slash",onClick:function(){return o("ejectify")},children:"Eject"}),(0,e.jsx)(r.$n,{onClick:function(){return o("changestasis")},children:f})]}),children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Name",children:a.name}),(0,e.jsx)(r.Ki.Item,{label:"Health",children:(0,e.jsx)(r.z2,{minValue:0,maxValue:1,value:a.health/a.maxHealth,ranges:{good:[.5,1/0],average:[0,.5],bad:[-1/0,0]},children:(0,i.Mg)(a.health)})}),(0,e.jsx)(r.Ki.Item,{label:"Status",color:s.stats[a.stat][0],children:s.stats[a.stat][1]}),(0,e.jsx)(r.Ki.Item,{label:"Temperature",children:(0,e.jsxs)(r.z2,{minValue:0,maxValue:1,value:a.bodyTemperature/a.maxTemp,color:s.tempColors[a.temperatureSuitability+3],children:[(0,i.Mg)(a.btCelsius),"\xB0C,",(0,i.Mg)(a.btFaren),"\xB0F"]})}),!!a.hasBlood&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.Ki.Item,{label:"Blood Level",children:(0,e.jsxs)(r.z2,{minValue:0,maxValue:1,value:a.bloodLevel/a.bloodMax,ranges:{bad:[-1/0,.6],average:[.6,.9],good:[.6,1/0]},children:[a.bloodPercent,"%, ",a.bloodLevel,"cl"]})}),(0,e.jsxs)(r.Ki.Item,{label:"Pulse",verticalAlign:"middle",children:[a.pulse," BPM"]})]})]})})}},40308:function(O,h,n){"use strict";n.r(h),n.d(h,{damageRange:function(){return t},damages:function(){return i},stats:function(){return e},tempColors:function(){return r}});var e=[["good","Alive"],["average","Unconscious"],["bad","DEAD"]],i=[["Resp","oxyLoss"],["Toxin","toxLoss"],["Brute","bruteLoss"],["Burn","fireLoss"]],t={average:[.25,.5],bad:[.5,1/0]},r=["bad","average","average","good","average","average","bad"]},46039:function(O,h,n){"use strict";n.r(h),n.d(h,{Sleeper:function(){return g}});var e=n(20462),i=n(7081),t=n(15581),r=n(39176),s=n(44092),g=function(x){var u=(0,i.Oc)().data,o=u.hasOccupant,l=o?(0,e.jsx)(s.SleeperMain,{}):(0,e.jsx)(r.SleeperEmpty,{});return(0,e.jsx)(t.p8,{width:550,height:760,children:(0,e.jsx)(t.p8.Content,{scrollable:!0,className:"Layout__content--flexColumn",children:l})})}},34880:function(O,h,n){"use strict";n.r(h)},49752:function(O,h,n){"use strict";n.r(h),n.d(h,{SmartVend:function(){return g}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.config,a=u.data,c=a.secure,f=a.locked,m=a.contents;return(0,e.jsx)(s.p8,{width:500,height:550,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:(0,e.jsxs)(r.wn,{title:"Storage",children:[c&&f===-1&&(0,e.jsx)(r.IC,{danger:!0,children:(0,e.jsx)(r.az,{children:"Sec.re ACC_** //):securi_nt.diag=>##'or 1=1'%($..."})})||c&&f!==-1&&(0,e.jsx)(r.IC,{info:!0,children:(0,e.jsx)(r.az,{children:"Secure Access: Please have your identification ready."})})||"",m.length===0&&(0,e.jsxs)(r.IC,{children:["Unfortunately, this ",l.title," is empty."]})||(0,e.jsxs)(r.XI,{children:[(0,e.jsxs)(r.XI.Row,{header:!0,children:[(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:"Item"}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"center",children:"Amount"}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"center",children:"Dispense"})]}),(0,i.Tj)(m,function(v,j){return(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{collapsing:!0,children:v.name}),(0,e.jsxs)(r.XI.Cell,{collapsing:!0,textAlign:"center",children:[v.amount," in stock"]}),(0,e.jsxs)(r.XI.Cell,{collapsing:!0,children:[(0,e.jsx)(r.$n,{disabled:v.amount<1,onClick:function(){return o("Release",{index:v.index,amount:1})},children:"1"}),(0,e.jsx)(r.$n,{disabled:v.amount<5,onClick:function(){return o("Release",{index:v.index,amount:5})},children:"5"}),(0,e.jsx)(r.$n,{disabled:v.amount<25,onClick:function(){return o("Release",{index:v.index,amount:25})},children:"25"}),(0,e.jsx)(r.$n,{disabled:v.amount<50,onClick:function(){return o("Release",{index:v.index,amount:50})},children:"50"}),(0,e.jsx)(r.$n,{disabled:v.amount<1,onClick:function(){return o("Release",{index:v.index})},children:"Custom"}),(0,e.jsx)(r.$n,{disabled:v.amount<1,onClick:function(){return o("Release",{index:v.index,amount:v.amount})},children:"All"})]})]},j)})]})]})})})}},28088:function(O,h,n){"use strict";n.r(h),n.d(h,{Smes:function(){return u}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=1e3,u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.capacityPercent,m=c.capacity,v=c.charge,j=c.inputAttempt,E=c.inputting,y=c.inputLevel,M=c.inputLevelMax,P=c.inputAvailable,D=c.outputAttempt,S=c.outputting,B=c.outputLevel,T=c.outputLevelMax,L=c.outputUsed,W=f>=100&&"good"||E&&"average"||"bad",$=S&&"good"||v>0&&"average"||"bad";return(0,e.jsx)(g.p8,{width:400,height:350,children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Stored Energy",children:(0,e.jsx)(r.z2,{value:f*.01,ranges:{good:[.5,1/0],average:[.15,.5],bad:[-1/0,.15]},children:(0,i.Mg)(v/(1e3*60),1)+" kWh / "+(0,i.Mg)(m/(1e3*60))+" kWh ("+f+"%)"})}),(0,e.jsx)(r.wn,{title:"Input",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Charge Mode",buttons:(0,e.jsx)(r.$n,{icon:j?"sync-alt":"times",selected:j,onClick:function(){return a("tryinput")},children:j?"On":"Off"}),children:(0,e.jsx)(r.az,{color:W,children:f>=100&&"Fully Charged"||E&&"Charging"||"Not Charging"})}),(0,e.jsx)(r.Ki.Item,{label:"Target Input",children:(0,e.jsxs)(r.so,{inline:!0,width:"100%",children:[(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{icon:"fast-backward",disabled:y===0,onClick:function(){return a("input",{target:"min"})}}),(0,e.jsx)(r.$n,{icon:"backward",disabled:y===0,onClick:function(){return a("input",{adjust:-1e4})}})]}),(0,e.jsx)(r.so.Item,{grow:1,mx:1,children:(0,e.jsx)(r.Ap,{value:y/x,fillValue:P/x,minValue:0,maxValue:M/x,step:5,stepPixelSize:4,format:function(k){return(0,s.d5)(k*x,1)},onDrag:function(k,z){return a("input",{target:z*x})}})}),(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{icon:"forward",disabled:y===M,onClick:function(){return a("input",{adjust:1e4})}}),(0,e.jsx)(r.$n,{icon:"fast-forward",disabled:y===M,onClick:function(){return a("input",{target:"max"})}})]})]})}),(0,e.jsx)(r.Ki.Item,{label:"Available",children:(0,s.d5)(P)})]})}),(0,e.jsx)(r.wn,{title:"Output",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Output Mode",buttons:(0,e.jsx)(r.$n,{icon:D?"power-off":"times",selected:D,onClick:function(){return a("tryoutput")},children:D?"On":"Off"}),children:(0,e.jsx)(r.az,{color:$,children:S?"Sending":v>0?"Not Sending":"No Charge"})}),(0,e.jsx)(r.Ki.Item,{label:"Target Output",children:(0,e.jsxs)(r.so,{inline:!0,width:"100%",children:[(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{icon:"fast-backward",disabled:B===0,onClick:function(){return a("output",{target:"min"})}}),(0,e.jsx)(r.$n,{icon:"backward",disabled:B===0,onClick:function(){return a("output",{adjust:-1e4})}})]}),(0,e.jsx)(r.so.Item,{grow:1,mx:1,children:(0,e.jsx)(r.Ap,{value:B/x,minValue:0,maxValue:T/x,step:5,stepPixelSize:4,format:function(k){return(0,s.d5)(k*x,1)},onDrag:function(k,z){return a("output",{target:z*x})}})}),(0,e.jsxs)(r.so.Item,{children:[(0,e.jsx)(r.$n,{icon:"forward",disabled:B===T,onClick:function(){return a("output",{adjust:1e4})}}),(0,e.jsx)(r.$n,{icon:"fast-forward",disabled:B===T,onClick:function(){return a("output",{target:"max"})}})]})]})}),(0,e.jsx)(r.Ki.Item,{label:"Outputting",children:(0,s.d5)(L)})]})})]})})}},24854:function(O,h,n){"use strict";n.r(h),n.d(h,{SolarControl:function(){return g}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(x){var u=(0,t.Oc)(),o=u.act,l=u.data,a=l.generated,c=l.generated_ratio,f=l.sun_angle,m=l.array_angle,v=l.rotation_rate,j=l.max_rotation_rate,E=l.tracking_state,y=l.connected_panels,M=l.connected_tracker;return(0,e.jsx)(s.p8,{width:380,height:230,children:(0,e.jsxs)(s.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Status",buttons:(0,e.jsx)(r.$n,{icon:"sync",onClick:function(){return o("refresh")},children:"Scan for new hardware"}),children:(0,e.jsx)(r.XI,{children:(0,e.jsxs)(r.XI.Row,{children:[(0,e.jsx)(r.XI.Cell,{children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Solar tracker",color:M?"good":"bad",children:M?"OK":"N/A"}),(0,e.jsx)(r.Ki.Item,{label:"Solar panels",color:y>0?"good":"bad",children:y})]})}),(0,e.jsx)(r.XI.Cell,{size:1.5,children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Power output",children:(0,e.jsx)(r.z2,{ranges:{good:[.66,1/0],average:[.33,.66],bad:[-1/0,.33]},minValue:0,maxValue:1,value:c,children:a+" W"})}),(0,e.jsxs)(r.Ki.Item,{label:"Star orientation",children:[f,"\xB0"]})]})})]})})}),(0,e.jsx)(r.wn,{title:"Controls",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Tracking",children:[(0,e.jsx)(r.$n,{icon:"times",selected:E===0,onClick:function(){return o("tracking",{mode:0})},children:"Off"}),(0,e.jsx)(r.$n,{icon:"clock-o",selected:E===1,onClick:function(){return o("tracking",{mode:1})},children:"Timed"}),(0,e.jsx)(r.$n,{icon:"sync",selected:E===2,disabled:!M,onClick:function(){return o("tracking",{mode:2})},children:"Auto"})]}),(0,e.jsxs)(r.Ki.Item,{label:"Azimuth",children:[(E===0||E===1)&&(0,e.jsx)(r.Q7,{width:"52px",unit:"\xB0",step:1,stepPixelSize:2,minValue:-360,maxValue:720,value:m,format:function(P){var D=Math.sign(P)>0?" (CW)":" (CCW)";return(0,i.Mg)(Math.abs(P))+D},onDrag:function(P){return o("azimuth",{value:P})}}),E===1&&(0,e.jsx)(r.Q7,{width:"80px",unit:"deg/h",step:1,minValue:-j-.01,maxValue:j+.01,value:v,format:function(P){var D=Math.sign(P)>0?" (CW)":" (CCW)";return(0,i.Mg)(Math.abs(P))+D},onDrag:function(P){return o("azimuth_rate",{value:P})}}),E===2&&(0,e.jsxs)(r.az,{inline:!0,color:"label",mt:"3px",children:[m+"\xB0"," (auto)"]})]})]})})]})})}},44051:function(O,h,n){"use strict";n.r(h),n.d(h,{SpaceHeater:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(79500),s=n(15581),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.temp,c=l.minTemp,f=l.maxTemp,m=l.cell,v=l.power;return(0,e.jsx)(s.p8,{width:300,height:250,children:(0,e.jsxs)(s.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Target Temperature",children:[a," K (",a-r.Ai,"\xB0 C)"]}),(0,e.jsxs)(t.Ki.Item,{label:"Current Charge",children:[v,"% ",!m&&"(No Cell Inserted)"]})]})}),(0,e.jsx)(t.wn,{title:"Controls",children:(0,e.jsxs)(t.Wx,{children:[(0,e.jsx)(t.Wx.Item,{label:"Thermostat",children:(0,e.jsx)(t.N6,{animated:!0,value:a-r.Ai,minValue:c-r.Ai,maxValue:f-r.Ai,unit:"C",onChange:function(j,E){return o("temp",{newtemp:E+r.Ai})}})}),(0,e.jsx)(t.Wx.Item,{label:"Cell",children:m?(0,e.jsx)(t.$n,{icon:"eject",onClick:function(){return o("cellremove")},children:"Eject Cell"}):(0,e.jsx)(t.$n,{icon:"car-battery",onClick:function(){return o("cellinstall")},children:"Insert Cell"})})]})})]})})}},85586:function(O,h,n){"use strict";n.r(h),n.d(h,{Stack:function(){return u}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581);function s(f,m){(m==null||m>f.length)&&(m=f.length);for(var v=0,j=new Array(m);v=f.length?{done:!0}:{done:!1,value:f[j++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var u=function(f){var m=(0,i.Oc)().data,v=m.amount,j=m.recipes;return(0,e.jsx)(r.p8,{width:400,height:600,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:"Amount: "+v,children:(0,e.jsx)(o,{recipes:j})})})})},o=function(f){var m=f.recipes,v=Object.keys(m).sort();return v.map(function(j,E){var y=m[j];return y.ref===void 0?(0,e.jsx)(t.Nt,{ml:1,mb:-.7,color:"label",title:j,children:(0,e.jsx)(t.az,{ml:1,children:(0,e.jsx)(o,{recipes:y})})},E):(0,e.jsx)(c,{title:j,recipe:y},E)})},l=function(f,m){return f.req_amount>m?0:Math.floor(m/f.req_amount)},a=function(f){for(var m=function(){var L=T.value;P>=L&&S.push((0,e.jsx)(t.$n,{onClick:function(){return j("make",{ref:y.ref,multiplier:L})},children:L*y.res_amount+"x"}))},v=(0,i.Oc)(),j=v.act,E=v.data,y=f.recipe,M=f.maxMultiplier,P=Math.min(M,Math.floor(y.max_res_amount/y.res_amount)),D=[5,10,25],S=[],B=x(D),T;!(T=B()).done;)m();return D.indexOf(P)===-1&&S.push((0,e.jsx)(t.$n,{onClick:function(){return j("make",{ref:y.ref,multiplier:P})},children:P*y.res_amount+"x"})),S},c=function(f){var m=(0,i.Oc)(),v=m.act,j=m.data,E=j.amount,y=f.recipe,M=f.title,P=y.res_amount,D=y.max_res_amount,S=y.req_amount,B=y.ref,T=M;T+=" (",T+=S+" ",T+="sheet"+(S>1?"s":""),T+=")",P>1&&(T=P+"x "+T);var L=l(y,E);return(0,e.jsx)(t.az,{children:(0,e.jsx)(t.XI,{children:(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{children:(0,e.jsx)(t.$n,{fluid:!0,disabled:!L,icon:"wrench",onClick:function(){return v("make",{ref:y.ref,multiplier:1})},children:T})}),D>1&&L>1&&(0,e.jsx)(t.XI.Cell,{collapsing:!0,children:(0,e.jsx)(a,{recipe:y,maxMultiplier:L})})]})})})}},68679:function(O,h,n){"use strict";n.r(h),n.d(h,{StationAlertConsole:function(){return s},StationAlertConsoleContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(){return(0,e.jsx)(r.p8,{width:425,height:600,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(g,{})})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.categories,c=a===void 0?[]:a;return c.map(function(f){return(0,e.jsx)(t.wn,{title:f.category,children:(0,e.jsxs)("ul",{children:[f.alarms.length===0&&(0,e.jsx)("li",{className:"color-good",children:"Systems Nominal"}),f.alarms.map(function(m){var v="";return m.has_cameras?v=(0,e.jsx)(t.wn,{children:m.cameras.map(function(j){return(0,e.jsx)(t.$n,{disabled:j.deact,icon:"video",onClick:function(){return o("switchTo",{camera:j.camera})},children:j.name+(j.deact?" (deactived)":"")},j.name)})}):m.lost_sources&&(v=(0,e.jsxs)(t.az,{color:"bad",children:["Lost Alarm Sources: ",m.lost_sources]})),(0,e.jsxs)("li",{children:[m.name,m.origin_lost?(0,e.jsx)(t.az,{color:"bad",children:"Alarm Origin Lost."}):"",v]},m.name)})]})},f.category)})}},27306:function(O,h,n){"use strict";n.r(h),n.d(h,{StationBlueprints:function(){return s},StationBlueprintsContent:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){return(0,e.jsx)(r.p8,{width:870,height:708,children:(0,e.jsx)(g,{})})},g=function(x){var u=(0,i.Oc)().data,o=u.mapRef;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)("div",{className:"CameraConsole__left",children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:"Honk!"})}),(0,e.jsx)("div",{className:"CameraConsole__right",children:(0,e.jsx)(t.D1,{className:"CameraConsole__map",params:{id:o,type:"map"}})})]})}},33395:function(O,h,n){"use strict";n.r(h),n.d(h,{StockExchange:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(c){var f=(0,i.Oc)().data,m=f.screen,v=f.stationName,j;return m==="stocks"?j=(0,e.jsx)(g,{}):m==="logs"?j=(0,e.jsx)(o,{}):m==="archive"?j=(0,e.jsx)(l,{}):m==="graph"&&(j=(0,e.jsx)(a,{})),(0,e.jsx)(r.p8,{width:600,height:600,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:""+v+" Stock Exchange",children:j})})})},g=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.balance,E=v.stationName,y=v.viewMode,M=(0,e.jsx)(x,{});return y==="Full"?M=(0,e.jsx)(x,{}):y==="Compressed"&&(M=(0,e.jsx)(u,{})),(0,e.jsxs)(t.az,{children:[(0,e.jsxs)("span",{children:["Welcome, ",(0,e.jsxs)("b",{children:[E," Cargo Department"]})," |"]}),(0,e.jsxs)("span",{children:[(0,e.jsx)("b",{children:"Credits:"})," ",j]}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"View mode: "}),(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_cycle_view")},children:y}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Stock Transaction Log: "}),(0,e.jsx)(t.$n,{icon:"list",onClick:function(){return m("stocks_check")},children:"Check"}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"This is a work in progress. Certain features may not be available."}),(0,e.jsx)(t.wn,{title:"Listed Stocks",children:M})]})},x=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.stocks,E=j===void 0?[]:j;return(0,e.jsxs)(t.az,{children:[(0,e.jsx)("b",{children:"Actions:"})," + Buy, - Sell, (A)rchives, (H)istory",(0,e.jsx)(t.cG,{}),(0,e.jsxs)(t.XI,{children:[(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{bold:!0,children:"\xA0"}),(0,e.jsx)(t.XI.Cell,{children:"ID"}),(0,e.jsx)(t.XI.Cell,{children:"Name"}),(0,e.jsx)(t.XI.Cell,{children:"Value"}),(0,e.jsx)(t.XI.Cell,{children:"Owned"}),(0,e.jsx)(t.XI.Cell,{children:"Avail"}),(0,e.jsx)(t.XI.Cell,{children:"Actions"})]}),(0,e.jsx)(t.cG,{}),E.map(function(y){return(0,e.jsxs)(t.XI.Row,{children:[(0,e.jsx)(t.XI.Cell,{bold:!0,children:"\xA0"}),(0,e.jsx)(t.XI.Cell,{color:"label",children:y.ID}),(0,e.jsx)(t.XI.Cell,{color:"label",children:y.Name}),(0,e.jsx)(t.XI.Cell,{color:"label",children:y.Value}),(0,e.jsx)(t.XI.Cell,{color:"label",children:y.Owned}),(0,e.jsx)(t.XI.Cell,{color:"label",children:y.Avail}),(0,e.jsxs)(t.XI.Cell,{color:"label",children:[(0,e.jsx)(t.$n,{icon:"plus",disabled:!1,onClick:function(){return m("stocks_buy",{share:y.REF})}}),(0,e.jsx)(t.$n,{icon:"minus",disabled:!1,onClick:function(){return m("stocks_sell",{share:y.REF})}}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_archive",{share:y.REF})},children:"A"}),(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_history",{share:y.REF})},children:"H"}),(0,e.jsx)("br",{})]})]},y.ID)})]})]})},u=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.stocks,E=j===void 0?[]:j;return(0,e.jsx)(t.az,{children:E.map(function(y){return(0,e.jsxs)(t.az,{children:[(0,e.jsx)("span",{children:y.Name})," ",(0,e.jsx)("span",{children:y.ID}),y.bankrupt===1&&(0,e.jsx)("b",{color:"red",children:"BANKRUPT"}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Unified shares"})," ",y.Unification," ago.",(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Current value per share:"})," ",y.Value," |",(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_history",{share:y.REF})},children:"View history"}),(0,e.jsx)("br",{}),"You currently own ",(0,e.jsx)("b",{children:y.Owned})," shares in this company.",(0,e.jsx)("br",{}),"There are ",y.Avail," purchasable shares on the market currently.",(0,e.jsx)("br",{}),y.bankrupt===1?(0,e.jsx)("span",{children:"You cannot buy or sell shares in a bankrupt company!"}):(0,e.jsxs)("span",{children:[(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_buy",{share:y.REF})},children:"Buy shares"}),"|",(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_sell",{share:y.REF})},children:"Sell shares"})]}),(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Prominent products:"}),(0,e.jsx)("br",{}),(0,e.jsx)("i",{children:y.Products}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_archive",{share:y.REF})},children:"View news archives"}),(0,e.jsx)(t.cG,{})]},y.ID)})})},o=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.logs,E=j===void 0?[]:j;return(0,e.jsxs)(t.az,{children:[(0,e.jsx)("h2",{children:"Stock Transaction Logs"}),(0,e.jsx)("br",{}),(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_backbutton")},children:"Go back"}),(0,e.jsx)(t.cG,{}),(0,e.jsx)("div",{children:E.map(function(y){return(0,e.jsxs)(t.az,{children:[y.type!=="borrow"?(0,e.jsxs)("div",{children:[y.time," | ",(0,e.jsx)("b",{children:y.user_name}),y.type==="transaction_bought"?(0,e.jsx)("span",{children:"bought"}):(0,e.jsx)("span",{children:"sold"}),(0,e.jsx)("b",{children:y.stocks})," stocks at ",y.shareprice," a share for",(0,e.jsx)("b",{children:y.money})," total credits",y.type==="transaction_bought"?(0,e.jsx)("span",{children:"in"}):(0,e.jsx)("span",{children:"from"}),(0,e.jsx)("b",{children:y.company_name}),".",(0,e.jsx)("br",{})]}):(0,e.jsxs)("div",{children:[y.time," | ",(0,e.jsx)("b",{children:y.user_name})," borrowed ",(0,e.jsx)("b",{children:y.stocks}),"stocks with a deposit of ",(0,e.jsx)("b",{children:y.money})," credits in",(0,e.jsx)("b",{children:y.company_name}),".",(0,e.jsx)("br",{})]}),(0,e.jsx)(t.cG,{})]},y.time)})})]})},l=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.name,E=v.events,y=E===void 0?[]:E,M=v.articles,P=M===void 0?[]:M;return(0,e.jsxs)(t.az,{children:[(0,e.jsxs)("h2",{children:["News feed for ",j]}),(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_backbutton")},children:"Go back"}),(0,e.jsx)("h3",{children:"Events"}),(0,e.jsx)(t.cG,{}),(0,e.jsx)("div",{children:y.map(function(D){return(0,e.jsxs)(t.az,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("b",{children:D.current_title}),(0,e.jsx)("br",{}),D.current_desc]}),(0,e.jsx)(t.cG,{})]},D.current_title)})}),(0,e.jsx)("br",{}),(0,e.jsx)("h3",{children:"Articles"}),(0,e.jsx)(t.cG,{}),(0,e.jsx)("div",{children:P.map(function(D){return(0,e.jsxs)(t.az,{children:[(0,e.jsxs)("div",{children:[(0,e.jsx)("b",{children:D.headline}),(0,e.jsx)("i",{children:D.subtitle}),(0,e.jsx)("br",{}),D.article,(0,e.jsx)("br",{}),"- ",D.author,", ",D.spacetime," (via",(0,e.jsx)("i",{children:D.outlet}),")"]}),(0,e.jsx)(t.cG,{})]},D.headline)})})]})},a=function(c){var f=(0,i.Oc)(),m=f.act,v=f.data,j=v.name,E=v.maxValue,y=v.values,M=y===void 0?[]:y;return(0,e.jsxs)(t.az,{children:[(0,e.jsx)(t.$n,{onClick:function(){return m("stocks_backbutton")},children:"Go back"}),(0,e.jsx)(t.cG,{}),(0,e.jsx)(t.wn,{position:"relative",height:"100%",children:(0,e.jsx)(t.t1.Line,{fillPositionedParent:!0,data:M,rangeX:[0,M.length-1],rangeY:[0,E],strokeColor:"rgba(0, 181, 173, 1)",fillColor:"rgba(0, 181, 173, 0.25)"})}),(0,e.jsx)(t.cG,{}),(0,e.jsxs)("p",{children:[j," share value per share"]})]})}},92495:function(O,h,n){"use strict";n.r(h),n.d(h,{SuitCycler:function(){return g}});var e=n(20462),i=n(61358),t=n(7081),r=n(88569),s=n(15581),g=function(a){var c=function(k){S(k)},f=function(k){L(k)},m=(0,t.Oc)().data,v=m.active,j=m.locked,E=m.uv_active,y=m.species,M=m.departments,P=(0,i.useState)(!!M&&M[0]||void 0),D=P[0],S=P[1],B=(0,i.useState)(!!y&&y[0]||void 0),T=B[0],L=B[1],W=(0,e.jsx)(x,{selectedDepartment:D,selectedSpecies:T,onSelectedDepartment:c,onSelectedSpecies:f});return E?W=(0,e.jsx)(u,{}):j?W=(0,e.jsx)(o,{}):v&&(W=(0,e.jsx)(l,{})),(0,e.jsx)(s.p8,{width:320,height:400,children:(0,e.jsx)(s.p8.Content,{children:W})})},x=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.safeties,j=m.occupied,E=m.suit,y=m.helmet,M=m.departments,P=m.species,D=m.uv_level,S=m.max_uv_level,B=m.can_repair,T=m.damage;return(0,e.jsxs)(e.Fragment,{children:[(0,e.jsxs)(r.wn,{title:"Storage",buttons:(0,e.jsx)(r.$n,{icon:"lock",onClick:function(){return f("lock")},children:"Lock"}),children:[!!(j&&v)&&(0,e.jsxs)(r.IC,{children:["Biological entity detected in suit chamber. Please remove before continuing with operation.",(0,e.jsx)(r.$n,{fluid:!0,icon:"eject",color:"red",onClick:function(){return f("eject_guy")},children:"Eject Entity"})]}),(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Helmet",children:(0,e.jsx)(r.$n,{icon:y?"square":"square-o",disabled:!y,onClick:function(){return f("dispense",{item:"helmet"})},children:y||"Empty"})}),(0,e.jsx)(r.Ki.Item,{label:"Suit",children:(0,e.jsx)(r.$n,{icon:E?"square":"square-o",disabled:!E,onClick:function(){return f("dispense",{item:"suit"})},children:E||"Empty"})}),B&&T?(0,e.jsxs)(r.Ki.Item,{label:"Suit Damage",children:[T,(0,e.jsx)(r.$n,{icon:"wrench",onClick:function(){return f("repair_suit")},children:"Repair"})]}):null]})]}),(0,e.jsxs)(r.wn,{title:"Customization",children:[(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Target Paintjob",children:(0,e.jsx)(r.ms,{autoScroll:!1,width:"150px",options:M,selected:a.selectedDepartment,onSelected:function(L){a.onSelectedDepartment(L),f("department",{department:L})}})}),(0,e.jsx)(r.Ki.Item,{label:"Target Species",children:(0,e.jsx)(r.ms,{autoScroll:!1,width:"150px",maxHeight:"160px",options:P,selected:a.selectedSpecies,onSelected:function(L){a.onSelectedSpecies(L),f("species",{species:L})}})})]}),(0,e.jsx)(r.$n,{mt:1,fluid:!0,onClick:function(){return f("apply_paintjob")},children:"Customize"})]}),(0,e.jsx)(r.wn,{title:"UV Decontamination",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Radiation Level",children:(0,e.jsx)(r.Q7,{width:"50px",value:D,step:1,minValue:1,maxValue:S,stepPixelSize:30,onChange:function(L){return f("radlevel",{radlevel:L})}})}),(0,e.jsx)(r.Ki.Item,{label:"Decontaminate",children:(0,e.jsx)(r.$n,{fluid:!0,icon:"recycle",disabled:j&&v,textAlign:"center",onClick:function(){return f("uv")}})})]})})]})},u=function(a){return(0,e.jsx)(r.IC,{children:"Contents are currently being decontaminated. Please wait."})},o=function(a){var c=(0,t.Oc)(),f=c.act,m=c.data,v=m.model_text,j=m.userHasAccess;return(0,e.jsxs)(r.wn,{title:"Locked",textAlign:"center",children:[(0,e.jsxs)(r.az,{color:"bad",bold:!0,children:["The ",v," suit cycler is currently locked. Please contact your system administrator."]}),(0,e.jsx)(r.az,{children:(0,e.jsx)(r.$n,{icon:"unlock",disabled:!j,onClick:function(){return f("lock")},children:"[Unlock]"})})]})},l=function(a){return(0,e.jsx)(r.IC,{children:"Contents are currently being painted. Please wait."})}},28742:function(O,h,n){"use strict";n.r(h),n.d(h,{SuitStorageUnit:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(l){var a=(0,i.Oc)().data,c=a.panelopen,f=a.uv_active,m=a.broken,v=(0,e.jsx)(g,{});return c?v=(0,e.jsx)(x,{}):f?v=(0,e.jsx)(u,{}):m&&(v=(0,e.jsx)(o,{})),(0,e.jsx)(r.p8,{width:400,height:365,children:(0,e.jsx)(r.p8.Content,{children:v})})},g=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.locked,v=f.open,j=f.safeties,E=f.occupied,y=f.suit,M=f.helmet,P=f.mask;return(0,e.jsxs)(t.wn,{title:"Storage",minHeight:"260px",buttons:(0,e.jsxs)(e.Fragment,{children:[!v&&(0,e.jsx)(t.$n,{icon:m?"unlock":"lock",onClick:function(){return c("lock")},children:m?"Unlock":"Lock"}),!m&&(0,e.jsx)(t.$n,{icon:v?"sign-out-alt":"sign-in-alt",onClick:function(){return c("door")},children:v?"Close":"Open"})]}),children:[!!(E&&j)&&(0,e.jsxs)(t.IC,{children:["Biological entity detected in suit chamber. Please remove before continuing with operation.",(0,e.jsx)(t.$n,{fluid:!0,icon:"eject",color:"red",onClick:function(){return c("eject_guy")},children:"Eject Entity"})]}),m&&(0,e.jsxs)(t.az,{mt:6,bold:!0,textAlign:"center",fontSize:"40px",children:[(0,e.jsx)(t.az,{children:"Unit Locked"}),(0,e.jsx)(t.In,{name:"lock"})]})||v&&(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Helmet",children:(0,e.jsx)(t.$n,{icon:M?"square":"square-o",disabled:!M,onClick:function(){return c("dispense",{item:"helmet"})},children:M||"Empty"})}),(0,e.jsx)(t.Ki.Item,{label:"Suit",children:(0,e.jsx)(t.$n,{icon:y?"square":"square-o",disabled:!y,onClick:function(){return c("dispense",{item:"suit"})},children:y||"Empty"})}),(0,e.jsx)(t.Ki.Item,{label:"Mask",children:(0,e.jsx)(t.$n,{icon:P?"square":"square-o",disabled:!P,onClick:function(){return c("dispense",{item:"mask"})},children:P||"Empty"})})]})||(0,e.jsx)(t.$n,{fluid:!0,icon:"recycle",disabled:E&&j,textAlign:"center",onClick:function(){return c("uv")},children:"Decontaminate"})]})},x=function(l){var a=(0,i.Oc)(),c=a.act,f=a.data,m=f.safeties,v=f.uv_super;return(0,e.jsxs)(t.wn,{title:"Maintenance Panel",children:[(0,e.jsx)(t.az,{color:"grey",children:"The panel is ridden with controls, button and meters, labeled in strange signs and symbols that you cannot understand. Probably the manufactoring world's language. Among other things, a few controls catch your eye."}),(0,e.jsx)("br",{}),(0,e.jsxs)(t.az,{children:["A small dial with a biohazard symbol next to it. It's pointing towards a gauge that reads ",v?"15nm":"185nm",".",(0,e.jsxs)(t.so,{mt:1,align:"center",textAlign:"center",children:[(0,e.jsx)(t.so.Item,{basis:"50%",textAlign:"center",children:(0,e.jsx)(t.N6,{size:2,inline:!0,value:v,minValue:0,maxValue:1,step:1,stepPixelSize:40,color:v?"red":"green",format:function(j){return j?"15nm":"185nm"},onChange:function(j,E){return c("toggleUV")}})}),(0,e.jsx)(t.so.Item,{basis:"50%",textAlign:"center",children:(0,e.jsx)(t.In,{name:"biohazard",size:3,color:"orange"})})]})]}),(0,e.jsx)("br",{}),(0,e.jsxs)(t.az,{children:["A thick old-style button, with 2 grimy LED lights next to it. The"," ",m?(0,e.jsx)(t.az,{textColor:"green",children:"GREEN"}):(0,e.jsx)(t.az,{textColor:"red",children:"RED"})," ","LED is on.",(0,e.jsxs)(t.so,{mt:1,align:"center",textAlign:"center",children:[(0,e.jsx)(t.so.Item,{basis:"50%",textAlign:"center",children:(0,e.jsx)(t.$n,{fontSize:"2rem",color:"grey",inline:!0,icon:"caret-square-right",style:{border:"4px solid #777",borderStyle:"outset"},onClick:function(){return c("togglesafeties")}})}),(0,e.jsxs)(t.so.Item,{basis:"50%",textAlign:"center",children:[(0,e.jsx)(t.In,{name:"circle",color:m?"black":"red",mr:2}),(0,e.jsx)(t.In,{name:"circle",color:m?"green":"black"})]})]})]})]})},u=function(l){return(0,e.jsx)(t.IC,{children:"Contents are currently being decontaminated. Please wait."})},o=function(l){return(0,e.jsx)(t.IC,{danger:!0,children:"Unit chamber is too contaminated to continue usage. Please call for a qualified individual to perform maintenance."})}},50028:function(O,h,n){"use strict";n.r(h),n.d(h,{SupermatterMonitor:function(){return x},SupermatterMonitorContent:function(){return u}});var e=n(20462),i=n(4089),t=n(61282),r=n(7081),s=n(88569),g=n(15581),x=function(a){return(0,e.jsx)(g.p8,{width:600,height:400,children:(0,e.jsx)(g.p8.Content,{scrollable:!0,children:(0,e.jsx)(u,{})})})},u=function(a){var c=(0,r.Oc)().data,f=c.active;return f?(0,e.jsx)(l,{}):(0,e.jsx)(o,{})},o=function(a){var c=(0,r.Oc)(),f=c.act,m=c.data,v=m.supermatters;return(0,e.jsx)(s.wn,{title:"Supermatters Detected",buttons:(0,e.jsx)(s.$n,{icon:"sync",onClick:function(){return f("refresh")},children:"Refresh"}),children:(0,e.jsx)(s.so,{wrap:"wrap",children:v.map(function(j,E){return(0,e.jsx)(s.so.Item,{basis:"49%",grow:E%2,children:(0,e.jsx)(s.wn,{title:j.area_name+" (#"+j.uid+")",children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsxs)(s.Ki.Item,{label:"Integrity",children:[j.integrity," %"]}),(0,e.jsx)(s.Ki.Item,{label:"Options",children:(0,e.jsx)(s.$n,{icon:"eye",onClick:function(){return f("set",{set:j.uid})},children:"View Details"})})]})})},E)})})})},l=function(a){var c=(0,r.Oc)(),f=c.act,m=c.data,v=m.SM_area,j=m.SM_integrity,E=m.SM_power,y=m.SM_ambienttemp,M=m.SM_ambientpressure,P=m.SM_EPR,D=m.SM_gas_O2,S=m.SM_gas_CO2,B=m.SM_gas_N2,T=m.SM_gas_PH,L=m.SM_gas_N2O;return(0,e.jsx)(s.wn,{title:(0,t.Sn)(v),buttons:(0,e.jsx)(s.$n,{icon:"arrow-left",onClick:function(){return f("clear")},children:"Return to Menu"}),children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsx)(s.Ki.Item,{label:"Core Integrity",children:(0,e.jsx)(s.z2,{value:j,minValue:0,maxValue:100,ranges:{good:[100,100],average:[50,100],bad:[-1/0,50]}})}),(0,e.jsx)(s.Ki.Item,{label:"Relative EER",children:(0,e.jsx)(s.az,{color:E>300&&"bad"||E>150&&"average"||"good",children:(0,e.jsx)(s.zv,{format:function(W){return(0,i.Mg)(W,2)+" MeV/cm\xB3"},value:E})})}),(0,e.jsx)(s.Ki.Item,{label:"Temperature",children:(0,e.jsx)(s.az,{color:y>5e3&&"bad"||y>4e3&&"average"||"good",children:(0,e.jsx)(s.zv,{format:function(W){return(0,i.Mg)(W,2)+" K"},value:y})})}),(0,e.jsx)(s.Ki.Item,{label:"Pressure",children:(0,e.jsx)(s.az,{color:M>1e4&&"bad"||M>5e3&&"average"||"good",children:(0,e.jsx)(s.zv,{format:function(W){return(0,i.Mg)(W,2)+" kPa"},value:M})})}),(0,e.jsx)(s.Ki.Item,{label:"Chamber EPR",children:(0,e.jsx)(s.az,{color:P>4&&"bad"||P>1&&"average"||"good",children:(0,e.jsx)(s.zv,{format:function(W){return(0,i.Mg)(W,2)},value:P})})}),(0,e.jsx)(s.Ki.Item,{label:"Gas Composition",children:(0,e.jsxs)(s.Ki,{children:[(0,e.jsxs)(s.Ki.Item,{label:"O\xB2",children:[(0,e.jsx)(s.zv,{value:D}),"%"]}),(0,e.jsxs)(s.Ki.Item,{label:"CO\xB2",children:[(0,e.jsx)(s.zv,{value:S}),"%"]}),(0,e.jsxs)(s.Ki.Item,{label:"N\xB2",children:[(0,e.jsx)(s.zv,{value:B}),"%"]}),(0,e.jsxs)(s.Ki.Item,{label:"PH",children:[(0,e.jsx)(s.zv,{value:T}),"%"]}),(0,e.jsxs)(s.Ki.Item,{label:"N\xB2O",children:[(0,e.jsx)(s.zv,{value:L}),"%"]})]})})]})})}},57754:function(O,h,n){"use strict";n.r(h),n.d(h,{SupplyConsoleMenu:function(){return x}});var e=n(20462),i=n(61358),t=n(88569),r=n(10242),s=n(50656),g=n(60164),x=function(u){var o=(0,i.useState)(0),l=o[0],a=o[1],c=[];return c[0]=(0,e.jsx)(s.SupplyConsoleMenuOrder,{}),c[1]=(0,e.jsx)(g.SupplyConsoleMenuOrderList,{mode:"Approved"}),c[2]=(0,e.jsx)(g.SupplyConsoleMenuOrderList,{mode:"Requested"}),c[3]=(0,e.jsx)(g.SupplyConsoleMenuOrderList,{mode:"All"}),c[4]=(0,e.jsx)(r.SupplyConsoleMenuHistoryExport,{}),(0,e.jsxs)(t.wn,{title:"Menu",children:[(0,e.jsxs)(t.tU,{children:[(0,e.jsx)(t.tU.Tab,{icon:"box",selected:l===0,onClick:function(){return a(0)},children:"Request"}),(0,e.jsx)(t.tU.Tab,{icon:"check-circle-o",selected:l===1,onClick:function(){return a(1)},children:"Accepted"}),(0,e.jsx)(t.tU.Tab,{icon:"circle-o",selected:l===2,onClick:function(){return a(2)},children:"Requests"}),(0,e.jsx)(t.tU.Tab,{icon:"book",selected:l===3,onClick:function(){return a(3)},children:"Order history"}),(0,e.jsx)(t.tU.Tab,{icon:"book",selected:l===4,onClick:function(){return a(4)},children:"Export history"})]}),c[l]||""]})}},10242:function(O,h,n){"use strict";n.r(h),n.d(h,{SupplyConsoleMenuHistoryExport:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.receipts,l=u.order_auth;return o.length?(0,e.jsx)(t.wn,{scrollable:!0,fill:!0,height:"290px",children:o.map(function(a,c){return(0,e.jsxs)(t.wn,{children:[(0,e.jsxs)(t.Ki,{children:[a.title.map(function(f){return(0,e.jsx)(t.Ki.Item,{label:f.field,buttons:l?(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return x("export_edit",{ref:a.ref,edit:f.field,default:f.entry})},children:"Edit"}):"",children:f.entry},f.field)}),a.error?(0,e.jsx)(t.Ki.Item,{labelColor:"red",label:"Error",children:a.error}):a.contents.map(function(f,m){return(0,e.jsxs)(t.Ki.Item,{label:f.object,buttons:l?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return x("export_edit_field",{ref:a.ref,index:m+1,edit:"meow",default:f.object})},children:"Edit"}),(0,e.jsx)(t.$n,{icon:"trash",color:"red",onClick:function(){return x("export_delete_field",{ref:a.ref,index:m+1})},children:"Delete"})]}):"",children:[f.quantity,"x -> ",f.value," points"]},m)})]}),l?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{mt:1,icon:"plus",onClick:function(){return x("export_add_field",{ref:a.ref})},children:"Add Item To Record"}),(0,e.jsx)(t.$n,{icon:"trash",onClick:function(){return x("export_delete",{ref:a.ref})},children:"Delete Record"})]}):""]},c)})}):(0,e.jsx)(t.wn,{children:"No receipts found."})}},50656:function(O,h,n){"use strict";n.r(h),n.d(h,{SupplyConsoleMenuOrder:function(){return x}});var e=n(20462),i=n(7402),t=n(15813),r=n(61358),s=n(7081),g=n(88569),x=function(u){var o=(0,s.Oc)(),l=o.act,a=o.data,c=a.categories,f=a.supply_packs,m=a.contraband,v=a.supply_points,j=(0,r.useState)(null),E=j[0],y=j[1],M=(0,t.L)([function(P){return(0,i.pb)(P,function(D){return D.group===E})},function(P){return(0,i.pb)(P,function(D){return!D.contraband||!!m})},function(P){return(0,i.Ul)(P,function(D){return D.name})},function(P){return(0,i.Ul)(P,function(D){return D.cost>v})}])(f);return(0,e.jsx)(g.wn,{children:(0,e.jsxs)(g.BJ,{children:[(0,e.jsx)(g.BJ.Item,{basis:"25%",children:(0,e.jsx)(g.wn,{title:"Categories",scrollable:!0,fill:!0,height:"290px",children:c.map(function(P){return(0,e.jsx)(g.$n,{fluid:!0,selected:P===E,onClick:function(){return y(P)},children:P},P)})})}),(0,e.jsx)(g.BJ.Item,{grow:1,ml:2,children:(0,e.jsx)(g.wn,{title:"Contents",scrollable:!0,fill:!0,height:"290px",children:M.map(function(P){return(0,e.jsx)(g.az,{children:(0,e.jsxs)(g.BJ,{align:"center",justify:"flex-start",children:[(0,e.jsx)(g.BJ.Item,{basis:"70%",children:(0,e.jsx)(g.$n,{fluid:!0,icon:"shopping-cart",ellipsis:!0,color:P.cost>v?"red":void 0,onClick:function(){return l("request_crate",{ref:P.ref})},children:P.name})}),(0,e.jsx)(g.BJ.Item,{children:(0,e.jsx)(g.$n,{color:P.cost>v?"red":void 0,onClick:function(){return l("request_crate_multi",{ref:P.ref})},children:"#"})}),(0,e.jsx)(g.BJ.Item,{children:(0,e.jsx)(g.$n,{color:P.cost>v?"red":void 0,onClick:function(){return l("view_crate",{crate:P.ref})},children:"C"})}),(0,e.jsxs)(g.BJ.Item,{grow:1,children:[P.cost," points"]})]})},P.name)})})})]})})}},60164:function(O,h,n){"use strict";n.r(h),n.d(h,{SupplyConsoleMenuOrderList:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=s.mode,l=u.orders,a=u.order_auth,c=u.supply_points,f=l.filter(function(m){return m.status===o||o==="All"});return f.length?(0,e.jsxs)(t.wn,{scrollable:!0,fill:!0,height:"290px",children:[o==="Requested"&&a?(0,e.jsx)(t.$n,{mt:-1,mb:1,fluid:!0,color:"red",icon:"trash",onClick:function(){return x("clear_all_requests")},children:"Clear all requests"}):"",f.map(function(m,v){return(0,e.jsxs)(t.wn,{title:"Order "+(v+1),buttons:o==="All"&&a?(0,e.jsx)(t.$n,{color:"red",icon:"trash",onClick:function(){return x("delete_order",{ref:m.ref})},children:"Delete Record"}):"",children:[(0,e.jsxs)(t.Ki,{children:[m.entries.map(function(j,E){return j.entry?(0,e.jsx)(t.Ki.Item,{label:j.field,buttons:a?(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){x("edit_order_value",{ref:m.ref,edit:j.field,default:j.entry})},children:"Edit"}):"",children:j.entry},E):""}),o==="All"?(0,e.jsx)(t.Ki.Item,{label:"Status",children:m.status}):""]}),a&&o==="Requested"?(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"check",disabled:m.cost>c,onClick:function(){return x("approve_order",{ref:m.ref})},children:"Approve"}),(0,e.jsx)(t.$n,{icon:"times",onClick:function(){return x("deny_order",{ref:m.ref})},children:"Deny"})]}):""]},v)})]}):(0,e.jsx)(t.wn,{children:"No orders found."})}},95354:function(O,h,n){"use strict";n.r(h),n.d(h,{SupplyConsoleShuttleStatus:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(41242),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.supply_points,a=o.shuttle,c=o.shuttle_auth,f="",m=!1;return c&&(a.launch===1&&a.mode===0?f=(0,e.jsx)(t.$n,{icon:"rocket",onClick:function(){return u("send_shuttle",{mode:"send_away"})},children:"Send Away"}):a.launch===2&&(a.mode===3||a.mode===1)?f=(0,e.jsx)(t.$n,{icon:"ban",onClick:function(){return u("send_shuttle",{mode:"cancel_shuttle"})},children:"Cancel Launch"}):a.launch===1&&a.mode===5&&(f=(0,e.jsx)(t.$n,{icon:"rocket",onClick:function(){return u("send_shuttle",{mode:"send_to_station"})},children:"Send Shuttle"})),a.force&&(m=!0)),(0,e.jsxs)(t.wn,{children:[(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Supply Points",children:(0,e.jsx)(t.zv,{value:l})})}),(0,e.jsx)(t.wn,{title:"Supply Shuttle",mt:2,children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Location",buttons:(0,e.jsxs)(e.Fragment,{children:[f,m?(0,e.jsx)(t.$n,{icon:"exclamation-triangle",onClick:function(){return u("send_shuttle",{mode:"force_shuttle"})},children:"Force Launch"}):""]}),children:a.location}),(0,e.jsx)(t.Ki.Item,{label:"Engine",children:a.engine}),a.mode===4?(0,e.jsx)(t.Ki.Item,{label:"ETA",children:a.time>1?(0,r.fU)(a.time):"LATE"}):""]})})]})}},28143:function(O,h,n){"use strict";n.r(h),n.d(h,{SupplyConsole:function(){return u}});var e=n(20462),i=n(88569),t=n(86471),r=n(15581),s=n(57754),g=n(95354),x=n(98885),u=function(o){return(0,t.modalRegisterBodyOverride)("view_crate",x.viewCrateContents),(0,e.jsx)(r.p8,{width:700,height:620,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.ComplexModal,{maxWidth:"100%"}),(0,e.jsxs)(i.wn,{title:"Supply Records",children:[(0,e.jsx)(g.SupplyConsoleShuttleStatus,{}),(0,e.jsx)(s.SupplyConsoleMenu,{})]})]})})}},91192:function(O,h,n){"use strict";n.r(h)},98885:function(O,h,n){"use strict";n.r(h),n.d(h,{viewCrateContents:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.supply_points,l=s.args,a=l.name,c=l.cost,f=l.manifest,m=l.ref,v=l.random;return(0,e.jsx)(t.wn,{width:"400px",m:"-1rem",pb:"1rem",title:a,buttons:(0,e.jsx)(t.$n,{icon:"shopping-cart",disabled:c>o,onClick:function(){return x("request_crate",{ref:m})},children:"Buy - "+c+" points"}),children:(0,e.jsx)(t.wn,{title:"Contains"+(v?" any "+v+" of:":""),scrollable:!0,height:"200px",children:f.map(function(j){return(0,e.jsx)(t.az,{children:j},j)})})})}},76786:function(O,h,n){"use strict";n.r(h),n.d(h,{TEGenerator:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(41242),g=n(15581),x=function(o){var l=(0,t.Oc)().data,a=l.totalOutput,c=l.maxTotalOutput,f=l.thermalOutput,m=l.primary,v=l.secondary;return(0,e.jsx)(g.p8,{width:550,height:310,children:(0,e.jsxs)(g.p8.Content,{children:[(0,e.jsx)(r.wn,{title:"Status",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Total Output",children:(0,e.jsx)(r.z2,{value:a,maxValue:c,children:(0,s.d5)(a)})}),(0,e.jsx)(r.Ki.Item,{label:"Thermal Output",children:(0,s.d5)(f)})]})}),m&&v?(0,e.jsxs)(r.so,{spacing:1,children:[(0,e.jsx)(r.so.Item,{shrink:1,grow:1,children:(0,e.jsx)(u,{name:"Primary Circulator",values:m})}),(0,e.jsx)(r.so.Item,{shrink:1,grow:1,children:(0,e.jsx)(u,{name:"Secondary Circulator",values:v})})]}):(0,e.jsx)(r.az,{color:"bad",children:"Warning! Both circulators must be connected in order to operate this machine."})]})})},u=function(o){var l=o.name,a=o.values,c=a.dir,f=a.output,m=a.flowCapacity,v=a.inletPressure,j=a.inletTemperature,E=a.outletPressure,y=a.outletTemperature;return(0,e.jsx)(r.wn,{title:l+" ("+c+")",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Turbine Output",children:(0,s.d5)(f)}),(0,e.jsxs)(r.Ki.Item,{label:"Flow Capacity",children:[(0,i.Mg)(m,2),"%"]}),(0,e.jsx)(r.Ki.Item,{label:"Inlet Pressure",children:(0,s.QL)(v*1e3,0,"Pa")}),(0,e.jsxs)(r.Ki.Item,{label:"Inlet Temperature",children:[(0,i.Mg)(j,2)," K"]}),(0,e.jsx)(r.Ki.Item,{label:"Outlet Pressure",children:(0,s.QL)(E*1e3,0,"Pa")}),(0,e.jsxs)(r.Ki.Item,{label:"Outlet Temperature",children:[(0,i.Mg)(y,2)," K"]})]})})}},27136:function(O,h,n){"use strict";n.r(h),n.d(h,{Tank:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.connected,a=o.showToggle,c=a===void 0?!0:a,f=o.maskConnected,m=o.tankPressure,v=o.releasePressure,j=o.defaultReleasePressure,E=o.minReleasePressure,y=o.maxReleasePressure;return(0,e.jsx)(r.p8,{width:400,height:320,children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{title:"Status",buttons:!!c&&(0,e.jsx)(t.$n,{icon:l?"air-freshener":"lock-open",selected:l,disabled:!f,onClick:function(){return u("toggle")},children:"Mask Release Valve"}),children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Mask Connected",children:f?"Yes":"No"})})}),(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Pressure",children:(0,e.jsx)(t.z2,{value:m/1013,ranges:{good:[.35,1/0],average:[.15,.35],bad:[-1/0,.15]},children:o.tankPressure+" kPa"})}),(0,e.jsxs)(t.Ki.Item,{label:"Pressure Regulator",children:[(0,e.jsx)(t.$n,{icon:"fast-backward",disabled:v===E,onClick:function(){return u("pressure",{pressure:"min"})}}),(0,e.jsx)(t.Q7,{animated:!0,step:1,value:v,width:"65px",unit:"kPa",minValue:E,maxValue:y,onChange:function(M){return u("pressure",{pressure:M})}}),(0,e.jsx)(t.$n,{icon:"fast-forward",disabled:v===y,onClick:function(){return u("pressure",{pressure:"max"})}}),(0,e.jsx)(t.$n,{icon:"undo",disabled:v===j,onClick:function(){return u("pressure",{pressure:"reset"})}})]})]})})]})})}},10351:function(O,h,n){"use strict";n.r(h),n.d(h,{TankDispenser:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.plasma,a=o.oxygen;return(0,e.jsx)(r.p8,{width:275,height:103,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Phoron",buttons:(0,e.jsx)(t.$n,{icon:l?"square":"square-o",disabled:!l,onClick:function(){return u("plasma")},children:"Dispense"}),children:l}),(0,e.jsx)(t.Ki.Item,{label:"Oxygen",buttons:(0,e.jsx)(t.$n,{icon:a?"square":"square-o",disabled:!a,onClick:function(){return u("oxygen")},children:"Dispense"}),children:a})]})})})})}},66303:function(O,h,n){"use strict";n.r(h),n.d(h,{TelecommsLogBrowser:function(){return g}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g=function(l){var a=(0,t.Oc)(),c=a.act,f=a.data,m=f.universal_translate,v=f.network,j=f.temp,E=f.servers,y=f.selectedServer;return(0,e.jsx)(s.p8,{width:575,height:450,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[j&&j.color==="bad"&&(0,e.jsxs)(r.IC,{danger:!0,children:[(0,e.jsx)(r.az,{inline:!0,verticalAlign:"middle",children:j.text}),(0,e.jsx)(r.$n,{icon:"times-circle",style:{float:"right"},onClick:function(){return c("cleartemp")}}),(0,e.jsx)(r.az,{style:{clear:"both"}})]})||j&&j.color!=="bad"&&(0,e.jsxs)(r.IC,{warning:!0,children:[(0,e.jsx)(r.az,{inline:!0,verticalAlign:"middle",children:j.text}),(0,e.jsx)(r.$n,{icon:"times-circle",style:{float:"right"},onClick:function(){return c("cleartemp")}}),(0,e.jsx)(r.az,{style:{clear:"both"}})]})||"",(0,e.jsx)(r.wn,{title:"Network Control",children:(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Current Network",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.$n,{icon:"search",onClick:function(){return c("scan")},children:"Refresh"}),(0,e.jsx)(r.$n,{color:"bad",icon:"exclamation-triangle",disabled:E.length===0,onClick:function(){return c("release")},children:"Flush Buffer"})]}),children:(0,e.jsx)(r.$n,{icon:"pen",onClick:function(){return c("network")},children:v})})})}),y?(0,e.jsx)(u,{network:v,server:y,universal_translate:m}):(0,e.jsx)(x,{network:v,servers:E})]})})},x=function(l){var a=(0,t.Oc)().act,c=l.network,f=l.servers;return!f||!f.length?(0,e.jsxs)(r.wn,{title:"Detected Telecommunications Servers",children:[(0,e.jsx)(r.az,{color:"bad",children:"No servers detected."}),(0,e.jsx)(r.$n,{fluid:!0,icon:"search",onClick:function(){return a("scan")},children:"Scan"})]}):(0,e.jsx)(r.wn,{title:"Detected Telecommunications Servers",children:(0,e.jsx)(r.Ki,{children:f.map(function(m){return(0,e.jsx)(r.Ki.Item,{label:m.name+" ("+m.id+")",children:(0,e.jsx)(r.$n,{icon:"eye",onClick:function(){return a("view",{id:m.id})},children:"View"})},m.id)})})})},u=function(l){var a=(0,t.Oc)().act,c=l.network,f=l.server,m=l.universal_translate;return(0,e.jsxs)(r.wn,{title:"Server ("+f.id+")",buttons:(0,e.jsx)(r.$n,{icon:"undo",onClick:function(){return a("mainmenu")},children:"Return"}),children:[(0,e.jsx)(r.Ki,{children:(0,e.jsx)(r.Ki.Item,{label:"Total Recorded Traffic",children:f.totalTraffic>=1024?(0,i.Mg)(f.totalTraffic/1024)+" Terrabytes":f.totalTraffic+" Gigabytes"})}),(0,e.jsx)(r.wn,{title:"Stored Logs",mt:"4px",children:(0,e.jsx)(r.so,{wrap:"wrap",children:!f.logs||!f.logs.length?"No Logs Detected.":f.logs.map(function(v){return(0,e.jsx)(r.so.Item,{m:"2px",basis:"49%",grow:v.id%2,children:(0,e.jsx)(r.wn,{title:m||v.parameters.uspeech||v.parameters.intelligible||v.input_type==="Execution Error"?v.input_type:"Audio File",buttons:(0,e.jsx)(r.$n.Confirm,{confirmContent:"Delete Log?",color:"bad",icon:"trash",confirmIcon:"trash",onClick:function(){return a("delete",{id:v.id})}}),children:v.input_type==="Execution Error"?(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Data type",children:"Error"}),(0,e.jsx)(r.Ki.Item,{label:"Output",children:v.parameters.message}),(0,e.jsx)(r.Ki.Item,{label:"Delete",children:(0,e.jsx)(r.$n,{icon:"trash",onClick:function(){return a("delete",{id:v.id})}})})]}):m||v.parameters.uspeech||v.parameters.intelligible?(0,e.jsx)(o,{log:v}):(0,e.jsx)(o,{error:!0})})},v.id)})})})]})},o=function(l){var a=l.log,c=l.error,f=a&&a.parameters||{none:"none"},m=f.timecode,v=f.name,j=f.race,E=f.job,y=f.message;return c?(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Time Recieved",children:m}),(0,e.jsx)(r.Ki.Item,{label:"Source",children:"Unidentifiable"}),(0,e.jsx)(r.Ki.Item,{label:"Class",children:j}),(0,e.jsx)(r.Ki.Item,{label:"Contents",children:"Unintelligible"})]}):(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Time Recieved",children:m}),(0,e.jsxs)(r.Ki.Item,{label:"Source",children:[v," (Job: ",E,")"]}),(0,e.jsx)(r.Ki.Item,{label:"Class",children:j}),(0,e.jsx)(r.Ki.Item,{label:"Contents",className:"LabeledList__breakContents",children:y})]})}},3684:function(O,h,n){"use strict";n.r(h),n.d(h,{TelecommsMachineBrowser:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.network,c=l.temp,f=l.machinelist,m=l.selectedMachine;return(0,e.jsx)(r.p8,{width:575,height:450,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[c&&c.color==="bad"&&(0,e.jsxs)(t.IC,{danger:!0,children:[(0,e.jsx)(t.az,{inline:!0,verticalAlign:"middle",children:c.text}),(0,e.jsx)(t.$n,{icon:"times-circle",style:{float:"right"},onClick:function(){return o("cleartemp")}}),(0,e.jsx)(t.az,{style:{clear:"both"}})]})||c&&c.color!=="bad"&&(0,e.jsxs)(t.IC,{warning:!0,children:[(0,e.jsx)(t.az,{inline:!0,verticalAlign:"middle",children:c.text}),(0,e.jsx)(t.$n,{icon:"times-circle",style:{float:"right"},onClick:function(){return o("cleartemp")}}),(0,e.jsx)(t.az,{style:{clear:"both"}})]})||"",(0,e.jsx)(t.wn,{title:"Network Control",children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Current Network",buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:"search",onClick:function(){return o("scan")},children:"Probe Network"}),(0,e.jsx)(t.$n,{color:"bad",icon:"exclamation-triangle",disabled:f.length===0,onClick:function(){return o("release")},children:"Flush Buffer"})]}),children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return o("network")},children:a})})})}),f&&f.length?(0,e.jsx)(g,{title:m?m.name+" ("+m.id+")":"Detected Network Entities",list:m?m.links:f,showBack:m}):(0,e.jsx)(t.wn,{title:"No Devices Found",children:(0,e.jsx)(t.$n,{icon:"search",onClick:function(){return o("scan")},children:"Probe Network"})})]})})},g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=x.list,c=x.title,f=x.showBack;return(0,e.jsxs)(t.wn,{title:c,buttons:f&&(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return o("mainmenu")},children:"Back to Main Menu"}),children:[(0,e.jsx)(t.az,{color:"label",children:(0,e.jsx)("u",{children:"Linked entities"})}),(0,e.jsx)(t.Ki,{children:a.length?a.map(function(m){return(0,e.jsx)(t.Ki.Item,{label:m.name+" ("+m.id+")",children:(0,e.jsx)(t.$n,{icon:"eye",onClick:function(){return o("view",{id:m.id})},children:"View"})},m.id)}):(0,e.jsx)(t.Ki.Item,{color:"bad",children:"No links detected."})})]})}},30053:function(O,h,n){"use strict";n.r(h),n.d(h,{TelecommsMultitoolMenu:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=n(3751),g=function(o){var l=(0,i.Oc)().data,a=l.options;return(0,e.jsx)(r.p8,{width:520,height:540,children:(0,e.jsxs)(r.p8.Content,{scrollable:!0,children:[(0,e.jsx)(s.TemporaryNotice,{}),(0,e.jsx)(x,{}),(0,e.jsx)(u,{options:a})]})})},x=function(o){var l=(0,i.Oc)(),a=l.act,c=l.data,f=c.on,m=c.id,v=c.network,j=c.autolinkers,E=c.shadowlink,y=c.linked,M=c.filter,P=c.multitool,D=c.multitool_buffer;return(0,e.jsxs)(t.wn,{title:"Status",buttons:(0,e.jsx)(t.$n,{icon:"power-off",selected:f,onClick:function(){return a("toggle")},children:f?"On":"Off"}),children:[(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Identification String",children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return a("id")},children:m})}),(0,e.jsx)(t.Ki.Item,{label:"Network",children:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return a("network")},children:v})}),(0,e.jsx)(t.Ki.Item,{label:"Prefabrication",children:j?"TRUE":"FALSE"}),E?(0,e.jsx)(t.Ki.Item,{label:"Shadow Link",children:"Active."}):"",P?(0,e.jsxs)(t.Ki.Item,{label:"Multitool Buffer",children:[D?(0,e.jsxs)(e.Fragment,{children:[D.name," (",D.id,")"]}):"",(0,e.jsx)(t.$n,{color:D?"green":void 0,icon:D?"link":"plus",onClick:D?function(){return a("link")}:function(){return a("buffer")},children:D?"Link ("+D.id+")":"Add Machine"}),D?(0,e.jsx)(t.$n,{color:"red",icon:"trash",onClick:function(){return a("flush")},children:"Flush"}):""]}):""]}),(0,e.jsx)(t.wn,{title:"Linked network Entities",mt:1,children:(0,e.jsx)(t.Ki,{children:y.map(function(S){return(0,e.jsx)(t.Ki.Item,{label:S.ref+" "+S.name+" ("+S.id+")",buttons:(0,e.jsx)(t.$n.Confirm,{color:"red",icon:"trash",onClick:function(){return a("unlink",{unlink:S.index})}})},S.ref)})})}),(0,e.jsxs)(t.wn,{title:"Filtering Frequencies",mt:1,buttons:(0,e.jsx)(t.$n,{icon:"pen",onClick:function(){return a("freq")},children:"Add Frequency"}),children:[M.map(function(S,B){return(0,e.jsx)(t.$n.Confirm,{confirmContent:"Delete?",confirmColor:"red",confirmIcon:"trash",onClick:function(){return a("delete",{delete:S.freq})},children:S.name+" GHz"},B)}),!M||M.length===0?(0,e.jsx)(t.az,{color:"label",children:"No filters."}):""]})]})},u=function(o){var l=(0,i.Oc)().act,a=o.options,c=a.use_listening_level,f=a.use_broadcasting,m=a.use_receiving,v=a.listening_level,j=a.broadcasting,E=a.receiving,y=a.use_change_freq,M=a.change_freq,P=a.use_broadcast_range,D=a.use_receive_range,S=a.range,B=a.minRange,T=a.maxRange;return!c&&!f&&!m&&!y&&!P&&!D?(0,e.jsx)(t.wn,{title:"No Options Found"}):(0,e.jsx)(t.wn,{title:"Options",children:(0,e.jsxs)(t.Ki,{children:[c?(0,e.jsx)(t.Ki.Item,{label:"Signal Locked to Station",children:(0,e.jsx)(t.$n,{icon:v?"lock-closed":"lock-open",onClick:function(){return l("change_listening")},children:v?"Yes":"No"})}):"",f?(0,e.jsx)(t.Ki.Item,{label:"Broadcasting",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:j,onClick:function(){return l("broadcast")},children:j?"Yes":"No"})}):"",m?(0,e.jsx)(t.Ki.Item,{label:"Receving",children:(0,e.jsx)(t.$n,{icon:"power-off",selected:E,onClick:function(){return l("receive")},children:E?"Yes":"No"})}):"",y?(0,e.jsx)(t.Ki.Item,{label:"Change Signal Frequency",children:(0,e.jsx)(t.$n,{icon:"wave-square",selected:!!M,onClick:function(){return l("change_freq")},children:M?"Yes ("+M+")":"No"})}):"",P||D?(0,e.jsx)(t.Ki.Item,{label:(P?"Broadcast":"Receive")+" Range",children:(0,e.jsx)(t.Q7,{step:1,value:S,minValue:B,maxValue:T,unit:"gigameters",stepPixelSize:4,format:function(L){return(L+1).toString()},onDrag:function(L){return l("range",{range:L})}})}):""]})})}},50624:function(O,h,n){"use strict";n.r(h),n.d(h,{Teleporter:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.locked_name,a=o.station_connected,c=o.hub_connected,f=o.calibrated,m=o.teleporter_on;return(0,e.jsx)(r.p8,{width:300,height:200,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsx)(t.wn,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Target",children:(0,e.jsx)(t.$n,{fluid:!0,icon:"bullseye",onClick:function(){return u("select_target")},children:l})}),(0,e.jsx)(t.Ki.Item,{label:"Calibrated",children:(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:f,color:f?"good":"bad",onClick:function(){return u("test_fire")},children:f?"Accurate":"Test Fire"})}),(0,e.jsx)(t.Ki.Item,{label:"Teleporter",children:(0,e.jsx)(t.$n.Checkbox,{fluid:!0,checked:m,color:m?"good":"bad",onClick:function(){return u("toggle_on")},children:m?"Online":"OFFLINE"})}),(0,e.jsx)(t.Ki.Item,{label:"Station",children:a?"Connected":"Not Connected"}),(0,e.jsx)(t.Ki.Item,{label:"Hub",children:c?"Connected":"Not Connected"})]})})})})}},92546:function(O,h,n){"use strict";n.r(h),n.d(h,{TelesciConsole:function(){return g},TelesciConsoleContent:function(){return u}});var e=n(20462),i=n(7402),t=n(7081),r=n(88569),s=n(15581),g=function(o){var l=(0,t.Oc)().data,a=l.noTelepad;return(0,e.jsx)(s.p8,{width:400,height:450,children:(0,e.jsx)(s.p8.Content,{scrollable:!0,children:a&&(0,e.jsx)(x,{})||(0,e.jsx)(u,{})})})},x=function(o){return(0,e.jsxs)(r.wn,{title:"Error",color:"bad",children:["No telepad located.",(0,e.jsx)("br",{}),"Please add telepad data."]})},u=function(o){var l=(0,t.Oc)(),a=l.act,c=l.data,f=c.insertedGps,m=c.rotation,v=c.currentZ,j=c.cooldown,E=c.crystalCount,y=c.maxCrystals,M=c.maxPossibleDistance,P=c.maxAllowedDistance,D=c.distance,S=c.tempMsg,B=c.sectorOptions,T=c.lastTeleData;return(0,e.jsxs)(r.wn,{title:"Telepad Controls",buttons:(0,e.jsx)(r.$n,{icon:"eject",disabled:!f,onClick:function(){return a("ejectGPS")},children:"Eject GPS"}),children:[(0,e.jsx)(r.IC,{info:!0,children:j&&(0,e.jsxs)(r.az,{children:["Telepad is recharging. Please wait",(0,e.jsx)(r.zv,{value:j})," seconds."]})||(0,e.jsx)(r.az,{children:S})}),(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Bearing",children:(0,e.jsx)(r.Q7,{fluid:!0,value:m,format:function(L){return L+"\xB0"},step:1,minValue:-900,maxValue:900,onDrag:function(L){return a("setrotation",{val:L})}})}),(0,e.jsx)(r.Ki.Item,{label:"Distance",children:(0,e.jsx)(r.Q7,{fluid:!0,value:D,format:function(L){return L+"/"+P+" m"},minValue:0,maxValue:P,step:1,stepPixelSize:4,onDrag:function(L){return a("setdistance",{val:L})}})}),(0,e.jsx)(r.Ki.Item,{label:"Sector",children:B&&(0,i.Ul)(B,function(L){return L}).map(function(L){return(0,e.jsx)(r.$n,{icon:"check-circle",selected:v===Number(L),onClick:function(){return a("setz",{setz:L})},children:L},L)})}),(0,e.jsxs)(r.Ki.Item,{label:"Controls",children:[(0,e.jsx)(r.$n,{icon:"share",iconRotation:-90,onClick:function(){return a("send")},children:"Send"}),(0,e.jsx)(r.$n,{icon:"share",iconRotation:90,onClick:function(){return a("receive")},children:"Receive"}),(0,e.jsx)(r.$n,{icon:"sync",iconRotation:90,onClick:function(){return a("recal")},children:"Recalibrate"})]})]}),T&&(0,e.jsx)(r.wn,{mt:1,children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsxs)(r.Ki.Item,{label:"Telepad Location",children:[T.src_x,", ",T.src_y]}),(0,e.jsxs)(r.Ki.Item,{label:"Distance",children:[T.distance,"m"]}),(0,e.jsxs)(r.Ki.Item,{label:"Transit Time",children:[T.time," secs"]})]})})||(0,e.jsx)(r.wn,{mt:1,children:"No teleport data found."}),(0,e.jsxs)(r.wn,{children:["Crystals: ",E," / ",y]})]})}},95273:function(O,h,n){"use strict";n.r(h),n.d(h,{TextInputModal:function(){return a},removeAllSkiplines:function(){return l},sanitizeMultiline:function(){return o}});var e=n(20462),i=n(87239),t=n(61358),r=n(7081),s=n(88569),g=n(15581),x=n(5335),u=n(44149),o=function(f){return f.replace(/(\n|\r\n){3,}/,"\n\n")},l=function(f){return f.replace(/[\r\n]+/," ")},a=function(f){var m=(0,r.Oc)(),v=m.act,j=m.data,E=j.large_buttons,y=j.max_length,M=j.message,P=M===void 0?"":M,D=j.multiline,S=j.placeholder,B=S===void 0?"":S,T=j.timeout,L=j.title,W=(0,t.useState)(B||""),$=W[0],k=W[1],z=function(Q){if(Q!==$){var ee=D?o(Q):l(Q);k(ee)}},X=D||$.length>=30,G=135+(P.length>30?Math.ceil(P.length/4):0)+(X?75:0)+(P.length&&E?5:0);return(0,e.jsxs)(g.p8,{title:L,width:325,height:G,children:[T&&(0,e.jsx)(u.Loader,{value:T}),(0,e.jsx)(g.p8.Content,{onKeyDown:function(Q){Q.key===i._.Enter&&(!X||!Q.shiftKey)&&v("submit",{entry:$}),(0,i.K)(Q.key)&&v("cancel")},children:(0,e.jsx)(s.wn,{fill:!0,children:(0,e.jsxs)(s.BJ,{fill:!0,vertical:!0,children:[(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(s.az,{color:"label",children:P})}),(0,e.jsx)(s.BJ.Item,{grow:!0,children:(0,e.jsx)(c,{input:$,onType:z},L)}),(0,e.jsx)(s.BJ.Item,{children:(0,e.jsx)(x.InputButtons,{input:$,message:$.length+"/"+y})})]})})})]})},c=function(f){var m=(0,r.Oc)(),v=m.act,j=m.data,E=j.max_length,y=j.multiline,M=f.input,P=f.onType,D=y||M.length>=30;return(0,e.jsx)(s.fs,{autoFocus:!0,autoSelect:!0,height:y||M.length>=30?"100%":"1.8rem",maxLength:E,onEscape:function(){return v("cancel")},onEnter:function(S){D&&S.shiftKey||(S.preventDefault(),v("submit",{entry:M}))},onChange:function(S,B){return P(B)},onInput:function(S,B){return P(B)},placeholder:"Type something...",value:M})}},34113:function(O,h,n){"use strict";n.r(h),n.d(h,{TimeClock:function(){return x}});var e=n(20462),i=n(4089),t=n(7081),r=n(88569),s=n(15581),g=n(10921),x=function(u){var o=(0,t.Oc)(),l=o.act,a=o.data,c=a.department_hours,f=a.user_name,m=a.card,v=a.assignment,j=a.job_datum,E=a.allow_change_job,y=a.job_choices;return(0,e.jsx)(s.p8,{width:500,height:520,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsxs)(r.wn,{title:"OOC",children:[(0,e.jsx)(r.IC,{children:"OOC Note: PTO acquired is account-wide and shared across all characters. Info listed below is not IC information."}),(0,e.jsx)(r.wn,{title:"Time Off Balance for "+f,children:(0,e.jsx)(r.Ki,{children:!!c&&Object.keys(c).map(function(M){return(0,e.jsxs)(r.Ki.Item,{label:M,color:c[M]>6?"good":c[M]>1?"average":"bad",children:[(0,i.Mg)(c[M],1)," ",c[M]===1?"hour":"hours"]},M)})})})]}),(0,e.jsx)(r.wn,{title:"Employee Info",children:(0,e.jsxs)(r.Ki,{children:[(0,e.jsx)(r.Ki.Item,{label:"Employee ID",children:(0,e.jsx)(r.$n,{fluid:!0,icon:"user",onClick:function(){return l("id")},children:m||"Insert ID"})}),!!j&&(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(r.Ki.Item,{label:"Rank",children:(0,e.jsx)(r.az,{backgroundColor:j.selection_color,p:.8,children:(0,e.jsxs)(r.so,{justify:"space-between",align:"center",children:[(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.az,{ml:1,children:(0,e.jsx)(g.RankIcon,{color:"white",rank:j.title})})}),(0,e.jsx)(r.so.Item,{children:(0,e.jsx)(r.az,{fontSize:1.5,inline:!0,mr:1,children:j.title})})]})})}),(0,e.jsx)(r.Ki.Item,{label:"Departments",children:j.departments}),(0,e.jsx)(r.Ki.Item,{label:"Pay Scale",children:j.economic_modifier}),(0,e.jsx)(r.Ki.Item,{label:"PTO Elegibility",children:j.timeoff_factor>0&&(0,e.jsxs)(r.az,{children:["Earns PTO - ",j.pto_department]})||j.timeoff_factor<0&&(0,e.jsxs)(r.az,{children:["Requires PTO - ",j.pto_department]})||(0,e.jsx)(r.az,{children:"Neutral"})})]})]})}),!!(E&&j&&j.timeoff_factor!==0&&v!=="Dismissed")&&(0,e.jsx)(r.wn,{title:"Employment Actions",children:j.timeoff_factor>0&&(!!c&&c[j.pto_department]>0&&(0,e.jsx)(r.$n,{fluid:!0,icon:"exclamation-triangle",onClick:function(){return l("switch-to-offduty")},children:"Go Off-Duty"})||(0,e.jsx)(r.az,{color:"bad",children:"Warning: You do not have enough accrued time off to go off-duty."}))||!!y&&Object.keys(y).length&&Object.keys(y).map(function(M){var P=y[M];return P.map(function(D){return(0,e.jsx)(r.$n,{icon:"suitcase",onClick:function(){return l("switch-to-onduty-rank",{"switch-to-onduty-rank":M,"switch-to-onduty-assignment":D})},children:D},D)})})||(0,e.jsx)(r.az,{color:"bad",children:"No Open Positions - See Head Of Personnel"})})]})})}},6972:function(O,h,n){"use strict";n.r(h),n.d(h,{TraitDescription:function(){return x},TraitSelection:function(){return g},TraitTutorial:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data;return(0,e.jsx)(r.p8,{width:804,height:426,children:(0,e.jsx)(r.p8.Content,{scrollable:!0,children:(0,e.jsx)(t.wn,{title:"Guide to Custom Traits",children:(0,e.jsx)(g,{})})})})},g=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=a.names,f=a.selection;return(0,e.jsxs)(t.BJ,{children:[(0,e.jsx)(t.BJ.Item,{shrink:!0,children:(0,e.jsx)(t.wn,{title:"Trait Selection",children:(0,e.jsx)(t.tU,{vertical:!0,children:c.map(function(m){return(0,e.jsx)(t.tU.Tab,{selected:m===f,onClick:function(){return l("select_trait",{name:m})},children:(0,e.jsx)(t.az,{inline:!0,children:m})},m)})})})}),(0,e.jsx)(t.BJ.Item,{grow:8,children:f&&(0,e.jsx)(t.wn,{title:f,children:(0,e.jsx)(x,{name:f})})})]})},x=function(u){var o=(0,i.Oc)(),l=o.act,a=o.data,c=u.name,f=a.descriptions,m=a.categories,v=a.tutorials;return(0,e.jsxs)(t.wn,{children:[(0,e.jsx)("b",{children:"Name:"})," ",c,(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Category:"})," ",m[c],(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Description:"})," ",f[c],(0,e.jsx)("br",{}),(0,e.jsx)("b",{children:"Details & How to Use:"}),(0,e.jsx)("br",{}),(0,e.jsx)("br",{}),(0,e.jsx)("div",{dangerouslySetInnerHTML:{__html:v[c]}})]})}},67159:function(O,h,n){"use strict";n.r(h),n.d(h,{TransferValve:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.tank_one,a=o.tank_two,c=o.attached_device,f=o.valve;return(0,e.jsx)(r.p8,{children:(0,e.jsxs)(r.p8.Content,{children:[(0,e.jsx)(t.wn,{children:(0,e.jsx)(t.Ki,{children:(0,e.jsx)(t.Ki.Item,{label:"Valve Status",children:(0,e.jsx)(t.$n,{icon:f?"unlock":"lock",disabled:!l||!a,onClick:function(){return u("toggle")},children:f?"Open":"Closed"})})})}),(0,e.jsx)(t.wn,{title:"Assembly",buttons:(0,e.jsx)(t.$n,{textAlign:"center",width:"150px",icon:"cog",disabled:!c,onClick:function(){return u("device")},children:"Configure Assembly"}),children:(0,e.jsx)(t.Ki,{children:c?(0,e.jsx)(t.Ki.Item,{label:"Attachment",children:(0,e.jsx)(t.$n,{icon:"eject",disabled:!c,onClick:function(){return u("remove_device")},children:c})}):(0,e.jsx)(t.IC,{textAlign:"center",children:"Attach Assembly"})})}),(0,e.jsx)(t.wn,{title:"Attachment One",children:(0,e.jsx)(t.Ki,{children:l?(0,e.jsx)(t.Ki.Item,{label:"Attachment",children:(0,e.jsx)(t.$n,{icon:"eject",disabled:!l,onClick:function(){return u("tankone")},children:l})}):(0,e.jsx)(t.IC,{textAlign:"center",children:"Attach Tank"})})}),(0,e.jsx)(t.wn,{title:"Attachment Two",children:(0,e.jsx)(t.Ki,{children:a?(0,e.jsx)(t.Ki.Item,{label:"Attachment",children:(0,e.jsx)(t.$n,{icon:"eject",disabled:!a,onClick:function(){return u("tanktwo")},children:a})}):(0,e.jsx)(t.IC,{textAlign:"center",children:"Attach Tank"})})})]})})}},76992:function(O,h,n){"use strict";n.r(h),n.d(h,{TurbineControl:function(){return g}});var e=n(20462),i=n(7081),t=n(88569),r=n(41242),s=n(15581),g=function(x){var u=(0,i.Oc)(),o=u.act,l=u.data,a=l.compressor_broke,c=l.turbine_broke,f=l.broken,m=l.door_status,v=l.online,j=l.power,E=l.rpm,y=l.temp;return(0,e.jsx)(s.p8,{width:520,height:440,children:(0,e.jsxs)(s.p8.Content,{scrollable:!0,children:[(0,e.jsx)(t.wn,{title:"Turbine Controller",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Status",children:f&&(0,e.jsxs)(t.az,{color:"bad",children:["Setup is broken",(0,e.jsx)(t.$n,{icon:"sync",onClick:function(){return o("reconnect")},children:"Reconnect"})]})||(0,e.jsx)(t.az,{color:v?"good":"bad",children:v&&!a&&!c?"Online":"Offline"})}),(0,e.jsx)(t.Ki.Item,{label:"Compressor",children:a&&(0,e.jsx)(t.az,{color:"bad",children:"Compressor is inoperable."})||c&&(0,e.jsx)(t.az,{color:"bad",children:"Turbine is inoperable."})||(0,e.jsx)(t.az,{children:(0,e.jsx)(t.$n.Checkbox,{checked:v,onClick:function(){return o(v?"power-off":"power-on")},children:"Compressor Power"})})}),(0,e.jsx)(t.Ki.Item,{label:"Vent Doors",children:(0,e.jsx)(t.$n.Checkbox,{checked:m,onClick:function(){return o("doors")},children:m?"Closed":"Open"})})]})}),(0,e.jsx)(t.wn,{title:"Status",children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsxs)(t.Ki.Item,{label:"Turbine Speed",children:[f?"--":(0,e.jsx)(t.zv,{value:E})," RPM"]}),(0,e.jsxs)(t.Ki.Item,{label:"Internal Temperature",children:[f?"--":(0,e.jsx)(t.zv,{value:y})," K"]}),(0,e.jsx)(t.Ki.Item,{label:"Generated Power",children:f?"--":(0,e.jsx)(t.zv,{format:function(M){return(0,r.d5)(M)},value:Number(j)})})]})})]})})}},13101:function(O,h,n){"use strict";n.r(h),n.d(h,{Turbolift:function(){return s}});var e=n(20462),i=n(7081),t=n(88569),r=n(15581),s=function(g){var x=(0,i.Oc)(),u=x.act,o=x.data,l=o.floors,a=o.doors_open,c=o.fire_mode;return(0,e.jsx)(r.p8,{width:480,height:c?285:260,children:(0,e.jsx)(r.p8.Content,{children:(0,e.jsxs)(t.wn,{title:"Floor Selection",className:c?"Section--elevator--fire":null,buttons:(0,e.jsxs)(e.Fragment,{children:[(0,e.jsx)(t.$n,{icon:a?"door-open":"door-closed",selected:a&&!c,color:c?"red":null,onClick:function(){return u("toggle_doors")},children:a?c?"Close Doors (SAFETY OFF)":"Doors Open":"Doors Closed"}),(0,e.jsx)(t.$n,{icon:"exclamation-triangle",color:"bad",onClick:function(){return u("emergency_stop")},children:"Emergency Stop"})]}),children:[!c||(0,e.jsx)(t.wn,{className:"Section--elevator--fire",textAlign:"center",title:"FIREFIGHTER MODE ENGAGED"}),(0,e.jsx)(t.so,{wrap:"wrap",children:l.map(function(f){return(0,e.jsx)(t.so.Item,{basis:"100%",children:(0,e.jsxs)(t.so,{align:"center",justify:"space-around",children:[(0,e.jsx)(t.so.Item,{basis:"22%",textAlign:"right",mr:"3px",children:f.label||"Floor #"+f.id}),(0,e.jsx)(t.so.Item,{basis:"8%",textAlign:"left",children:(0,e.jsx)(t.$n,{icon:"circle",color:f.current?"red":f.target?"green":f.queued?"yellow":null,onClick:function(){return u("move_to_floor",{ref:f.ref})}})}),(0,e.jsx)(t.so.Item,{basis:"50%",grow:1,children:f.name})]})},f.id)})})]})})})}},28665:function(O,h,n){"use strict";n.r(h),n.d(h,{ExploitableInformation:function(){return r}});var e=n(20462),i=n(7081),t=n(88569),r=function(s){var g=(0,i.Oc)(),x=g.act,u=g.data,o=u.exploit,l=u.locked_records;return(0,e.jsx)(t.wn,{title:"Exploitable Information",buttons:o&&(0,e.jsx)(t.$n,{icon:"undo",onClick:function(){return x("view_exploits",{id:0})},children:"Back"}),children:o&&(0,e.jsx)(t.az,{children:(0,e.jsxs)(t.Ki,{children:[(0,e.jsx)(t.Ki.Item,{label:"Name",children:o.name}),(0,e.jsx)(t.Ki.Item,{label:"Sex",children:o.sex}),(0,e.jsx)(t.Ki.Item,{label:"Species",children:o.species}),(0,e.jsx)(t.Ki.Item,{label:"Age",children:o.age}),(0,e.jsx)(t.Ki.Item,{label:"Rank",children:o.rank}),(0,e.jsx)(t.Ki.Item,{label:"Home System",children:o.home_system}),(0,e.jsx)(t.Ki.Item,{label:"Birthplace",children:o.birthplace}),(0,e.jsx)(t.Ki.Item,{label:"Citizenship",children:o.citizenship}),(0,e.jsx)(t.Ki.Item,{label:"Faction",children:o.faction}),(0,e.jsx)(t.Ki.Item,{label:"Religion",children:o.religion}),(0,e.jsx)(t.Ki.Item,{label:"Fingerprint",children:o.fingerprint}),(0,e.jsx)(t.Ki.Item,{label:"Other Affiliations",children:o.antagfaction}),(0,e.jsx)(t.Ki.Divider,{}),(0,e.jsx)(t.Ki.Item,{children:"Acquired Information"}),(0,e.jsx)(t.Ki.Item,{label:"Notes",children:o.nanoui_exploit_record.split("
").map(function(a){return(0,e.jsx)(t.az,{children:a},a)})})]})})||l&&l.map(function(a){return(0,e.jsx)(t.$n,{icon:"eye",fluid:!0,onClick:function(){return x("view_exploits",{id:a.id})},children:a.name},a.id)})})}},26142:function(O,h,n){"use strict";n.r(h),n.d(h,{GenericUplink:function(){return o}});var e=n(20462),i=n(61282),t=n(61358),r=n(7081),s=n(88569),g=n(41242),x=n(32011),u=n(25513),o=function(l){var a,c,f=(0,r.Oc)(),m=f.act,v=f.data,j=l.currencyAmount,E=j===void 0?0:j,y=l.currencySymbol,M=y===void 0?"\u20AE":y,P=v.compactMode,D=v.lockable,S=v.categories,B=S===void 0?[]:S,T=(0,t.useState)(""),L=T[0],W=T[1],$=(0,t.useState)((a=B[0])==null?void 0:a.name),k=$[0],z=$[1],X=(0,i.XZ)(L,function(Q){return Q.name+Q.desc}),G=L.length>0&&B.flatMap(function(Q){return Q.items||[]}).filter(X).filter(function(Q,ee){return ee0?"good":"bad",children:[(0,g.up)(E)," ",M]}),buttons:(0,e.jsxs)(e.Fragment,{children:["Search",(0,e.jsx)(s.pd,{autoFocus:!0,value:L,onInput:function(Q,ee){return W(ee)},mx:1}),(0,e.jsx)(s.$n,{icon:P?"list":"info",onClick:function(){return m("compact_toggle")},children:P?"Compact":"Detailed"}),!!D&&(0,e.jsx)(s.$n,{icon:"lock",onClick:function(){return m("lock")},children:"Lock"})]}),children:(0,e.jsxs)(s.so,{children:[L.length===0&&(0,e.jsx)(s.so.Item,{children:(0,e.jsx)(s.tU,{vertical:!0,children:B.map(function(Q){var ee;return(0,e.jsxs)(s.tU.Tab,{selected:Q.name===k,onClick:function(){return z(Q.name)},children:[Q.name," (",((ee=Q.items)==null?void 0:ee.length)||0,")"]},Q.name)})})}),(0,e.jsxs)(s.so.Item,{grow:1,basis:0,children:[G.length===0&&(0,e.jsx)(s.IC,{children:L.length===0?"No items in this category.":"No results found."}),(0,e.jsx)(u.ItemList,{compactMode:L.length>0||P,currencyAmount:E,currencySymbol:M,items:G})]})]})})}},25513:function(O,h,n){"use strict";n.r(h),n.d(h,{ItemList:function(){return g}});var e=n(20462),i=n(61282),t=n(7081),r=n(88569),s=n(41242),g=function(x){var u=(0,t.Oc)().act,o=x.compactMode,l=x.currencyAmount,a=x.currencySymbol,c=x.items;return o?(0,e.jsx)(r.XI,{children:c.map(function(f){return(0,e.jsxs)(r.XI.Row,{className:"candystripe",children:[(0,e.jsx)(r.XI.Cell,{bold:!0,children:(0,i.jT)(f.name)}),(0,e.jsx)(r.XI.Cell,{collapsing:!0,textAlign:"right",children:(0,e.jsx)(r.$n,{fluid:!0,disabled:l',Z+='",Z+='
',Z+='
',Z+="Addons:
"+(0,i.GetAddons)(f)+"

",Z+="== Descriptions ==
",Z+="Vore Verb:
"+l+"

",Z+="Release Verb:
"+a+"

",Z+='Description:
"'+x+'"

',Z+='Absorbed Description:
"'+o+'"

',Z+="
",Z+="== Messages ==
",Z+="Show All Interactive Messages: "+(u?'Yes':'No')+"
",Z+='
',Z+='
",Z+='
',Z+='
',Z+='
',J==null||J.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',V==null||V.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',te==null||te.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',ce==null||ce.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',le==null||le.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',fe==null||fe.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',ge==null||ge.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Ie==null||Ie.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Ee==null||Ee.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',je==null||je.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Ne==null||Ne.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',on==null||on.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Xe==null||Xe.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Pe==null||Pe.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',qe==null||qe.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',jn==null||jn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',En==null||En.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',hn==null||hn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Cn==null||Cn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',fn==null||fn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',tn==null||tn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Se==null||Se.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Le==null||Le.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Oe==null||Oe.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',ke==null||ke.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',ee==null||ee.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',se==null||se.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',ne==null||ne.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Y==null||Y.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Qe==null||Qe.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',we==null||we.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',He==null||He.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Kn==null||Kn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',Un==null||Un.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',In==null||In.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',xn==null||xn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+='
',rn==null||rn.forEach(function(Ae){Z+=Ae+"
"}),Z+="
",Z+="
",Z+="
",Z+="
",Z+="
= Idle Messages =

",Z+="

Idle Messages (Hold):

",Fe==null||Fe.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Hold Absorbed):

",mn==null||mn.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Digest):

",$e==null||$e.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Absorb):

",_n==null||_n.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Unabsorb):

",Qt==null||Qt.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Drain):

",rt==null||rt.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Heal):

",Dt==null||Dt.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Size Steal):

",pt==null||pt.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Shrink):

",dt==null||dt.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Grow):

",Nt==null||Nt.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="
Idle Messages (Encase In Egg):

",Jn==null||Jn.forEach(function(Ae){Z+=Ae+"
"}),Z+="


",Z+="


",Z+="
",Z+='
',Z+='
',Z+='

',Z+='

",Z+='
',Z+='
',Z+='
    ',Z+='
  • Can Taste: '+(P?'Yes':'No')+"
  • ",Z+='
  • Contaminates: '+(D?'Yes':'No')+"
  • ",Z+='
  • Contamination Flavor: '+S+"
  • ",Z+='
  • Contamination Color: '+B+"
  • ",Z+='
  • Nutritional Gain: '+T+"%
  • ",Z+='
  • Required Examine Size: '+L*100+"%
  • ",Z+='
  • Display Absorbed Examines: '+(W?'True':'False')+"
  • ",Z+='
  • Save Digest Mode: '+($?'True':'False')+"
  • ",Z+='
  • Idle Emotes: '+(k?'Active':'Inactive')+"
  • ",Z+='
  • Idle Emote Delay: '+z+" seconds
  • ",Z+='
  • Shrink/Grow Size: '+X*100+"%
  • ",Z+='
  • Egg Type: '+G+"
  • ",Z+='
  • Selective Mode Preference: '+Q+"
  • ",Z+="
",Z+="
",Z+='
',Z+='

',Z+='

",Z+='
',Z+='
',Z+='
    ',Z+='
  • Fleshy Belly: '+(ur?'Yes':'No')+"
  • ",Z+='
  • Internal Loop: '+(ti?'Yes':'No')+"
  • ",Z+='
  • Use Fancy Sounds: '+(ri?'Yes':'No')+"
  • ",Z+='
  • Vore Sound: '+oi+"
  • ",Z+='
  • Release Sound: '+mo+"
  • ",Z+="
",Z+="
",Z+='
',Z+='

',Z+='

",Z+='
",Z+='
',Z+="Vore FX",Z+='
    ',Z+='
  • Disable Prey HUD: '+(vo?'Yes':'No')+"
  • ",Z+="
",Z+="
",Z+='
',Z+='

',Z+='

",Z+='
',Z+='
',Z+="Belly Interactions ("+(xo?'Enabled':'Disabled')+")",Z+='
    ',Z+='
  • Escape Chance: '+$i+"%
  • ",Z+='
  • Escape Chance: '+Wt+"%
  • ",Z+='
  • Escape Time: '+go/10+"s
  • ",Z+='
  • Transfer Chance: '+Pr+"%
  • ",Z+='
  • Transfer Location: '+jt+"
  • ",Z+='
  • Secondary Transfer Chance: '+Et+"%
  • ",Z+='
  • Secondary Transfer Location: '+dr+"
  • ",Z+='
  • Absorb Chance: '+Ir+"%
  • ",Z+='
  • Digest Chance: '+po+"%
  • ",Z+="
",Z+="
",Z+="
",Z}},65881:function(O,h,n){"use strict";n.r(h),n.d(h,{GetAddons:function(){return i}});var e=n(26222),i=function(t){var r=[];return t==null||t.forEach(function(s){r.push(''+s+"")}),r.length===0&&r.push("No Addons Set"),r}},44887:function(O,h,n){"use strict";n.r(h),n.d(h,{downloadPrefs:function(){return r}});var e=n(7081),i=n(18228),t=n(95679),r=function(s){var g=(0,e.Oc)(),x=g.act,u=g.data,o=u.db_version,l=u.db_repo,a=u.mob_name,c=u.bellies,f=(0,t.getCurrentTimestamp)(),m=a+f+s,v;if(s===".html"){var j="";v=new Blob([''+c.length+" Exported Bellies (DB_VER: "+l+"-"+o+')'+j+'

Bellies of '+a+'

Generated on: '+f+'

'],{type:"text/html;charset=utf8"}),c.forEach(function(E,y){v=new Blob([v,(0,i.generateBellyString)(E,y)],{type:"text/html;charset=utf8"})}),v=new Blob([v,"
",'