Skip to content

Instantly share code, notes, and snippets.

@jefferoonie
Last active May 19, 2023 03:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jefferoonie/0d06c6ec66896bbf2bb91014d1db47bc to your computer and use it in GitHub Desktop.
Save jefferoonie/0d06c6ec66896bbf2bb91014d1db47bc to your computer and use it in GitHub Desktop.
{
"v": 1,
"data": [
{
"id": "d1",
"matchUrl": "https://www.shutdown.chat/*",
"rules": [
{
"type": "fileOverride",
"match": "https://www.shutdown.chat/js/furtherchat.js*",
"file": "\"use strict\";\nfunction fc_cam(t, e, n, i, s, o, c, r, l, a) {\n this.ws = t,\n this.pb = e,\n this.div_maxcont = n,\n this.camno = i,\n this.ratio = s,\n this.wndmedia = c,\n this.tip = r,\n this.menu_cb = l,\n this.volhist = a,\n this.kageshi_mode = !1,\n this.outvid_w = 0,\n this.outvid_h = 0,\n this.outvid_ar = 0,\n this.outvid_fps = 0,\n this.starttime = 0,\n this.offersonhold = null,\n this.offersonhold_delay = 500,\n this.offersonhold_interval = null,\n this.user = null,\n this.you = !1,\n this.paused = !1,\n this.rtcpush = null,\n this.rtcpull = null,\n this.cs_name = \"\",\n this.cs_loc = \"\",\n this.iser = null,\n this.local_stream = null,\n this.vab = null,\n this.maxdummy = null,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"cam_a\",\n this.elem.style.width = o;\n t = document.createElement(\"div\");\n t.className = \"cam_b\",\n \"16:9\" === s ? (t.style.paddingTop = \"56.25%\",\n this.outvid_w = 256,\n this.outvid_h = 144,\n this.outvid_ar = 1.777777778,\n this.outvid_fps = 26) : \"4:3\" === s ? (t.style.paddingTop = \"75%\",\n this.outvid_w = 320,\n this.outvid_h = 240,\n this.outvid_ar = 1.333333333,\n this.outvid_fps = 26) : \"21:9\" === s && (t.style.paddingTop = \"42.18%\",\n this.outvid_w = 420,\n this.outvid_h = 180,\n this.outvid_ar = 2.383333333,\n this.outvid_fps = 26),\n this.elem.appendChild(t),\n this.cam_c = document.createElement(\"div\"),\n this.cam_c.className = \"cam_c hvcntrl\",\n this.elem.appendChild(this.cam_c),\n this.startbtn = null,\n this.topbar = null,\n this.statp = null,\n this.maxbtn = null,\n this.stopbtn = null,\n this.pausebtn = null,\n this.mobskin = null,\n this.bottombar = null,\n this.namep = null,\n this.volrange = null,\n this.mutebtn = null,\n this.loading = null,\n this.video = null,\n this.unpausebtn = null,\n this.stopcam()\n}\nfunction fc_camload(t, e) {\n this.elem = null,\n this.c1 = t,\n this.c2 = e,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"camload\",\n this.step = 0,\n this.backwards = !1,\n this.interval = 0,\n this.loading = null,\n this.blocks = []\n}\nfunction fc_chatbox(t, e, n) {\n this.ws = t,\n this.menu_cb = e,\n this.youtube_cb = n,\n this.elem = document.createElement(\"div\"),\n this.elem.setAttribute(\"class\", \"chatbox\"),\n this.span_recon = null,\n this.p_typing_line = null,\n this.p_typing_names = null,\n this.p_typing_status = null,\n this.lastmn = 0\n}\nfunction fc_checkbox(t, e) {\n this.elem = null,\n this.cb = null,\n this.ptext = null,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"fccb\",\n this.cb = document.createElement(\"input\"),\n this.cb.setAttribute(\"type\", \"checkbox\"),\n this.cb.checked = t,\n this.elem.appendChild(this.cb);\n t = document.createElement(\"label\");\n t.innerHTML = \"<span class='material-icons'></span>\" + e,\n this.elem.appendChild(t)\n}\nfunction fc_config(t, e, n) {\n this.ws = t,\n this.pb = e,\n this.applysetting_cb = n,\n this.settings = {},\n this.def_settings = {}\n}\nfunction fc_ctrlpm(t, e, n, i, s, o) {\n this.ws = t,\n this.pb = e,\n this.wndctrl = n,\n this.msglimit = i,\n this.ul = s,\n this.umcb = o,\n this.font_colour = \"#FF0000\",\n this.font_size = 1,\n this.taka_enable = !0,\n this.blockpm_enable = !1,\n this.recvsnd_enable = !1,\n this.wndpm = []\n}\nfunction fc_ctrlwnd(t) {\n this.wnd_array = [],\n this.mouse_x = 0,\n this.mouse_y = 0,\n this.drag_wnd = null,\n this.drag_elem_x = 0,\n this.drag_elem_y = 0,\n this.resize_wnd = null,\n this.resize_left = !1,\n this.resize_right = !1,\n this.resize_bottom = !1,\n this.zindex_inc = 500,\n this.wnd_infocus = null,\n this.parent_elem = null === t ? document.body : t\n}\nfunction fc_layout(t, e, n, i, s, o) {\n this.ws = t,\n this.pb = e,\n this.div_maxcont = n,\n this.tip = s,\n this.menu_cb = o,\n this.cur_layout = 0,\n this.cams = [],\n this.wndmedia = i,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"camcont\",\n this.ul_cams = document.createElement(\"ul\"),\n this.ul_cams.className = \"cams\",\n this.elem.appendChild(this.ul_cams),\n this.dynarow = null,\n this.kageshi_mode = !1,\n this.volhist = [],\n this.joined = !1\n}\nfunction fc_left(t, e, n, i) {\n this.uuid = t,\n this.username = e,\n this.modlvl = n,\n this.blocked = i\n}\nfunction fc_menu(t, e, n, i) {\n this.ws = t,\n this.pb = e,\n this.lo = n,\n this.t_uuid = \"\",\n this.t_username = \"\",\n this.t_modlvl = \"\",\n this.t_online = !1,\n this.pmctrl = i,\n this.elem = document.createElement(\"div\"),\n this.elem.setAttribute(\"class\", \"usermenu\"),\n \"mobile\" === this.ws.mode ? this.elem.onclick = this.close.bind(this) : (this.elem.onmouseleave = this.mouseleave.bind(this),\n this.elem.onmouseenter = this.mouseenter.bind(this)),\n this.btn_close = document.createElement(\"button\"),\n this.h_title = document.createElement(\"h1\"),\n this.h_title.innerHTML = \"menu\",\n this.elem.appendChild(this.h_title),\n this.btn_stopcam = document.createElement(\"button\"),\n this.btn_stopcam.onclick = this.btnclick.bind(this),\n this.btn_stopcam.setAttribute(\"data-btntype\", \"stopcam\"),\n this.btn_stopcam.innerHTML = \"stop cam\",\n this.elem.appendChild(this.btn_stopcam),\n this.btn_pausecam = document.createElement(\"button\"),\n this.btn_pausecam.onclick = this.btnclick.bind(this),\n this.btn_pausecam.setAttribute(\"data-btntype\", \"pausecam\"),\n this.btn_pausecam.innerHTML = \"pause cam\",\n this.elem.appendChild(this.btn_pausecam),\n this.btn_mutecam = document.createElement(\"button\"),\n this.btn_mutecam.onclick = this.btnclick.bind(this),\n this.btn_mutecam.setAttribute(\"data-btntype\", \"mutecam\"),\n this.btn_mutecam.innerHTML = \"mute cam\",\n this.elem.appendChild(this.btn_mutecam),\n this.btn_pm = document.createElement(\"button\"),\n this.btn_pm.onclick = this.btnclick.bind(this),\n this.btn_pm.setAttribute(\"data-btntype\", \"pm\"),\n this.btn_pm.innerHTML = \"pm\",\n this.elem.appendChild(this.btn_pm),\n this.btn_profile = document.createElement(\"button\"),\n this.btn_profile.onclick = this.btnclick.bind(this),\n this.btn_profile.setAttribute(\"data-btntype\", \"profile\"),\n this.btn_profile.innerHTML = \"profile\",\n this.elem.appendChild(this.btn_profile),\n this.btn_block = document.createElement(\"button\"),\n this.btn_block.onclick = this.btnclick.bind(this),\n this.btn_block.setAttribute(\"data-btntype\", \"block\"),\n this.btn_block.innerHTML = \"block\",\n this.elem.appendChild(this.btn_block),\n this.btn_unblock = document.createElement(\"button\"),\n this.btn_unblock.onclick = this.btnclick.bind(this),\n this.btn_unblock.setAttribute(\"data-btntype\", \"unblock\"),\n this.btn_unblock.innerHTML = \"unblock\",\n this.elem.appendChild(this.btn_unblock),\n this.btn_mod = document.createElement(\"button\"),\n this.btn_mod.onclick = this.btnclick.bind(this),\n this.btn_mod.setAttribute(\"data-btntype\", \"mod\"),\n this.btn_mod.innerHTML = \"mod\",\n this.elem.appendChild(this.btn_mod),\n this.btn_unmod = document.createElement(\"button\"),\n this.btn_unmod.onclick = this.btnclick.bind(this),\n this.btn_unmod.setAttribute(\"data-btntype\", \"unmod\"),\n this.btn_unmod.innerHTML = \"unmod\",\n this.elem.appendChild(this.btn_unmod),\n this.btn_kick = document.createElement(\"button\"),\n this.btn_kick.onclick = this.btnclick.bind(this),\n this.btn_kick.setAttribute(\"data-btntype\", \"kick\"),\n this.btn_kick.innerHTML = \"kick\",\n this.elem.appendChild(this.btn_kick),\n this.btn_ban48 = document.createElement(\"button\"),\n this.btn_ban48.onclick = this.btnclick.bind(this),\n this.btn_ban48.setAttribute(\"data-btntype\", \"ban48\"),\n this.btn_ban48.innerHTML = \"ban 48hr\",\n this.elem.appendChild(this.btn_ban48),\n this.btn_banperma = document.createElement(\"button\"),\n this.btn_banperma.onclick = this.btnclick.bind(this),\n this.btn_banperma.setAttribute(\"data-btntype\", \"banperma\"),\n this.btn_banperma.innerHTML = \"ban perma\",\n this.elem.appendChild(this.btn_banperma),\n this.btn_purge = document.createElement(\"button\"),\n this.btn_purge.onclick = this.btnclick.bind(this),\n this.btn_purge.setAttribute(\"data-btntype\", \"purge\"),\n this.btn_purge.innerHTML = \"purge\",\n this.elem.appendChild(this.btn_purge),\n this.btn_siteban = document.createElement(\"button\"),\n this.btn_siteban.onclick = this.btnclick.bind(this),\n this.btn_siteban.setAttribute(\"data-btntype\", \"siteban\"),\n this.btn_siteban.style.backgroundColor = \"red\",\n this.btn_siteban.style.color = \"white\",\n this.btn_siteban.innerHTML = \"site ban\",\n this.elem.appendChild(this.btn_siteban),\n this.leavetimeout = null,\n this.showtimeout = null\n}\nfunction fc_msglimit() {\n this.cooloff_time = 5e3,\n this.msg_interval = 600,\n this.max_strikes = 3,\n this.max_msg_length = 300,\n this.prev_msg = \"\",\n this.prev_msg_time = 0,\n this.cur_strikes = 0,\n this.msg_count = 0,\n this.enforced = !1\n}\nfunction fc_msk(t, e) {\n this.ws = t,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"msk\",\n document.getElementById(e).appendChild(this.elem),\n this.mode = 0,\n this.deadline = 0,\n this.interval = null,\n this.h1_status = null,\n this.p_info = null,\n this.p_countdown = null,\n this.span_countdown = null,\n this.text_password = null,\n this.button = null\n}\nfunction fc_recon(t, e, n, i) {\n this.ws = t,\n this.msk = e,\n this.cb = null,\n this.recon_min = 3e3,\n this.recon_max = 2e4,\n this.recon_stepmax = 1e3,\n this.last_reconstart = 0,\n this.reqprx_cb = n,\n this.max_recnt_prx = 3,\n this.recnt_prx = 0,\n this.waiting_prx = !1,\n this.t2src_cb = i,\n this.waiting_t2 = !1,\n this.recon_timeout = 0,\n this.countdown_timer = 0,\n this.countdown_target = 0\n}\nfunction fc_rtcpull(t, e, n) {\n this.ws = t,\n this.pb = e,\n this.cam = n,\n this.tid = 0,\n this.vstream = null,\n this.astream = null,\n this.rtcpeer = null,\n this.srd_done = !1,\n this.cndcount = 0,\n this.icestack = [],\n this.d_offer = !1,\n this.d_ice = !1,\n this.failed = !1,\n this.finish = !1,\n this.playtimeout = null,\n this.dc_interval = 0,\n this.rscount = 0,\n this.stagcount = 0,\n this.stat_interval = 0,\n this.stat_vis = !1,\n this.stat_viscount = 0,\n this.byte_prev = 0,\n this.frame_prev = 0,\n this.vcodec = \"\",\n this.acodec = \"\"\n}\nfunction fc_rtcpush(t, e, n, i, s, o) {\n this.ws = t,\n this.pb = e,\n this.cam = n,\n this.tid = i,\n this.local_stream = s,\n this.srd_done = !1,\n this.cndcount = 0,\n this.offersonhold = o,\n this.rtcpeer = null,\n this.d_offer = !1,\n this.d_answer = !1,\n this.d_ice = !1,\n this.failed = !1,\n this.finish = !1\n}\nfunction fc_status(t, e) {\n this.ws = t,\n this.pb = e,\n this.autoidle_enable = !0,\n this.tbi = 12e5,\n this.statuslevel = 1,\n this.statustime = 0,\n this.statusmsg = \"\",\n this.lastact = Date.now(),\n this.lastreturn = Date.now(),\n this.ws.isguest || (this.idleinterval = setInterval(this.tick.bind(this), 26e3))\n}\nfunction fc_switch() {\n this.elem = null,\n this.cb = null,\n this.ptext = null\n}\nfunction fc_tip(t, e) {\n this.ws = t,\n this.ul = e,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"tooltip\",\n this.p_message = document.createElement(\"p\"),\n this.p_message.innerHTML = \"\",\n this.elem.appendChild(this.p_message),\n this.showtimeout = null,\n this.hidetimeout = null,\n this.config = null,\n this.reqx = 0,\n this.reqy = 0\n}\nfunction fc_toolbox(t, e, n, i, s, o, c) {\n this.ws = t,\n this.pb = e,\n this.cb = s,\n this.msglimit = o,\n this.pmctrl = n,\n this.layout = i,\n this.yt_cb = c,\n this.font_colour = \"#FF0000\",\n this.font_size = 1,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"tb\",\n this.text_cp = document.createElement(\"input\"),\n this.text_cp.className = \"jscolor\",\n this.text_cp.setAttribute(\"data-jscolor\", \"{position:'top',hash:false,value:'\" + this.font_colour + \"',borderRadius:'1px',borderColor:'\" + this.ws.theme.lncol + \"',controlBorderColor:'\" + this.ws.theme.lncol + \"',backgroundColor:'\" + this.ws.theme.bgcol + \"'}\"),\n this.text_cp.onchange = this.cp_change.bind(this),\n this.elem.appendChild(this.text_cp),\n this.sel_fs = document.createElement(\"select\"),\n this.sel_fs.className = \"sizesel\",\n this.sel_fs.onchange = this.fs_change.bind(this),\n (t = document.createElement(\"option\")).innerHTML = \"smaller\",\n t.value = 0,\n this.sel_fs.appendChild(t),\n (t = document.createElement(\"option\")).innerHTML = \"normal\",\n t.value = 1,\n this.sel_fs.appendChild(t),\n (t = document.createElement(\"option\")).innerHTML = \"bigger\",\n t.value = 2,\n this.sel_fs.appendChild(t),\n (t = document.createElement(\"option\")).innerHTML = \"more bigger\",\n t.value = 3,\n this.sel_fs.appendChild(t),\n this.sel_fs.selectedIndex = this.font_size,\n this.elem.appendChild(this.sel_fs),\n this.btn_ytpl = document.createElement(\"button\"),\n this.btn_ytpl.innerHTML = \"YouTube Player\",\n this.btn_ytpl.onclick = this.yt_click.bind(this),\n this.btn_ytpl.style.display = \"none\",\n this.elem.appendChild(this.btn_ytpl),\n this.cb_kmode = new fc_checkbox(!1,\"Kageshi Mode\"),\n this.cb_kmode.addonclick(this.kmode_click.bind(this)),\n this.elem.appendChild(this.cb_kmode.elem),\n this.text_msg = document.createElement(\"input\"),\n this.text_msg.setAttribute(\"type\", \"text\"),\n this.text_msg.setAttribute(\"autocomplete\", \"off\"),\n this.text_msg.className = \"chatmsg fs_\" + this.font_size,\n this.text_msg.style.color = this.font_colour,\n this.text_msg.value = \"\",\n this.text_msg.onkeyup = this.msg_keyup.bind(this),\n this.text_msg.autocomplete = \"off\",\n this.elem.appendChild(this.text_msg),\n this.btn_send = document.createElement(\"button\"),\n this.btn_send.className = \"sendbtn material-icons\",\n this.btn_send.onclick = this.send_click.bind(this),\n this.elem.appendChild(this.btn_send)\n}\nfunction fc_topic(t, e, n, i, s, o) {\n this.ws = t,\n this.pb = e,\n this.wndlayout = n,\n this.wndpolicy = i,\n this.wndconfig = s,\n this.togulist_cb = o,\n this.cur_topic = \"\",\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"topicbar\",\n this.text_topic = document.createElement(\"input\"),\n this.text_topic.setAttribute(\"type\", \"text\"),\n this.text_topic.setAttribute(\"maxlength\", 128),\n this.text_topic.className = \"fctopic\",\n this.text_topic.onblur = this.topicbar_change.bind(this),\n this.elem.appendChild(this.text_topic),\n this.btn_policy = document.createElement(\"button\"),\n this.btn_policy.className = \"policybtn material-icons\",\n this.btn_policy.onclick = this.policy_click.bind(this),\n this.elem.appendChild(this.btn_policy),\n this.btn_layout = document.createElement(\"button\"),\n this.btn_layout.className = \"layoutbtn material-icons\",\n this.btn_layout.onclick = this.layout_click.bind(this),\n this.elem.appendChild(this.btn_layout),\n this.btn_config = document.createElement(\"button\"),\n this.btn_config.className = \"configbtn material-icons\",\n this.btn_config.onclick = this.config_click.bind(this),\n this.elem.appendChild(this.btn_config),\n this.btn_userlist = document.createElement(\"button\"),\n this.btn_userlist.className = \"userlistbtn material-icons\",\n this.btn_userlist.onclick = o,\n this.elem.appendChild(this.btn_userlist)\n}\nfunction fc_ulist(t, e, n, i, s) {\n this.ws = t,\n this.menu_cb = e,\n this.tipshow_cb = n,\n this.tipcancel_cb = i,\n this.elem = document.createElement(\"div\"),\n this.elem.setAttribute(\"class\", \"userlist\"),\n \"mobile\" === this.ws.mode && (this.togulist_cb = s,\n this.elem.onclick = s),\n this.guest_elem = document.createElement(\"p\"),\n this.guest_elem.className = \"guestcount fcguest\";\n t = document.createElement(\"span\");\n t.className = \"material-icons\",\n this.guest_elem.appendChild(t),\n this.p_guestcount = document.createElement(\"p\"),\n this.guest_elem.appendChild(this.p_guestcount),\n this.updgsc(0),\n this.users = [],\n this.lefties = []\n}\nfunction fc_user(t, e, n) {\n this.menu_cb = t,\n this.tipshow_cb = e,\n this.tipcancel_cb = n,\n this.username = \"\",\n this.username_lowercase = \"\",\n this.uuid = 0,\n this.modlvl = 0,\n this.usernum = 0,\n this.blocked = !1,\n this.statuslevel = 0,\n this.statustime = 0,\n this.statusmsg = \"\",\n this.online = !1,\n this.jointime = 0,\n this.ping = 0,\n this.list_elem = null,\n this.pmwnd = null\n}\nfunction fc_vab() {\n this.stream = null,\n this.audio_context = null,\n this.analyser = null,\n this.source = null,\n this.interval = 0,\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"va_b\"\n}\nfunction fc_wnd(t, e, n, i, s, o) {\n this.parent_elem = t,\n this.index = e,\n this.title = i,\n this.min_width = 0,\n this.min_height = 0,\n this.focused = !1,\n this.visible = !1,\n this.resizable = n,\n this.rz_left = null,\n this.rz_right = null,\n this.rz_bottom = null,\n this.rz_bottomleft = null,\n this.rz_bottomright = null,\n this.resize_callback = null,\n this.close_callback = null,\n this.elem = document.createElement(\"div\"),\n this.elem.setAttribute(\"id\", \"wnd\" + e),\n this.elem.className = \"fcwnd\",\n this.resizable && this.addresizers(),\n this.elem_header = document.createElement(\"div\"),\n this.elem_header.setAttribute(\"class\", \"fcwnd_header\"),\n this.p_hdrico = document.createElement(\"p\"),\n this.p_hdrico.className = \"material-icons\",\n this.elem_header.appendChild(this.p_hdrico),\n this.elem_headerp = document.createElement(\"p\"),\n this.elem_headerp.innerHTML = i,\n this.elem_header.appendChild(this.elem_headerp),\n this.elem.appendChild(this.elem_header),\n this.elem_closebtn = document.createElement(\"button\"),\n this.elem_closebtn.setAttribute(\"class\", \"close material-icons\"),\n this.elem_closebtn.onclick = this.click_close.bind(this),\n this.elem.appendChild(this.elem_closebtn),\n this.elem_content = document.createElement(\"div\"),\n this.elem_content.setAttribute(\"class\", \"fcwnd_content\"),\n this.elem.appendChild(this.elem_content),\n this.parent_elem.appendChild(this.elem),\n this.elem.style.left = s + \"px\",\n this.elem.style.top = o + \"px\"\n}\nfunction fc_wndconfig(t, e, n) {\n this.ws = t,\n this.pb = e,\n this.wndman = n,\n this.wnd = null,\n this.cb_blockpm = null,\n this.cb_showtyping = null,\n this.cb_autoidle = null,\n this.cb_pmsnd = null\n}\nfunction fc_wndlayout(t, e, n) {\n this.ws = t,\n this.pb = e,\n this.wndman = n,\n this.wnd = null\n}\nfunction fc_wndmedia(t, e) {\n this.ws = t,\n this.wndman = e,\n this.cam = null,\n this.stream = null,\n this.wnd = null,\n this.cam_select = null,\n this.cam_a = null,\n this.cam_b = null,\n this.cam_c = null,\n this.video = null,\n this.vab = null,\n this.p_video = null,\n this.sw_usemic = null,\n this.sw_useec = null,\n this.mic_select = null,\n this.btn_cancel = null,\n this.btn_start = null,\n this.forced_camid = \"\",\n this.forced_micid = \"\"\n}\nfunction fc_wndpm(t, e, n, i, s, o, c, r, l) {\n this.ws = t,\n this.pb = e,\n this.wndman = n,\n this.umcb = s,\n this.msglimit = i,\n this.username = o,\n this.uuid = c,\n this.wnd = null,\n this.online = !0,\n this.modlvl = 0,\n this.blocked = !1,\n this.status_code = 0,\n this.status_text = \"\",\n this.font_colour = r,\n this.font_size = l,\n this.blockpm_enable = !1,\n this.block_whitelist = !1,\n this.recvsnd = null,\n this.taka_enable = !0,\n this.type_state = 0,\n this.type_time = 0,\n this.type_timeout = null,\n this.chatbox = null,\n this.b_banner = null,\n this.text_msg = null,\n this.btn_send = null,\n this.createui()\n}\nfunction fc_wndpolicy(t, e, n) {\n this.ws = t,\n this.pb = e,\n this.wndman = n,\n this.wnd = null,\n this.cb_allowguest = null,\n this.cb_allowyoutube = null,\n this.cb_password = null,\n this.text_password = null,\n this.cb_modchangelayout = null,\n this.cb_modchangetopic = null,\n this.cb_modstopcam = null,\n this.cb_enablemecmd = null,\n this.cb_enablerollcmd = null,\n this.cb_enableafkcmd = null,\n this.cb_enablestopcmd = null,\n this.cb_enablekickcmd = null\n}\nfunction fc_ws(t, e, n, i, s, o, c, r, l) {\n this.pb = t,\n this.pako = e,\n this.ws = null,\n this.addr = n,\n this.mode = i,\n this.rcv_cb = o,\n this.error_cb = c,\n this.close_cb = r,\n this.sid = this.mkses(),\n this.t2 = \"\",\n this.t2exp = new Date,\n this.ready = !1,\n this.chead = null,\n this.pver = 7,\n this.cmtype = 2,\n this.close_pf = null,\n this.tmdelta = 0,\n this.rn = 0,\n this.un = 0,\n this.uh = 0,\n this.username = \"\",\n this.uuid = 0,\n this.modlvl = 0,\n this.isguest = !1,\n this.theme = s,\n this.roompass = \"\",\n this.joinover = !1,\n this.jth = \"\",\n this.jty = 1,\n this.pol_allowguest = !0,\n this.pol_allowyoutube = !0,\n this.pol_pwenforced = !1,\n this.pol_pw = \"\",\n this.pol_modchangelayout = !0,\n this.pol_modchangetopic = !0,\n this.pol_modstopcam = !1,\n this.pol_en_mecmd = !0,\n this.pol_en_rollcmd = !0,\n this.pol_en_afkcmd = !0,\n this.pol_en_stopcmd = !0,\n this.pol_en_kickcmd = !0,\n this.cnf = new fc_config(this,this.pb,l),\n this.chatmaxline = 800,\n this.pn = 0,\n this.flwb = 0,\n this.clswait = null,\n this.joined = !1\n}\nfunction fc_youtube(t, e, n, i, s) {\n this.ws = t,\n this.pb = e,\n this.search_cb = n,\n this.queue_cb = i,\n this.yt_enable_search = s,\n this.pa = !1,\n this.ytpp = null,\n this.player = null,\n this.YT = null,\n this.playstate = \"unloaded\",\n this.cur_start_time = 0,\n this.cur_video = null,\n this.btn_addvideo = null,\n this.btn_nextvideo = null,\n this.div_privnote = null,\n this.btn_acceptpriv = null,\n this.div_qpopup = null,\n this.div_queue = null,\n this.div_qpopupbg = null,\n this.div_qpopupcls = null,\n this.text_search = null,\n this.btn_search = null,\n this.text_addurl = null,\n this.btn_addurl = null,\n this.p_query_err = null,\n this.table_queue = null,\n this.div_sresultcont = null,\n this.div_sresult = null,\n this.div_sresultload = null,\n this.span_sresulttext = null\n}\nfunction fc(t, e, n, i, s, o, c, r, l, a, u, h) {\n this.pb = t,\n this.b64 = e,\n this.pako = n,\n this.mode = s,\n this.addr = o,\n this.gridcams = null,\n this.gridtopic = null,\n this.gridchat = null,\n this.gridtools = null,\n this.gridlist = null,\n this.ui_done = !1,\n this.width_step = 100,\n this.step_timeout = 0,\n this.reqprx_cb = r,\n this.t2src_cb = l,\n this.chatsnd = null,\n this.chatsndcnt = 0,\n this.ws = new fc_ws(this.pb,this.pako,this.addr,this.mode,c,this.wsrecv.bind(this),this.wserr.bind(this),this.wsclose.bind(this),this.applysetting.bind(this)),\n this.ws.cnf.setdef({\n fc: c.fcdef,\n fs: 1,\n pb: 0,\n pt: 1,\n ai: 1,\n sc: 0,\n sp: 0\n }),\n this.msk = new fc_msk(this.ws,i),\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"fc\",\n document.getElementById(i).appendChild(this.elem),\n this.div_maxcont = document.createElement(\"div\"),\n this.div_maxcont.className = \"maxcamcont\",\n this.elem.appendChild(this.div_maxcont),\n this.status = new fc_status(this.ws,this.pb),\n this.msglimit = new fc_msglimit,\n this.wndctrl = new fc_ctrlwnd(this.elem),\n this.ul = new fc_ulist(this.ws,this.umopen.bind(this),this.tipshow.bind(this),this.tipcancel.bind(this),this.togulist.bind(this)),\n this.pmctrl = new fc_ctrlpm(this.ws,this.pb,this.wndctrl,this.msglimit,this.ul,this.umopen.bind(this)),\n this.cb = new fc_chatbox(this.ws,this.umopen.bind(this),this.ytopen.bind(this)),\n this.ytpl = new fc_youtube(this.ws,this.pb,a,u,h),\n this.tip = new fc_tip(this.ws,this.ul),\n this.wndmedia = new fc_wndmedia(this.ws,this.wndctrl),\n this.lo = new fc_layout(this.ws,this.pb,this.div_maxcont,this.wndmedia,this.tip,this.umopen.bind(this)),\n this.wndlayout = new fc_wndlayout(this.ws,this.pb,this.wndctrl),\n this.tb = new fc_toolbox(this.ws,this.pb,this.pmctrl,this.lo,this.cb,this.msglimit,this.ytopen.bind(this)),\n this.wndpolicy = new fc_wndpolicy(this.ws,this.pb,this.wndctrl),\n this.wndconfig = new fc_wndconfig(this.ws,this.pb,this.wndctrl),\n this.tp = new fc_topic(this.ws,this.pb,this.wndlayout,this.wndpolicy,this.wndconfig,this.togulist.bind(this)),\n this.um = new fc_menu(this.ws,this.pb,this.lo,this.pmctrl),\n this.recon = new fc_recon(this.ws,this.msk,this.reqprx_cb,this.t2src_cb),\n document.addEventListener(\"keydown\", this.dockeydown.bind(this)),\n document.addEventListener(\"mousedown\", this.docmousedown.bind(this)),\n document.addEventListener(\"mouseup\", this.docmouseup.bind(this)),\n document.addEventListener(\"mousemove\", this.docmousemove.bind(this)),\n document.addEventListener(\"touchcancel\", this.docmouseup.bind(this)),\n document.addEventListener(\"touchend\", this.docmouseup.bind(this)),\n document.addEventListener(\"touchmove\", this.doctouchmove.bind(this), {\n passive: !1\n }),\n window.addEventListener(\"resize\", this.docresize.bind(this)),\n window.addEventListener(\"orientationchange\", this.docresize.bind(this));\n t = this.checkcompat();\n null !== t && alert(t),\n this.createui(),\n this.showmsk(),\n this.msk.showcs(\"\", \"\")\n}\nfc_cam.prototype.setkmode = function(t) {\n this.kageshi_mode = t,\n null === this.video || null === this.user || this.you || this.paused || this.kageshi_mode && (this.pausecam(this.user),\n this.ws.sendpbuf(1200798, this.pb.roots.default.fc.p_1200798.encode({\n cn: this.camno\n }, null).finish()))\n}\n,\nfc_cam.prototype.click_maxcam = function(t) {\n null === this.maxdummy ? this.domax() : this.dodemax()\n}\n,\nfc_cam.prototype.camc_mouseover = function(t) {\n this.you || null === this.rtcpull || this.rtcpull.statstart()\n}\n,\nfc_cam.prototype.camc_mouseout = function(t) {\n this.you || null === this.rtcpull || this.rtcpull.statstop()\n}\n,\nfc_cam.prototype.stat_click = function(t) {}\n,\nfc_cam.prototype.stat_mouseover = function(t) {\n var e = document.getElementsByClassName(\"fc\")[0];\n this.tip.show(t.pageX - e.offsetLeft, t.pageY - e.offsetTop, {\n buildtype: \"camstats\",\n cs_name: this.cs_name,\n cs_loc: this.cs_loc\n })\n}\n,\nfc_cam.prototype.stat_mouseout = function(t) {\n this.tip.cancel()\n}\n,\nfc_cam.prototype.dblclick_video = function(t) {\n this.click_maxcam(t)\n}\n,\nfc_cam.prototype.modchg = function() {\n null !== this.user && (this.paused ? this.namep.className = \"name paused \" + this.user.getnccl() : this.namep.className = \"name \" + this.user.getnccl(),\n this.canstop() ? this.stopbtn.style.display = \"inline-block\" : this.stopbtn.style.display = \"none\")\n}\n,\nfc_cam.prototype.domax = function() {\n null === this.maxdummy && (this.maxdummy = document.createElement(\"div\"),\n this.elem.parentNode.replaceChild(this.maxdummy, this.elem),\n this.div_maxcont.style.display = \"block\",\n this.div_maxcont.appendChild(this.elem),\n this.maxbtn.innerHTML = \"fullscreen_exit\")\n}\n,\nfc_cam.prototype.dodemax = function() {\n if (null !== this.maxdummy) {\n for (this.div_maxcont.style.display = \"none\"; this.div_maxcont.firstChild; )\n this.div_maxcont.removeChild(this.div_maxcont.lastChild);\n this.maxdummy.parentNode.replaceChild(this.elem, this.maxdummy),\n this.maxdummy = null,\n this.maxbtn.innerHTML = \"fullscreen\",\n window.dispatchEvent(new Event(\"resize\"))\n }\n}\n,\nfc_cam.prototype.click_startcam = function(t) {\n this.ws.isguest || this.wndmedia.open(this, this.ratio)\n}\n,\nfc_cam.prototype.click_stopcam = function(t) {\n this.you && null !== this.local_stream && (this.local_stream.getTracks().forEach(function(t) {\n t.stop()\n }),\n this.local_stream = null),\n this.ws.sendpbuf(1200631, this.pb.roots.default.fc.p_1200631.encode({\n cn: this.camno\n }, null).finish())\n}\n,\nfc_cam.prototype.click_pausecam = function(t) {\n this.pausecam(this.user),\n this.ws.sendpbuf(1200798, this.pb.roots.default.fc.p_1200798.encode({\n cn: this.camno\n }, null).finish())\n}\n,\nfc_cam.prototype.click_unpausecam = function(t) {\n this.showcam(this.user, !1)\n}\n,\nfc_cam.prototype.input_volrange = function(t) {\n this.you || (t.target.value / 100 == 0 ? (this.video.muted || (this.mutebtn.className = \"mutebtn muted material-icons\",\n this.video.muted = !0,\n this.vab.stop()),\n this.video.volume = 0,\n this.volhist[this.user.uuid.toString()] = {\n m: !0,\n v: this.video.volume\n }) : (this.video.muted && (this.mutebtn.className = \"mutebtn material-icons\",\n this.video.muted = !1,\n this.vab.play()),\n this.video.volume = t.target.value / 100,\n this.volhist[this.user.uuid.toString()] = {\n m: !1,\n v: this.video.volume\n }))\n}\n,\nfc_cam.prototype.click_mute = function(t) {\n var e;\n this.you ? 0 < (e = this.local_stream.getAudioTracks()).length && (e[0].enabled ? (this.mutebtn.className = \"mutebtn muted material-icons\",\n e[0].enabled = !1) : (this.mutebtn.className = \"mutebtn material-icons\",\n e[0].enabled = !0)) : this.video.muted ? (e = .75,\n this.volhist.hasOwnProperty(this.user.uuid.toString()) && (e = this.volhist[this.user.uuid.toString()].v),\n this.video.muted = !1,\n this.mutebtn.className = \"mutebtn material-icons\",\n this.video.volume = e,\n this.volrange.value = 100 * e,\n this.vab.play(),\n this.volhist[this.user.uuid.toString()] = {\n m: !1,\n v: e\n }) : (this.volhist[this.user.uuid.toString()] = {\n m: !0,\n v: this.video.volume\n },\n this.video.muted = !0,\n this.mutebtn.className = \"mutebtn muted material-icons\",\n this.video.volume = 0,\n this.volrange.value = 0,\n this.vab.stop())\n}\n,\nfc_cam.prototype.setpull_vabstream = function(t) {\n this.vab.setstream(null),\n this.vab.setstream(t);\n var t = !0\n , e = 0;\n this.volhist.hasOwnProperty(this.user.uuid.toString()) && (t = this.volhist[this.user.uuid.toString()].m,\n e = this.volhist[this.user.uuid.toString()].v),\n t ? (this.vab.stop(),\n this.mutebtn.className = \"mutebtn muted material-icons\",\n this.video.muted = !0,\n this.video.volume = 0,\n this.volrange.value = 0) : (this.vab.play(),\n this.mutebtn.className = \"mutebtn material-icons\",\n this.video.muted = !1,\n this.video.volume = e,\n this.volrange.value = 100 * e)\n}\n,\nfc_cam.prototype.selfdestruct = function() {\n this.cleanuprtc(),\n this.ws = null,\n this.pb = null,\n this.iser = null,\n this.wndmedia = null,\n this.user = null,\n this.dodemax(),\n null !== this.startbtn && (this.startbtn.onclick = null,\n this.startbtn.parentNode.removeChild(this.startbtn),\n this.startbtn = null),\n null !== this.unpausebtn && (this.unpausebtn.onclick = null,\n this.unpausebtn.parentNode.removeChild(this.unpausebtn),\n this.unpausebtn = null),\n null !== this.mobskin && (this.mobskin.onclick = null,\n this.mobskin.parentNode.removeChild(this.mobskin),\n this.mobskin = null),\n null !== this.video && (this.video.parentNode.removeChild(this.video),\n this.video = null),\n null !== this.vab && (this.vab.stop(),\n this.vab.setstream(null),\n this.vab.elem.parentNode.removeChild(this.vab.elem),\n this.vab = null),\n null !== this.topbar && (this.topbar.parentNode.removeChild(this.topbar),\n this.topbar = null),\n null !== this.statp && (this.statp.parentNode.removeChild(this.statp),\n this.statp = null),\n null !== this.maxbtn && (this.maxbtn.onclick = null,\n this.maxbtn.parentNode.removeChild(this.maxbtn),\n this.maxbtn = null),\n null !== this.pausebtn && (this.pausebtn.onclick = null,\n this.pausebtn.parentNode.removeChild(this.pausebtn),\n this.pausebtn = null),\n null !== this.stopbtn && (this.stopbtn.onclick = null,\n this.stopbtn.parentNode.removeChild(this.stopbtn),\n this.stopbtn = null),\n null !== this.bottombar && (this.bottombar.parentNode.removeChild(this.bottombar),\n this.bottombar = null),\n null !== this.namep && (this.namep.parentNode.removeChild(this.namep),\n this.namep = null),\n null !== this.volrange && (this.volrange.parentNode.removeChild(this.volrange),\n this.volrange = null),\n null !== this.mutebtn && (this.mutebtn.parentNode.removeChild(this.mutebtn),\n this.mutebtn = null),\n null !== this.loading && (this.loading.hide(),\n this.loading.parentNode.removeChild(this.loading.elem),\n this.loading = null),\n this.elem.parentNode.removeChild(this.elem)\n}\n,\nfc_cam.prototype.cleanuprtc = function() {\n if (null !== this.vab && (this.vab.stop(),\n this.vab.setstream(null)),\n null !== this.local_stream && (this.local_stream.getTracks().forEach(function(t) {\n t.stop()\n }),\n this.local_stream = null),\n null !== this.offersonhold && (this.offersonhold = [],\n this.offersonhold = null),\n null !== this.offersonhold_interval && (clearInterval(this.offersonhold_interval),\n this.offersonhold_interval = null),\n null !== this.rtcpush) {\n for (var t = 0; t < this.rtcpush.length; t++)\n this.rtcpush[t].selfdestruct();\n this.rtcpush = [],\n this.rtcpush = null\n }\n null !== this.rtcpull && (this.rtcpull.selfdestruct(),\n this.rtcpull = null)\n}\n,\nfc_cam.prototype.setiser = function(t, e, n, i, s) {\n this.cs_name = t,\n this.cs_loc = e,\n this.iser = {\n iceServers: [{\n urls: n,\n credential: s,\n username: i\n }],\n iceTransportPolicy: \"relay\",\n RTCRtcpMuxPolicy: \"negotiate\"\n }\n}\n,\nfc_cam.prototype.startcam = function(t) {\n try {\n var e;\n null !== t && 1 === (e = t.getVideoTracks()).length && (this.local_stream = t,\n e[0].addEventListener(\"ended\", this.strmend.bind(this)),\n this.ws.sendpbuf(1200621, this.pb.roots.default.fc.p_1200621.encode({\n cn: this.camno\n }, null).finish()))\n } catch (t) {}\n}\n,\nfc_cam.prototype.strmend = function(t) {\n this.click_stopcam()\n}\n,\nfc_cam.prototype.showcam = function(t, e) {\n this.user = t,\n this.you = e,\n this.paused = !1,\n null !== this.startbtn && (this.startbtn.style.display = \"none\"),\n null !== this.unpausebtn && (this.unpausebtn.style.display = \"none\"),\n \"mobile\" === this.ws.mode ? (null === this.mobskin ? (this.mobskin = document.createElement(\"div\"),\n this.mobskin.className = \"mobskin\",\n this.mobskin.onclick = this.menu_cb,\n this.mobskin.setAttribute(\"data-uuid\", this.user.uuid),\n this.cam_c.appendChild(this.mobskin)) : this.mobskin.style.display = \"block\",\n this.cam_c.className = \"cam_c\") : (this.cam_c.className = \"cam_c hvcntrl\",\n this.cam_c.onmouseover = this.camc_mouseover.bind(this),\n this.cam_c.onmouseout = this.camc_mouseout.bind(this),\n null === this.statp ? (this.statp = document.createElement(\"p\"),\n this.statp.className = \"stat\",\n this.statp.innerHTML = \"\",\n this.statp.onclick = this.stat_click.bind(this),\n this.statp.onmouseover = this.stat_mouseover.bind(this),\n this.statp.onmouseout = this.stat_mouseout.bind(this),\n this.cam_c.appendChild(this.statp)) : this.statp.style.display = \"block\"),\n this.video = document.createElement(\"video\"),\n this.video.id = \"video\" + this.camno,\n this.video.volume = 0,\n this.video.muted = !0,\n this.video.playsinline = !0,\n this.video.setAttribute(\"playsinline\", \"playsinline\"),\n this.video.ondblclick = this.dblclick_video.bind(this),\n this.cam_c.appendChild(this.video),\n null === this.vab ? (this.vab = new fc_vab,\n this.cam_c.appendChild(this.vab.elem)) : this.vab.elem.style.display = \"block\",\n null === this.topbar ? (this.topbar = document.createElement(\"div\"),\n this.topbar.className = \"topbar\",\n this.cam_c.appendChild(this.topbar)) : this.topbar.style.display = \"block\",\n this.you || (null === this.volrange ? (this.volrange = document.createElement(\"input\"),\n this.volrange.className = \"volume\",\n this.volrange.type = \"range\",\n this.volrange.oninput = this.input_volrange.bind(this),\n this.cam_c.appendChild(this.volrange)) : this.volrange.style.display = \"inline-block\",\n null === this.mutebtn ? (this.mutebtn = document.createElement(\"button\"),\n this.mutebtn.className = \"mutebtn muted material-icons\",\n this.mutebtn.onclick = this.click_mute.bind(this),\n this.cam_c.appendChild(this.mutebtn)) : this.mutebtn.style.display = \"inline-block\"),\n null === this.maxbtn ? (this.maxbtn = document.createElement(\"button\"),\n this.maxbtn.className = \"maxbtn material-icons\",\n this.maxbtn.innerHTML = \"fullscreen\",\n this.maxbtn.onclick = this.click_maxcam.bind(this),\n this.cam_c.appendChild(this.maxbtn)) : this.maxbtn.style.display = \"inline-block\",\n null === this.stopbtn && (this.stopbtn = document.createElement(\"button\"),\n this.stopbtn.className = \"stopbtn material-icons\",\n this.stopbtn.innerHTML = \"stop\",\n this.stopbtn.onclick = this.click_stopcam.bind(this),\n this.cam_c.appendChild(this.stopbtn)),\n this.canstop() ? this.stopbtn.style.display = \"inline-block\" : this.stopbtn.style.display = \"none\",\n this.you || (null === this.pausebtn ? (this.pausebtn = document.createElement(\"button\"),\n this.pausebtn.className = \"pausebtn material-icons\",\n this.pausebtn.innerHTML = \"pause_circle_outline\",\n this.pausebtn.onclick = this.click_pausecam.bind(this),\n this.cam_c.appendChild(this.pausebtn)) : this.pausebtn.style.display = \"inline-block\"),\n null === this.bottombar ? (this.bottombar = document.createElement(\"div\"),\n this.bottombar.className = \"bottombar\",\n this.cam_c.appendChild(this.bottombar)) : this.bottombar.style.display = \"block\",\n null === this.namep ? (this.namep = document.createElement(\"p\"),\n this.namep.className = \"name \" + this.user.getnccl(),\n this.namep.onclick = this.menu_cb,\n this.cam_c.appendChild(this.namep)) : (this.namep.className = \"name \" + this.user.getnccl(),\n this.namep.style.display = \"block\"),\n this.namep.setAttribute(\"data-uuid\", this.user.uuid),\n this.namep.style.pointerEvents = \"auto\",\n this.namep.innerHTML = this.user.username,\n this.you || (null === this.loading ? (this.loading = new fc_camload(this.ws.theme.btnup,this.ws.theme.btnover),\n this.loading.show(),\n this.cam_c.appendChild(this.loading.elem)) : this.loading.show()),\n this.you ? (this.video.srcObject = this.local_stream,\n this.vab.setstream(this.local_stream),\n this.starttime = Date.now(),\n this.video.play(),\n 0 < this.local_stream.getAudioTracks().length && (null === this.mutebtn ? (this.mutebtn = document.createElement(\"button\"),\n this.mutebtn.className = \"mutebtn muted material-icons\",\n this.mutebtn.onclick = this.click_mute.bind(this),\n this.cam_c.appendChild(this.mutebtn)) : this.mutebtn.style.display = \"inline-block\",\n this.mutebtn.className = \"mutebtn material-icons\",\n this.vab.play())) : (null !== this.rtcpull && (this.rtcpull.selfdestruct(),\n this.rtcpull = null),\n this.rtcpull = new fc_rtcpull(this.ws,this.pb,this),\n this.ws.sendpbuf(1200711, this.pb.roots.default.fc.p_1200711.encode({\n cn: this.camno,\n op1: !0,\n op2: !1,\n op3: !1\n }, null).finish()),\n this.volrange.value = 100 * this.video.volume)\n}\n,\nfc_cam.prototype.canstop = function() {\n return this.you || this.user.modlvl < this.ws.modlvl && (100 === this.ws.modlvl && this.ws.pol_modstopcam || 100 < this.ws.modlvl)\n}\n,\nfc_cam.prototype.pausecam = function(t) {\n this.user = t,\n this.paused = !0,\n this.dodemax(),\n this.cleanuprtc(),\n null !== this.mobskin && (this.mobskin.style.display = \"none\"),\n null !== this.video && (this.video.parentNode.removeChild(this.video),\n this.video = null),\n null !== this.topbar && (this.topbar.style.display = \"none\"),\n null !== this.statp && (this.statp.style.display = \"none\"),\n null !== this.maxbtn && (this.maxbtn.style.display = \"none\"),\n null !== this.pausebtn && (this.pausebtn.style.display = \"none\"),\n null !== this.stopbtn && (this.stopbtn.style.display = \"none\"),\n null !== this.bottombar && (this.bottombar.style.display = \"none\"),\n null === this.namep ? (this.namep = document.createElement(\"p\"),\n this.namep.className = \"name paused \" + this.user.getnccl(),\n this.namep.onclick = this.menu_cb,\n this.cam_c.appendChild(this.namep)) : (this.namep.className = \"name paused \" + this.user.getnccl(),\n this.namep.style.display = \"block\"),\n this.namep.style.pointerEvents = \"none\",\n this.namep.innerHTML = t.username,\n null !== this.vab && (this.vab.stop(),\n this.vab.setstream(null),\n this.vab.elem.style.display = \"none\"),\n null !== this.volrange && (this.volrange.style.display = \"none\"),\n null !== this.mutebtn && (this.mutebtn.style.display = \"none\"),\n null !== this.loading && this.loading.hide(),\n null !== this.startbtn && (this.startbtn.style.display = \"none\"),\n null === this.unpausebtn ? (this.unpausebtn = document.createElement(\"div\"),\n this.unpausebtn.className = \"unpause\",\n this.unpausebtn.onclick = this.click_unpausecam.bind(this),\n t = document.createElement(\"span\"),\n this.unpausebtn.appendChild(t),\n this.cam_c.appendChild(this.unpausebtn)) : this.unpausebtn.style.display = \"grid\"\n}\n,\nfc_cam.prototype.stopcam = function() {\n var t;\n this.user = null,\n this.you = !1,\n this.paused = !1,\n this.starttime = 0,\n this.dodemax(),\n this.cleanuprtc(),\n null !== this.mobskin && (this.mobskin.style.display = \"none\"),\n null !== this.video && (this.video.parentNode.removeChild(this.video),\n this.video = null),\n null !== this.topbar && (this.topbar.style.display = \"none\"),\n null !== this.statp && (this.statp.style.display = \"none\"),\n null !== this.maxbtn && (this.maxbtn.style.display = \"none\"),\n null !== this.pausebtn && (this.pausebtn.style.display = \"none\"),\n null !== this.stopbtn && (this.stopbtn.style.display = \"none\"),\n null !== this.bottombar && (this.bottombar.style.display = \"none\"),\n null !== this.namep && (this.namep.style.display = \"none\"),\n null !== this.vab && (this.vab.stop(),\n this.vab.setstream(null),\n this.vab.elem.style.display = \"none\"),\n null !== this.volrange && (this.volrange.style.display = \"none\"),\n null !== this.mutebtn && (this.mutebtn.style.display = \"none\"),\n null !== this.loading && this.loading.hide(),\n null !== this.unpausebtn && (this.unpausebtn.style.display = \"none\"),\n null === this.startbtn ? (this.startbtn = document.createElement(\"div\"),\n this.startbtn.className = \"camstart\",\n this.startbtn.onclick = this.click_startcam.bind(this),\n t = document.createElement(\"span\"),\n this.startbtn.appendChild(t),\n this.cam_c.appendChild(this.startbtn)) : this.startbtn.style.display = \"grid\"\n}\n,\nfc_cam.prototype.havecam = function(t) {\n for (var e = t.getTracks(), n = 0; n < e.length; n++)\n ;\n this.video.muted = !0,\n this.video.srcObject = t,\n this.local_stream = t,\n this.starttime = Date.now()\n}\n,\nfc_cam.prototype.pshid = function(t) {\n if (null !== this.rtcpush && 0 !== this.rtcpush.length)\n for (var e = 0; e < this.rtcpush.length; e++)\n if (this.rtcpush[e].finish)\n this.rtcpush.splice(e, 1),\n e = 0;\n else if (this.rtcpush[e].tid === t)\n return this.rtcpush[e];\n return null\n}\n,\nfc_cam.prototype.offerreq = function(t) {\n var e;\n this.you && null !== this.local_stream && (null === this.rtcpush && (this.rtcpush = []),\n null === (e = this.pshid(t)) && (e = Date.now() - this.starttime < this.offersonhold_delay ? (null === this.offersonhold && (this.offersonhold = []),\n null === this.offersonhold_interval && (this.offersonhold_interval = setInterval(this.ofonhold.bind(this), this.offersonhold_delay)),\n new fc_rtcpush(this.ws,this.pb,this,t,this.local_stream,this.offersonhold)) : new fc_rtcpush(this.ws,this.pb,this,t,this.local_stream,null),\n this.rtcpush.push(e)),\n e.offerreq())\n}\n,\nfc_cam.prototype.ofonhold = function(t) {\n var e;\n 0 < this.offersonhold.length && (e = this.offersonhold.slice(),\n this.offersonhold = [],\n this.ws.sendpbuf(1200724, this.pb.roots.default.fc.p_1200724.encode({\n sdp: e\n }, null).finish())),\n Date.now() - this.starttime > 3 * this.offersonhold_delay && (clearInterval(this.offersonhold_interval),\n this.offersonhold_interval = null)\n}\n,\nfc_cam.prototype.offer = function(t, e) {\n null !== this.rtcpull && this.rtcpull.offer(t, e)\n}\n,\nfc_cam.prototype.answer = function(t, e) {\n this.you && null !== (t = this.pshid(t)) && t.answer(e)\n}\n,\nfc_cam.prototype.ice = function(t, e) {\n this.you ? null !== (t = this.pshid(t)) && t.ice(e) : null !== this.rtcpull && this.rtcpull.ice(e)\n}\n,\nfc_cam.prototype.close = function(t) {\n var e;\n this.you ? null !== (e = this.pshid(t)) && e.selfdestruct() : null !== this.rtcpull && this.rtcpull.tid === t && (this.rtcpull.selfdestruct(),\n this.rtcpull = null)\n}\n,\nfc_camload.prototype.show = function() {\n if (null === this.loading) {\n this.loading = document.createElement(\"div\"),\n this.loading.className = \"ld1\";\n for (var t = 0; t < 4; t++) {\n var e = document.createElement(\"div\")\n , n = (e.className = \"out\",\n document.createElement(\"div\"));\n n.className = \"in\",\n e.appendChild(n),\n this.loading.appendChild(e),\n this.blocks.push(e)\n }\n this.elem.appendChild(this.loading)\n }\n \"block\" !== this.elem.style.display && (this.elem.style.display = \"block\"),\n 0 === this.interval && (this.interval = setInterval(this.tick.bind(this), 300))\n}\n,\nfc_camload.prototype.tick = function() {\n var t = this.blocks[this.step];\n t.style.backgroundColor = this.c1,\n t.style.opacity = .4,\n this.step === this.blocks.length - 1 ? this.step = 0 : this.step++,\n (t = this.blocks[this.step]).style.backgroundColor = this.c2,\n t.style.opacity = .8\n}\n,\nfc_camload.prototype.hide = function() {\n \"block\" === this.elem.style.display && (this.elem.style.display = \"none\"),\n 0 !== this.interval && (clearInterval(this.interval),\n this.interval = 0)\n}\n,\nfc_chatbox.prototype.entypeline = function() {\n this.p_typing_line = document.createElement(\"p\"),\n this.p_typing_line.className = \"typing\",\n this.p_typing_names = document.createElement(\"span\"),\n this.p_typing_line.appendChild(this.p_typing_names),\n this.p_typing_status = document.createElement(\"span\"),\n this.p_typing_line.appendChild(this.p_typing_status),\n this.elem.appendChild(this.p_typing_line)\n}\n,\nfc_chatbox.prototype.settyping = function(t, e, n) {\n let i = !1;\n this.isscrollpinned() && (i = !0);\n 0 === n ? this.p_typing_line.style.display = \"none\" : (this.p_typing_line.style.display = \"inline-block\",\n this.p_typing_names.innerText = t,\n this.p_typing_names.className = \"nm \" + this.ml2nc(e),\n 1 === n && (this.p_typing_status.innerText = \"is typing\",\n this.p_typing_status.className = \"takago fcsys\"),\n 2 === n && (this.p_typing_status.innerText = \"stopped typing\",\n this.p_typing_status.className = \"takastop fcsys\")),\n i && this.scrolldown()\n}\n,\nfc_chatbox.prototype.mkts = function(t) {\n let e;\n e = 0 === t ? new Date : new Date(t + this.ws.tmdelta);\n t = document.createElement(\"span\");\n return t.className = \"ts fcts\",\n t.innerText = \"[\" + e.toLocaleTimeString() + \"] \",\n t\n}\n,\nfc_chatbox.prototype.addyoutube = function(t) {\n var e = document.createElement(\"p\")\n , n = (e.appendChild(this.mkts(0)),\n document.createElement(\"span\"));\n n.innerHTML = \"YouTube now playing \" + t,\n n.className = \"fcsys yt\",\n n.onclick = this.youtube_cb,\n e.appendChild(n),\n this.addpara(e)\n}\n,\nfc_chatbox.prototype.addroll = function(t, e, n, i, s) {\n let o = \"[ROLL] \" + t + \" rolled \" + n + \"d\" + i + \" \";\n for (var c = 0; c < s.length; c++)\n o += s[c] + \" \";\n this.addsys(o, e)\n}\n,\nfc_chatbox.prototype.addsys = function(t, e) {\n var n = document.createElement(\"p\")\n , i = (n.appendChild(this.mkts(0)),\n document.createElement(\"span\"));\n i.innerHTML = t,\n i.className = \"sysmsg fcsys\",\n \"number\" == typeof e && (i.className = \"sysmsg fcsys menuable\",\n i.setAttribute(\"data-uuid\", e),\n i.onclick = this.menu_cb),\n n.appendChild(i),\n this.addpara(n)\n}\n,\nfc_chatbox.prototype.addme = function(t, e, n, i, s, o) {\n let c;\n c = o ? e + \"'s \" + i : e + \" \" + i;\n o = document.createElement(\"p\"),\n o.appendChild(this.mkts(t)),\n e = document.createElement(\"span\");\n e.innerHTML = c,\n e.className = \"me \" + this.ml2nc(s),\n e.setAttribute(\"data-uuid\", n),\n e.onclick = this.menu_cb,\n o.appendChild(e),\n this.addpara(o)\n}\n,\nfc_chatbox.prototype.addnormal = function(e, n, i, s, o, c, r, l) {\n try {\n if (0 < l) {\n if (l <= this.lastmn)\n return;\n this.lastmn = l\n }\n \n // Beep when a PM is received.\n else {\n var beepToggle = new URLSearchParams(window.location.search);\n // The username of the sender is stored in \"e\".\n // Your username is stored in \"this.ws.username\".\n // Only sound beep when it is a PM from anyone but yourself, and doesn't start with nb or NB (NoBeep)\n // Only beep if querystring \"beep\" value is not set to \"Off\"\n if (n != this.ws.username && !(o.toUpperCase().startsWith(\"NB\")) && beepToggle.get('beep') != 'Off' ) {\n // Prefix the PM Message with a \"🔈\". Mostly for sanity check.\n o = \"🔈\" + o;\n // Play the beep.\n //new Audio(\"data:audio/wav;base64,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 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=\").play();\n new Audio('data:audio/ogg;base64,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').play();\n }\n }\n \n var a = document.createElement(\"p\");\n a.setAttribute(\"data-t\", \"c\"),\n a.appendChild(this.mkts(e));\n let t = document.createElement(\"span\");\n t.innerHTML = n + \": \",\n t.className = \"nm \" + this.ml2nc(s),\n t.setAttribute(\"data-uuid\", i),\n t.onclick = this.menu_cb,\n a.appendChild(t),\n (t = document.createElement(\"span\")).style.color = c,\n t.className = \"msg fs_\" + r,\n t.innerHTML = o,\n a.appendChild(t),\n this.addpara(a)\n } catch (t) {}\n}\n,\nfc_chatbox.prototype.addpara = function(e) {\n try {\n let t = !1;\n this.isscrollpinned() && (t = !0),\n null === this.p_typing_line ? this.elem.appendChild(e) : this.elem.insertBefore(e, this.p_typing_line),\n this.elem.childNodes.length > this.ws.chatmaxline && this.elem.removeChild(this.elem.firstChild),\n t && this.scrolldown()\n } catch (t) {}\n}\n,\nfc_chatbox.prototype.setrecon = function(t) {\n var e;\n null !== this.span_recon ? this.span_recon.innerText = \"Connection lost, reconnecting (\" + t + \")\" : ((e = document.createElement(\"p\")).appendChild(this.mkts(0)),\n this.span_recon = document.createElement(\"span\"),\n this.span_recon.innerText = \"Connection lost, reconnecting (\" + t + \")\",\n this.span_recon.className = \"sysmsg fcsys\",\n e.appendChild(this.span_recon),\n this.addpara(e))\n}\n,\nfc_chatbox.prototype.setrecon_done = function() {\n null !== this.span_recon && (this.span_recon.innerText = \"Connection has been restored\",\n this.span_recon = null)\n}\n,\nfc_chatbox.prototype.purge = function(e) {\n for (let t = -1; t < this.elem.childNodes.length; t++) {\n var n = this.elem.childNodes[t];\n void 0 !== n && \"c\" === n.dataset.t && n.innerHTML.includes(e) && (this.elem.removeChild(n),\n t--)\n }\n this.scrolldown()\n}\n,\nfc_chatbox.prototype.isscrollpinned = function() {\n return -4 < Math.round(this.elem.scrollTop) - (this.elem.scrollHeight - this.elem.clientHeight)\n}\n,\nfc_chatbox.prototype.scrolldown = function() {\n this.elem.scrollTop = this.elem.scrollHeight - this.elem.clientHeight\n}\n,\nfc_chatbox.prototype.pad2 = function(t) {\n return t < 10 ? \"0\" + t : t\n}\n,\nfc_chatbox.prototype.ml2nc = function(t) {\n switch (t) {\n case 100:\n return \"fcmod\";\n case 150:\n return \"fcsuper\";\n case 200:\n return \"fcowner\";\n case 300:\n return \"fcadmin\";\n default:\n return \"fcuser\"\n }\n}\n,\nfc_chatbox.prototype.history = function(e, t, n) {\n if (this.lastmn > t && (this.lastmn = t - e.length),\n null !== e && 0 !== e.length) {\n e.sort(function(t, e) {\n return t.ts > e.ts\n });\n for (let t = 0; t < e.length; t++) {\n var i = e[t];\n this.addnormal(i.ts, i.snm, i.suuid, i.ml, i.msg, i.clr, i.sz, i.mn),\n null === n.gubuid(i.suuid) && n.addleftskel(i.suuid, i.snm, i.ml, !0)\n }\n }\n this.scrolldown()\n}\n,\nfc_checkbox.prototype.setattrib = function(t, e) {\n this.cb.setAttribute(t, e)\n}\n,\nfc_checkbox.prototype.addonclick = function(t) {\n this.elem.addEventListener(\"click\", t)\n}\n,\nfc_checkbox.prototype.check = function(t) {\n this.cb.checked = t\n}\n,\nfc_checkbox.prototype.getstate = function() {\n return this.cb.checked\n}\n,\nfc_checkbox.prototype.ischecked = function() {\n return this.cb.checked\n}\n,\nfc_checkbox.prototype.checked = function() {\n return this.cb.checked\n}\n,\nfc_config.prototype.readjson = function(t) {\n if (0 !== t.length)\n try {\n var e, n = JSON.parse(t);\n for (e in n)\n this.set(e, n[e])\n } catch (t) {}\n}\n,\nfc_config.prototype.setdef = function(t) {\n this.def_settings = t\n}\n,\nfc_config.prototype.set = function(e, n) {\n if (this.get(e) !== n) {\n let t = !1;\n var i = this.def_settings[e];\n if (void 0 !== i && i === n && (void 0 !== this.settings[e] && delete this.settings[e],\n t = !0),\n !t)\n for (var s in this.settings)\n s === e && (this.settings[e] = n,\n t = !0);\n t || (this.settings[e] = n),\n this.applysetting_cb(e, n)\n }\n}\n,\nfc_config.prototype.setandsave = function(t, e) {\n this.set(t, e),\n this.save()\n}\n,\nfc_config.prototype.get = function(t) {\n var e = this.settings[t];\n return void 0 !== e ? e : this.def_settings[t]\n}\n,\nfc_config.prototype.save = function() {\n var t = JSON.stringify(this.settings);\n this.ws.sendpbuf(1200331, this.pb.roots.default.fc.p_1200331.encode({\n cnf: t\n }, null).finish())\n}\n,\nfc_ctrlpm.prototype.entaka = function(t) {\n for (var e in this.taka_enable = t,\n this.wndpm)\n this.wndpm[e].entaka(t)\n}\n,\nfc_ctrlpm.prototype.enblockpm = function(t) {\n for (var e in this.blockpm_enable = t,\n this.wndpm)\n this.wndpm[e].enblockpm(t)\n}\n,\nfc_ctrlpm.prototype.enrecvsnd = function(t) {\n for (var e in this.recvsnd_enable = t,\n this.wndpm)\n this.wndpm[e].enrecvsnd(t)\n}\n,\nfc_ctrlpm.prototype.getpm = function(t) {\n var e, n;\n return this.wndpm.hasOwnProperty(t) || (e = this.ul.gubuid(t),\n (n = new fc_wndpm(this.ws,this.pb,this.wndctrl,this.msglimit,this.umcb,e.username,e.uuid,this.font_colour,this.font_size)).entaka(this.taka_enable),\n n.enblockpm(this.blockpm_enable),\n n.enrecvsnd(this.recvsnd_enable),\n e.setpmwnd(n),\n this.wndpm[t] = n),\n this.wndpm[t]\n}\n,\nfc_ctrlpm.prototype.updatemaxlen = function() {\n for (var t in this.wndpm)\n this.wndpm[t].updatemaxlen()\n}\n,\nfc_ctrlpm.prototype.updatefc = function(t) {\n for (var e in this.font_colour = t,\n this.wndpm)\n this.wndpm[e].updatefc(this.font_colour)\n}\n,\nfc_ctrlpm.prototype.updatefs = function(t) {\n for (var e in this.font_size = t,\n this.wndpm)\n this.wndpm[e].updatefs(this.font_size)\n}\n,\nfc_ctrlpm.prototype.notifytaka = function(t, e) {\n this.wndpm.hasOwnProperty(t) && this.wndpm[t].rcvtaka(e)\n}\n,\nfc_ctrlpm.prototype.notifypmblock = function(t, e) {\n this.wndpm.hasOwnProperty(t) && this.wndpm[t].rcvpmblock(e)\n}\n,\nfc_ctrlpm.prototype.status = function(t) {\n this.wndpm.hasOwnProperty(t) && this.wndpm[t].status()\n}\n,\nfc_ctrlpm.prototype.closeuuid = function(t) {\n for (var e in this.wndpm)\n this.wndpm[e].uuid === t && this.wndpm[e].close()\n}\n,\nfc_ctrlwnd.prototype.addwindow = function(t, e, n, i) {\n var s = this\n , o = this.wnd_array.length\n , c = new fc_wnd(this.parent_elem,o,i,t,e,n);\n return c.elem.addEventListener(\"mousedown\", function(t) {\n return t.stopPropagation(),\n s.stealfocus(c),\n !0\n }),\n c.elem_header.addEventListener(\"mousedown\", function() {\n return s.draggo(c),\n !1\n }),\n c.elem_header.addEventListener(\"touchstart\", function(t) {\n t = t.targetTouches[0];\n return s.mouse_x = t.pageX,\n s.mouse_y = t.pageY,\n s.draggo(c),\n !1\n }),\n i && (c.rz_left.onmousedown = function(t) {\n return t.stopPropagation(),\n s.resizego(c, !0, !1, !1),\n s.stealfocus(c),\n !1\n }\n ,\n c.rz_right.onmousedown = function(t) {\n return t.stopPropagation(),\n s.resizego(c, !1, !0, !1),\n s.stealfocus(c),\n !1\n }\n ,\n c.rz_bottom.onmousedown = function(t) {\n return t.stopPropagation(),\n s.resizego(c, !1, !1, !0),\n s.stealfocus(c),\n !1\n }\n ,\n c.rz_bottomleft.onmousedown = function(t) {\n return t.stopPropagation(),\n s.resizego(c, !0, !1, !0),\n s.stealfocus(c),\n !1\n }\n ,\n c.rz_bottomright.onmousedown = function(t) {\n return t.stopPropagation(),\n s.resizego(c, !1, !0, !0),\n s.stealfocus(c),\n !1\n }\n ),\n this.wnd_array.push(c),\n c\n}\n,\nfc_ctrlwnd.prototype.stealfocus = function(t) {\n null === t ? null !== this.wnd_infocus && (this.wnd_infocus.unfocus(),\n this.wnd_infocus = null) : (null !== this.wnd_infocus && (this.wnd_infocus.unfocus(),\n this.wnd_infocus = null),\n this.wnd_infocus = t,\n this.wnd_infocus.focus(this.zindex_inc),\n this.zindex_inc++)\n}\n,\nfc_ctrlwnd.prototype.draggo = function(t) {\n this.drag_wnd = t,\n this.drag_elem_x = this.mouse_x - t.elem.offsetLeft,\n this.drag_elem_y = this.mouse_y - t.elem.offsetTop\n}\n,\nfc_ctrlwnd.prototype.resizego = function(t, e, n, i) {\n this.resize_wnd = t,\n this.drag_elem_x = this.mouse_x - t.elem.offsetLeft,\n this.drag_elem_y = this.mouse_y - t.elem.offsetTop,\n this.resize_left = e,\n this.resize_right = n,\n this.resize_bottom = i,\n !this.resize_left || this.resize_bottom || this.resize_right ? this.resize_left && this.resize_bottom && !this.resize_right ? document.getElementsByTagName(\"body\")[0].style.cursor = \"sw-resize\" : this.resize_left || !this.resize_bottom || this.resize_right ? !this.resize_left && this.resize_bottom && this.resize_right ? document.getElementsByTagName(\"body\")[0].style.cursor = \"se-resize\" : this.resize_left || this.resize_bottom || !this.resize_right || (document.getElementsByTagName(\"body\")[0].style.cursor = \"e-resize\") : document.getElementsByTagName(\"body\")[0].style.cursor = \"s-resize\" : document.getElementsByTagName(\"body\")[0].style.cursor = \"w-resize\"\n}\n,\nfc_ctrlwnd.prototype.docmousemove = function(t, e) {\n this.mouse_x = t,\n this.mouse_y = e,\n null !== this.drag_wnd && (this.drag_wnd.elem.style.left = this.mouse_x - this.drag_elem_x + \"px\",\n this.drag_wnd.elem.style.top = this.mouse_y - this.drag_elem_y + \"px\"),\n null !== this.resize_wnd && (this.resize_left && (t = this.resize_wnd.elem.offsetLeft,\n this.resize_wnd.elem.clientWidth - (this.mouse_x - this.drag_elem_x - t) > this.resize_wnd.min_width) && (this.resize_wnd.elem.style.left = this.mouse_x - this.drag_elem_x + \"px\",\n this.resize_wnd.elem.style.width = this.resize_wnd.elem.clientWidth - (this.resize_wnd.elem.offsetLeft - t) + \"px\"),\n this.resize_right && (this.resize_wnd.elem.style.width = this.mouse_x - (this.resize_wnd.elem.offsetLeft + this.resize_wnd.elem.parentNode.offsetLeft) + \"px\"),\n this.resize_bottom && (this.resize_wnd.elem.style.height = this.mouse_y - (this.resize_wnd.elem.offsetTop + this.resize_wnd.elem.parentNode.offsetTop) + \"px\"),\n this.resize_wnd.wnd_onresize())\n}\n,\nfc_ctrlwnd.prototype.docmouseup = function() {\n this.drag_wnd = null,\n this.resize_wnd = null,\n document.getElementsByTagName(\"body\")[0].style.cursor = \"default\"\n}\n,\nfc_layout.prototype.getcam = function(t) {\n for (var e = 0; e < this.cams.length; e++)\n if (this.cams[e].camno === t)\n return this.cams[e];\n return null\n}\n,\nfc_layout.prototype.gcbu = function(t) {\n for (var e = 0; e < this.cams.length; e++)\n if (this.cams[e].username === t)\n return this.cams[e];\n return null\n}\n,\nfc_layout.prototype.offerreq = function(t, e) {\n for (var n, i = 0; i < this.cams.length; i++)\n if ((n = this.cams[i]).camno === t) {\n n.offerreq(e);\n break\n }\n}\n,\nfc_layout.prototype.offer = function(t, e, n) {\n for (var i, s = 0; s < this.cams.length; s++)\n if ((i = this.cams[s]).camno === t) {\n i.offer(e, n);\n break\n }\n}\n,\nfc_layout.prototype.answer = function(t, e, n) {\n t = this.getcam(t);\n null !== t && t.answer(e, n)\n}\n,\nfc_layout.prototype.ice = function(t, e, n) {\n t = this.getcam(t);\n null !== t && t.ice(e, n)\n}\n,\nfc_layout.prototype.close = function(t, e) {\n t = this.getcam(t);\n null !== t && t.close(e)\n}\n,\nfc_layout.prototype.modchg = function(t) {\n for (var e = 0; e < this.cams.length; e++) {\n var n = this.cams[e];\n null === n.user || t !== n.user.username && t !== this.ws.username || n.modchg()\n }\n}\n,\nfc_layout.prototype.showlist = function(t, e) {\n if (2 !== this.cur_layout) {\n for (var n = [], i = 0; i < t.length; i++)\n n[t[i].cn] = t[i];\n for (var s, o, i = 0; i < n.length; i++)\n void 0 === n[i] ? (o = this.cams[i]).stopcam() : null !== (s = e.gubn(n[i].nm)) && ((o = this.cams[i]).setiser(n[i].cs.fn, n[i].cs.lc, n[i].cs.ta, n[i].cs.tu, n[i].cs.tp),\n this.kageshi_mode ? o.pausecam(s) : o.showcam(s, !1))\n }\n this.joined = !0\n}\n,\nfc_layout.prototype.setkmode = function(t) {\n this.kageshi_mode = t;\n for (var e = 0; e < this.cams.length; e++)\n this.cams[e].setkmode(t)\n}\n,\nfc_layout.prototype.camsrvchg = function(t, e, n) {\n e = this.getcam(e);\n null !== e && e.setiser(n.fn, n.lc, n.ta, n.tu, n.tp)\n}\n,\nfc_layout.prototype.showcam = function(t, e, n, i) {\n var s, o = !1;\n try {\n var c = i.gubn(t);\n null !== c && (2 !== this.cur_layout && (s = this.cams[e]),\n this.ws.username === t && (o = !0),\n s.setiser(n.fn, n.lc, n.ta, n.tu, n.tp),\n !o && this.kageshi_mode ? s.pausecam(c) : s.showcam(c, o))\n } catch (t) {}\n}\n,\nfc_layout.prototype.stopcam = function(t) {\n var e, n;\n try {\n for (e = 0; e < this.cams.length; e++)\n if ((n = this.cams[e]).camno === t) {\n 2 === this.cur_layout ? (n.stopcam(),\n n.selfdestruct(),\n this.cams.splice(e, 1)) : n.stopcam();\n break\n }\n } catch (t) {}\n}\n,\nfc_layout.prototype.setup = function(t) {\n switch (this.wndmedia.click_cancel(),\n t) {\n case 1:\n default:\n case 2:\n this.set1();\n break;\n case 3:\n this.set3();\n break;\n case 4:\n this.set4();\n break;\n case 5:\n this.set5();\n break;\n case 6:\n this.set6();\n break;\n case 7:\n this.set7();\n break;\n case 8:\n this.set8();\n break;\n case 9:\n this.set9()\n }\n this.setkmode(this.kageshi_mode)\n}\n,\nfc_layout.prototype.createCam = function(t, e) {\n t = new fc_cam(this.ws,this.pb,this.div_maxcont,this.cams.length,t,e,this.wndmedia,this.tip,this.menu_cb,this.volhist);\n return this.cams.push(t),\n t\n}\n,\nfc_layout.prototype.clearLayout = function() {\n for (this.cams = []; this.elem.hasChildNodes(); )\n this.elem.removeChild(this.elem.lastChild);\n this.elem.innerHTML = \"\"\n}\n,\nfc_layout.prototype.set1 = function() {\n this.clearLayout()\n}\n,\nfc_layout.prototype.set2 = function() {}\n,\nfc_layout.prototype.dynstart = function() {}\n,\nfc_layout.prototype.set3 = function() {\n this.clearLayout();\n for (var t = 0; t < 8; t++) {\n var e = this.createCam(\"4:3\", \"25%\");\n this.elem.appendChild(e.elem)\n }\n this.cur_layout = 3\n}\n,\nfc_layout.prototype.set4 = function() {\n this.clearLayout();\n var t = this.createCam(\"4:3\", \"50%\")\n , e = (this.elem.appendChild(t.elem),\n document.createElement(\"div\"))\n , n = (e.className = \"camcol_a\",\n e.style.width = \"50%\",\n this.elem.appendChild(e),\n document.createElement(\"div\"))\n , e = (n.className = \"camcol_b\",\n n.style.paddingTop = \"75%\",\n e.appendChild(n),\n document.createElement(\"div\"))\n , t = (e.className = \"camcol_c\",\n n.appendChild(e),\n this.createCam(\"4:3\", \"50%\"))\n , t = (e.appendChild(t.elem),\n this.createCam(\"4:3\", \"50%\"))\n , t = (e.appendChild(t.elem),\n this.createCam(\"4:3\", \"50%\"))\n , t = (e.appendChild(t.elem),\n this.createCam(\"4:3\", \"50%\"));\n e.appendChild(t.elem),\n this.cur_layout = 4\n}\n,\nfc_layout.prototype.set5 = function() {\n this.clearLayout();\n var t = this.createCam(\"4:3\", \"50%\");\n this.elem.appendChild(t.elem),\n t = this.createCam(\"4:3\", \"50%\"),\n this.elem.appendChild(t.elem),\n this.cur_layout = 5\n}\n,\nfc_layout.prototype.set6 = function() {\n this.clearLayout();\n for (var t = 0; t < 12; t++) {\n var e = this.createCam(\"16:9\", \"25%\");\n this.elem.appendChild(e.elem)\n }\n this.cur_layout = 6\n}\n,\nfc_layout.prototype.set7 = function() {\n this.clearLayout();\n for (var t = 0; t < 6; t++) {\n var e = this.createCam(\"16:9\", \"33.33%\");\n this.elem.appendChild(e.elem)\n }\n this.cur_layout = 7\n}\n,\nfc_layout.prototype.set8 = function() {\n this.clearLayout();\n var t = this.createCam(\"16:9\", \"66.6%\")\n , e = (this.elem.appendChild(t.elem),\n document.createElement(\"div\"))\n , n = (e.className = \"camcol_a\",\n e.style.width = \"33.3%\",\n this.elem.appendChild(e),\n document.createElement(\"div\"))\n , e = (n.className = \"camcol_b\",\n e.appendChild(n),\n document.createElement(\"div\"))\n , t = (e.className = \"camcol_c\",\n n.appendChild(e),\n this.createCam(\"16:9\", \"100%\"))\n , t = (e.appendChild(t.elem),\n this.createCam(\"16:9\", \"100%\"));\n e.appendChild(t.elem),\n this.cur_layout = 8\n}\n,\nfc_layout.prototype.set9 = function() {\n this.clearLayout();\n var t = this.createCam(\"21:9\", \"100%\");\n this.elem.appendChild(t.elem),\n this.cur_layout = 9\n}\n,\nfc_left.prototype.mod = function() {\n this.modlvl = 100\n}\n,\nfc_left.prototype.unmod = function() {\n this.modlvl = 0\n}\n,\nfc_left.prototype.block = function() {\n this.blocked = !0\n}\n,\nfc_left.prototype.unblock = function() {\n this.blocked = !1\n}\n,\nfc_menu.prototype.mouseleave = function(t) {\n null !== this.leavetimeout && (clearTimeout(this.leavetimeout),\n this.leavetimeout = null),\n this.leavetimeout = setTimeout(this.close.bind(this), 1e3)\n}\n,\nfc_menu.prototype.mouseenter = function(t) {\n null !== this.leavetimeout && (clearTimeout(this.leavetimeout),\n this.leavetimeout = null)\n}\n,\nfc_menu.prototype.close = function() {\n null !== this.leavetimeout && (clearTimeout(this.leavetimeout),\n this.leavetimeout = null),\n null !== this.showtimeout && (clearTimeout(this.showtimeout),\n this.showtimeout = null),\n this.elem.style.display = \"none\"\n}\n,\nfc_menu.prototype.open = function(t, e, n, i, s, o, c) {\n this.t_uuid = n,\n this.t_username = i,\n this.t_modlvl = s,\n this.t_online = o,\n this.t_blocked = c,\n this.h_title.innerHTML = this.t_username,\n this.t_username === this.ws.username ? this.buildself() : this.t_online ? this.ws.isguest ? this.buildother_g() : this.buildother() : this.buildleft(),\n this.elem.style.display = \"block\",\n \"mobile\" !== this.ws.mode && (this.elem.style.left = t + \"px\",\n this.elem.style.top = e + \"px\",\n this.elem.getBoundingClientRect().left + this.elem.clientWidth + 10 >= window.innerWidth && (this.elem.style.left = t - this.elem.clientWidth + \"px\"),\n this.elem.getBoundingClientRect().top + this.elem.clientHeight + 10 >= window.innerHeight && (this.elem.style.top = e - this.elem.clientHeight + \"px\"),\n this.showtimeout = setTimeout(this.close.bind(this), 2e4))\n}\n,\nfc_menu.prototype.buildself = function() {\n var t = this.lo.gcbu(this.t_username);\n this.btn_stopcam.style.display = \"none\",\n this.btn_pausecam.style.display = \"none\",\n this.btn_mutecam.style.display = \"none\",\n null !== t && t.canstop() && (this.btn_stopcam.style.display = \"block\"),\n this.btn_pm.style.display = \"block\",\n this.btn_profile.style.display = \"block\",\n this.btn_block.style.display = \"none\",\n this.btn_unblock.style.display = \"none\",\n this.btn_mod.style.display = \"none\",\n this.btn_unmod.style.display = \"none\",\n this.btn_kick.style.display = \"block\",\n this.btn_ban48.style.display = \"block\",\n this.btn_banperma.style.display = \"none\",\n this.btn_purge.style.display = \"none\",\n this.btn_siteban.style.display = \"none\"\n}\n,\nfc_menu.prototype.buildleft = function() {\n this.btn_stopcam.style.display = \"none\",\n this.btn_pausecam.style.display = \"none\",\n this.btn_mutecam.style.display = \"none\",\n this.btn_pm.style.display = \"none\",\n this.btn_block.style.display = \"none\",\n this.btn_unblock.style.display = \"none\",\n this.btn_purge.style.display = \"none\",\n this.btn_siteban.style.display = \"none\",\n this.btn_kick.style.display = \"none\",\n this.btn_profile.style.display = \"block\",\n this.t_blocked ? (this.btn_block.style.display = \"none\",\n this.btn_unblock.style.display = \"block\") : (this.btn_block.style.display = \"block\",\n this.btn_unblock.style.display = \"none\"),\n 150 <= this.ws.modlvl && this.t_modlvl < 100 ? this.btn_mod.style.display = \"block\" : this.btn_mod.style.display = \"none\",\n 150 <= this.ws.modlvl && 100 === this.t_modlvl ? this.btn_unmod.style.display = \"block\" : this.btn_unmod.style.display = \"none\",\n 100 <= this.ws.modlvl && this.t_modlvl < this.ws.modlvl ? this.btn_kick.style.display = \"block\" : this.btn_kick.style.display = \"none\",\n 150 <= this.ws.modlvl && this.t_modlvl < this.ws.modlvl ? (this.btn_ban48.style.display = \"block\",\n this.btn_banperma.style.display = \"block\") : (this.btn_ban48.style.display = \"none\",\n this.btn_banperma.style.display = \"none\"),\n 150 <= this.ws.modlvl && this.t_modlvl < this.ws.modlvl ? this.btn_purge.style.display = \"block\" : this.btn_purge.style.display = \"none\",\n 300 <= this.ws.modlvl && this.t_modlvl < this.ws.modlvl ? this.btn_siteban.style.display = \"block\" : this.btn_siteban.style.display = \"none\"\n}\n,\nfc_menu.prototype.buildother = function() {\n var t = this.ws.modlvl\n , e = this.t_modlvl\n , n = (this.ws.isguest,\n this.lo.gcbu(this.t_username));\n this.btn_stopcam.style.display = \"none\",\n this.btn_pausecam.style.display = \"none\",\n this.btn_mutecam.style.display = \"none\",\n null !== n && (n.canstop() && (this.btn_stopcam.style.display = \"block\"),\n n.paused ? this.btn_pausecam.innerText = \"play cam\" : this.btn_pausecam.innerText = \"pause cam\",\n this.btn_pausecam.style.display = \"block\",\n n.video.muted ? this.btn_mutecam.innerText = \"unmute cam\" : this.btn_mutecam.innerText = \"mute cam\",\n this.btn_mutecam.style.display = \"block\"),\n this.btn_pm.style.display = \"block\",\n this.btn_profile.style.display = \"block\",\n this.t_blocked ? (this.btn_block.style.display = \"none\",\n this.btn_unblock.style.display = \"block\") : (this.btn_block.style.display = \"block\",\n this.btn_unblock.style.display = \"none\"),\n this.btn_mod.style.display = 150 <= t && e < 100 ? \"block\" : \"none\",\n this.btn_unmod.style.display = 150 <= t && 100 === e ? \"block\" : \"none\",\n 100 <= t && e < this.ws.modlvl ? this.btn_kick.style.display = \"block\" : this.btn_kick.style.display = \"none\",\n 150 <= t && e < t ? (this.btn_ban48.style.display = \"block\",\n this.btn_banperma.style.display = \"block\") : (this.btn_ban48.style.display = \"none\",\n this.btn_banperma.style.display = \"none\"),\n this.btn_purge.style.display = 150 <= t && e < t ? \"block\" : \"none\",\n this.btn_siteban.style.display = 300 <= t && e < t ? \"block\" : \"none\"\n}\n,\nfc_menu.prototype.buildother_g = function() {\n this.ws.modlvl,\n this.t_modlvl;\n var t = this.lo.gcbu(this.t_username);\n this.btn_stopcam.style.display = \"none\",\n this.btn_pausecam.style.display = \"none\",\n this.btn_mutecam.style.display = \"none\",\n null !== t && (t.you || (t.paused ? this.btn_pausecam.innerText = \"play cam\" : this.btn_pausecam.innerText = \"pause cam\",\n this.btn_pausecam.style.display = \"block\"),\n t.you || (t.video.muted ? this.btn_mutecam.innerText = \"unmute cam\" : this.btn_mutecam.innerText = \"mute cam\",\n this.btn_mutecam.style.display = \"block\")),\n this.btn_pm.style.display = \"none\",\n this.btn_profile.style.display = \"block\",\n this.btn_block.style.display = \"none\",\n this.btn_unblock.style.display = \"none\",\n this.btn_mod.style.display = \"none\",\n this.btn_unmod.style.display = \"none\",\n this.btn_kick.style.display = \"none\",\n this.btn_ban48.style.display = \"none\",\n this.btn_banperma.style.display = \"none\",\n this.btn_purge.style.display = \"none\",\n this.btn_siteban.style.display = \"none\"\n}\n,\nfc_menu.prototype.btnclick = function(t) {\n switch (t.target.dataset.btntype) {\n case \"stopcam\":\n null !== (e = this.lo.gcbu(this.t_username)) && e.click_stopcam(t);\n break;\n case \"pausecam\":\n null !== (e = this.lo.gcbu(this.t_username)) && (e.paused ? e.click_unpausecam(t) : e.click_pausecam(t));\n break;\n case \"mutecam\":\n null !== (e = this.lo.gcbu(this.t_username)) && e.click_mute(t);\n break;\n case \"pm\":\n var e = this.pmctrl.getpm(this.t_uuid);\n e.open(),\n e.focuswnd();\n break;\n case \"profile\":\n window.open(\"/profiles/?uuid=\" + this.t_uuid);\n break;\n case \"block\":\n this.ws.sendpbuf(1200341, this.pb.roots.default.fc.p_1200341.encode({\n uuid: this.t_uuid\n }, null).finish());\n break;\n case \"unblock\":\n this.ws.sendpbuf(1200343, this.pb.roots.default.fc.p_1200343.encode({\n uuid: this.t_uuid\n }, null).finish());\n break;\n case \"mod\":\n this.ws.sendpbuf(1200811, this.pb.roots.default.fc.p_1200811.encode({\n uuid: this.t_uuid\n }, null).finish());\n break;\n case \"unmod\":\n this.ws.sendpbuf(1200815, this.pb.roots.default.fc.p_1200815.encode({\n uuid: this.t_uuid\n }, null).finish());\n break;\n case \"kick\":\n this.ws.sendpbuf(1200831, this.pb.roots.default.fc.p_1200831.encode({\n uuid: this.t_uuid\n }, null).finish());\n break;\n case \"ban48\":\n this.ws.sendpbuf(1200841, this.pb.roots.default.fc.p_1200841.encode({\n uuid: this.t_uuid,\n prm: !1\n }, null).finish());\n break;\n case \"banperma\":\n this.ws.sendpbuf(1200841, this.pb.roots.default.fc.p_1200841.encode({\n uuid: this.t_uuid,\n prm: !0\n }, null).finish());\n break;\n case \"purge\":\n this.ws.sendpbuf(1200851, this.pb.roots.default.fc.p_1200851.encode({\n uuid: this.t_uuid\n }, null).finish());\n break;\n case \"siteban\":\n this.ws.sendpbuf(1200881, this.pb.roots.default.fc.p_1200881.encode({\n uuid: this.t_uuid\n }, null).finish())\n }\n this.close()\n}\n,\nfc_msglimit.prototype.updateml = function(t) {\n switch (t) {\n case 0:\n this.max_strikes = 4,\n this.max_msg_length = 300;\n break;\n case 100:\n this.max_strikes = 6,\n this.max_msg_length = 500;\n break;\n case 150:\n this.max_strikes = 8,\n this.max_msg_length = 700;\n break;\n case 200:\n this.max_strikes = 10,\n this.max_msg_length = 900;\n break;\n case 300:\n this.max_strikes = 12,\n this.max_msg_length = 1200\n }\n}\n,\nfc_msglimit.prototype.cansend = function(t, e) {\n var n = 0\n , i = (new Date).getTime();\n if (i < this.prev_msg_time + this.msg_interval && (1 < e ? n += e : n++),\n (t.length > this.max_msg_length || 0 === t.length) && (n += this.max_strikes),\n 0 < n ? this.cur_strikes += n : this.cur_strikes = 0,\n this.enforced) {\n if (i < this.prev_msg_time + this.cooloff_time)\n return this.prev_msg_time = i,\n !1\n } else if (this.cur_strikes >= this.max_strikes)\n return this.prev_msg_time = i,\n !(this.enforced = !0);\n return this.msg_count++,\n this.enforced = !1,\n this.prev_msg = t,\n this.prev_msg_time = i,\n !0\n}\n,\nfc_msk.prototype.clear = function() {\n for (null !== this.interval && (clearInterval(this.interval),\n this.interval = null); this.elem.firstChild; )\n this.elem.removeChild(this.elem.firstChild);\n this.h1_status = null,\n this.p_info = null,\n this.p_countdown = null,\n this.span_countdown = null,\n this.text_password = null,\n this.button = null\n}\n,\nfc_msk.prototype.showcs = function(t, e) {\n 1 !== this.mode && (this.mode = 1,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.elem.appendChild(this.p_info)),\n this.h1_status.innerText = t,\n this.p_info.innerText = e\n}\n,\nfc_msk.prototype.showps = function() {\n 2 !== this.mode && (this.mode = 2,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.h1_status.innerHTML = \"Enter Password\",\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.p_info.innerHTML = \"This room requires a password to join, you will need to get this from the room owner.\",\n this.elem.appendChild(this.p_info),\n this.text_password = document.createElement(\"input\"),\n this.text_password.setAttribute(\"type\", \"password\"),\n this.text_password.maxLength = 16,\n this.text_password.onkeyup = this.pw_keyup.bind(this),\n this.elem.appendChild(this.text_password),\n this.button = document.createElement(\"button\"),\n this.button.innerHTML = \"Enter\",\n this.button.onclick = this.pw_click.bind(this),\n this.elem.appendChild(this.button)),\n this.text_password.value = \"\",\n this.text_password.focus()\n}\n,\nfc_msk.prototype.pw_keyup = function(t) {\n 13 === t.keyCode && this.connectpw(this.text_password.value)\n}\n,\nfc_msk.prototype.pw_click = function(t) {\n this.connectpw(this.text_password.value)\n}\n,\nfc_msk.prototype.connectpw = function(t) {\n 0 < t.length && (this.showcs(\"Connecting\"),\n this.ws.roompass = t,\n this.ws.start())\n}\n,\nfc_msk.prototype.showjo = function() {\n 3 !== this.mode && (this.mode = 3,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.h1_status.innerHTML = \"Already in room\",\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.p_info.innerHTML = \"You are already connected to this room, do you want to disconnect the other session and let this tab take over?\",\n this.elem.appendChild(this.p_info),\n this.button = document.createElement(\"button\"),\n this.button.innerHTML = \"OK ReJoin\",\n this.button.onclick = this.jobtn_click.bind(this),\n this.elem.appendChild(this.button))\n}\n,\nfc_msk.prototype.jobtn_click = function(t) {\n this.showcs(\"Connecting\"),\n this.ws.joinover = !0,\n this.ws.start()\n}\n,\nfc_msk.prototype.showws = function(t, e) {\n 4 !== this.mode && (this.mode = 4,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.elem.appendChild(this.p_info),\n this.p_countdown = document.createElement(\"p\"),\n this.elem.appendChild(this.p_countdown)),\n this.h1_status.innerHTML = \"Waiting before reconnect\",\n this.p_info.innerHTML = e,\n this.deadline = Date.now() + (t + 200),\n this.interval = setInterval(this.waitcd.bind(this), 97)\n}\n,\nfc_msk.prototype.waitcd = function() {\n 0 < this.deadline - Date.now() ? this.p_countdown.innerHTML = \"Rejoin in \" + this.ws.mstohr(this.deadline - Date.now()) : (clearInterval(this.interval),\n this.showcs(\"Rejoining Room\", \"\"),\n this.ws.start())\n}\n,\nfc_msk.prototype.showks = function(t, e, n, i) {\n 5 !== this.mode && (this.mode = 5,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.h1_status.innerHTML = \"Kicked\",\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.elem.appendChild(this.p_info));\n t = \"You were kicked from the room by <strong>\" + t + \"</strong> for \" + this.ws.stohr(n);\n t += \"<br><span id='kickcountdown'></span>\",\n 0 < e.length && (t += \"<br><br><i>\" + e + \"</i>\"),\n this.p_info.innerHTML = t,\n this.span_countdown = document.getElementById(\"kickcountdown\"),\n this.deadline = Date.now() + 1e3 * i + 250,\n this.kickcd(),\n this.interval = setInterval(this.kickcd.bind(this), 100)\n}\n,\nfc_msk.prototype.kickcd = function() {\n 0 < this.deadline - Date.now() ? this.span_countdown.innerHTML = \"This kick expires in <strong>\" + this.ws.mstohr(this.deadline - Date.now()) + \"</strong>\" : (clearInterval(this.interval),\n this.span_countdown.innerHTML = \"<strong>Kick has expired</strong>\",\n this.button = document.createElement(\"button\"),\n this.button.innerHTML = \"Rejoin Room\",\n this.button.onclick = this.kick_click.bind(this),\n this.elem.appendChild(this.button))\n}\n,\nfc_msk.prototype.kick_click = function(t) {\n this.showcs(\"Rejoining Room\", \"\"),\n this.ws.start()\n}\n,\nfc_msk.prototype.showbs = function(t, e, n, i, s) {\n 6 !== this.mode && (this.mode = 6,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.elem.appendChild(this.p_info));\n t = \"<strong>\" + t + \"</strong> is banned from this room<br/>\";\n i || (t += \"<span id='bancountdown'>This ban expires in <strong>\" + this.ws.stohr(n) + \"</strong></span>\",\n this.deadline = Date.now() + 1e3 * n + 1e3,\n this.interval = setInterval(this.bancd.bind(this), 100)),\n 0 < s.length && (t += \"</br><br/><i>\" + s + \"</i>\"),\n this.h1_status.innerHTML = \"Banned\",\n this.p_info.innerHTML = t,\n this.span_countdown = document.getElementById(\"bancountdown\")\n}\n,\nfc_msk.prototype.bancd = function() {\n 0 < this.deadline - Date.now() ? this.span_countdown.innerHTML = \"This ban expires in <strong>\" + this.ws.mstohr(this.deadline - Date.now()) + \"</strong>\" : (clearInterval(this.interval),\n this.span_countdown.innerHTML = \"<strong>Ban expired, please refresh to continue</strong>\")\n}\n,\nfc_msk.prototype.showds = function() {\n 7 !== this.mode && (this.mode = 7,\n this.clear(),\n this.h1_status = document.createElement(\"h1\"),\n this.elem.appendChild(this.h1_status),\n this.p_info = document.createElement(\"p\"),\n this.elem.appendChild(this.p_info)),\n this.h1_status.innerHTML = \"Room Deleted\",\n this.p_info.innerHTML = \"This room has been deleted\"\n}\n,\nfc_recon.prototype.mkcountdown = function() {\n var t = Math.floor(Math.random() * (this.recon_stepmax - this.recon_min)) + this.recon_min;\n return this.recon_stepmax < this.recon_max && (this.recon_stepmax += 1e3),\n t\n}\n,\nfc_recon.prototype.mkcountdown_extra = function() {\n return Math.floor(2e4 * Math.random()) + 5e3\n}\n,\nfc_recon.prototype.start = function(t) {\n this.last_reconstart < (new Date).getTime() - 3e5 && (this.recon_stepmax = 1e3),\n this.last_reconstart = (new Date).getTime(),\n void 0 === t ? this.startrecon(this.mkcountdown()) : this.startrecon(t)\n}\n,\nfc_recon.prototype.startrecon = function(t) {\n this.ws.t2exp.getTime() < (new Date).getTime() && !this.waiting_t2 && this.reqt2(),\n this.recnt_prx >= this.max_recnt_prx && this.reqprx(),\n 0 !== this.recon_timeout && (clearTimeout(this.recon_timeout),\n this.recon_timeout = 0),\n 0 !== this.countdown_timer && (clearInterval(this.countdown_timer),\n this.countdown_timer = 0),\n this.countdown_target = Date.now() + t,\n this.recon_timeout = setTimeout(this.recontick.bind(this), t),\n this.countdown_timer = setInterval(this.countdowntick.bind(this), 1e3),\n this.countdowntick()\n}\n,\nfc_recon.prototype.done = function() {\n this.cb.setrecon_done(),\n 0 !== this.recon_timeout && (clearTimeout(this.recon_timeout),\n this.recon_timeout = 0),\n 0 !== this.countdown_timer && (clearInterval(this.countdown_timer),\n this.countdown_timer = 0),\n this.waiting_prx = !1,\n this.waiting_t2 = !1\n}\n,\nfc_recon.prototype.failed = function(t) {\n 0 !== this.recon_timeout && (clearTimeout(this.recon_timeout),\n this.recon_timeout = 0),\n 0 !== this.countdown_timer && (clearInterval(this.countdown_timer),\n this.countdown_timer = 0),\n this.setmsg(\"failed to reconnect\"),\n this.cb.addsys(t)\n}\n,\nfc_recon.prototype.setmsg = function(t) {\n null !== this.cb ? this.cb.setrecon(t) : this.msk.showcs(\"Connecting\", \"Retrying connection (\" + t + \")\")\n}\n,\nfc_recon.prototype.reqprx = function() {\n this.setmsg(\"route change\"),\n this.waiting_prx = !0,\n this.reqprx_cb(this.prxcb.bind(this))\n}\n,\nfc_recon.prototype.prxcb = function(t, e) {\n 200 === e ? t.hasOwnProperty(\"error\") ? (this.setmsg(\"failed to reconnect\"),\n this.failed(\"Session error, please refresh the page to continue. (\" + t.error + \")\")) : (this.setmsg(\"changed route\"),\n this.waiting_prx = !1,\n this.ws.addr = t.addr,\n this.recnt_prx = 0) : this.setmsg(\"route change failed\")\n}\n,\nfc_recon.prototype.reqt2 = function() {\n this.setmsg(\"refreshing token\"),\n this.waiting_t2 = !0,\n this.t2src_cb(this.t2cb.bind(this))\n}\n,\nfc_recon.prototype.t2cb = function(t, e) {\n 200 === e ? t.hasOwnProperty(\"error\") ? (this.setmsg(\"failed to reconnect\"),\n this.failed(\"Session error, please refresh the page to continue. (\" + t.error + \")\")) : (this.setmsg(\"token refreshed\"),\n this.waiting_t2 = !1,\n this.ws.t2 = t.t2,\n this.ws.t2exp = new Date(t.exp)) : this.setmsg(\"token refresh failed\")\n}\n,\nfc_recon.prototype.recontick = function() {\n this.waiting_t2 || this.ws.t2exp.getTime() < (new Date).getTime() ? (this.start(this.mkcountdown_extra()),\n this.reqt2()) : this.waiting_prx || 0 === this.ws.addr.length ? (this.start(this.mkcountdown_extra()),\n this.reqprx()) : (this.setmsg(\"connecting\"),\n this.recnt_prx++,\n this.ws.start())\n}\n,\nfc_recon.prototype.countdowntick = function() {\n this.waiting_prx;\n var t = this.countdown_target - Date.now();\n 500 < t && this.setmsg(\"in \" + this.ws.mstohr(t))\n}\n,\nfc_rtcpull.prototype.selfdestruct = function() {\n this.finish || (this.finish = !0,\n this.ws = null,\n this.pb = null,\n this.cam = null,\n this.vstream = null,\n this.astream = null,\n this.icestack = [],\n null !== this.rtcpeer && (this.rtcpeer.close(),\n this.rtcpeer.onicecandidate = null,\n this.rtcpeer.onicegatheringstatechange = null,\n this.rtcpeer.oniceconnectionstatechange = null,\n this.rtcpeer.ontrack = null,\n this.rtcpeer = null),\n 0 !== this.stat_interval && (clearInterval(this.stat_interval),\n this.stat_interval = 0),\n this.dcintrv_stop())\n}\n,\nfc_rtcpull.prototype.statstart = function() {\n this.stat_vis = !0,\n this.stat_viscount = 0\n}\n,\nfc_rtcpull.prototype.statstop = function() {\n this.stat_vis = !1,\n this.stat_viscount = 0\n}\n,\nfc_rtcpull.prototype.stattick = function() {\n var o;\n null === this.rtcpeer ? (clearInterval(this.stat_interval),\n this.stat_interval = 0) : \"connected\" === this.rtcpeer.iceConnectionState && (this.stat_vis || !this.stat_vis && this.stat_viscount < 120) ? (o = this).rtcpeer.getStats(null).then(function(s) {\n s.forEach(function(t) {\n var e, n, i;\n \"inbound-rtp\" === t.type && \"audio\" === t.mediaType && 0 === o.acodec.length && (t.hasOwnProperty(\"codecId\") ? o.acodec = o.getcodec(s, t.codecId) : o.acodec = \"unsupported by browser\"),\n \"inbound-rtp\" === t.type && \"video\" === t.mediaType && (i = \"\",\n (n = e = 0) === o.vcodec.length && (t.hasOwnProperty(\"codecId\") ? o.vcodec = o.getcodec(s, t.codecId) : o.vcodec = \"unsupported by browser\"),\n t.hasOwnProperty(\"framesReceived\") ? (i = 0 !== (e = t.framesReceived - o.frame_prev) && 0 !== o.frame_prev ? e + \" fps<br>\" : \"- fps<br>\",\n o.frame_prev = t.framesReceived) : t.hasOwnProperty(\"framerateMean\") && (i = 0 !== (e = t.framesReceived - o.frame_prev) ? Math.round(t.framerateMean) + \" fps<br>\" : \"- fps<br>\"),\n t.hasOwnProperty(\"bytesReceived\") && (0 !== (n = (t.bytesReceived - o.byte_prev) / 1024) && 0 !== o.byte_prev ? i += n.toFixed(2) + \" KiB/s\" : i += \"-.-- KiB/s\",\n o.byte_prev = t.bytesReceived),\n o.cam.statp.innerHTML = i,\n o.stat_vis || o.stat_viscount++)\n })\n }) : (this.byte_prev = 0,\n this.frame_prev = 0)\n}\n,\nfc_rtcpull.prototype.getcodec = function(t, e) {\n var n = \"unknown\";\n return t.forEach(function(t) {\n \"codec\" === t.type && t.hasOwnProperty(\"id\") && t.hasOwnProperty(\"mimeType\") && t.id === e && (n = t.hasOwnProperty(\"channels\") ? t.mimeType + \" \" + t.channels + \"ch\" : t.mimeType)\n }),\n n\n}\n,\nfc_rtcpull.prototype.statresults = function(t) {}\n,\nfc_rtcpull.prototype.offer = function(t, e) {\n if (this.dcintrv_stop(),\n this.d_offer = !1,\n this.d_ice = !1,\n this.failed = !1,\n this.cndcount = 0,\n this.rscount++,\n !this.d_offer) {\n this.d_offer = !0;\n var n = this;\n this.tid = t;\n try {\n null !== this.rtcpeer && (this.rtcpeer.close(),\n this.rtcpeer.onicecandidate = null,\n this.rtcpeer.onicegatheringstatechange = null,\n this.rtcpeer.oniceconnectionstatechange = null,\n this.rtcpeer.ontrack = null,\n this.rtcpeer = null),\n this.rtcpeer = new RTCPeerConnection(this.cam.iser),\n this.stat_interval = setInterval(this.stattick.bind(this), 1e3),\n this.rtcpeer.onicecandidate = this.onicecandidate.bind(this),\n this.rtcpeer.onicegatheringstatechange = this.onicegatheringstatechange.bind(this),\n this.rtcpeer.oniceconnectionstatechange = this.oniceconnectionstatechange.bind(this),\n this.rtcpeer.ontrack = this.gotremotestream.bind(this);\n var i = new RTCSessionDescription({\n type: \"offer\",\n sdp: e\n });\n if (this.rtcpeer.setRemoteDescription(i).then(function() {\n n.onsetremotesuccess()\n }, function() {\n n.onsetremoteerror()\n }),\n 0 < this.icestack.length) {\n for (var s = 0; s < this.icestack.length; s++)\n this.ice(this.icestack[s]);\n this.icestack = []\n }\n this.rtcpeer.createAnswer({\n offerToReceiveAudio: 1,\n offerToReceiveVideo: 1\n }).then(function(t) {\n n.oncreateanswersuccess(t)\n }, function(t) {\n n.oncreateanswererror(t)\n })\n } catch (t) {}\n }\n}\n,\nfc_rtcpull.prototype.gotremotestream = function(t) {\n if (\"video\" === t.receiver.track.kind)\n try {\n this.vstream = t.streams[0],\n this.cam.video.srcObject = this.vstream,\n this.playremotevideo()\n } catch (t) {}\n else\n \"audio\" === t.receiver.track.kind && 0 !== t.streams.length && this.cam.setpull_vabstream(t.streams[0])\n}\n,\nfc_rtcpull.prototype.playremotevideo = function() {\n let e = this\n , t = this.cam.video.play();\n this.playtimeout = setTimeout(function() {\n e.playremotevideo()\n }, 1e4),\n void 0 !== t && t.then(function() {\n clearTimeout(e.playtimeout)\n }).catch(function(t) {\n clearTimeout(e.playtimeout),\n \"NotAllowedError\" === t.name && null !== e.cam && e.cam.click_pausecam()\n })\n}\n,\nfc_rtcpull.prototype.onsetremotesuccess = function(t) {}\n,\nfc_rtcpull.prototype.onsetremoteerror = function() {}\n,\nfc_rtcpull.prototype.oncreateanswersuccess = function(t) {\n var e = this;\n this.rtcpeer.setLocalDescription(t).then(function() {\n e.onsetlocalsuccess(t.sdp)\n }, function(t) {\n e.onsetlocalerror(t)\n }),\n this.srd_done = !0\n}\n,\nfc_rtcpull.prototype.oncreateanswererror = function(t) {}\n,\nfc_rtcpull.prototype.onsetlocalsuccess = function(t) {\n this.ws.sendpbuf(1200735, this.pb.roots.default.fc.p_1200735.encode({\n sdp: {\n cn: this.cam.camno,\n ti: this.tid,\n dsc: t\n }\n }, null).finish())\n}\n,\nfc_rtcpull.prototype.onsetlocalerror = function(t) {}\n,\nfc_rtcpull.prototype.ice = function(t) {\n null === this.rtcpeer ? this.icestack.push(t) : (t = new RTCIceCandidate(JSON.parse(t)),\n this.rtcpeer.addIceCandidate(t).then(function() {}).catch(function(t) {}))\n}\n,\nfc_rtcpull.prototype.onicecandidate = function(t) {\n var e;\n null !== this.rtcpeer && (null === t.candidate ? 0 === this.cndcount && (this.rp_rtcerr(2),\n this.dcintrv_start()) : -1 === (e = t.candidate.candidate).indexOf(\"typ host\") && -1 === e.indexOf(\"srflx\") && 0 < e.length && (this.cndcount++,\n this.ws.sendpbuf(1200747, this.pb.roots.default.fc.p_1200747.encode({\n cn: this.cam.camno,\n ti: this.tid,\n cnd: JSON.stringify(t.candidate)\n }, null).finish())))\n}\n,\nfc_rtcpull.prototype.onicegatheringstatechange = function(t) {\n null !== this.rtcpeer && \"complete\" === this.rtcpeer.iceGatheringState && \"connected\" !== this.rtcpeer.iceConnectionState && (this.dcintrv_start(),\n this.stagcount = 4)\n}\n,\nfc_rtcpull.prototype.oniceconnectionstatechange = function(t) {\n null !== this.rtcpeer && (this.stagcount = 0,\n \"failed\" === this.rtcpeer.iceConnectionState ? (this.failed = !0,\n this.cam.loading.show(),\n this.rp_rtcerr(4),\n this.dcintrv_start()) : \"disconnected\" === this.rtcpeer.iceConnectionState ? (setTimeout(this.loadshowtimeout.bind(this), 3e3),\n this.rp_rtcerr(6),\n this.dcintrv_start()) : \"connected\" === this.rtcpeer.iceConnectionState && this.cam.loading.hide())\n}\n,\nfc_rtcpull.prototype.loadshowtimeout = function() {\n \"disconnected\" === this.rtcpeer.iceConnectionState && this.cam.loading.show()\n}\n,\nfc_rtcpull.prototype.dcintrv_start = function() {\n this.dcintrv_stop();\n var t = Math.floor(7001 * Math.random()) + 5e3;\n this.dc_interval = setInterval(this.dcintrv_check.bind(this), t)\n}\n,\nfc_rtcpull.prototype.dcintrv_stop = function() {\n 0 !== this.dc_interval && (clearInterval(this.dc_interval),\n this.dc_interval = 0)\n}\n,\nfc_rtcpull.prototype.dcintrv_check = function() {\n \"disconnected\" === this.rtcpeer.iceConnectionState || \"failed\" === this.rtcpeer.iceConnectionState ? this.reqrst() : \"connected\" === this.rtcpeer.iceConnectionState ? this.dcintrv_stop() : \"new\" === this.rtcpeer.iceConnectionState && (3 < this.stagcount ? (this.stagcount = 0,\n this.rp_rtcerr(7),\n this.reqrst()) : this.stagcount++)\n}\n,\nfc_rtcpull.prototype.rp_rtcerr = function(t) {\n this.ws.sendpbuf(1200799, this.pb.roots.default.fc.p_1200799.encode({\n cn: this.cam.camno,\n ti: this.tid,\n er: t\n }, null).finish())\n}\n,\nfc_rtcpull.prototype.reqrst = function() {\n 4 < this.rscount ? this.cam.click_pausecam() : this.ws.sendpbuf(1200797, this.pb.roots.default.fc.p_1200797.encode({\n cn: this.cam.camno,\n ti: this.tid\n }, null).finish())\n}\n,\nfc_rtcpush.prototype.selfdestruct = function() {\n this.finish || (this.finish = !0,\n this.ws = null,\n this.pb = null,\n (this.local_stream = null) !== this.offersonhold && (this.offersonhold = null),\n null !== this.rtcpeer && (this.rtcpeer.close(),\n this.rtcpeer.onicecandidate = null,\n this.rtcpeer.oniceconnectionstatechange = null,\n this.rtcpeer = null))\n}\n,\nfc_rtcpush.prototype.offerreq = function() {\n this.d_offer = !1,\n this.d_answer = !1,\n this.d_ice = !1,\n this.failed = !1,\n this.cndcount = 0;\n var e = this;\n this.d_offer || this.d_answer || (this.d_offer = !0,\n this.rtcpeer = new RTCPeerConnection(this.cam.iser),\n this.rtcpeer.onicecandidate = this.onicecandidate.bind(this),\n this.rtcpeer.onicegatheringstatechange = this.onicegatheringstatechange.bind(this),\n this.rtcpeer.oniceconnectionstatechange = this.oniceconnectionstatechange.bind(this),\n this.rtcpeer.addStream(this.local_stream),\n this.rtcpeer.createOffer({\n offerToReceiveAudio: 1,\n offerToReceiveVideo: 1\n }).then(function(t) {\n e.oncreateoffersuccess(t)\n }, function(t) {\n e.oncreatesessiondescriptionerror(t)\n }))\n}\n,\nfc_rtcpush.prototype.oncreateoffersuccess = function(t) {\n var e = this;\n this.rtcpeer.setLocalDescription(t).then(function() {\n e.onsetlocalsuccess(t.sdp)\n }, function(t) {\n e.oncreatesessiondescriptionerror(t)\n })\n}\n,\nfc_rtcpush.prototype.onsetlocalsuccess = function(t) {\n t = {\n cn: this.cam.camno,\n ti: this.tid,\n dsc: t\n };\n null === this.offersonhold ? this.ws.sendpbuf(1200723, this.pb.roots.default.fc.p_1200723.encode({\n sdp: t\n }, null).finish()) : (this.offersonhold.push(t),\n this.offersonhold = null)\n}\n,\nfc_rtcpush.prototype.oncreatesessiondescriptionerror = function(t) {}\n,\nfc_rtcpush.prototype.answer = function(t) {\n var e;\n this.d_offer && !this.d_answer && (this.d_answer = !0,\n e = this,\n t = new RTCSessionDescription({\n type: \"answer\",\n sdp: t\n }),\n this.rtcpeer.setRemoteDescription(t).then(function() {\n e.onsetremotesuccess()\n }, function(t) {\n e.onsetsessiondescriptionerror(t)\n }))\n}\n,\nfc_rtcpush.prototype.onsetremotesuccess = function(t) {\n this.srd_done = !0\n}\n,\nfc_rtcpush.prototype.onsetsessiondescriptionerror = function(t) {}\n,\nfc_rtcpush.prototype.ice = function(t) {\n this.d_ice || (t = new RTCIceCandidate(JSON.parse(t)),\n this.rtcpeer.addIceCandidate(t).then(function() {}).catch(function(t) {}))\n}\n,\nfc_rtcpush.prototype.onicecandidate = function(t) {\n null === t.candidate ? 0 === this.cndcount && this.rp_rtcerr(1) : -1 === t.candidate.candidate.indexOf(\"typ host\") && -1 === t.candidate.candidate.indexOf(\"srflx\") && 0 < t.candidate.candidate.length && (this.cndcount++,\n this.ws.sendpbuf(1200747, this.pb.roots.default.fc.p_1200747.encode({\n cn: this.cam.camno,\n ti: this.tid,\n cnd: JSON.stringify(t.candidate)\n }, null).finish()))\n}\n,\nfc_rtcpush.prototype.onicegatheringstatechange = function(t) {}\n,\nfc_rtcpush.prototype.oniceconnectionstatechange = function(t) {\n \"failed\" === this.rtcpeer.iceConnectionState ? (this.failed = !0,\n this.rp_rtcerr(3)) : \"disconnected\" === this.rtcpeer.iceConnectionState ? this.rp_rtcerr(5) : this.rtcpeer.iceConnectionState\n}\n,\nfc_rtcpush.prototype.rp_rtcerr = function(t) {\n this.ws.sendpbuf(1200799, this.pb.roots.default.fc.p_1200799.encode({\n cn: this.cam.camno,\n ti: this.tid,\n er: t\n }, null).finish())\n}\n,\nfc_status.prototype.enautoidle = function(t) {\n t ? (this.autoidle_enable = !0,\n null === this.idleinterval && (this.idleinterval = setInterval(this.tick.bind(this), 26e3),\n this.lastact = Date.now(),\n this.lastreturn = Date.now())) : (this.autoidle_enable = !1,\n null !== this.idleinterval && clearInterval(this.idleinterval))\n}\n,\nfc_status.prototype.update = function(t, e) {\n t === this.ws.username && (this.statuslevel = e.lv,\n this.statustime = e.ct,\n this.statusmsg = e.msg)\n}\n,\nfc_status.prototype.act = function() {\n this.ws.isguest || (this.lastact = Date.now(),\n 3 === this.statuslevel && 500 < Date.now() - this.lastreturn && (this.ws.sendpbuf(1200311, this.pb.roots.default.fc.p_1200311.encode({\n il: !1,\n tm: this.tbi\n }, null).finish()),\n this.lastreturn = Date.now()))\n}\n,\nfc_status.prototype.tick = function() {\n this.ws.isguest || 1 === this.statuslevel && Date.now() - this.lastact > this.tbi && this.autoidle_enable && this.ws.sendpbuf(1200311, this.pb.roots.default.fc.p_1200311.encode({\n il: !0,\n tm: this.tbi\n }, null).finish())\n}\n,\nfc_switch.prototype.create = function(t, e) {\n this.elem = document.createElement(\"div\"),\n this.elem.className = \"cbwlbl\",\n this.elem.onclick = this.lblclick.bind(this);\n var n = document.createElement(\"label\")\n , t = (n.className = \"switch\",\n this.cb = document.createElement(\"input\"),\n this.cb.type = \"checkbox\",\n this.cb.checked = t,\n document.createElement(\"span\"));\n t.className = \"slider\",\n n.appendChild(this.cb),\n n.appendChild(t),\n this.elem.appendChild(n),\n this.ptext = document.createElement(\"p\"),\n this.ptext.innerHTML = e,\n this.elem.appendChild(this.ptext)\n}\n,\nfc_switch.prototype.lblclick = function(t) {\n this.cb.checked = !this.cb.checked\n}\n,\nfc_switch.prototype.addonclick = function(t) {\n this.cb.addEventListener(\"click\", t),\n this.elem.addEventListener(\"click\", t)\n}\n,\nfc_switch.prototype.check = function(t) {\n this.cb.checked = t\n}\n,\nfc_switch.prototype.getstate = function() {\n return this.cb.checked\n}\n,\nfc_switch.prototype.ischecked = function() {\n return this.cb.checked\n}\n,\nfc_switch.prototype.checked = function() {\n return this.cb.checked\n}\n,\nfc_tip.prototype.show = function(t, e, n) {\n this.config = n,\n this.reqx = t,\n this.reqy = e,\n null !== this.hidetimeout ? (clearTimeout(this.hidetimeout),\n this.hidetimeout = null,\n this.display()) : this.showtimeout = setTimeout(this.display.bind(this), 750)\n}\n,\nfc_tip.prototype.cancel = function() {\n null !== this.showtimeout ? (clearTimeout(this.showtimeout),\n this.showtimeout = null) : this.hidetimeout = setTimeout(this.undisplay.bind(this), 150)\n}\n,\nfc_tip.prototype.display = function() {\n switch (this.showtimeout = null,\n this.config.buildtype) {\n case \"userinfo\":\n this.build_userinfo(this.config.user);\n break;\n case \"camstats\":\n this.build_camstats(this.config.cs_name, this.config.cs_loc)\n }\n this.elem.style.left = this.reqx + \"px\",\n this.elem.style.top = this.reqy + \"px\",\n this.elem.getBoundingClientRect().left + this.elem.clientWidth + 10 >= window.innerWidth && (this.elem.style.left = this.reqx - this.elem.clientWidth + \"px\"),\n this.elem.getBoundingClientRect().top + this.elem.clientHeight + 10 >= window.innerHeight && (this.elem.style.top = this.reqy - this.elem.clientHeight + \"px\")\n}\n,\nfc_tip.prototype.undisplay = function() {\n this.hidetimeout = null,\n this.elem.style.opacity = 0\n}\n,\nfc_tip.prototype.build_userinfo = function(t) {\n var e = Date.now() + this.ws.tmdelta\n , n = \"<b>\" + t.username + \"</b>\";\n switch (t.modlvl) {\n case 100:\n n += \" (<span class='\" + t.getnccl() + \"'>Mod</span>)<br/>\";\n break;\n case 150:\n n += \" (<span class='\" + t.getnccl() + \"'>Super</span>)<br/>\";\n break;\n case 200:\n n += \" (<span class='\" + t.getnccl() + \"'>Owner</span>)<br/>\";\n break;\n case 300:\n n += \" (<span class='\" + t.getnccl() + \"'>Admin</span>)<br/>\";\n break;\n default:\n n += \"<br/>\"\n }\n n += \"Online for \" + this.ws.mstohr(e - t.jointime),\n 2 === t.statuslevel ? (n += \"<br/>AFK for \" + this.ws.mstohr(e - t.statustime),\n 0 < t.statusmsg.length && (n += \"<br/>\" + t.statusmsg)) : 3 === t.statuslevel && (n += \"<br/>Idle for \" + this.ws.mstohr(e - t.statustime)),\n 0 < t.ping && (n += \"<br/>Ping \" + t.ping + \"ms\"),\n this.p_message.innerHTML = n,\n this.elem.style.opacity = 1\n}\n,\nfc_tip.prototype.build_camstats = function(t, e) {\n this.p_message.innerHTML = \"<b>\" + t + \"</b><br>\" + e,\n this.elem.style.opacity = 1\n}\n,\nfc_toolbox.prototype.mkguest = function() {\n this.text_msg.disabled = !0,\n this.text_msg.value = \"You need to login to send messages, guest.\"\n}\n,\nfc_toolbox.prototype.setfont = function(t, e) {\n this.font_colour = t,\n this.text_cp.jscolor.fromString(t),\n this.text_msg.style.color = t,\n this.pmctrl.updatefc(t),\n this.font_size = e,\n this.text_msg.className = \"chatmsg fs_\" + this.font_size,\n this.sel_fs.selectedIndex = e,\n this.pmctrl.updatefs(e)\n}\n,\nfc_toolbox.prototype.refresh = function() {\n this.text_msg.maxLength = this.msglimit.max_msg_length\n}\n,\nfc_toolbox.prototype.toglyt = function() {\n \"mobile\" !== this.ws.mode && this.ws.pol_allowyoutube ? this.btn_ytpl.style.display = \"inline-block\" : this.btn_ytpl.style.display = \"none\"\n}\n,\nfc_toolbox.prototype.cp_change = function(t) {\n var e = \"#\" + this.text_cp.value;\n this.setfont(e, this.font_size),\n this.ws.cnf.setandsave(\"fc\", e)\n}\n,\nfc_toolbox.prototype.fs_change = function(t) {\n t = t.target.options[t.target.selectedIndex].value;\n this.setfont(this.font_colour, t),\n this.ws.cnf.setandsave(\"fs\", parseInt(t))\n}\n,\nfc_toolbox.prototype.kmode_click = function(t) {\n this.layout.setkmode(this.cb_kmode.ischecked())\n}\n,\nfc_toolbox.prototype.yt_click = function(t) {\n this.yt_cb()\n}\n,\nfc_toolbox.prototype.msg_keyup = function(t) {\n 13 === t.keyCode && this.sendmsg()\n}\n,\nfc_toolbox.prototype.send_click = function(t) {\n this.sendmsg()\n}\n,\nfc_toolbox.prototype.sendmsg = function() {\n \"\" !== this.text_msg.value && this.ws.ready && (this.ws.isguest ? this.text_msg.style.color = \"#\" + Math.floor(16777215 * Math.random()).toString(16) : this.msglimit.cansend(this.text_msg.value, this.font_size) ? !0 === this.ws.sendpbuf(1200511, this.pb.roots.default.fc.p_1200511.encode({\n cm: {\n msg: this.text_msg.value,\n clr: this.font_colour,\n sz: this.font_size\n }\n }, null).finish()) && (this.text_msg.value = \"\") : this.cb.addsys(\"Please don't spam the chat!\"))\n}\n,\nfc_topic.prototype.topicbar_change = function(t) {\n (100 < this.ws.modlvl || this.ws.pol_modchangetopic && 100 === this.ws.modlvl) && this.ws.sendpbuf(1200821, this.pb.roots.default.fc.p_1200821.encode({\n tpc: t.target.value\n }, null).finish())\n}\n,\nfc_topic.prototype.set = function(t) {\n this.cur_topic = t,\n this.text_topic.value = t\n}\n,\nfc_topic.prototype.refresh = function() {\n var t = this.btn_userlist.offsetWidth;\n this.ws.isguest ? this.btn_config.style.display = \"none\" : (this.btn_config.style.display = \"inline-block\",\n t += this.btn_config.offsetWidth),\n 100 < this.ws.modlvl ? (this.btn_policy.style.display = \"inline-block\",\n t += this.btn_policy.offsetWidth) : this.btn_policy.style.display = \"none\",\n 100 < this.ws.modlvl || this.ws.pol_modchangelayout && 100 === this.ws.modlvl ? (this.btn_layout.style.display = \"inline-block\",\n t += this.btn_layout.offsetWidth) : this.btn_layout.style.display = \"none\",\n 100 < this.ws.modlvl || this.ws.pol_modchangetopic && 100 === this.ws.modlvl ? this.text_topic.readOnly = !1 : this.text_topic.readOnly = !0,\n this.ws.pol_pwenforced ? this.btn_policy.innerHTML = \"\" : this.btn_policy.innerHTML = \"\",\n this.text_topic.style.width = \"calc(100% - \" + t + \"px)\"\n}\n,\nfc_topic.prototype.layout_click = function(t) {\n this.wndlayout.open()\n}\n,\nfc_topic.prototype.policy_click = function(t) {\n this.wndpolicy.open()\n}\n,\nfc_topic.prototype.config_click = function(t) {\n this.wndconfig.open()\n}\n,\nfc_ulist.prototype.updgsc = function(t) {\n this.p_guestcount.innerText = t + \" Guests\"\n}\n,\nfc_ulist.prototype.enguest = function() {\n this.ws.pol_allowguest ? this.guest_elem.style.display = \"block\" : this.guest_elem.style.display = \"none\"\n}\n,\nfc_ulist.prototype.populate = function(t) {\n let e, n, i;\n for (e = 0; e < t.length; e++)\n this.joinuser(t[e], !1);\n for (e = 0; e < this.users.length; e++) {\n for (i = !1,\n n = 0; n < t.length; n++)\n if (this.users[e].uuid === t[n].uuid) {\n i = !0;\n break\n }\n i || this.leaveuser(this.users[e].uuid)\n }\n this.rebuild()\n}\n,\nfc_ulist.prototype.resort = function() {\n this.users.sort(this.sortcompare.bind(this))\n}\n,\nfc_ulist.prototype.sortcompare = function(t, e) {\n return t.modlvl < e.modlvl ? 1 : t.modlvl > e.modlvl || t.username_lowercase < e.username_lowercase ? -1 : t.username_lowercase > e.username_lowercase ? 1 : 0\n}\n,\nfc_ulist.prototype.joinuser = function(e, t) {\n try {\n let t = this.gubuid(e.uuid);\n null !== t || (null !== (t = this.gubuid_left(e.uuid)) ? delete this.lefties[e.uuid] : t = new fc_user(this.menu_cb,this.tipshow_cb,this.tipcancel_cb),\n this.users.push(t)),\n t.joined(e)\n } catch (t) {}\n t && this.rebuild()\n}\n,\nfc_ulist.prototype.addleftskel = function(t, e, n, i) {\n try {\n var s = new fc_user(this.menu_cb,this.tipshow_cb,this.tipcancel_cb);\n s.uuid = t,\n s.username = e,\n s.modlvl = n,\n s.blocked = i,\n this.lefties[t] = s\n } catch (t) {}\n}\n,\nfc_ulist.prototype.leaveuser = function(t) {\n for (var e = 0; e < this.users.length; e++)\n try {\n var n = this.users[e];\n if (n.uuid === t) {\n n.left(),\n this.lefties[n.uuid] = n,\n this.users.splice(e, 1);\n break\n }\n } catch (t) {}\n}\n,\nfc_ulist.prototype.clearlist = function() {\n for (; this.elem.hasChildNodes(); )\n this.elem.removeChild(this.elem.lastChild)\n}\n,\nfc_ulist.prototype.rebuild = function() {\n this.resort(),\n this.clearlist(),\n this.elem.appendChild(this.guest_elem);\n for (var t = 0; t < this.users.length; t++)\n try {\n this.elem.appendChild(this.users[t].list_elem)\n } catch (t) {}\n}\n,\nfc_ulist.prototype.gubn = function(e) {\n try {\n for (let t = 0; t < this.users.length; t++)\n if (this.users[t].username === e)\n return this.users[t]\n } catch (t) {}\n return null\n}\n,\nfc_ulist.prototype.gubuid = function(e) {\n try {\n for (let t = 0; t < this.users.length; t++)\n if (this.users[t].uuid === e)\n return this.users[t]\n } catch (t) {}\n return null\n}\n,\nfc_ulist.prototype.gubuid_left = function(t) {\n try {\n for (var e in this.lefties)\n if (this.lefties[e].uuid === t)\n return this.lefties[e]\n } catch (t) {}\n return null\n}\n,\nfc_ulist.prototype.blockuser = function(t) {\n let e = this.gubuid(t);\n null !== (e = null === e ? this.gubuid_left(t) : e) && (e.block(),\n this.rebuild())\n}\n,\nfc_ulist.prototype.unblockuser = function(t) {\n let e = this.gubuid(t);\n null !== (e = null === e ? this.gubuid_left(t) : e) && (e.unblock(),\n this.rebuild())\n}\n,\nfc_ulist.prototype.moduser = function(t) {\n let e = this.gubuid(t);\n null !== (e = null === e ? this.gubuid_left(t) : e) && (e.mod(),\n this.rebuild())\n}\n,\nfc_ulist.prototype.unmoduser = function(t) {\n let e = this.gubuid(t);\n null !== (e = null === e ? this.gubuid_left(t) : e) && (e.unmod(),\n this.rebuild())\n}\n,\nfc_ulist.prototype.setstatus = function(t, e) {\n t = this.gubn(t);\n null !== t && (t.setstatus(e),\n this.rebuild())\n}\n,\nfc_ulist.prototype.pingsync = function(t) {\n let e, n, i = t.length;\n for (e = 0; e < i; e++)\n null !== (n = null === (n = this.gubuid(t[e].uuid)) ? this.gubuid_left(t[e].uuid) : n) && n.setping(t[e].ping)\n}\n,\nfc_user.prototype.joined = function(t) {\n this.online = !0,\n this.username = t.nm,\n this.username_lowercase = this.username.toLowerCase(),\n this.uuid = t.uuid,\n this.modlvl = t.ml,\n this.usernum = t.un,\n this.blocked = t.blk,\n this.statuslevel = t.st.lv,\n this.statustime = t.st.ct,\n this.statusmsg = t.st.msg,\n this.jointime = t.ct,\n this.ping = t.ping,\n null === this.list_elem && (this.list_elem = document.createElement(\"p\"),\n this.list_elem.className = \"user available fcuser\",\n this.list_elem.value = this.username,\n this.list_elem.setAttribute(\"data-uuid\", this.uuid),\n this.list_elem.onclick = this.menu_cb,\n this.list_elem.onmouseover = this.tipshow_cb,\n this.list_elem.onmouseout = this.tipcancel_cb),\n null !== this.pmwnd && (this.pmwnd.do_online(!0),\n this.pmwnd.setusername(this.username)),\n this.setstatus(t.st),\n this.updateelem()\n}\n,\nfc_user.prototype.left = function() {\n this.online = !1,\n null !== this.list_elem && (this.list_elem.onclick = null,\n this.list_elem.onmouseenter = null,\n this.list_elem.onmouseout = null,\n this.list_elem.remove(),\n this.list_elem = null),\n null !== this.pmwnd && this.pmwnd.do_online(!1)\n}\n,\nfc_user.prototype.getnccl = function() {\n if (this.blocked)\n return \"fcblocked\";\n switch (this.modlvl) {\n case 100:\n return \"fcmod\";\n case 150:\n return \"fcsuper\";\n case 200:\n return \"fcowner\";\n case 300:\n return \"fcadmin\";\n default:\n return \"fcuser\"\n }\n}\n,\nfc_user.prototype.setpmwnd = function(t) {\n this.pmwnd = t,\n this.pmwnd.do_status(this.statuslevel, this.statusmsg),\n this.pmwnd.do_modlvl(this.modlvl),\n this.pmwnd.do_blocked(this.blocked)\n}\n,\nfc_user.prototype.setstatus = function(t) {\n this.statuslevel = t.lv,\n this.statustime = t.ct,\n this.statusmsg = t.msg,\n this.updateelem(),\n null !== this.pmwnd && this.pmwnd.do_status(this.statuslevel, this.statusmsg)\n}\n,\nfc_user.prototype.setping = function(t) {\n this.ping = t\n}\n,\nfc_user.prototype.updateelem = function() {\n if (this.online)\n if (this.blocked)\n this.list_elem.innerHTML = \"<span class='material-icons'></span>\" + this.username,\n this.list_elem.className = \"user available fcblocked\";\n else\n switch (this.list_elem.innerHTML = \"<span class='material-icons'></span><span class='material-icons'></span>\" + this.username,\n this.statuslevel) {\n case 1:\n this.list_elem.className = \"user available \" + this.getnccl();\n break;\n case 2:\n this.list_elem.className = \"user afk \" + this.getnccl();\n break;\n case 3:\n this.list_elem.className = \"user idle \" + this.getnccl()\n }\n}\n,\nfc_user.prototype.block = function() {\n this.blocked = !0,\n this.updateelem(),\n null !== this.pmwnd && this.pmwnd.do_blocked(!0)\n}\n,\nfc_user.prototype.unblock = function() {\n this.blocked = !1,\n this.updateelem(),\n null !== this.pmwnd && this.pmwnd.do_blocked(!1)\n}\n,\nfc_user.prototype.mod = function() {\n this.modlvl = 100,\n this.updateelem(),\n null !== this.pmwnd && this.pmwnd.do_modlvl(100)\n}\n,\nfc_user.prototype.unmod = function() {\n this.modlvl = 0,\n this.updateelem(),\n null !== this.pmwnd && this.pmwnd.do_modlvl(0)\n}\n,\nfc_vab.prototype.mkbars = function() {\n var t;\n null === this.elem.firstChild && ((t = document.createElement(\"div\")).className = \"top\",\n this.elem.appendChild(t),\n (t = document.createElement(\"div\")).className = \"bottom\",\n this.elem.appendChild(t),\n (t = document.createElement(\"div\")).className = \"left\",\n this.elem.appendChild(t),\n (t = document.createElement(\"div\")).className = \"right\",\n this.elem.appendChild(t))\n}\n,\nfc_vab.prototype.tick = function() {\n if (null === this.analyser)\n this.stop();\n else\n try {\n for (var t = new Uint8Array(this.analyser.frequencyBinCount), e = (this.analyser.getByteFrequencyData(t),\n 0), n = 0, i = 0, s = 0; s < 4; s++)\n 0 < t[s] && (e += t[s],\n n += 255);\n 10 < e && (i = Math.round(e / n * 100),\n i /= 100),\n this.elem.style.opacity = i\n } catch (t) {}\n}\n,\nfc_vab.prototype.play = function() {\n try {\n return null !== this.stream && null === this.analyser && 0 < this.stream.getAudioTracks().length && (this.audio_context = new AudioContext,\n this.analyser = this.audio_context.createAnalyser(),\n this.source = this.audio_context.createMediaStreamSource(this.stream),\n this.source.connect(this.analyser),\n this.analyser.fftSize = 64,\n this.analyser.smoothingTimeConstant = .4),\n 0 !== this.interval && (clearInterval(this.interval),\n this.interval = 0),\n this.interval = setInterval(this.tick.bind(this), 100),\n this.mkbars(),\n !0\n } catch (t) {}\n return !1\n}\n,\nfc_vab.prototype.stop = function() {\n for ((this.elem.opacity = 0) !== this.interval && (clearInterval(this.interval),\n this.interval = 0); this.elem.firstChild; )\n this.elem.removeChild(this.elem.lastChild)\n}\n,\nfc_vab.prototype.setstream = function(t) {\n null === t ? (this.stop(),\n null !== this.source && this.source.disconnect(),\n this.source = null,\n this.audio_context = null,\n this.analyser = null) : this.stream = t\n}\n,\nfc_wnd.prototype.setclosecb = function(t) {\n this.close_callback = t\n}\n,\nfc_wnd.prototype.click_close = function(t) {\n null === this.close_callback ? this.hide() : this.close_callback()\n}\n,\nfc_wnd.prototype.hide = function() {\n this.elem.style.display = \"none\",\n this.visible = !1\n}\n,\nfc_wnd.prototype.center = function() {\n var t = this.elem.parentNode.clientWidth / 2 - this.elem.clientWidth / 2\n , e = this.elem.parentNode.clientHeight / 2 - this.elem.clientHeight / 2;\n this.elem.style.left = t.toString() + \"px\",\n this.elem.style.top = e.toString() + \"px\"\n}\n,\nfc_wnd.prototype.move_random = function() {\n var t = Math.floor(Math.random() * (this.elem.parentNode.clientWidth - this.elem.clientWidth))\n , e = Math.floor(Math.random() * (this.elem.parentNode.clientHeight - this.elem.clientHeight));\n this.elem.style.left = t.toString() + \"px\",\n this.elem.style.top = e.toString() + \"px\"\n}\n,\nfc_wnd.prototype.show = function() {\n this.elem.style.display = \"block\",\n this.visible = !0\n}\n,\nfc_wnd.prototype.getContentElem = function() {\n return this.elem_content\n}\n,\nfc_wnd.prototype.settitle = function(t) {\n this.title = t,\n this.elem_headerp.innerHTML = t\n}\n,\nfc_wnd.prototype.setico = function(t) {\n this.p_hdrico.innerText = t\n}\n,\nfc_wnd.prototype.setminsize = function(t, e) {\n this.min_width = t,\n this.min_height = e,\n this.elem.clientWidth < t && (this.elem.style.width = t + \"px\"),\n this.elem.clientHeight < e && (this.elem.style.height = e + \"px\"),\n this.elem.style.minWidth = t + \"px\",\n this.elem.style.minHeight = e + \"px\"\n}\n,\nfc_wnd.prototype.setresizecallback = function(t) {\n this.resize_callback = t\n}\n,\nfc_wnd.prototype.wnd_onresize = function() {\n null !== this.resize_callback && this.resize_callback(this.elem.clientWidth, this.elem.clientHeight)\n}\n,\nfc_wnd.prototype.addresizers = function() {\n this.resizable = !0,\n this.rz_left = document.createElement(\"div\"),\n this.rz_left.setAttribute(\"class\", \"rz_left\"),\n this.elem.appendChild(this.rz_left),\n this.rz_right = document.createElement(\"div\"),\n this.rz_right.setAttribute(\"class\", \"rz_right\"),\n this.elem.appendChild(this.rz_right),\n this.rz_bottom = document.createElement(\"div\"),\n this.rz_bottom.setAttribute(\"class\", \"rz_bottom\"),\n this.elem.appendChild(this.rz_bottom),\n this.rz_bottomleft = document.createElement(\"div\"),\n this.rz_bottomleft.setAttribute(\"class\", \"rz_bottomleft\"),\n this.elem.appendChild(this.rz_bottomleft),\n this.rz_bottomright = document.createElement(\"div\"),\n this.rz_bottomright.setAttribute(\"class\", \"rz_bottomright\"),\n this.elem.appendChild(this.rz_bottomright)\n}\n,\nfc_wnd.prototype.hideclosebtn = function(t) {\n this.elem_closebtn.style.display = t ? \"none\" : \"inline-block\"\n}\n,\nfc_wnd.prototype.move = function(t, e) {\n this.elem.style.left = t + \"px\",\n this.elem.style.top = e + \"px\"\n}\n,\nfc_wnd.prototype.focus = function(t) {\n this.elem.style.zIndex = t,\n this.elem.className = \"fcwnd hasfocus\",\n this.focused = !0\n}\n,\nfc_wnd.prototype.unfocus = function(t) {\n this.elem.className = \"fcwnd\",\n this.focused = !1\n}\n,\nfc_wnd.prototype.begfocus = function() {\n this.focused || (this.elem.className = \"fcwnd begfocus\")\n}\n,\nfc_wndconfig.prototype.createui = function() {\n this.wnd = this.wndman.addwindow(\"Settings\", 600, 400, !1),\n this.wnd.hideclosebtn(!1),\n this.wnd.setico(\"\");\n let t, e, n, i = this.wnd.getContentElem();\n (t = document.createElement(\"div\")).className = \"wndconfig\",\n (e = document.createElement(\"div\")).className = \"cont_cnfsect\",\n (n = document.createElement(\"h1\")).innerText = \"Privacy\",\n e.appendChild(n),\n this.cb_blockpm = new fc_checkbox(!1,\"Block uninvited PM's\"),\n this.cb_blockpm.setattrib(\"data-cbset\", \"pb\"),\n this.cb_blockpm.addonclick(this.cbclick.bind(this)),\n e.appendChild(this.cb_blockpm.elem),\n this.cb_showtyping = new fc_checkbox(!1,\"Show me typing in PM\"),\n this.cb_showtyping.setattrib(\"data-cbset\", \"pt\"),\n this.cb_showtyping.addonclick(this.cbclick.bind(this)),\n e.appendChild(this.cb_showtyping.elem),\n this.cb_autoidle = new fc_checkbox(!1,\"Automatically go idle\"),\n this.cb_autoidle.setattrib(\"data-cbset\", \"ai\"),\n this.cb_autoidle.addonclick(this.cbclick.bind(this)),\n e.appendChild(this.cb_autoidle.elem),\n t.appendChild(e),\n (e = document.createElement(\"div\")).className = \"cont_cnfsect\",\n (n = document.createElement(\"h1\")).innerText = \"Sounds\",\n e.appendChild(n),\n this.cb_chatsnd = new fc_checkbox(!1,\"Play Chat Sounds\"),\n this.cb_chatsnd.setattrib(\"data-cbset\", \"sc\"),\n this.cb_chatsnd.addonclick(this.cbclick.bind(this)),\n e.appendChild(this.cb_chatsnd.elem),\n t.appendChild(e),\n this.cb_pmsnd = new fc_checkbox(!1,\"Play PM Sounds\"),\n this.cb_pmsnd.setattrib(\"data-cbset\", \"sp\"),\n this.cb_pmsnd.addonclick(this.cbclick.bind(this)),\n e.appendChild(this.cb_pmsnd.elem),\n t.appendChild(e),\n i.appendChild(t)\n}\n,\nfc_wndconfig.prototype.getcnf = function() {\n this.cb_blockpm.check(this.ws.cnf.get(\"pb\")),\n this.cb_showtyping.check(this.ws.cnf.get(\"pt\")),\n this.cb_autoidle.check(this.ws.cnf.get(\"ai\")),\n this.cb_chatsnd.check(this.ws.cnf.get(\"sc\")),\n this.cb_pmsnd.check(this.ws.cnf.get(\"sp\"))\n}\n,\nfc_wndconfig.prototype.cbclick = function(t) {\n var e = t.target.dataset.cbset\n , t = t.target.checked ? 1 : 0;\n this.ws.cnf.setandsave(e, t)\n}\n,\nfc_wndconfig.prototype.open = function() {\n null === this.wnd && this.createui(),\n this.getcnf(),\n this.wnd.show(),\n this.wnd.center(),\n this.wndman.stealfocus(this.wnd)\n}\n,\nfc_wndconfig.prototype.close = function() {\n null !== this.wnd && this.wnd.hide()\n}\n,\nfc_wndlayout.prototype.createui = function() {\n this.wnd = this.wndman.addwindow(\"Choose the new webcam layout\", 600, 400, !1),\n this.wnd.hideclosebtn(!1),\n this.wnd.setico(\"\");\n var t, e, n, i = this.wnd.getContentElem(), s = document.createElement(\"div\"), o = (s.setAttribute(\"class\", \"wndlayout\"),\n document.createElement(\"ul\")), c = (s.appendChild(o),\n document.createElement(\"li\"));\n o.appendChild(c),\n (t = document.createElement(\"button\")).setAttribute(\"class\", \"lyo1\"),\n t.setAttribute(\"data-layoutnumber\", 1),\n t.onclick = this.click_layoutbtn.bind(this),\n c.appendChild(t),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 3),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo3\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 4),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo4\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 5),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo5\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n c = document.createElement(\"li\"),\n o.appendChild(c),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 6),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo6\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 7),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo7\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 8),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo8\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n (t = document.createElement(\"button\")).setAttribute(\"data-layoutnumber\", 9),\n t.onclick = this.click_layoutbtn.bind(this),\n (e = document.createElement(\"div\")).setAttribute(\"class\", \"lyo9\"),\n n = document.createElement(\"span\"),\n e.appendChild(n),\n t.appendChild(e),\n c.appendChild(t),\n i.appendChild(s)\n}\n,\nfc_wndlayout.prototype.permcheck = function() {\n return 100 === this.ws.modlvl && this.ws.pol_modchangelayout || 100 < this.ws.modlvl\n}\n,\nfc_wndlayout.prototype.click_layoutbtn = function(t) {\n this.permcheck() && void 0 !== (t = t.target.dataset.layoutnumber) && this.ws.sendpbuf(1200611, this.pb.roots.default.fc.p_1200611.encode({\n lo: t\n }, null).finish()),\n this.wnd.hide()\n}\n,\nfc_wndlayout.prototype.open = function() {\n this.permcheck() && (null === this.wnd && this.createui(),\n this.wnd.show(),\n this.wnd.center(),\n this.wndman.stealfocus(this.wnd))\n}\n,\nfc_wndlayout.prototype.close = function() {\n null !== this.wnd && this.wnd.hide()\n}\n,\nfc_wndmedia.prototype.createui = function() {\n this.wnd = this.wndman.addwindow(\"Select Webcam\", 600, 400, !1),\n this.wnd.hideclosebtn(!1),\n this.wnd.setclosecb(this.click_cancel.bind(this)),\n this.wnd.setico(\"\");\n var t = this.wnd.getContentElem()\n , e = document.createElement(\"div\")\n , n = (e.className = \"wndmedia\",\n this.cam_a = document.createElement(\"div\"),\n this.cam_a.className = \"cam_a\",\n this.cam_b = document.createElement(\"div\"),\n this.cam_b.className = \"cam_b\",\n this.cam_a.appendChild(this.cam_b),\n this.cam_c = document.createElement(\"div\"),\n this.cam_c.className = \"cam_c\",\n this.cam_a.appendChild(this.cam_c),\n this.video = document.createElement(\"video\"),\n this.video.autoplay = !0,\n this.video.muted = !0,\n this.cam_c.appendChild(this.video),\n this.vab = new fc_vab,\n this.cam_c.appendChild(this.vab.elem),\n this.p_video = document.createElement(\"p\"),\n this.p_video.innerText = \"No Webcam Detected\",\n this.cam_c.appendChild(this.p_video),\n e.appendChild(this.cam_a),\n this.cam_select = document.createElement(\"select\"),\n this.cam_select.onchange = this.change_camsel.bind(this),\n e.appendChild(this.cam_select),\n this.sw_usemic = new fc_switch,\n this.sw_usemic.create(!0, \"Enable Microphone\"),\n this.sw_usemic.addonclick(this.click_usemic.bind(this)),\n e.appendChild(this.sw_usemic.elem),\n this.sw_useec = new fc_switch,\n this.sw_useec.create(!0, \"Echo Cancelling (use this for talky talky)\"),\n this.sw_useec.addonclick(this.click_usemic.bind(this)),\n e.appendChild(this.sw_useec.elem),\n this.mic_select = document.createElement(\"select\"),\n this.mic_select.onchange = this.change_micsel.bind(this),\n e.appendChild(this.mic_select),\n document.createElement(\"div\"));\n n.className = \"btns\",\n this.btn_cancel = document.createElement(\"button\"),\n this.btn_cancel.onclick = this.click_cancel.bind(this),\n this.btn_cancel.innerHTML = \"Cancel\",\n n.appendChild(this.btn_cancel),\n this.btn_start = document.createElement(\"button\"),\n this.btn_start.onclick = this.click_start.bind(this),\n this.btn_start.innerHTML = \"Start Cam\",\n n.appendChild(this.btn_start),\n e.appendChild(n),\n t.appendChild(e)\n}\n,\nfc_wndmedia.prototype.setratio = function(t) {\n \"16:9\" === t ? this.cam_b.style.paddingTop = \"56.25%\" : \"4:3\" === t ? this.cam_b.style.paddingTop = \"75%\" : \"21:9\" === t && (this.cam_b.style.paddingTop = \"42.18%\")\n}\n,\nfc_wndmedia.prototype.enumerate = function() {\n var e, n = this, i = !1;\n this.btn_start.disabled = !0,\n this.video.srcObject = null,\n this.vab.setstream(null),\n null !== this.stream && (this.stream.getTracks().forEach(function(t) {\n t.stop()\n }),\n this.stream = null),\n navigator.mediaDevices.enumerateDevices().then(function(t) {\n var e = {\n gotcam: !(n.p_video.innerText = \"Enumerating Devices\"),\n gotmic: !1\n };\n return t.forEach(function(t) {\n \"audioinput\" === t.kind && (e.gotmic = !0),\n \"videoinput\" === t.kind && (e.gotcam = !0)\n }),\n e\n }).catch(function(t) {}).then(function(t) {\n t.gotcam ? n.p_video.innerText = \"Accessing Webcam\" : n.p_video.innerText = \"No Webcam Detected\",\n n.sw_usemic.ischecked() && t.gotmic,\n t.gotcam || \"screen\" === n.forced_camid ? (e = {\n deviceId: n.forced_camid,\n width: n.cam.outvid_w,\n height: n.cam.outvid_h,\n aspectRatio: n.cam.outvid_ar,\n frameRate: n.cam.outvid_fps\n },\n t.gotmic && n.sw_usemic.ischecked() && (i = n.sw_useec.ischecked() ? {\n deviceId: n.forced_micid,\n autoGainControl: !0,\n echoCancellation: !0,\n noiseSuppression: !0\n } : {\n deviceId: n.forced_micid,\n autoGainControl: !0,\n echoCancellation: !1,\n noiseSuppression: !1\n }),\n \"screen\" === n.forced_camid ? navigator.mediaDevices.getDisplayMedia({\n video: e\n }).then(function(e) {\n t.gotmic && n.sw_usemic.ischecked() ? navigator.mediaDevices.getUserMedia({\n audio: i\n }).then(function(t) {\n null !== t && 0 < (t = t.getAudioTracks()).length && e.addTrack(t[0]),\n n.gotstream(e),\n n.refresh_sel()\n }).catch(function(t) {\n n.gumerror(t.name),\n n.refresh_sel()\n }) : (n.gotstream(e),\n n.refresh_sel())\n }).catch(function(t) {\n n.gumerror(t.name),\n n.refresh_sel()\n }) : navigator.mediaDevices.getUserMedia({\n audio: i,\n video: e\n }).then(function(t) {\n n.gotstream(t),\n n.refresh_sel()\n }).catch(function(t) {\n \"TypeError\" !== t.name && n.gumerror(t.name),\n n.refresh_sel()\n })) : n.refresh_sel()\n })\n}\n,\nfc_wndmedia.prototype.gotstream = function(t) {\n for (var e = !1, n = !1, i = t.getTracks(), s = 0; s < i.length; s++)\n \"audio\" === i[s].kind && (n = !0),\n \"video\" === i[s].kind && (e = !0);\n e && (this.p_video.innerText = \"PREVIEW\",\n this.video.srcObject = t),\n n && (this.vab.setstream(t),\n this.vab.play()),\n this.stream = t,\n this.btn_start.disabled = !1\n}\n,\nfc_wndmedia.prototype.gumerror = function(t) {\n switch (t) {\n case \"SecurityError\":\n case \"NotAllowedError\":\n case \"PermissionDeniedError\":\n case \"PermissionDismissedError\":\n this.p_video.innerText = \"Permission required\";\n break;\n case \"NotReadableError\":\n case \"TrackStartError\":\n this.p_video.innerText = \"Webcam already in use?\";\n break;\n case \"OverconstrainedError\":\n case \"ConstraintNotSatisfiedError\":\n this.p_video.innerText = \"Error: Webcam not supported\";\n break;\n case \"TypeError\":\n this.p_video.innerText = \"TypeError (?)\";\n break;\n case \"AbortError\":\n this.p_video.innerText = \"Aborted, webcam in use?\";\n break;\n default:\n this.p_video.innerText = \"Unknown error: \" + t\n }\n}\n,\nfc_wndmedia.prototype.click_start = function(t) {\n this.cam.startcam(this.stream),\n this.close()\n}\n,\nfc_wndmedia.prototype.click_cancel = function(t) {\n null !== this.video && (this.video.srcObject = null),\n null !== this.stream && (this.stream.getTracks().forEach(function(t) {\n t.stop()\n }),\n this.stream = null),\n this.close()\n}\n,\nfc_wndmedia.prototype.refresh_sel = function() {\n var n, i = this, s = null, o = null;\n null !== this.stream && this.stream.getTracks().forEach(function(t) {\n switch (t.kind) {\n case \"video\":\n s = t;\n break;\n case \"audio\":\n o = t\n }\n }),\n i.sw_usemic.ischecked() || ((n = document.createElement(\"option\")).innerHTML = \"Microphone is disabled\",\n n.selected = !0,\n this.mic_select.appendChild(n)),\n navigator.mediaDevices.enumerateDevices().then(function(t) {\n for (var e = i.cam_select.options.length - 1; 0 <= e; e--)\n i.cam_select.remove(e);\n for (e = i.mic_select.options.length - 1; 0 <= e; e--)\n i.mic_select.remove(e);\n t.forEach(function(t) {\n \"videoinput\" === t.kind ? ((n = document.createElement(\"option\")).innerHTML = 0 < t.label.length ? t.label : \"unknown videoinput (permission granted?)\",\n n.value = t.deviceId,\n null !== s && (s.getSettings().hasOwnProperty(\"deviceId\") ? n.selected = s.getSettings().deviceId === t.deviceId : n.selected = s.label === t.label),\n i.cam_select.appendChild(n)) : \"audioinput\" === t.kind && i.sw_usemic.ischecked() && ((n = document.createElement(\"option\")).innerHTML = 0 < t.label.length ? t.label : \"unknown audioinput (permission granted?)\",\n n.value = t.deviceId,\n null !== o && (o.getSettings().hasOwnProperty(\"deviceId\") ? n.selected = o.getSettings().deviceId === t.deviceId : n.selected = o.label === t.label),\n i.mic_select.appendChild(n))\n }),\n 0 === i.cam_select.options.length && ((n = document.createElement(\"option\")).innerHTML = \"No Camera's detected\",\n n.selected = !0,\n i.cam_select.appendChild(n)),\n 0 === i.mic_select.options.length && ((n = document.createElement(\"option\")).innerHTML = \"No Microphones detected\",\n n.selected = !0,\n i.mic_select.appendChild(n)),\n navigator.mediaDevices && \"getDisplayMedia\"in navigator.mediaDevices && ((n = document.createElement(\"option\")).innerHTML = \"Use your browsers built in Screensharing feature\",\n (n.value = \"screen\") === i.forced_camid && (n.selected = !0),\n i.cam_select.appendChild(n))\n }).catch(function(t) {})\n}\n,\nfc_wndmedia.prototype.change_camsel = function(t) {\n this.forced_camid = t.target.value,\n this.enumerate()\n}\n,\nfc_wndmedia.prototype.change_micsel = function(t) {\n this.forced_micid = t.target.value,\n this.enumerate()\n}\n,\nfc_wndmedia.prototype.click_usemic = function(t) {\n this.sw_usemic.ischecked() ? (this.sw_useec.elem.style.display = \"block\",\n this.mic_select.style.display = \"block\") : (this.sw_useec.elem.style.display = \"none\",\n this.mic_select.style.display = \"none\"),\n this.enumerate()\n}\n,\nfc_wndmedia.prototype.open = function(t, e) {\n this.cam = t,\n null === this.wnd && this.createui(),\n this.setratio(e),\n this.wnd.visible || (this.wnd.show(),\n this.wnd.center(),\n this.wndman.stealfocus(this.wnd),\n this.enumerate())\n}\n,\nfc_wndmedia.prototype.close = function() {\n null !== this.wnd && this.wnd.hide()\n}\n,\nfc_wndpm.prototype.createui = function() {\n this.wnd = this.wndman.addwindow(this.username, 0, 0, !0),\n this.wnd.setminsize(320, 260),\n this.wnd.setico(\"\"),\n this.wnd.setresizecallback(this.resize_callback.bind(this));\n var t = this.wnd.getContentElem()\n , e = document.createElement(\"div\")\n , n = (e.className = \"wndpm\",\n this.b_banner = document.createElement(\"p\"),\n this.b_banner.innerText = \"\",\n this.b_banner.className = \"pmbanner\",\n e.appendChild(this.b_banner),\n document.createElement(\"div\"))\n , n = (n.className = \"pmgridbox_top\",\n this.chatbox = new fc_chatbox(this.ws,this.umcb,null),\n this.chatbox.entypeline(),\n n.appendChild(this.chatbox.elem),\n e.appendChild(n),\n document.createElement(\"div\"));\n n.className = \"pmgridbox_bottom\",\n this.text_msg = document.createElement(\"textarea\"),\n this.text_msg.onkeydown = this.msg_keydown.bind(this),\n this.text_msg.style.color = this.font_colour,\n this.text_msg.className = \"fs_\" + this.font_size,\n this.text_msg.value = \"\",\n n.appendChild(this.text_msg),\n this.btn_send = document.createElement(\"button\"),\n this.btn_send.className = \"material-icons\",\n this.btn_send.onclick = this.send_click.bind(this),\n n.appendChild(this.btn_send),\n e.appendChild(n),\n t.appendChild(e),\n this.updatemaxlen(),\n this.resize_callback(this.wnd.elem.clientWidth, this.wnd.elem.clientHeight)\n}\n,\nfc_wndpm.prototype.resize_callback = function(t, e) {\n this.b_banner.style.width = t - 20 + \"px\",\n this.chatbox.elem.style.height = e - 120 + \"px\"\n}\n,\nfc_wndpm.prototype.entaka = function(t) {\n t ? this.taka_enable = !0 : (this.taka_enable = !1,\n this.type_state = 0,\n this.type_time = 0,\n null !== this.type_timeout && (clearTimeout(this.type_timeout),\n this.type_timeout = null),\n this.sendtaka())\n}\n,\nfc_wndpm.prototype.enblockpm = function(t) {\n this.blockpm_enable = !!t,\n this.block_whitelist = !1\n}\n,\nfc_wndpm.prototype.enrecvsnd = function(t) {\n this.recvsnd = t ? new Audio(\"/sounds/pop02_1.ogg\") : null\n}\n,\nfc_wndpm.prototype.playrecvsnd = function() {\n null !== this.recvsnd && (this.recvsnd.play(),\n this.recvsnd.currentTime = 0)\n}\n,\nfc_wndpm.prototype.type_timeout_tick = function() {\n this.taka_enable && (Date.now() - this.type_time < 2e3 ? (this.type_state = 1,\n this.type_timeout = setTimeout(this.type_timeout_tick.bind(this), 4e3)) : (\"\" === this.text_msg.value ? this.type_state = 0 : this.type_state = 2,\n this.type_timeout = null),\n this.sendtaka())\n}\n,\nfc_wndpm.prototype.msg_keydown = function(t) {\n return 13 !== t.keyCode || t.shiftKey ? (this.taka_enable && (this.type_state = 1,\n this.type_time = Date.now(),\n null === this.type_timeout) && (this.type_timeout = setTimeout(this.type_timeout_tick.bind(this), 4e3),\n this.sendtaka()),\n !0) : (this.sendmsg(),\n !1)\n}\n,\nfc_wndpm.prototype.send_click = function(t) {\n this.sendmsg()\n}\n,\nfc_wndpm.prototype.sendmsg = function() {\n this.online && !this.blocked && (this.taka_enable && (this.type_state = 0,\n this.type_time = 0,\n null !== this.type_timeout) && (clearTimeout(this.type_timeout),\n this.type_timeout = null),\n \"\" !== this.text_msg.value) && this.ws.ready && (this.msglimit.cansend(this.text_msg.value, this.font_size) ? !0 === this.ws.sendpbuf(1200541, this.pb.roots.default.fc.p_1200541.encode({\n cm: {\n ruuid: this.uuid,\n msg: this.text_msg.value,\n clr: this.font_colour,\n sz: this.font_size\n }\n }, null).finish()) && (this.text_msg.value = \"\",\n this.blockpm_enable) && (this.block_whitelist = !0) : this.chatbox.addsys(\"Please do not spam!\"))\n}\n,\nfc_wndpm.prototype.sendtaka = function() {\n this.online && (!this.blockpm_enable || this.blockpm_enable && this.block_whitelist) && this.ws.sendpbuf(1200551, this.pb.roots.default.fc.p_1200551.encode({\n st: this.type_state,\n uuid: this.uuid\n }, null).finish())\n}\n,\nfc_wndpm.prototype.block_notify = function() {\n this.ws.sendpbuf(1200553, this.pb.roots.default.fc.p_1200553.encode({\n uuid: this.uuid,\n msg: \"/me has disabled pm's\"\n }, null).finish())\n}\n,\nfc_wndpm.prototype.updatemaxlen = function() {\n this.text_msg.maxLength = this.msglimit.max_msg_length\n}\n,\nfc_wndpm.prototype.updatefc = function(t) {\n this.font_colour = t,\n this.text_msg.style.color = this.font_colour\n}\n,\nfc_wndpm.prototype.updatefs = function(t) {\n this.font_size = t,\n this.text_msg.className = \"fs_\" + this.font_size\n}\n,\nfc_wndpm.prototype.receive = function(t, e, n, i, s, o, c) {\n !this.blockpm_enable || this.blockpm_enable && this.block_whitelist ? (this.chatbox.addnormal(t, e, n, i, s, o, c),\n this.rcvtaka(0),\n this.playrecvsnd(),\n this.wnd.visible || this.open(),\n this.wnd.begfocus()) : e === this.username && this.block_notify()\n}\n,\nfc_wndpm.prototype.receiveme = function(t, e, n, i, s, o) {\n !this.blockpm_enable || this.blockpm_enable && this.block_whitelist ? (this.chatbox.addme(t, e, n, i, s, o),\n this.rcvtaka(0),\n this.wnd.visible || this.open(),\n this.wnd.begfocus()) : e === this.username && this.block_notify()\n}\n,\nfc_wndpm.prototype.receiveroll = function(t, e, n, i, s) {\n !this.blockpm_enable || this.blockpm_enable && this.block_whitelist ? (this.chatbox.addroll(t, e, n, i, s),\n this.rcvtaka(0),\n this.wnd.visible || this.open(),\n this.wnd.begfocus()) : t === this.username && this.block_notify()\n}\n,\nfc_wndpm.prototype.rcvtaka = function(t) {\n (0 === t || !this.blockpm_enable || this.blockpm_enable && this.block_whitelist) && this.chatbox.settyping(this.username, this.modlvl, t)\n}\n,\nfc_wndpm.prototype.rcvpmblock = function(t) {\n this.chatbox.addsys(t)\n}\n,\nfc_wndpm.prototype.do_status = function(t, e) {\n this.status_code = t,\n this.status_text = e,\n this.refreshbanner()\n}\n,\nfc_wndpm.prototype.do_online = function(t) {\n this.online = t,\n this.refreshbanner()\n}\n,\nfc_wndpm.prototype.setusername = function(t) {\n this.username = t,\n null !== this.wnd && this.wnd.settitle(t)\n}\n,\nfc_wndpm.prototype.do_blocked = function(t) {\n this.blocked = t,\n this.refreshbanner()\n}\n,\nfc_wndpm.prototype.do_modlvl = function(t) {\n this.modlvl = t\n}\n,\nfc_wndpm.prototype.refreshbanner = function() {\n if (this.online)\n if (this.blocked)\n this.b_banner.style.display = \"block\",\n this.b_banner.innerText = this.username + \" is blocked\";\n else\n switch (this.status_code) {\n case 1:\n default:\n this.b_banner.style.display = \"none\",\n this.b_banner.innerText = \"\";\n break;\n case 2:\n this.b_banner.style.display = \"block\",\n this.b_banner.innerText = 0 === this.status_text.length ? \"AFK\" : \"AFK: \" + this.status_text;\n break;\n case 3:\n this.b_banner.style.display = \"block\",\n this.b_banner.innerText = this.username + \" has gone idle\"\n }\n else\n this.b_banner.style.display = \"block\",\n this.b_banner.innerText = this.username + \" has left the room\"\n}\n,\nfc_wndpm.prototype.info = function(t) {\n this.chatbox.addsys(\"[INFO]: \" + t)\n}\n,\nfc_wndpm.prototype.open = function() {\n null === this.wnd && this.createui(),\n this.wnd.show(),\n this.wnd.move_random(),\n this.resize_callback(this.wnd.elem.clientWidth, this.wnd.elem.clientHeight)\n}\n,\nfc_wndpm.prototype.focuswnd = function() {\n this.wndman.stealfocus(this.wnd),\n this.text_msg.focus()\n}\n,\nfc_wndpm.prototype.close = function() {\n null !== this.wnd && this.wnd.hide()\n}\n,\nfc_wndpolicy.prototype.createui = function() {\n this.wnd = this.wndman.addwindow(\"Room Policy\", 600, 400, !1),\n this.wnd.hideclosebtn(!1),\n this.new_password = \"\";\n var t, e, n = this.wnd.getContentElem(), i = document.createElement(\"div\");\n i.className = \"wndpolicy\",\n (e = document.createElement(\"div\")).className = \"cont_polsect\",\n (t = document.createElement(\"h1\")).innerText = \"Access Policy\",\n e.appendChild(t),\n this.cb_allowguest = new fc_checkbox(this.ws.pol_allowguest,\"Allow guests to join\"),\n this.cb_allowguest.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_allowguest.elem),\n this.cb_allowyoutube = new fc_checkbox(this.ws.pol_allowyoutube,\"Allow YouTube Player\"),\n this.cb_allowyoutube.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_allowyoutube.elem),\n this.cb_password = new fc_checkbox(this.ws.pol_pwenforced,\"Password required to enter\"),\n this.cb_password.addonclick(this.cbpassclick.bind(this)),\n e.appendChild(this.cb_password.elem),\n this.btn_editpass = document.createElement(\"button\"),\n this.btn_editpass.setAttribute(\"id\", \"pwdbtn\"),\n this.btn_editpass.style.borderColor = \"transparent\",\n this.btn_editpass.className = \"material-icons editpwd\",\n this.btn_editpass.onclick = this.btnpassclick.bind(this),\n e.appendChild(this.btn_editpass),\n this.text_password = document.createElement(\"input\"),\n this.text_password.setAttribute(\"type\", \"text\"),\n this.text_password.setAttribute(\"id\", \"pwdedit\"),\n this.text_password.setAttribute(\"autocomplete\", \"off\"),\n this.text_password.style.borderColor = \"transparent\",\n this.text_password.placeholder = \"blank password\",\n this.text_password.maxLength = 16,\n this.text_password.autocomplete = \"off\",\n this.text_password.disabled = !0,\n e.appendChild(this.text_password),\n i.appendChild(e),\n (e = document.createElement(\"div\")).className = \"cont_polsect\",\n (t = document.createElement(\"h1\")).innerText = \"Mod Policy\",\n e.appendChild(t),\n this.cb_modchangelayout = new fc_checkbox(this.ws.pol_modchangelayout,\"Mods can change layout\"),\n this.cb_modchangelayout.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_modchangelayout.elem),\n this.cb_modchangetopic = new fc_checkbox(this.ws.pol_modchangetopic,\"Mods can change topic\"),\n this.cb_modchangetopic.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_modchangetopic.elem),\n this.cb_modstopcam = new fc_checkbox(this.ws.pol_modstopcam,\"Mods can stop cams\"),\n this.cb_modstopcam.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_modstopcam.elem),\n i.appendChild(e),\n (e = document.createElement(\"div\")).className = \"cont_polsect\",\n (t = document.createElement(\"h1\")).innerText = \"Command Policy\",\n e.appendChild(t),\n this.cb_enablemecmd = new fc_checkbox(this.ws.pol_en_mecmd,\"Allow /me command\"),\n this.cb_enablemecmd.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_enablemecmd.elem),\n this.cb_enablerollcmd = new fc_checkbox(this.ws.pol_en_rollcmd,\"Allow /roll command\"),\n this.cb_enablerollcmd.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_enablerollcmd.elem),\n this.cb_enableafkcmd = new fc_checkbox(this.ws.pol_en_afkcmd,\"Allow /afk command\"),\n this.cb_enableafkcmd.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_enableafkcmd.elem),\n this.cb_enablestopcmd = new fc_checkbox(this.ws.pol_en_stopcmd,\"Allow /stop command\"),\n this.cb_enablestopcmd.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_enablestopcmd.elem),\n this.cb_enablekickcmd = new fc_checkbox(this.ws.pol_en_kickcmd,\"Allow /kick command\"),\n this.cb_enablekickcmd.addonclick(this.apply_click.bind(this)),\n e.appendChild(this.cb_enablekickcmd.elem),\n i.appendChild(e),\n n.appendChild(i)\n}\n,\nfc_wndpolicy.prototype.permcheck = function() {\n return 100 < this.ws.modlvl\n}\n,\nfc_wndpolicy.prototype.cbpassclick = function(t) {\n this.cb_password.ischecked() ? (this.text_password.style.display = \"inline-block\",\n this.btn_editpass.style.display = \"inline-block\") : (this.text_password.style.display = \"none\",\n this.btn_editpass.style.display = \"none\"),\n this.apply_click()\n}\n,\nfc_wndpolicy.prototype.btnpassclick = function(t) {\n if (this.text_password.disabled)\n this.text_password.style.borderColor = \"inherit\",\n this.btn_editpass.style.borderColor = \"inherit\",\n this.text_password.disabled = !1,\n this.btn_editpass.className = \"material-icons savepwd\",\n this.text_password.value = this.ws.pol_pw;\n else {\n this.text_password.style.borderColor = \"transparent\",\n this.btn_editpass.style.borderColor = \"transparent\",\n this.text_password.disabled = !0,\n this.btn_editpass.className = \"material-icons editpwd\",\n this.new_password = this.text_password.value;\n for (var e = \"\", n = 0; n < this.new_password.length; n++)\n e += \"*\";\n this.text_password.value = e,\n this.apply_click()\n }\n}\n,\nfc_wndpolicy.prototype.set = function() {\n if (this.new_password = this.ws.pol_pw,\n null !== this.cb_allowguest && this.cb_allowguest.check(this.ws.pol_allowguest),\n null !== this.cb_allowyoutube && this.cb_allowyoutube.check(this.ws.pol_allowyoutube),\n null !== this.cb_password && this.cb_password.check(this.ws.pol_pwenforced),\n null !== this.text_password && (this.ws.pol_pwenforced ? (this.text_password.style.display = \"inline-block\",\n this.btn_editpass.style.display = \"inline-block\") : (this.text_password.style.display = \"none\",\n this.btn_editpass.style.display = \"none\"),\n this.text_password.disabled)) {\n for (var t = \"\", e = 0; e < this.ws.pol_pw.length; e++)\n t += \"*\";\n this.text_password.value = t\n }\n null !== this.cb_modchangelayout && this.cb_modchangelayout.check(this.ws.pol_modchangelayout),\n null !== this.cb_modchangetopic && this.cb_modchangetopic.check(this.ws.pol_modchangetopic),\n null !== this.cb_modstopcam && this.cb_modstopcam.check(this.ws.pol_modstopcam),\n null !== this.cb_enablemecmd && this.cb_enablemecmd.check(this.ws.pol_en_mecmd),\n null !== this.cb_enablerollcmd && this.cb_enablerollcmd.check(this.ws.pol_en_rollcmd),\n null !== this.cb_enableafkcmd && this.cb_enableafkcmd.check(this.ws.pol_en_afkcmd),\n null !== this.cb_enablestopcmd && this.cb_enablestopcmd.check(this.ws.pol_en_stopcmd),\n null !== this.cb_enablekickcmd && this.cb_enablekickcmd.check(this.ws.pol_en_kickcmd),\n null !== this.wnd && (this.ws.pol_pwenforced ? this.wnd.setico(\"\") : this.wnd.setico(\"\"))\n}\n,\nfc_wndpolicy.prototype.open = function() {\n this.permcheck() && (null === this.wnd && this.createui(),\n this.wnd.show(),\n this.wnd.center(),\n this.wndman.stealfocus(this.wnd),\n this.set())\n}\n,\nfc_wndpolicy.prototype.apply_click = function() {\n var t = [];\n this.cb_allowguest.getstate() !== this.ws.pol_allowguest && t.push({\n k: \"ag\",\n v: this.cb_allowguest.checked() ? \"1\" : \"0\"\n }),\n this.cb_allowyoutube.getstate() !== this.ws.pol_allowyoutube && t.push({\n k: \"ay\",\n v: this.cb_allowyoutube.checked() ? \"1\" : \"0\"\n }),\n this.cb_password.getstate() !== this.ws.pol_pwenforced && t.push({\n k: \"pwe\",\n v: this.cb_password.checked() ? \"1\" : \"0\"\n }),\n this.new_password !== this.ws.pol_pw && t.push({\n k: \"pwd\",\n v: this.new_password\n }),\n this.cb_modchangelayout.getstate() !== this.ws.pol_modchangelayout && t.push({\n k: \"mcl\",\n v: this.cb_modchangelayout.checked() ? \"1\" : \"0\"\n }),\n this.cb_modchangetopic.getstate() !== this.ws.pol_modchangetopic && t.push({\n k: \"mct\",\n v: this.cb_modchangetopic.checked() ? \"1\" : \"0\"\n }),\n this.cb_modstopcam.getstate() !== this.ws.pol_modstopcam && t.push({\n k: \"msc\",\n v: this.cb_modstopcam.checked() ? \"1\" : \"0\"\n }),\n this.cb_enablemecmd.getstate() !== this.ws.pol_en_mecmd && t.push({\n k: \"amc\",\n v: this.cb_enablemecmd.checked() ? \"1\" : \"0\"\n }),\n this.cb_enablerollcmd.getstate() !== this.ws.pol_en_rollcmd && t.push({\n k: \"arc\",\n v: this.cb_enablerollcmd.checked() ? \"1\" : \"0\"\n }),\n this.cb_enableafkcmd.getstate() !== this.ws.pol_en_afkcmd && t.push({\n k: \"aac\",\n v: this.cb_enableafkcmd.checked() ? \"1\" : \"0\"\n }),\n this.cb_enablestopcmd.getstate() !== this.ws.pol_en_stopcmd && t.push({\n k: \"asc\",\n v: this.cb_enablestopcmd.checked() ? \"1\" : \"0\"\n }),\n this.cb_enablekickcmd.getstate() !== this.ws.pol_en_kickcmd && t.push({\n k: \"akc\",\n v: this.cb_enablekickcmd.checked() ? \"1\" : \"0\"\n }),\n 0 < t.length && this.ws.sendpbuf(1200191, this.pb.roots.default.fc.p_1200191.encode({\n rp: {\n kv: t\n }\n }, null).finish())\n}\n,\nfc_ws.prototype.mkses = function() {\n for (var t = \"\", e = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.!$%*@,=-_~\", n = 0; n < 32; n++)\n t += e.charAt(Math.floor(Math.random() * e.length));\n return t\n}\n,\nfc_ws.prototype.start = function() {\n if (null === this.ws) {\n this.chead = null,\n this.chead = new ArrayBuffer(29);\n var t = new DataView(this.chead);\n t.setUint16(0, 65279),\n t.setInt16(2, this.pver),\n t.setUint32(4, this.rn),\n t.setUint32(8, this.un),\n t.setUint32(12, 0),\n t.setUint32(16, 0),\n t.setUint8(20, this.cmtype),\n t.setInt32(21, 0),\n t.setInt32(25, 0);\n try {\n this.ws = new WebSocket(\"wss://\" + this.addr + \"/fc/chat\"),\n this.ws.onopen = this.onopen.bind(this),\n this.ws.onclose = this.onclose.bind(this),\n this.ws.onerror = this.onerror.bind(this),\n this.ws.onmessage = this.onmessage.bind(this)\n } catch (t) {\n this.ws = null\n }\n }\n}\n,\nfc_ws.prototype.updatedelta = function(t) {\n this.tmdelta = t - Date.now()\n}\n,\nfc_ws.prototype.cheadupdate = function() {\n var t = new DataView(this.chead);\n t.setUint32(4, this.rn),\n t.setUint32(8, this.un)\n}\n,\nfc_ws.prototype.policyupdate = function(t) {\n for (var e, n, i = 0; i < t.kv.length; i++)\n switch (e = t.kv[i].k,\n n = t.kv[i].v,\n e) {\n case \"ag\":\n this.pol_allowguest = \"1\" === n;\n break;\n case \"ay\":\n this.pol_allowyoutube = \"1\" === n;\n break;\n case \"pwe\":\n this.pol_pwenforced = \"1\" === n;\n break;\n case \"pwd\":\n this.pol_pw = n;\n break;\n case \"mcl\":\n this.pol_modchangelayout = \"1\" === n;\n break;\n case \"mct\":\n this.pol_modchangetopic = \"1\" === n;\n break;\n case \"msc\":\n this.pol_modstopcam = \"1\" === n;\n break;\n case \"amc\":\n this.pol_en_mecmd = \"1\" === n;\n break;\n case \"arc\":\n this.pol_en_rollcmd = \"1\" === n;\n break;\n case \"aac\":\n this.pol_en_afkcmd = \"1\" === n;\n break;\n case \"asc\":\n this.pol_en_stopcmd = \"1\" === n;\n break;\n case \"akc\":\n this.pol_en_kickcmd = \"1\" === n\n }\n}\n,\nfc_ws.prototype.disconnect = function() {\n this.ws.readyState < 2 && this.ws.close()\n}\n,\nfc_ws.prototype.isconnected = function() {\n return null !== this.ws && 1 === this.ws.readyState\n}\n,\nfc_ws.prototype.onopen = function(t) {}\n,\nfc_ws.prototype.onclose = function(t) {\n this.ws = null,\n this.rn = 0,\n this.un = 0,\n this.uh = 0,\n (this.pn = 0) === this.flwb ? this.close_cb(t) : this.clswait = t\n}\n,\nfc_ws.prototype.onerror = function(t) {\n this.error_cb(t)\n}\n,\nfc_ws.prototype.onmessage = function(t) {\n var e;\n this.ws && t.data instanceof Blob && (this.flwb++,\n (e = new FileReader).onload = this.packetrdy.bind(this),\n e.readAsArrayBuffer(t.data))\n}\n,\nfc_ws.prototype.sendpbuf = function(t, e) {\n if (null === this.ws || !this.isconnected())\n return !1;\n var n = null\n , i = 0\n , s = 0\n , e = (this.uh = Math.floor(this.un / this.uh + 13 * this.pn),\n null !== e && (s = (2 === this.cmtype ? (i = (n = this.pako.deflate(e)).byteLength,\n e) : (i = (n = e).byteLength,\n n)).byteLength),\n new DataView(this.chead))\n , t = (e.setUint32(12, this.uh),\n e.setUint32(16, t),\n e.setInt32(21, i),\n e.setInt32(25, s),\n new Uint8Array(this.chead.byteLength + n.byteLength));\n t.set(new Uint8Array(this.chead), 0),\n t.set(n, this.chead.byteLength);\n try {\n this.ws.send(t)\n } catch (t) {\n return !1\n }\n return this.pn++,\n !0\n}\n,\nfc_ws.prototype.packetrdy = function(t) {\n this.flwb--;\n var e = t.target.result\n , t = !1\n , n = new DataView(e)\n , t = \"fffe\" === n.getUint16(0).toString(16)\n , i = (n.getUint8(2, t),\n n.getUint32(3, t))\n , s = n.getUint8(7, t)\n , o = null;\n if (0 < n.getUint16(8, t))\n switch (s) {\n case 1:\n break;\n case 2:\n try {\n o = this.pako.inflate(e.slice(10))\n } catch (t) {}\n break;\n default:\n o = e.slice(10)\n }\n else\n o = null;\n this.rcv_cb(i, o),\n 0 !== this.flwb || this.isconnected() || null === this.clswait || (this.close_cb(this.clswait),\n this.clswait = null)\n}\n,\nfc_ws.prototype.close = function(t) {\n this.ws && (\"number\" == typeof t ? this.ws.close(t) : this.ws.close(),\n this.ws = null)\n}\n,\nfc_ws.prototype.stohr = function(t) {\n return this.mstohr(1e3 * t)\n}\n,\nfc_ws.prototype.mstohr = function(t) {\n if (t < 1e3)\n return \"0s\";\n for (var e, n = t, i = 0, s = 0, o = 0, c = 0, t = \"\"; 6e4 <= n; )\n 6048e5 <= n ? (n -= 6048e5,\n c++) : 864e5 <= n ? (n -= 864e5,\n o++) : 36e5 <= n ? (n -= 36e5,\n s++) : 6e4 <= n && (n -= 6e4,\n i++);\n return 0 < c && (t += c + \"w \"),\n 0 < o && (t += o + \"d \"),\n 0 < s && (t += s + \"h \"),\n 0 < i && (t += i + \"m \"),\n 0 < (e = Math.floor(n / 1e3)) && (t += e + \"s \"),\n t.trim()\n}\n,\nfc_youtube.prototype.reqq = function() {\n null !== this.ytpp && !this.ytpp.closed && this.pa && this.ws.sendpbuf(1200420, this.pb.roots.default.fc.p_1200420.encode({}, null).finish())\n}\n,\nfc_youtube.prototype.open = function() {\n return null === this.ytpp || this.ytpp.closed ? (1 === parseInt(getCookie(\"accept_youtube_pp\")) && (this.pa = !0),\n this.ytpp = window.open(\"/youtube.php\", this.ws.rn + \"_youtube_window\", \"location=no,toolbar=no,menubar=no,status=no,scrollbars=no,resizable=yes,width=720,height=445,left=500,top=300\"),\n this.ytpp.addEventListener(\"load\", this.pp_load.bind(this)),\n this.ytpp.addEventListener(\"resize\", this.pp_resize.bind(this)),\n this.ytpp.onYouTubeIframeAPIReady = this.pp_ytbr.bind(this)) : this.ytpp.focus(),\n null !== this.ytpp\n}\n,\nfc_youtube.prototype.pp_load = function() {\n this.player_cont = this.ytpp.document.getElementById(\"kyt_player\"),\n this.div_qpopup = this.ytpp.document.getElementById(\"kyt_queue_popup\"),\n this.div_queue = this.ytpp.document.getElementById(\"kyt_queue\"),\n this.div_qpopupbg = this.ytpp.document.getElementById(\"popup_background\"),\n this.btn_addvideo = this.ytpp.document.getElementById(\"addvideobtn\"),\n this.btn_addvideo.onclick = this.openq.bind(this),\n this.btn_nextvideo = this.ytpp.document.getElementById(\"nextbtn\"),\n this.btn_nextvideo.onclick = this.nextv.bind(this),\n this.div_qpopupcls = this.ytpp.document.getElementById(\"qpopup_close\"),\n this.div_qpopupcls.onclick = this.closeq.bind(this),\n this.text_search = this.ytpp.document.getElementById(\"searchbox\"),\n this.text_search.onkeydown = this.s_keydown.bind(this),\n this.btn_search = this.ytpp.document.getElementById(\"searchbtn\"),\n this.btn_search.onclick = this.s_click.bind(this),\n this.text_addurl = this.ytpp.document.getElementById(\"addurlbox\"),\n this.text_addurl.onkeydown = this.au_keydown.bind(this),\n this.btn_addurl = this.ytpp.document.getElementById(\"addurlbtn\"),\n this.btn_addurl.onclick = this.au_click.bind(this),\n this.p_query_err = this.ytpp.document.getElementById(\"query_err\"),\n this.table_queue = this.ytpp.document.getElementById(\"queue_table\"),\n this.div_sresultcont = this.ytpp.document.getElementById(\"kyt_sresults_cont\"),\n this.div_sresult = this.ytpp.document.getElementById(\"kyt_sresults\"),\n this.div_sresultload = this.ytpp.document.getElementById(\"queue_loading\"),\n this.span_sresulttext = this.ytpp.document.getElementById(\"kyt_sresult_text\"),\n this.div_sresultclose = this.ytpp.document.getElementById(\"sresult_close\"),\n this.div_sresultclose.onclick = this.close_sr.bind(this),\n this.yt_enable_search ? (this.ytpp.document.getElementById(\"searchcont\").style.display = \"block\",\n this.ytpp.document.getElementById(\"addurlcont\").style.display = \"none\",\n this.p_query_err.innerText = \"\") : (this.ytpp.document.getElementById(\"searchcont\").style.display = \"none\",\n this.ytpp.document.getElementById(\"addurlcont\").style.display = \"block\",\n this.p_query_err.innerText = \"You need to paste the video url into the box.\"),\n this.pa ? (this.reqq(),\n this.btn_addvideo.disabled = !1) : (this.div_privnote = this.ytpp.document.getElementById(\"privacy_notice\"),\n this.div_privnote.style.display = \"block\",\n this.btn_acceptpriv = this.ytpp.document.getElementById(\"accept_priv\"),\n this.btn_acceptpriv.onclick = this.acceptpriv.bind(this))\n}\n,\nfc_youtube.prototype.pp_resize = function() {\n this.div_sresult.style.height = this.div_qpopup.clientHeight - this.div_sresult.offsetTop - 10 + \"px\",\n this.div_queue.style.height = this.div_qpopup.clientHeight - this.div_queue.offsetTop - 10 + \"px\"\n}\n,\nfc_youtube.prototype.pp_ytbr = function(t) {\n this.pa ? (this.YT = this.ytpp.getYT(),\n this.player = new this.YT.Player(\"kyt_player\",{\n videoId: \"\",\n playerVars: {\n autohide: 1,\n controls: 1,\n iv_load_policy: 3,\n modestbranding: 1,\n origin: \"https://www.wechatcity.com\"\n },\n events: {\n onReady: this.ytb_rdy.bind(this),\n onStateChange: this.ytb_stc.bind(this),\n onError: this.ytb_err.bind(this)\n }\n })) : this.player = null\n}\n,\nfc_youtube.prototype.acceptpriv = function(t) {\n this.pa = !0,\n this.div_privnote.style.display = \"none\",\n setCookie(\"accept_youtube_pp\", \"1\", 180),\n this.reqq(),\n this.pp_ytbr(t),\n this.btn_addvideo.disabled = !1\n}\n,\nfc_youtube.prototype.ytb_rdy = function(t) {\n this.playstate = \"loaded\",\n this.player_cont.style.display = \"none\",\n this.setcur(this.cur_start_time, this.cur_video)\n}\n,\nfc_youtube.prototype.ytb_stc = function(t) {\n switch (t.data) {\n case -1:\n this.playstate = \"unstarted\";\n break;\n case this.YT.PlayerState.ENDED:\n this.playstate = \"ended\",\n this.btn_nextvideo.disabled = !0,\n this.player_cont.style.display = \"none\";\n break;\n case this.YT.PlayerState.PLAYING:\n this.playstate = \"playing\";\n break;\n case this.YT.PlayerState.PAUSED:\n this.playstate = \"paused\";\n break;\n case this.YT.PlayerState.BUFFERING:\n this.playstate = \"buffering\";\n break;\n case this.YT.PlayerState.CUED:\n this.playstate = \"cued\"\n }\n}\n,\nfc_youtube.prototype.ytb_err = function(t) {}\n,\nfc_youtube.prototype.setcur = function(t, e) {\n this.cur_start_time = t,\n this.cur_video = e,\n \"unloaded\" !== this.playstate && (t = Date.now() + this.ws.tmdelta,\n e = Math.floor((t - this.cur_start_time) / 1e3),\n this.player.loadVideoById(this.cur_video.id, e, \"large\"),\n this.player_cont.style.display = \"block\",\n this.player.playVideo(),\n 10 < e ? this.setupnb() : (this.btn_nextvideo.disabled = !0,\n setTimeout(this.setupnb.bind(this), 1e3 * (11 - e))))\n}\n,\nfc_youtube.prototype.setupnb = function() {\n var t = Date.now() + this.ws.tmdelta\n , t = Math.floor((t - this.cur_start_time) / 1e3);\n (150 <= this.ws.modlvl || this.ws.username === this.cur_video.nm) && 2 < this.table_queue.childElementCount && 10 <= t && null !== this.cur_video ? this.btn_nextvideo.disabled = !1 : this.btn_nextvideo.disabled = !0\n}\n,\nfc_youtube.prototype.nextv = function(t) {\n null !== this.cur_video && \"number\" == typeof this.cur_video.uid && this.ws.sendpbuf(1200455, this.pb.roots.default.fc.p_1200455.encode({\n cuid: this.cur_video.uid\n }, null).finish())\n}\n,\nfc_youtube.prototype.openq = function(t) {\n this.div_qpopup.style.display = \"block\",\n this.div_qpopupbg.style.display = \"block\"\n}\n,\nfc_youtube.prototype.closeq = function(t) {\n this.div_qpopup.style.display = \"none\",\n this.div_qpopupbg.style.display = \"none\"\n}\n,\nfc_youtube.prototype.s_keydown = function(t) {\n 13 === t.keyCode && 0 < this.text_search.value.length && this.search(this.text_search.value, \"\", \"\")\n}\n,\nfc_youtube.prototype.s_click = function(t) {\n 0 < this.text_search.value.length && this.search(this.text_search.value, \"\", \"\")\n}\n,\nfc_youtube.prototype.search = function(t, e, n) {\n this.clear_sr(),\n this.open_sr(),\n this.ws.isguest ? this.span_sresulttext.innerText = \"You must login to search YouTube\" : this.ws.pol_allowyoutube ? (this.span_sresulttext.innerText = \"Searching\",\n this.div_sresultload.style.display = \"block\",\n this.search_cb(t, e, n, this.searchr.bind(this))) : this.span_sresulttext.innerText = \"YouTube has been disabled\"\n}\n,\nfc_youtube.prototype.searchr = function(t, e) {\n this.div_sresultload.style.display = \"none\",\n 200 !== e ? this.span_sresulttext.innerText = \"Network Error, try later\" : t.hasOwnProperty(\"error\") ? this.span_sresulttext.innerText = \"Error, please log back in\" : t.hasOwnProperty(\"results\") && (1 < t.results.se.length ? this.span_sresulttext.innerText = t.results.se : (this.span_sresulttext.innerText = \"Search Results\",\n this.dspresults(t.results)))\n}\n,\nfc_youtube.prototype.dspresults = function(t) {\n for (var e = 0; e < t.v.length; e++) {\n var n = t.v[e]\n , i = document.createElement(\"div\")\n , s = (i.className = \"kyt_vid\",\n document.createElement(\"ul\"))\n , o = (i.appendChild(s),\n document.createElement(\"li\"))\n , c = (s.appendChild(o),\n document.createElement(\"div\"))\n , r = (c.className = \"ytthumb\",\n c.style.backgroundImage = \"url('\" + n.tn + \"')\",\n o.appendChild(c),\n document.createElement(\"div\"))\n , r = (r.className = \"time\",\n r.innerText = n.l,\n c.appendChild(r),\n n.hasOwnProperty(\"ne\") || ((c = document.createElement(\"button\")).className = \"kyt_addbtn\",\n c.innerText = \"Add Video\",\n c.setAttribute(\"id\", \"btn\" + n.id),\n c.setAttribute(\"data-vid\", n.id),\n c.onclick = this.a_click.bind(this),\n o.appendChild(c)),\n document.createElement(\"li\"))\n , o = (s.appendChild(r),\n document.createElement(\"h6\"))\n , c = (o.innerHTML = n.t,\n r.appendChild(o),\n document.createElement(\"p\"))\n , s = (c.innerText = n.pd + \" ago - \" + n.c + \" views\",\n r.appendChild(c),\n document.createElement(\"p\"))\n , o = (s.innerHTML = n.d,\n r.appendChild(s),\n document.createElement(\"p\"));\n o.setAttribute(\"id\", \"warn\" + n.id),\n o.className = \"error\",\n i.appendChild(o),\n n.hasOwnProperty(\"ne\") && (o.innerText = \"THE OWNER OF THIS VIDEO DOES NOT ALLOW EMBEDDING\"),\n this.div_sresult.appendChild(i)\n }\n var l, a = document.createElement(\"div\"), u = (a.setAttribute(\"id\", \"nav\"),\n t.hasOwnProperty(\"ppt\") && ((u = document.createElement(\"button\")).innerText = \"Previous Page\",\n a.appendChild(u),\n l = this,\n u.onclick = function() {\n l.search(t.q, t.ppt, t.r)\n }\n ),\n t.hasOwnProperty(\"npt\") && ((u = document.createElement(\"button\")).innerText = \"Next Page\",\n a.appendChild(u),\n l = this,\n u.onclick = function() {\n l.search(t.q, t.npt, t.r)\n }\n ),\n document.createElement(\"p\"));\n u.innerText = t.tr + \" results\",\n a.appendChild(u),\n this.div_sresult.appendChild(a),\n this.pp_resize()\n}\n,\nfc_youtube.prototype.close_sr = function() {\n this.div_sresultcont.style.display = \"none\",\n this.div_queue.style.display = \"block\",\n this.pp_resize()\n}\n,\nfc_youtube.prototype.clear_sr = function() {\n this.div_sresult.innerHTML = \"\"\n}\n,\nfc_youtube.prototype.open_sr = function() {\n this.div_sresultcont.style.display = \"block\",\n this.div_queue.style.display = \"none\",\n this.pp_resize()\n}\n,\nfc_youtube.prototype.a_click = function(t) {\n var e;\n this.ws.pol_allowyoutube ? ((e = this.ytpp.document.getElementById(\"btn\" + t.target.dataset.vid)).className = \"pending\",\n e.innerHTML = \"Wait..\",\n e.disabled = !0,\n this.queue_cb(t.target.dataset.vid, this.queuer.bind(this))) : this.ytpp.document.getElementById(\"warn\" + t.target.dataset.vid).innerText = \"YouTube Disabled!\"\n}\n,\nfc_youtube.prototype.queuer = function(t, e) {\n var n = this.ytpp.document.getElementById(\"warn\" + t.video_id)\n , i = this.ytpp.document.getElementById(\"btn\" + t.video_id);\n 200 !== e ? n.innerText = \"Network error: \" + e : t.hasOwnProperty(\"error\") ? n.innerText = \"Reload the page\" : 0 !== t.ae.length ? (n.innerText = t.ae,\n i.className = \"failed\",\n i.innerHTML = \"Failed\") : (i.className = \"success\",\n i.innerHTML = \"Added\",\n this.ws.sendpbuf(1200410, this.pb.roots.default.fc.p_1200410.encode({\n uid: t.queue_id\n }, null).finish()))\n}\n,\nfc_youtube.prototype.qsync = function(t) {\n if (0 === t.length) {\n this.table_queue.innerHTML = \"\";\n var e = document.createElement(\"tr\")\n , n = document.createElement(\"th\");\n n.innerText = \"Empty Queue\",\n e.appendChild(n),\n this.table_queue.appendChild(e)\n } else\n for (var i = 0; i < t.length; i++)\n this.qadd(t[i].uid, t[i].nm, t[i].id, t[i].t, t[i].l)\n}\n,\nfc_youtube.prototype.qadd = function(t, e, n, i, s) {\n var o, c;\n null === this.ytpp || null === this.table_queue || this.ytpp.closed || (1 === this.table_queue.childElementCount && (this.table_queue.innerHTML = \"\",\n c = document.createElement(\"tr\"),\n (o = document.createElement(\"th\")).innerText = \"Username\",\n c.appendChild(o),\n (o = document.createElement(\"th\")).innerText = \"Video\",\n c.appendChild(o),\n (o = document.createElement(\"th\")).innerText = \"Length\",\n c.appendChild(o),\n this.table_queue.appendChild(c)),\n (c = document.createElement(\"tr\")).setAttribute(\"data-uid\", t),\n (o = document.createElement(\"td\")).innerText = e,\n c.appendChild(o),\n (o = document.createElement(\"td\")).innerText = i,\n c.appendChild(o),\n (o = document.createElement(\"td\")).innerText = s,\n c.appendChild(o),\n this.table_queue.appendChild(c),\n this.setupnb())\n}\n,\nfc_youtube.prototype.qdel = function(t) {\n if (null !== this.ytpp && null !== this.table_queue && !this.ytpp.closed) {\n if (1 < this.table_queue.childElementCount)\n for (var e = 1; e < this.table_queue.rows.length; e++)\n this.table_queue.rows[e].dataset.uid.toString() === t.toString() && this.table_queue.deleteRow(e);\n var n, i;\n 1 === this.table_queue.childElementCount && (this.table_queue.innerHTML = \"\",\n n = document.createElement(\"tr\"),\n (i = document.createElement(\"th\")).innerText = \"Empty Queue\",\n n.appendChild(i),\n this.table_queue.appendChild(n))\n }\n}\n,\nfc_youtube.prototype.au_keydown = function(t) {\n 13 === t.keyCode && 0 < this.text_addurl.value.length && this.addurl(this.text_addurl.value)\n}\n,\nfc_youtube.prototype.au_click = function(t) {\n 0 < this.text_addurl.value.length && this.addurl(this.text_addurl.value)\n}\n,\nfc_youtube.prototype.addurl = function(t) {\n this.ws.isguest ? this.p_query_err.innerText = \"You must login to add videos\" : (this.p_query_err.innerText = \"Adding video\",\n this.div_sresultload.style.display = \"block\",\n this.queue_cb(t, this.addurlr.bind(this)))\n}\n,\nfc_youtube.prototype.addurlr = function(t, e) {\n this.div_sresultload.style.display = \"none\",\n 200 !== e ? this.p_query_err.innerText = \"Network Error \" + e : t.hasOwnProperty(\"error\") ? this.p_query_err.innerText = \"Please log back in\" : 0 !== t.ae.length ? this.p_query_err.innerText = t.ae : (this.p_query_err.innerText = \"\",\n this.ws.sendpbuf(1200410, this.pb.roots.default.fc.p_1200410.encode({\n uid: t.queue_id\n }, null).finish()))\n}\n,\nfc.prototype.dockeydown = function(t) {\n this.status.act()\n}\n,\nfc.prototype.docmousemove = function(t) {\n this.status.act(),\n this.wndctrl.docmousemove(t.pageX, t.pageY)\n}\n,\nfc.prototype.doctouchmove = function(t) {\n this.status.act();\n var e = t.targetTouches[0];\n this.wndctrl.docmousemove(e.pageX, e.pageY),\n null !== this.wndctrl.drag_wnd && t.preventDefault()\n}\n,\nfc.prototype.docmousedown = function(t) {\n this.wndctrl.stealfocus(null)\n}\n,\nfc.prototype.docmouseup = function(t) {\n this.status.act(),\n this.wndctrl.docmouseup()\n}\n,\nfc.prototype.docresize = function() {\n var t, e;\n e = (\"mobile\" === this.mode ? t = \"landscape\" === window.getComputedStyle(this.elem).getPropertyValue(\"--fc-orientation\") ? (this.gridcams.style.height = this.lo.elem.clientHeight + \"px\",\n this.elem.clientHeight - this.gridtopic.clientHeight) : (this.gridcams.style.height = this.lo.elem.clientHeight + \"px\",\n this.elem.clientHeight - (this.gridcams.clientHeight + this.gridtopic.clientHeight)) : \"swf\" === this.mode ? (clearTimeout(this.step_timeout),\n this.gridcams.style.height = this.lo.elem.clientHeight + \"px\",\n (e = (t = this.elem.clientHeight - (this.gridcams.clientHeight + this.gridtopic.clientHeight)) / this.elem.clientHeight * 100) < 40 ? (this.width_step -= 5,\n document.getElementById(\"swf_chat_normal\").style.width = this.width_step + \"%\",\n this.step_timeout = setTimeout(this.docresize.bind(this), 50)) : 50 < e && 100 !== this.width_step && (this.width_step += 5,\n 100 < this.width_step && (this.width_step = 100),\n document.getElementById(\"swf_chat_normal\").style.width = this.width_step + \"%\",\n this.step_timeout = setTimeout(this.docresize.bind(this), 50))) : (this.gridcams.style.height = this.lo.elem.clientHeight + \"px\",\n t = this.elem.clientHeight - (this.gridcams.clientHeight + this.gridtopic.clientHeight)),\n this.cb.isscrollpinned()),\n this.gridchat.style.height = t - this.gridtools.clientHeight + \"px\",\n this.gridlist.style.height = t + \"px\",\n e && this.cb.scrolldown()\n}\n,\nfc.prototype.togulist = function() {\n \"mobile\" === this.ws.mode ? \"none\" === this.ul.elem.style.display ? this.ul.elem.style.display = \"block\" : this.ul.elem.style.display = \"none\" : \"none\" === this.gridlist.style.display ? (this.gridlist.style.display = \"block\",\n this.gridchat.style.gridColumn = \"1 / 4\",\n this.gridtools.style.gridColumn = \"1 / 4\") : (this.gridlist.style.display = \"none\",\n this.gridchat.style.gridColumn = \"1 / 5\",\n this.gridtools.style.gridColumn = \"1 / 5\")\n}\n,\nfc.prototype.showfc = function() {\n this.elem.style.pointerEvents = \"auto\",\n this.msk.elem.style.opacity = 0,\n this.elem.style.opacity = 1\n}\n,\nfc.prototype.showmsk = function() {\n this.elem.style.pointerEvents = \"none\",\n this.elem.style.opacity = 0,\n this.msk.elem.style.opacity = 1\n}\n,\nfc.prototype.umopen = function(t) {\n let e = this.ul.gubuid(parseInt(t.target.dataset.uuid));\n null !== (e = null === e ? this.ul.gubuid_left(parseInt(t.target.dataset.uuid)) : e) && this.um.open(t.pageX - this.elem.offsetLeft, t.pageY - this.elem.offsetTop, e.uuid, e.username, e.modlvl, e.online, e.blocked)\n}\n,\nfc.prototype.ytopen = function(t) {\n this.ytpl.open()\n}\n,\nfc.prototype.tipshow = function(t) {\n var e = this.ul.gubuid(parseInt(t.target.dataset.uuid));\n this.tip.show(t.pageX - this.elem.offsetLeft, t.pageY - this.elem.offsetTop, {\n buildtype: \"userinfo\",\n user: e\n })\n}\n,\nfc.prototype.tipcancel = function(t) {\n this.tip.cancel()\n}\n,\nfc.prototype.createui = function() {\n return !this.ui_done && (this.gridcams = document.createElement(\"div\"),\n this.gridtopic = document.createElement(\"div\"),\n this.gridchat = document.createElement(\"div\"),\n this.gridtools = document.createElement(\"div\"),\n this.gridlist = document.createElement(\"div\"),\n this.gridcams.className = \"gridbox_cams\",\n this.gridtopic.className = \"gridbox_topic\",\n this.gridchat.className = \"gridbox_chat\",\n this.gridtools.className = \"gridbox_tools\",\n this.gridlist.className = \"gridbox_list\",\n this.elem.appendChild(this.um.elem),\n this.elem.appendChild(this.tip.elem),\n this.gridcams.appendChild(this.lo.elem),\n this.gridtopic.appendChild(this.tp.elem),\n this.gridchat.appendChild(this.cb.elem),\n this.gridtools.appendChild(this.tb.elem),\n (\"mobile\" === this.ws.mode ? this.elem : this.gridlist).appendChild(this.ul.elem),\n this.elem.appendChild(this.gridcams),\n this.elem.appendChild(this.gridtopic),\n this.elem.appendChild(this.gridchat),\n this.elem.appendChild(this.gridtools),\n this.elem.appendChild(this.gridlist),\n this.ui_done = !0)\n}\n,\nfc.prototype.startband = function(t, e, n, i, s) {\n this.msk.showbs(t, e, n, i, s),\n this.showmsk()\n}\n,\nfc.prototype.startdel = function() {\n this.msk.showds(),\n this.showmsk()\n}\n,\nfc.prototype.startpass = function() {}\n,\nfc.prototype.startnoguest = function() {\n this.msk.showcs(\"No Guests\", \"This room has disabled guests, please login or try again later.\"),\n this.showmsk()\n}\n,\nfc.prototype.start = function(t) {\n this.ws.jty = t,\n this.t2src_cb(this.t2cb.bind(this)),\n this.msk.showcs(\"Ready\", \"Preparing to join room\"),\n this.showmsk()\n}\n,\nfc.prototype.t2cb = function(t, e) {\n 200 === e ? t.hasOwnProperty(\"error\") ? this.msk.showcs(\"Error\", \"Something went wrong, refresh the page, or log back in. Error: \" + t.error) : (this.ws.t2 = t.t2,\n this.ws.t2exp = new Date(t.exp),\n this.msk.showcs(\"Connecting\", \"Connecting to server\"),\n this.ws.start()) : this.msk.showcs(\"Error\", \"Something went wrong, refresh the page, or log back in. Status: \" + e)\n}\n,\nfc.prototype.wserr = function(t) {}\n,\nfc.prototype.wsclose = function(t) {\n var e, n;\n if (this.ws.ready = !1,\n null === this.ws.close_pf) {\n if (0 < t.reason.length)\n try {\n n = this.b64.toByteArray(t.reason)\n } catch (t) {}\n } else\n this.ws.close_pf.code === t.code && this.ws.close_pf.secret === t.reason && (n = this.b64.toByteArray(this.ws.close_pf.reason)),\n this.ws.close_pf = null;\n switch (t.code) {\n case 1002:\n case 1003:\n case 1007:\n case 1008:\n case 1009:\n case 1010:\n case 1011:\n case 1015:\n default:\n this.msk.showcs(\"RIP IN PIECE\", \"Lost connection with code \" + t.code),\n this.showmsk();\n break;\n case 1001:\n \"string\" == typeof t.reason && -1 !== t.reason.toLowerCase().indexOf(\"cloudflare\") ? this.recon.start() : this.cb.addsys(\"bye\");\n break;\n case 4007:\n this.msk.showcs(\"Session Ended\", \"You have left the room due to joining from another location.\"),\n this.showmsk();\n break;\n case 4008:\n this.msk.showcs(\"Error\", \"Your username is already taken in this room\"),\n this.showmsk();\n break;\n case 1e3:\n case 1005:\n case 1006:\n case 1012:\n case 1013:\n this.recon.start();\n break;\n case 4001:\n this.ws.joined && (this.recon.reqt2(),\n this.recon.start());\n break;\n case 4002:\n window.location.replace(\"/\");\n break;\n case 4003:\n null === this.pb.roots.default.fc.c_4003.verify(n) && (e = this.pb.roots.default.fc.c_4003.decode(n).kick,\n this.msk.showks(e.mnm, e.rsn, e.ls, e.rs),\n this.showmsk());\n break;\n case 4004:\n null === this.pb.roots.default.fc.c_4004.verify(n) && (e = this.pb.roots.default.fc.c_4004.decode(n).ban,\n this.msk.showbs(e.nm, e.exp, e.rs, e.prm, e.rsn),\n this.showmsk());\n break;\n case 4005:\n this.msk.showps(),\n this.showmsk();\n break;\n case 4006:\n this.msk.showjo(),\n this.showmsk();\n break;\n case 4009:\n null === this.pb.roots.default.fc.c_4009.verify(n) && ((e = this.pb.roots.default.fc.c_4009.decode(n)).hasOwnProperty(\"jth\") && (this.ws.jth = e.jth),\n this.ws.joined ? 0 < e.msg.length && this.cb.addsys(e.msg) : (0 < e.msg.length && this.msk.showws(e.ms, e.msg),\n this.showmsk()),\n this.recon.start(e.ms));\n break;\n case 4010:\n this.msk.showcs(\"No Guests\", \"This room has disabled guests, please login or try again later.\"),\n this.showmsk();\n break;\n case 4011:\n this.msk.showcs(\"Too Many Guests\", \"This room has too many guests, please login or try again later.\"),\n this.showmsk();\n break;\n case 4999:\n this.ws.joined ? this.cb.addsys(\"The server has been updated, please refresh the page to continue.\") : this.msk.showcs(\"Updates in progress\", \"The server and website are being updated, please try again later.\")\n }\n}\n,\nfc.prototype.wsrecv = function(t, e) {\n switch (t) {\n case 1100101:\n null === this.pb.roots.default.fc.p_1100101.verify(e) && (s = this.pb.roots.default.fc.p_1100101.decode(e),\n this.ws.un = s.un,\n this.ws.uh = s.uh,\n this.ws.cheadupdate(),\n s.pv !== this.ws.pver ? this.ws.close(4999) : (this.msk.showcs(\"Joining Room\", \"Received handshake, sending response\"),\n this.ws.sendpbuf(1200102, this.pb.roots.default.fc.p_1200102.encode({\n sid: this.ws.sid,\n tk: this.ws.t2,\n pw: this.ws.roompass,\n jo: this.ws.joinover,\n jth: this.ws.jth,\n jty: this.ws.jty\n }, null).finish()),\n !this.ws.joined && this.ws.joinover && (this.ws.joinover = !1),\n 0 < this.ws.jth.length && (this.ws.jth = \"\")));\n break;\n case 1100103:\n null === this.pb.roots.default.fc.p_1100103.verify(e) && (this.ui_done || this.createui(),\n this.msk.showcs(\"Joining Room\", \"Joining the room\"),\n s = this.pb.roots.default.fc.p_1100103.decode(e),\n this.ws.rn = s.rn,\n this.ws.cheadupdate(),\n this.applypolicy(s.rp),\n this.ws.username = s.nm,\n this.ws.uuid = s.uuid,\n this.ws.modlvl = s.ml,\n this.ws.isguest = s.ig,\n this.msglimit.updateml(this.ws.modlvl),\n this.tb.refresh(),\n this.ws.updatedelta(s.tm),\n this.status.update(s.nm, s.st),\n this.tp.set(s.tpc),\n this.tp.refresh(),\n this.ul.populate(s.users),\n this.ul.updgsc(s.gsc),\n this.lo.setup(s.lo),\n this.lo.showlist(s.cams, this.ul),\n this.cb.history(s.rcm, s.mn, this.ul),\n this.ws.joined ? (this.recon.done(),\n this.ytpl.reqq()) : (this.recon.cb = this.cb,\n this.ws.cnf.readjson(s.cnf),\n this.tb.setfont(this.ws.cnf.get(\"fc\"), this.ws.cnf.get(\"fs\"))),\n this.ws.ready = !0,\n this.ws.joined = !0,\n this.ws.joinover = !0,\n setTimeout(this.docresize.bind(this), 200),\n setTimeout(this.showfc.bind(this), 300),\n this.ws.isguest) && this.tb.mkguest();\n break;\n case 1100104:\n null === this.pb.roots.default.fc.p_1100104.verify(e) && (s = this.pb.roots.default.fc.p_1100104.decode(e),\n this.ws.updatedelta(s.tm),\n this.ul.pingsync(s.pl));\n break;\n case 1100105:\n null === this.pb.roots.default.fc.p_1100105.verify(e) && (0 === (s = this.pb.roots.default.fc.p_1100105.decode(e)).oruuid ? this.cb.addsys(\"[INFO]: \" + s.msg) : null !== (i = this.pmctrl.getpm(s.oruuid)) && i.info(s.msg));\n break;\n case 1100106:\n break;\n case 1100107:\n var n;\n null === this.pb.roots.default.fc.p_1100107.verify(e) && (n = {\n code: (s = this.pb.roots.default.fc.p_1100107.decode(e)).code,\n reason: s.cr,\n secret: s.sc\n },\n this.ws.close_pf = n);\n break;\n case 1100191:\n null === this.pb.roots.default.fc.p_1100191.verify(e) && (s = this.pb.roots.default.fc.p_1100191.decode(e),\n this.applypolicy(s.rp));\n break;\n case 1100210:\n null === this.pb.roots.default.fc.p_1100210.verify(e) && ((s = this.pb.roots.default.fc.p_1100210.decode(e).user).blk || this.cb.addsys(s.nm + \" has joined the room (<a href='/profiles/?uuid=\" + s.uuid + \"' target='_blank'>View Profile</a>)\", s.uuid),\n this.ul.joinuser(s, !0));\n break;\n case 1100212:\n null === this.pb.roots.default.fc.p_1100212.verify(e) && (s = this.pb.roots.default.fc.p_1100212.decode(e),\n this.ul.gubuid(s.uuid).blocked || this.cb.addsys(s.nm + \" has left the room\", s.uuid),\n this.ul.leaveuser(s.uuid));\n break;\n case 1100220:\n null === this.pb.roots.default.fc.p_1100220.verify(e) && (s = this.pb.roots.default.fc.p_1100220.decode(e),\n this.ul.updgsc(s.gsc));\n break;\n case 1100321:\n null === this.pb.roots.default.fc.p_1100321.verify(e) && ((s = this.pb.roots.default.fc.p_1100321.decode(e)).sn || 2 !== s.st.lv || this.ul.gubuid(s.uuid).blocked || this.cb.addsys(s.nm + \" has gone AFK\" + (0 === s.st.msg.length ? \"\" : \" (\" + s.st.msg + \")\"), s.uuid),\n this.ul.setstatus(s.nm, s.st),\n this.status.update(s.nm, s.st));\n break;\n case 1100341:\n null === this.pb.roots.default.fc.p_1100341.verify(e) && (s = this.pb.roots.default.fc.p_1100341.decode(e),\n this.ul.blockuser(s.uuid),\n this.cb.addsys(\"You have blocked \" + s.nm));\n break;\n case 1100343:\n null === this.pb.roots.default.fc.p_1100343.verify(e) && (s = this.pb.roots.default.fc.p_1100343.decode(e),\n this.ul.unblockuser(s.uuid),\n this.cb.addsys(\"You have unblocked \" + s.nm));\n break;\n case 1100411:\n null === this.pb.roots.default.fc.p_1100411.verify(e) && (s = this.pb.roots.default.fc.p_1100411.decode(e),\n this.ytpl.qadd(s.v.uid, s.v.nm, s.v.id, s.v.t, s.v.l));\n break;\n case 1100413:\n null === this.pb.roots.default.fc.p_1100413.verify(e) && (s = this.pb.roots.default.fc.p_1100413.decode(e),\n this.ytpl.qdel(s.uid));\n break;\n case 1100421:\n null === this.pb.roots.default.fc.p_1100421.verify(e) && (s = this.pb.roots.default.fc.p_1100421.decode(e),\n this.ytpl.qsync(s.va));\n break;\n case 1100431:\n null === this.pb.roots.default.fc.p_1100431.verify(e) && (s = this.pb.roots.default.fc.p_1100431.decode(e),\n \"mobile\" !== this.ws.mode && this.ws.pol_allowyoutube && this.cb.addyoutube(s.v.t),\n \"mobile\" !== this.ws.mode) && this.ytpl.setcur(s.st, s.v);\n break;\n case 1100514:\n null === this.pb.roots.default.fc.p_1100514.verify(e) && (s = this.pb.roots.default.fc.p_1100514.decode(e).cm,\n this.cb.addnormal(s.ts, s.snm, s.suuid, s.ml, s.msg, s.clr, s.sz, s.mn),\n this.playchatsnd());\n break;\n case 1100541:\n null === this.pb.roots.default.fc.p_1100541.verify(e) && null !== (i = (s = this.pb.roots.default.fc.p_1100541.decode(e).cm).snm !== this.ws.username ? this.pmctrl.getpm(s.suuid) : this.pmctrl.getpm(s.ruuid)) && i.receive(s.ts, s.snm, s.suuid, s.ml, s.msg, s.clr, s.sz);\n break;\n case 1100551:\n null === this.pb.roots.default.fc.p_1100551.verify(e) && (s = this.pb.roots.default.fc.p_1100551.decode(e),\n this.pmctrl.notifytaka(s.uuid, s.st));\n break;\n case 1100553:\n null === this.pb.roots.default.fc.p_1100553.verify(e) && (s = this.pb.roots.default.fc.p_1100553.decode(e),\n this.pmctrl.notifypmblock(s.uuid, s.msg));\n break;\n case 1100571:\n null === this.pb.roots.default.fc.p_1100571.verify(e) && ((s = this.pb.roots.default.fc.p_1100571.decode(e)).hasOwnProperty(\"rnm\") ? null !== (i = s.snm !== this.ws.username ? this.pmctrl.getpm(s.suuid) : this.pmctrl.getpm(s.ruuid)) && i.receiveme(s.ts, s.snm, s.suuid, s.msg, s.ml, s.my) : (this.cb.addme(s.ts, s.snm, s.suuid, s.msg, s.ml, s.my),\n this.playchatsnd()));\n break;\n case 1100574:\n var i;\n null === this.pb.roots.default.fc.p_1100574.verify(e) && (0 < (s = this.pb.roots.default.fc.p_1100574.decode(e)).rnm.length ? null !== (i = s.snm !== this.ws.username ? this.pmctrl.getpm(s.suuid) : this.pmctrl.getpm(s.ruuid)) && i.receiveroll(s.snm, s.suuid, s.di, s.sd, s.rs) : (this.cb.addroll(s.snm, s.suuid, s.di, s.sd, s.rs),\n this.playchatsnd()));\n break;\n case 1100614:\n null === this.pb.roots.default.fc.p_1100614.verify(e) && (s = this.pb.roots.default.fc.p_1100614.decode(e),\n this.lo.setup(s.lo),\n this.cb.addsys(s.nm + \" changed the layout\"),\n this.docresize());\n break;\n case 1100811:\n null === this.pb.roots.default.fc.p_1100811.verify(e) && ((s = this.pb.roots.default.fc.p_1100811.decode(e)).nm === this.ws.username && (this.ws.modlvl = 100,\n this.msglimit.updateml(this.ws.modlvl),\n this.tp.refresh(),\n this.tb.refresh()),\n this.ul.moduser(s.uuid),\n this.lo.modchg(s.nm),\n this.cb.addsys(s.mnm + \" modded \" + s.nm));\n break;\n case 1100815:\n null === this.pb.roots.default.fc.p_1100815.verify(e) && ((s = this.pb.roots.default.fc.p_1100815.decode(e)).nm === this.ws.username && (this.ws.modlvl = 0,\n this.msglimit.updateml(this.ws.modlvl),\n this.tp.refresh(),\n this.tb.refresh()),\n this.ul.unmoduser(s.uuid),\n this.lo.modchg(s.nm),\n this.cb.addsys(s.mnm + \" unmodded \" + s.nm));\n break;\n case 1100821:\n null === this.pb.roots.default.fc.p_1100821.verify(e) && (s = this.pb.roots.default.fc.p_1100821.decode(e),\n this.tp.set(s.tpc));\n break;\n case 1100831:\n null === this.pb.roots.default.fc.p_1100831.verify(e) && (s = this.pb.roots.default.fc.p_1100831.decode(e).kick,\n this.cb.addsys(s.mnm + \" kicked \" + s.nm + \" from the room for \" + this.ws.stohr(s.ls) + \" (\" + s.stc + \"/\" + s.stm + \" strikes) \" + (0 < s.rsn.length ? \" (\" + s.rsn + \")\" : \"\")));\n break;\n case 1100841:\n null === this.pb.roots.default.fc.p_1100841.verify(e) && ((s = this.pb.roots.default.fc.p_1100841.decode(e).ban).prm ? this.cb.addsys(s.bnm + \" perma banned \" + s.nm + \" \" + (0 < s.rsn.length ? \" (\" + s.rsn + \")\" : \"\")) : this.cb.addsys(s.bnm + \" banned \" + s.nm + \" for \" + this.ws.stohr(s.rs) + (0 < s.rsn.length ? \" (\" + s.rsn + \")\" : \"\")));\n break;\n case 1100851:\n null === this.pb.roots.default.fc.p_1100851.verify(e) && (s = this.pb.roots.default.fc.p_1100851.decode(e),\n this.cb.addsys(s.mnm + \" purged \" + s.nm),\n this.cb.purge(s.uuid));\n break;\n case 1100621:\n null === this.pb.roots.default.fc.p_1100621.verify(e) && (s = this.pb.roots.default.fc.p_1100621.decode(e).cam,\n this.lo.showcam(s.nm, s.cn, s.cs, this.ul));\n break;\n case 1100627:\n null === this.pb.roots.default.fc.p_1100627.verify(e) && ((s = this.pb.roots.default.fc.p_1100627.decode(e)).hasOwnProperty(\"stp\") && this.cb.addsys(s.stp.mnm + \" stopped your cam for \" + this.ws.stohr(s.stp.ls) + \" [\" + this.ws.stohr(s.stp.rs) + \" remaining]\" + (0 < s.stp.rsn.length ? \" (\" + s.stp.rsn + \")\" : \"\")),\n s.hasOwnProperty(\"cn\")) && this.lo.stopcam(s.cn);\n break;\n case 1100631:\n null === this.pb.roots.default.fc.p_1100631.verify(e) && ((s = this.pb.roots.default.fc.p_1100631.decode(e)).hasOwnProperty(\"stp\") && this.cb.addsys(s.stp.mnm + \" stopped \" + s.stp.nm + \" for \" + this.ws.stohr(s.stp.ls) + (0 < s.stp.rsn.length ? \" (\" + s.stp.rsn + \")\" : \"\")),\n -1 < s.cn) && this.lo.stopcam(s.cn);\n break;\n case 1100635:\n null === this.pb.roots.default.fc.p_1100635.verify(e) && (s = this.pb.roots.default.fc.p_1100635.decode(e).cam,\n this.lo.camsrvchg(s.nm, s.cn, s.cs));\n break;\n case 1100711:\n null === this.pb.roots.default.fc.p_1100711.verify(e) && (s = this.pb.roots.default.fc.p_1100711.decode(e),\n this.lo.offerreq(s.cn, s.ti));\n break;\n case 1100723:\n null === this.pb.roots.default.fc.p_1100723.verify(e) && (s = this.pb.roots.default.fc.p_1100723.decode(e).sdp,\n this.lo.offer(s.cn, s.ti, s.dsc));\n break;\n case 1100735:\n null === this.pb.roots.default.fc.p_1100735.verify(e) && (s = this.pb.roots.default.fc.p_1100735.decode(e).sdp,\n this.lo.answer(s.cn, s.ti, s.dsc));\n break;\n case 1100747:\n null === this.pb.roots.default.fc.p_1100747.verify(e) && (s = this.pb.roots.default.fc.p_1100747.decode(e),\n this.lo.ice(s.cn, s.ti, s.cnd));\n break;\n case 1100798:\n null === this.pb.roots.default.fc.p_1100798.verify(e) && (s = this.pb.roots.default.fc.p_1100798.decode(e),\n this.lo.close(s.cn, s.ti));\n break;\n case 1100881:\n var s;\n null === this.pb.roots.default.fc.p_1100881.verify(e) && (s = this.pb.roots.default.fc.p_1100881.decode(e),\n this.cb.purge(s.uuid),\n this.pmctrl.closeuuid(s.uuid))\n }\n}\n,\nfc.prototype.applypolicy = function(t) {\n this.ws.policyupdate(t),\n this.wndpolicy.set(),\n this.tp.refresh(),\n this.lo.modchg(this.ws.username),\n this.tb.toglyt(),\n this.ul.enguest()\n}\n,\nfc.prototype.applysetting = function(t, e) {\n switch (t) {\n case \"pb\":\n this.pmctrl.enblockpm(1 === e);\n break;\n case \"pt\":\n this.pmctrl.entaka(1 === e);\n break;\n case \"ai\":\n this.status.enautoidle(1 === e);\n break;\n case \"sc\":\n this.enchatsnd(1 === e);\n break;\n case \"sp\":\n this.pmctrl.enrecvsnd(1 === e)\n }\n}\n,\nfc.prototype.enchatsnd = function(t) {\n t ? (this.chatsnd = [],\n this.chatsnd.push(new Audio(\"/sounds/pop02_1.ogg\")),\n this.chatsnd.push(new Audio(\"/sounds/pop02_1.ogg\")),\n this.chatsnd.push(new Audio(\"/sounds/pop02_1.ogg\"))) : this.chatsnd = null\n}\n,\nfc.prototype.playchatsnd = function() {\n null !== this.chatsnd && (this.chatsnd[this.chatsndcnt].play(),\n this.chatsnd[this.chatsndcnt].currentTime = 0,\n this.chatsndcnt++,\n this.chatsndcnt >= this.chatsnd.length) && (this.chatsndcnt = 0)\n}\n,\nfc.prototype.checkcompat = function() {\n if (!window.WebSocket)\n return \"WebSocket not supported by your browser.\";\n if (!window.RTCPeerConnection)\n return \"RTCPeerConnection not supported by your browser.\";\n try {\n window.AudioContext = window.AudioContext || window.webkitAudioContext,\n window.audioContext = new AudioContext\n } catch (t) {\n return \"AudioContext is not supported in this browser (required for volume activity monitors).\"\n }\n return null\n}\n,\nfunction(t) {\n var c = t.Reader\n , i = t.Writer\n , s = t.util\n , r = t.roots.default || (t.roots.default = {});\n function e(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function n(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function o(t) {\n if (this.users = [],\n this.cams = [],\n this.rcm = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function l(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function a(t) {\n if (this.pl = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function u(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function M(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function H(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function h(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function B(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function q(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function D(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function R(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function p(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function d(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Y(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function W(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function U(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function V(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function K(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function F(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function G(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function J(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function X(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Q(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Z(t) {\n if (this.va = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function $(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function tt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function et(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function nt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function m(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function it(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function st(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function ot(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function ct(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function rt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function lt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function at(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function ut(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function f(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function b(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function y(t) {\n if (this.rs = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function ht(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function pt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function dt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function mt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function ft(t) {\n if (this.kv = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function bt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function yt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function _t(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function _(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function gt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function wt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function g(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function vt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function w(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function v(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function k(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function kt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function xt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Ot(t) {\n if (this.sdp = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function jt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Pt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Ct(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function x(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function O(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function j(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function P(t) {\n if (this.cnd = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function C(t) {\n if (this.cnd = [],\n t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Tt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Et(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function T(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function It(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Lt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function E(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Nt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function I(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function St(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function zt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function L(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function At(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function N(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Mt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Ht(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function S(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Bt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function z(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function qt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Dt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Rt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Yt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function Wt(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n function A(t) {\n if (t)\n for (var e = Object.keys(t), n = 0; n < e.length; ++n)\n null != t[e[n]] && (this[e[n]] = t[e[n]])\n }\n r.fc = ((t = {}).p_1100101 = (e.prototype.un = 0,\n e.prototype.uh = 0,\n e.prototype.pv = 0,\n e.encode = function(t, e) {\n return e = e || i.create(),\n null != t.un && Object.hasOwnProperty.call(t, \"un\") && e.uint32(8).int32(t.un),\n null != t.uh && Object.hasOwnProperty.call(t, \"uh\") && e.uint32(16).int32(t.uh),\n null != t.pv && Object.hasOwnProperty.call(t, \"pv\") && e.uint32(24).int32(t.pv),\n e\n }\n ,\n e.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100101; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.un = t.int32();\n break;\n case 2:\n i.uh = t.int32();\n break;\n case 3:\n i.pv = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n e.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.un && t.hasOwnProperty(\"un\") && !s.isInteger(t.un) ? \"un: integer expected\" : null != t.uh && t.hasOwnProperty(\"uh\") && !s.isInteger(t.uh) ? \"uh: integer expected\" : null != t.pv && t.hasOwnProperty(\"pv\") && !s.isInteger(t.pv) ? \"pv: integer expected\" : null\n }\n ,\n e),\n t.p_1200102 = (n.prototype.sid = \"\",\n n.prototype.tk = \"\",\n n.prototype.pw = \"\",\n n.prototype.jo = !1,\n n.prototype.jth = \"\",\n n.prototype.jty = 0,\n n.encode = function(t, e) {\n return e = e || i.create(),\n null != t.sid && Object.hasOwnProperty.call(t, \"sid\") && e.uint32(10).string(t.sid),\n null != t.tk && Object.hasOwnProperty.call(t, \"tk\") && e.uint32(18).string(t.tk),\n null != t.pw && Object.hasOwnProperty.call(t, \"pw\") && e.uint32(26).string(t.pw),\n null != t.jo && Object.hasOwnProperty.call(t, \"jo\") && e.uint32(32).bool(t.jo),\n null != t.jth && Object.hasOwnProperty.call(t, \"jth\") && e.uint32(42).string(t.jth),\n null != t.jty && Object.hasOwnProperty.call(t, \"jty\") && e.uint32(48).int32(t.jty),\n e\n }\n ,\n n.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200102; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.sid = t.string();\n break;\n case 2:\n i.tk = t.string();\n break;\n case 3:\n i.pw = t.string();\n break;\n case 4:\n i.jo = t.bool();\n break;\n case 5:\n i.jth = t.string();\n break;\n case 6:\n i.jty = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n n.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.sid && t.hasOwnProperty(\"sid\") && !s.isString(t.sid) ? \"sid: string expected\" : null != t.tk && t.hasOwnProperty(\"tk\") && !s.isString(t.tk) ? \"tk: string expected\" : null != t.pw && t.hasOwnProperty(\"pw\") && !s.isString(t.pw) ? \"pw: string expected\" : null != t.jo && t.hasOwnProperty(\"jo\") && \"boolean\" != typeof t.jo ? \"jo: boolean expected\" : null != t.jth && t.hasOwnProperty(\"jth\") && !s.isString(t.jth) ? \"jth: string expected\" : null != t.jty && t.hasOwnProperty(\"jty\") && !s.isInteger(t.jty) ? \"jty: integer expected\" : null\n }\n ,\n n),\n t.p_1100103 = (o.prototype.rn = 0,\n o.prototype.lo = 0,\n o.prototype.mn = 0,\n o.prototype.gsc = 0,\n o.prototype.pkc = 0,\n o.prototype.tlc = 0,\n o.prototype.tm = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n o.prototype.nm = \"\",\n o.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n o.prototype.tpc = \"\",\n o.prototype.ml = 0,\n o.prototype.ig = !1,\n o.prototype.st = null,\n o.prototype.cnf = \"\",\n o.prototype.users = s.emptyArray,\n o.prototype.cams = s.emptyArray,\n o.prototype.rcm = s.emptyArray,\n o.prototype.rp = null,\n o.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.rn && Object.hasOwnProperty.call(t, \"rn\") && e.uint32(8).int32(t.rn),\n null != t.lo && Object.hasOwnProperty.call(t, \"lo\") && e.uint32(16).int32(t.lo),\n null != t.mn && Object.hasOwnProperty.call(t, \"mn\") && e.uint32(24).int32(t.mn),\n null != t.gsc && Object.hasOwnProperty.call(t, \"gsc\") && e.uint32(32).int32(t.gsc),\n null != t.pkc && Object.hasOwnProperty.call(t, \"pkc\") && e.uint32(40).int32(t.pkc),\n null != t.tlc && Object.hasOwnProperty.call(t, \"tlc\") && e.uint32(48).int32(t.tlc),\n null != t.tm && Object.hasOwnProperty.call(t, \"tm\") && e.uint32(56).int64(t.tm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(66).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(72).int64(t.uuid),\n null != t.tpc && Object.hasOwnProperty.call(t, \"tpc\") && e.uint32(82).string(t.tpc),\n null != t.ml && Object.hasOwnProperty.call(t, \"ml\") && e.uint32(88).int32(t.ml),\n null != t.ig && Object.hasOwnProperty.call(t, \"ig\") && e.uint32(96).bool(t.ig),\n null != t.st && Object.hasOwnProperty.call(t, \"st\") && r.fc.Status.encode(t.st, e.uint32(106).fork()).ldelim(),\n null != t.cnf && Object.hasOwnProperty.call(t, \"cnf\") && e.uint32(114).string(t.cnf),\n null != t.users && t.users.length)\n for (var n = 0; n < t.users.length; ++n)\n r.fc.User.encode(t.users[n], e.uint32(122).fork()).ldelim();\n if (null != t.cams && t.cams.length)\n for (n = 0; n < t.cams.length; ++n)\n r.fc.Cam.encode(t.cams[n], e.uint32(130).fork()).ldelim();\n if (null != t.rcm && t.rcm.length)\n for (n = 0; n < t.rcm.length; ++n)\n r.fc.ChatMsg.encode(t.rcm[n], e.uint32(138).fork()).ldelim();\n return null != t.rp && Object.hasOwnProperty.call(t, \"rp\") && r.fc.Policy.encode(t.rp, e.uint32(146).fork()).ldelim(),\n e\n }\n ,\n o.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100103; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.rn = t.int32();\n break;\n case 2:\n i.lo = t.int32();\n break;\n case 3:\n i.mn = t.int32();\n break;\n case 4:\n i.gsc = t.int32();\n break;\n case 5:\n i.pkc = t.int32();\n break;\n case 6:\n i.tlc = t.int32();\n break;\n case 7:\n i.tm = t.int64();\n break;\n case 8:\n i.nm = t.string();\n break;\n case 9:\n i.uuid = t.int64();\n break;\n case 10:\n i.tpc = t.string();\n break;\n case 11:\n i.ml = t.int32();\n break;\n case 12:\n i.ig = t.bool();\n break;\n case 13:\n i.st = r.fc.Status.decode(t, t.uint32());\n break;\n case 14:\n i.cnf = t.string();\n break;\n case 15:\n i.users && i.users.length || (i.users = []),\n i.users.push(r.fc.User.decode(t, t.uint32()));\n break;\n case 16:\n i.cams && i.cams.length || (i.cams = []),\n i.cams.push(r.fc.Cam.decode(t, t.uint32()));\n break;\n case 17:\n i.rcm && i.rcm.length || (i.rcm = []),\n i.rcm.push(r.fc.ChatMsg.decode(t, t.uint32()));\n break;\n case 18:\n i.rp = r.fc.Policy.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n o.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.rn && t.hasOwnProperty(\"rn\") && !s.isInteger(t.rn))\n return \"rn: integer expected\";\n if (null != t.lo && t.hasOwnProperty(\"lo\") && !s.isInteger(t.lo))\n return \"lo: integer expected\";\n if (null != t.mn && t.hasOwnProperty(\"mn\") && !s.isInteger(t.mn))\n return \"mn: integer expected\";\n if (null != t.gsc && t.hasOwnProperty(\"gsc\") && !s.isInteger(t.gsc))\n return \"gsc: integer expected\";\n if (null != t.pkc && t.hasOwnProperty(\"pkc\") && !s.isInteger(t.pkc))\n return \"pkc: integer expected\";\n if (null != t.tlc && t.hasOwnProperty(\"tlc\") && !s.isInteger(t.tlc))\n return \"tlc: integer expected\";\n if (null != t.tm && t.hasOwnProperty(\"tm\") && !(s.isInteger(t.tm) || t.tm && s.isInteger(t.tm.low) && s.isInteger(t.tm.high)))\n return \"tm: integer|Long expected\";\n if (null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm))\n return \"nm: string expected\";\n if (null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)))\n return \"uuid: integer|Long expected\";\n if (null != t.tpc && t.hasOwnProperty(\"tpc\") && !s.isString(t.tpc))\n return \"tpc: string expected\";\n if (null != t.ml && t.hasOwnProperty(\"ml\") && !s.isInteger(t.ml))\n return \"ml: integer expected\";\n if (null != t.ig && t.hasOwnProperty(\"ig\") && \"boolean\" != typeof t.ig)\n return \"ig: boolean expected\";\n if (null != t.st && t.hasOwnProperty(\"st\") && (n = r.fc.Status.verify(t.st)))\n return \"st.\" + n;\n if (null != t.cnf && t.hasOwnProperty(\"cnf\") && !s.isString(t.cnf))\n return \"cnf: string expected\";\n if (null != t.users && t.hasOwnProperty(\"users\")) {\n if (!Array.isArray(t.users))\n return \"users: array expected\";\n for (var e = 0; e < t.users.length; ++e)\n if (n = r.fc.User.verify(t.users[e]))\n return \"users.\" + n\n }\n if (null != t.cams && t.hasOwnProperty(\"cams\")) {\n if (!Array.isArray(t.cams))\n return \"cams: array expected\";\n for (e = 0; e < t.cams.length; ++e)\n if (n = r.fc.Cam.verify(t.cams[e]))\n return \"cams.\" + n\n }\n if (null != t.rcm && t.hasOwnProperty(\"rcm\")) {\n if (!Array.isArray(t.rcm))\n return \"rcm: array expected\";\n for (var n, e = 0; e < t.rcm.length; ++e)\n if (n = r.fc.ChatMsg.verify(t.rcm[e]))\n return \"rcm.\" + n\n }\n if (null != t.rp && t.hasOwnProperty(\"rp\") && (n = r.fc.Policy.verify(t.rp)))\n return \"rp.\" + n;\n return null\n }\n ,\n o),\n t.User = (l.prototype.un = 0,\n l.prototype.ml = 0,\n l.prototype.ping = 0,\n l.prototype.ct = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n l.prototype.nm = \"\",\n l.prototype.blk = !1,\n l.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n l.prototype.st = null,\n l.encode = function(t, e) {\n return e = e || i.create(),\n null != t.un && Object.hasOwnProperty.call(t, \"un\") && e.uint32(8).int32(t.un),\n null != t.ml && Object.hasOwnProperty.call(t, \"ml\") && e.uint32(16).int32(t.ml),\n null != t.ping && Object.hasOwnProperty.call(t, \"ping\") && e.uint32(24).int32(t.ping),\n null != t.ct && Object.hasOwnProperty.call(t, \"ct\") && e.uint32(32).int64(t.ct),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(42).string(t.nm),\n null != t.blk && Object.hasOwnProperty.call(t, \"blk\") && e.uint32(48).bool(t.blk),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(56).int64(t.uuid),\n null != t.st && Object.hasOwnProperty.call(t, \"st\") && r.fc.Status.encode(t.st, e.uint32(66).fork()).ldelim(),\n e\n }\n ,\n l.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.User; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.un = t.int32();\n break;\n case 2:\n i.ml = t.int32();\n break;\n case 3:\n i.ping = t.int32();\n break;\n case 4:\n i.ct = t.int64();\n break;\n case 5:\n i.nm = t.string();\n break;\n case 6:\n i.blk = t.bool();\n break;\n case 7:\n i.uuid = t.int64();\n break;\n case 8:\n i.st = r.fc.Status.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n l.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.un && t.hasOwnProperty(\"un\") && !s.isInteger(t.un))\n return \"un: integer expected\";\n if (null != t.ml && t.hasOwnProperty(\"ml\") && !s.isInteger(t.ml))\n return \"ml: integer expected\";\n if (null != t.ping && t.hasOwnProperty(\"ping\") && !s.isInteger(t.ping))\n return \"ping: integer expected\";\n if (null != t.ct && t.hasOwnProperty(\"ct\") && !(s.isInteger(t.ct) || t.ct && s.isInteger(t.ct.low) && s.isInteger(t.ct.high)))\n return \"ct: integer|Long expected\";\n if (null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm))\n return \"nm: string expected\";\n if (null != t.blk && t.hasOwnProperty(\"blk\") && \"boolean\" != typeof t.blk)\n return \"blk: boolean expected\";\n if (null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)))\n return \"uuid: integer|Long expected\";\n if (null != t.st && t.hasOwnProperty(\"st\")) {\n t = r.fc.Status.verify(t.st);\n if (t)\n return \"st.\" + t\n }\n return null\n }\n ,\n l),\n t.p_1100104 = (a.prototype.tm = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n a.prototype.pl = s.emptyArray,\n a.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.tm && Object.hasOwnProperty.call(t, \"tm\") && e.uint32(8).int64(t.tm),\n null != t.pl && t.pl.length)\n for (var n = 0; n < t.pl.length; ++n)\n r.fc.Ping.encode(t.pl[n], e.uint32(18).fork()).ldelim();\n return e\n }\n ,\n a.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100104; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.tm = t.int64();\n break;\n case 2:\n i.pl && i.pl.length || (i.pl = []),\n i.pl.push(r.fc.Ping.decode(t, t.uint32()));\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n a.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.tm && t.hasOwnProperty(\"tm\") && !(s.isInteger(t.tm) || t.tm && s.isInteger(t.tm.low) && s.isInteger(t.tm.high)))\n return \"tm: integer|Long expected\";\n if (null != t.pl && t.hasOwnProperty(\"pl\")) {\n if (!Array.isArray(t.pl))\n return \"pl: array expected\";\n for (var e = 0; e < t.pl.length; ++e) {\n var n = r.fc.Ping.verify(t.pl[e]);\n if (n)\n return \"pl.\" + n\n }\n }\n return null\n }\n ,\n a),\n t.Ping = (u.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n u.prototype.ping = 0,\n u.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.ping && Object.hasOwnProperty.call(t, \"ping\") && e.uint32(16).int32(t.ping),\n e\n }\n ,\n u.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.Ping; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.ping = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n u.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.ping && t.hasOwnProperty(\"ping\") && !s.isInteger(t.ping) ? \"ping: integer expected\" : null\n }\n ,\n u),\n t.p_1100105 = (M.prototype.oruuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n M.prototype.msg = \"\",\n M.encode = function(t, e) {\n return e = e || i.create(),\n null != t.oruuid && Object.hasOwnProperty.call(t, \"oruuid\") && e.uint32(8).int64(t.oruuid),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(18).string(t.msg),\n e\n }\n ,\n M.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100105; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.oruuid = t.int64();\n break;\n case 2:\n i.msg = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n M.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.oruuid && t.hasOwnProperty(\"oruuid\") && !(s.isInteger(t.oruuid) || t.oruuid && s.isInteger(t.oruuid.low) && s.isInteger(t.oruuid.high)) ? \"oruuid: integer|Long expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null\n }\n ,\n M),\n t.p_1100106 = (H.prototype.msg = \"\",\n H.encode = function(t, e) {\n return e = e || i.create(),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(10).string(t.msg),\n e\n }\n ,\n H.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100106; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.msg = t.string() : t.skipType(7 & s)\n }\n return i\n }\n ,\n H.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null\n }\n ,\n H),\n t.p_1100107 = (h.prototype.code = 0,\n h.prototype.cr = \"\",\n h.prototype.sc = \"\",\n h.encode = function(t, e) {\n return e = e || i.create(),\n null != t.code && Object.hasOwnProperty.call(t, \"code\") && e.uint32(8).int32(t.code),\n null != t.cr && Object.hasOwnProperty.call(t, \"cr\") && e.uint32(18).string(t.cr),\n null != t.sc && Object.hasOwnProperty.call(t, \"sc\") && e.uint32(26).string(t.sc),\n e\n }\n ,\n h.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100107; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.code = t.int32();\n break;\n case 2:\n i.cr = t.string();\n break;\n case 3:\n i.sc = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n h.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.code && t.hasOwnProperty(\"code\") && !s.isInteger(t.code) ? \"code: integer expected\" : null != t.cr && t.hasOwnProperty(\"cr\") && !s.isString(t.cr) ? \"cr: string expected\" : null != t.sc && t.hasOwnProperty(\"sc\") && !s.isString(t.sc) ? \"sc: string expected\" : null\n }\n ,\n h),\n t.p_1100210 = (B.prototype.user = null,\n B.encode = function(t, e) {\n return e = e || i.create(),\n null != t.user && Object.hasOwnProperty.call(t, \"user\") && r.fc.User.encode(t.user, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n B.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100210; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.user = r.fc.User.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n B.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.user && t.hasOwnProperty(\"user\")) {\n t = r.fc.User.verify(t.user);\n if (t)\n return \"user.\" + t\n }\n return null\n }\n ,\n B),\n t.p_1100212 = (q.prototype.nm = \"\",\n q.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n q.encode = function(t, e) {\n return e = e || i.create(),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(10).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(16).int64(t.uuid),\n e\n }\n ,\n q.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100212; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.nm = t.string();\n break;\n case 2:\n i.uuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n q.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n q),\n t.p_1100220 = (D.prototype.gsc = 0,\n D.encode = function(t, e) {\n return e = e || i.create(),\n null != t.gsc && Object.hasOwnProperty.call(t, \"gsc\") && e.uint32(8).int32(t.gsc),\n e\n }\n ,\n D.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100220; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.gsc = t.int32() : t.skipType(7 & s)\n }\n return i\n }\n ,\n D.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.gsc && t.hasOwnProperty(\"gsc\") && !s.isInteger(t.gsc) ? \"gsc: integer expected\" : null\n }\n ,\n D),\n t.p_1200311 = (R.prototype.il = !1,\n R.prototype.tm = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n R.encode = function(t, e) {\n return e = e || i.create(),\n null != t.il && Object.hasOwnProperty.call(t, \"il\") && e.uint32(8).bool(t.il),\n null != t.tm && Object.hasOwnProperty.call(t, \"tm\") && e.uint32(16).int64(t.tm),\n e\n }\n ,\n R.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200311; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.il = t.bool();\n break;\n case 2:\n i.tm = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n R.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.il && t.hasOwnProperty(\"il\") && \"boolean\" != typeof t.il ? \"il: boolean expected\" : null != t.tm && t.hasOwnProperty(\"tm\") && !(s.isInteger(t.tm) || t.tm && s.isInteger(t.tm.low) && s.isInteger(t.tm.high)) ? \"tm: integer|Long expected\" : null\n }\n ,\n R),\n t.p_1100321 = (p.prototype.nm = \"\",\n p.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n p.prototype.sn = !1,\n p.prototype.st = null,\n p.encode = function(t, e) {\n return e = e || i.create(),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(10).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(16).int64(t.uuid),\n null != t.sn && Object.hasOwnProperty.call(t, \"sn\") && e.uint32(24).bool(t.sn),\n null != t.st && Object.hasOwnProperty.call(t, \"st\") && r.fc.Status.encode(t.st, e.uint32(34).fork()).ldelim(),\n e\n }\n ,\n p.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100321; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.nm = t.string();\n break;\n case 2:\n i.uuid = t.int64();\n break;\n case 3:\n i.sn = t.bool();\n break;\n case 4:\n i.st = r.fc.Status.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n p.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm))\n return \"nm: string expected\";\n if (null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)))\n return \"uuid: integer|Long expected\";\n if (null != t.sn && t.hasOwnProperty(\"sn\") && \"boolean\" != typeof t.sn)\n return \"sn: boolean expected\";\n if (null != t.st && t.hasOwnProperty(\"st\")) {\n t = r.fc.Status.verify(t.st);\n if (t)\n return \"st.\" + t\n }\n return null\n }\n ,\n p),\n t.Status = (d.prototype.lv = 0,\n d.prototype.ct = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n d.prototype.msg = \"\",\n d.encode = function(t, e) {\n return e = e || i.create(),\n null != t.lv && Object.hasOwnProperty.call(t, \"lv\") && e.uint32(8).int32(t.lv),\n null != t.ct && Object.hasOwnProperty.call(t, \"ct\") && e.uint32(16).int64(t.ct),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(26).string(t.msg),\n e\n }\n ,\n d.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.Status; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.lv = t.int32();\n break;\n case 2:\n i.ct = t.int64();\n break;\n case 3:\n i.msg = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n d.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.lv && t.hasOwnProperty(\"lv\") && !s.isInteger(t.lv) ? \"lv: integer expected\" : null != t.ct && t.hasOwnProperty(\"ct\") && !(s.isInteger(t.ct) || t.ct && s.isInteger(t.ct.low) && s.isInteger(t.ct.high)) ? \"ct: integer|Long expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null\n }\n ,\n d),\n t.p_1200331 = (Y.prototype.cnf = \"\",\n Y.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cnf && Object.hasOwnProperty.call(t, \"cnf\") && e.uint32(10).string(t.cnf),\n e\n }\n ,\n Y.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200331; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cnf = t.string() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Y.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cnf && t.hasOwnProperty(\"cnf\") && !s.isString(t.cnf) ? \"cnf: string expected\" : null\n }\n ,\n Y),\n t.p_1200341 = (W.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n W.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n W.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200341; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n W.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n W),\n t.p_1100341 = (U.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n U.prototype.nm = \"\",\n U.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n e\n }\n ,\n U.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100341; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.nm = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n U.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null\n }\n ,\n U),\n t.p_1200343 = (V.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n V.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n V.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200343; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n V.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n V),\n t.p_1100343 = (K.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n K.prototype.nm = \"\",\n K.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n e\n }\n ,\n K.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100343; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.nm = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n K.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null\n }\n ,\n K),\n t.p_1200410 = (F.prototype.uid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n F.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uid && Object.hasOwnProperty.call(t, \"uid\") && e.uint32(8).int64(t.uid),\n e\n }\n ,\n F.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200410; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n F.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uid && t.hasOwnProperty(\"uid\") && !(s.isInteger(t.uid) || t.uid && s.isInteger(t.uid.low) && s.isInteger(t.uid.high)) ? \"uid: integer|Long expected\" : null\n }\n ,\n F),\n t.p_1100411 = (G.prototype.v = null,\n G.encode = function(t, e) {\n return e = e || i.create(),\n null != t.v && Object.hasOwnProperty.call(t, \"v\") && r.fc.YTVideo.encode(t.v, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n G.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100411; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.v = r.fc.YTVideo.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n G.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.v && t.hasOwnProperty(\"v\")) {\n t = r.fc.YTVideo.verify(t.v);\n if (t)\n return \"v.\" + t\n }\n return null\n }\n ,\n G),\n t.p_1200412 = (J.prototype.uid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n J.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uid && Object.hasOwnProperty.call(t, \"uid\") && e.uint32(8).int64(t.uid),\n e\n }\n ,\n J.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200412; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n J.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uid && t.hasOwnProperty(\"uid\") && !(s.isInteger(t.uid) || t.uid && s.isInteger(t.uid.low) && s.isInteger(t.uid.high)) ? \"uid: integer|Long expected\" : null\n }\n ,\n J),\n t.p_1100413 = (X.prototype.uid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n X.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uid && Object.hasOwnProperty.call(t, \"uid\") && e.uint32(8).int64(t.uid),\n e\n }\n ,\n X.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100413; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n X.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uid && t.hasOwnProperty(\"uid\") && !(s.isInteger(t.uid) || t.uid && s.isInteger(t.uid.low) && s.isInteger(t.uid.high)) ? \"uid: integer|Long expected\" : null\n }\n ,\n X),\n t.p_1200420 = (Q.encode = function(t, e) {\n return e = e || i.create()\n }\n ,\n Q.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, e = new r.fc.p_1200420; t.pos < n; ) {\n var i = t.uint32();\n t.skipType(7 & i)\n }\n return e\n }\n ,\n Q.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null\n }\n ,\n Q),\n t.p_1100421 = (Z.prototype.va = s.emptyArray,\n Z.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.va && t.va.length)\n for (var n = 0; n < t.va.length; ++n)\n r.fc.YTVideo.encode(t.va[n], e.uint32(10).fork()).ldelim();\n return e\n }\n ,\n Z.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100421; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? (i.va && i.va.length || (i.va = []),\n i.va.push(r.fc.YTVideo.decode(t, t.uint32()))) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Z.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.va && t.hasOwnProperty(\"va\")) {\n if (!Array.isArray(t.va))\n return \"va: array expected\";\n for (var e = 0; e < t.va.length; ++e) {\n var n = r.fc.YTVideo.verify(t.va[e]);\n if (n)\n return \"va.\" + n\n }\n }\n return null\n }\n ,\n Z),\n t.p_1200430 = ($.encode = function(t, e) {\n return e = e || i.create()\n }\n ,\n $.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, e = new r.fc.p_1200430; t.pos < n; ) {\n var i = t.uint32();\n t.skipType(7 & i)\n }\n return e\n }\n ,\n $.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null\n }\n ,\n $),\n t.p_1100431 = (tt.prototype.st = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n tt.prototype.v = null,\n tt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.st && Object.hasOwnProperty.call(t, \"st\") && e.uint32(8).int64(t.st),\n null != t.v && Object.hasOwnProperty.call(t, \"v\") && r.fc.YTVideo.encode(t.v, e.uint32(18).fork()).ldelim(),\n e\n }\n ,\n tt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100431; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.st = t.int64();\n break;\n case 2:\n i.v = r.fc.YTVideo.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n tt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.st && t.hasOwnProperty(\"st\") && !(s.isInteger(t.st) || t.st && s.isInteger(t.st.low) && s.isInteger(t.st.high)))\n return \"st: integer|Long expected\";\n if (null != t.v && t.hasOwnProperty(\"v\")) {\n t = r.fc.YTVideo.verify(t.v);\n if (t)\n return \"v.\" + t\n }\n return null\n }\n ,\n tt),\n t.p_1200450 = (et.encode = function(t, e) {\n return e = e || i.create()\n }\n ,\n et.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, e = new r.fc.p_1200450; t.pos < n; ) {\n var i = t.uint32();\n t.skipType(7 & i)\n }\n return e\n }\n ,\n et.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null\n }\n ,\n et),\n t.p_1200455 = (nt.prototype.cuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n nt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cuid && Object.hasOwnProperty.call(t, \"cuid\") && e.uint32(8).int64(t.cuid),\n e\n }\n ,\n nt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200455; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n nt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cuid && t.hasOwnProperty(\"cuid\") && !(s.isInteger(t.cuid) || t.cuid && s.isInteger(t.cuid.low) && s.isInteger(t.cuid.high)) ? \"cuid: integer|Long expected\" : null\n }\n ,\n nt),\n t.YTVideo = (m.prototype.uid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n m.prototype.id = \"\",\n m.prototype.t = \"\",\n m.prototype.l = 0,\n m.prototype.nm = \"\",\n m.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uid && Object.hasOwnProperty.call(t, \"uid\") && e.uint32(8).int64(t.uid),\n null != t.id && Object.hasOwnProperty.call(t, \"id\") && e.uint32(18).string(t.id),\n null != t.t && Object.hasOwnProperty.call(t, \"t\") && e.uint32(26).string(t.t),\n null != t.l && Object.hasOwnProperty.call(t, \"l\") && e.uint32(32).int32(t.l),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(42).string(t.nm),\n e\n }\n ,\n m.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.YTVideo; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uid = t.int64();\n break;\n case 2:\n i.id = t.string();\n break;\n case 3:\n i.t = t.string();\n break;\n case 4:\n i.l = t.int32();\n break;\n case 5:\n i.nm = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n m.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uid && t.hasOwnProperty(\"uid\") && !(s.isInteger(t.uid) || t.uid && s.isInteger(t.uid.low) && s.isInteger(t.uid.high)) ? \"uid: integer|Long expected\" : null != t.id && t.hasOwnProperty(\"id\") && !s.isString(t.id) ? \"id: string expected\" : null != t.t && t.hasOwnProperty(\"t\") && !s.isString(t.t) ? \"t: string expected\" : null != t.l && t.hasOwnProperty(\"l\") && !s.isInteger(t.l) ? \"l: integer expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null\n }\n ,\n m),\n t.p_1200511 = (it.prototype.cm = null,\n it.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cm && Object.hasOwnProperty.call(t, \"cm\") && r.fc.ChatMsg.encode(t.cm, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n it.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200511; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cm = r.fc.ChatMsg.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n it.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cm && t.hasOwnProperty(\"cm\")) {\n t = r.fc.ChatMsg.verify(t.cm);\n if (t)\n return \"cm.\" + t\n }\n return null\n }\n ,\n it),\n t.p_1100514 = (st.prototype.cm = null,\n st.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cm && Object.hasOwnProperty.call(t, \"cm\") && r.fc.ChatMsg.encode(t.cm, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n st.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100514; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cm = r.fc.ChatMsg.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n st.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cm && t.hasOwnProperty(\"cm\")) {\n t = r.fc.ChatMsg.verify(t.cm);\n if (t)\n return \"cm.\" + t\n }\n return null\n }\n ,\n st),\n t.p_1200541 = (ot.prototype.cm = null,\n ot.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cm && Object.hasOwnProperty.call(t, \"cm\") && r.fc.ChatMsg.encode(t.cm, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n ot.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200541; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cm = r.fc.ChatMsg.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n ot.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cm && t.hasOwnProperty(\"cm\")) {\n t = r.fc.ChatMsg.verify(t.cm);\n if (t)\n return \"cm.\" + t\n }\n return null\n }\n ,\n ot),\n t.p_1100541 = (ct.prototype.cm = null,\n ct.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cm && Object.hasOwnProperty.call(t, \"cm\") && r.fc.ChatMsg.encode(t.cm, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n ct.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100541; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cm = r.fc.ChatMsg.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n ct.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cm && t.hasOwnProperty(\"cm\")) {\n t = r.fc.ChatMsg.verify(t.cm);\n if (t)\n return \"cm.\" + t\n }\n return null\n }\n ,\n ct),\n t.p_1200551 = (rt.prototype.st = 0,\n rt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n rt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.st && Object.hasOwnProperty.call(t, \"st\") && e.uint32(8).int32(t.st),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(16).int64(t.uuid),\n e\n }\n ,\n rt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200551; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.st = t.int32();\n break;\n case 2:\n i.uuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n rt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.st && t.hasOwnProperty(\"st\") && !s.isInteger(t.st) ? \"st: integer expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n rt),\n t.p_1100551 = (lt.prototype.st = 0,\n lt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n lt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.st && Object.hasOwnProperty.call(t, \"st\") && e.uint32(8).int32(t.st),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(16).int64(t.uuid),\n e\n }\n ,\n lt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100551; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.st = t.int32();\n break;\n case 2:\n i.uuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n lt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.st && t.hasOwnProperty(\"st\") && !s.isInteger(t.st) ? \"st: integer expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n lt),\n t.p_1200553 = (at.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n at.prototype.msg = \"\",\n at.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(18).string(t.msg),\n e\n }\n ,\n at.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200553; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.msg = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n at.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null\n }\n ,\n at),\n t.p_1100553 = (ut.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n ut.prototype.msg = \"\",\n ut.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(18).string(t.msg),\n e\n }\n ,\n ut.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100553; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.msg = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n ut.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null\n }\n ,\n ut),\n t.ChatMsg = (f.prototype.mn = 0,\n f.prototype.sz = 0,\n f.prototype.ml = 0,\n f.prototype.ts = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n f.prototype.snm = \"\",\n f.prototype.suuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n f.prototype.msg = \"\",\n f.prototype.clr = \"\",\n f.prototype.rnm = \"\",\n f.prototype.ruuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n f.encode = function(t, e) {\n return e = e || i.create(),\n null != t.mn && Object.hasOwnProperty.call(t, \"mn\") && e.uint32(8).int32(t.mn),\n null != t.sz && Object.hasOwnProperty.call(t, \"sz\") && e.uint32(16).int32(t.sz),\n null != t.ml && Object.hasOwnProperty.call(t, \"ml\") && e.uint32(24).int32(t.ml),\n null != t.ts && Object.hasOwnProperty.call(t, \"ts\") && e.uint32(32).int64(t.ts),\n null != t.snm && Object.hasOwnProperty.call(t, \"snm\") && e.uint32(42).string(t.snm),\n null != t.suuid && Object.hasOwnProperty.call(t, \"suuid\") && e.uint32(48).int64(t.suuid),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(58).string(t.msg),\n null != t.clr && Object.hasOwnProperty.call(t, \"clr\") && e.uint32(66).string(t.clr),\n null != t.rnm && Object.hasOwnProperty.call(t, \"rnm\") && e.uint32(74).string(t.rnm),\n null != t.ruuid && Object.hasOwnProperty.call(t, \"ruuid\") && e.uint32(80).int64(t.ruuid),\n e\n }\n ,\n f.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.ChatMsg; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.mn = t.int32();\n break;\n case 2:\n i.sz = t.int32();\n break;\n case 3:\n i.ml = t.int32();\n break;\n case 4:\n i.ts = t.int64();\n break;\n case 5:\n i.snm = t.string();\n break;\n case 6:\n i.suuid = t.int64();\n break;\n case 7:\n i.msg = t.string();\n break;\n case 8:\n i.clr = t.string();\n break;\n case 9:\n i.rnm = t.string();\n break;\n case 10:\n i.ruuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n f.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.mn && t.hasOwnProperty(\"mn\") && !s.isInteger(t.mn) ? \"mn: integer expected\" : null != t.sz && t.hasOwnProperty(\"sz\") && !s.isInteger(t.sz) ? \"sz: integer expected\" : null != t.ml && t.hasOwnProperty(\"ml\") && !s.isInteger(t.ml) ? \"ml: integer expected\" : null != t.ts && t.hasOwnProperty(\"ts\") && !(s.isInteger(t.ts) || t.ts && s.isInteger(t.ts.low) && s.isInteger(t.ts.high)) ? \"ts: integer|Long expected\" : null != t.snm && t.hasOwnProperty(\"snm\") && !s.isString(t.snm) ? \"snm: string expected\" : null != t.suuid && t.hasOwnProperty(\"suuid\") && !(s.isInteger(t.suuid) || t.suuid && s.isInteger(t.suuid.low) && s.isInteger(t.suuid.high)) ? \"suuid: integer|Long expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null != t.clr && t.hasOwnProperty(\"clr\") && !s.isString(t.clr) ? \"clr: string expected\" : null != t.rnm && t.hasOwnProperty(\"rnm\") && !s.isString(t.rnm) ? \"rnm: string expected\" : null != t.ruuid && t.hasOwnProperty(\"ruuid\") && !(s.isInteger(t.ruuid) || t.ruuid && s.isInteger(t.ruuid.low) && s.isInteger(t.ruuid.high)) ? \"ruuid: integer|Long expected\" : null\n }\n ,\n f),\n t.p_1100571 = (b.prototype.ts = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n b.prototype.snm = \"\",\n b.prototype.suuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n b.prototype.rnm = \"\",\n b.prototype.ruuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n b.prototype.msg = \"\",\n b.prototype.ml = 0,\n b.prototype.my = !1,\n b.encode = function(t, e) {\n return e = e || i.create(),\n null != t.ts && Object.hasOwnProperty.call(t, \"ts\") && e.uint32(8).int64(t.ts),\n null != t.snm && Object.hasOwnProperty.call(t, \"snm\") && e.uint32(18).string(t.snm),\n null != t.suuid && Object.hasOwnProperty.call(t, \"suuid\") && e.uint32(24).int64(t.suuid),\n null != t.rnm && Object.hasOwnProperty.call(t, \"rnm\") && e.uint32(34).string(t.rnm),\n null != t.ruuid && Object.hasOwnProperty.call(t, \"ruuid\") && e.uint32(40).int64(t.ruuid),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(50).string(t.msg),\n null != t.ml && Object.hasOwnProperty.call(t, \"ml\") && e.uint32(56).int32(t.ml),\n null != t.my && Object.hasOwnProperty.call(t, \"my\") && e.uint32(64).bool(t.my),\n e\n }\n ,\n b.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100571; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.ts = t.int64();\n break;\n case 2:\n i.snm = t.string();\n break;\n case 3:\n i.suuid = t.int64();\n break;\n case 4:\n i.rnm = t.string();\n break;\n case 5:\n i.ruuid = t.int64();\n break;\n case 6:\n i.msg = t.string();\n break;\n case 7:\n i.ml = t.int32();\n break;\n case 8:\n i.my = t.bool();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n b.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.ts && t.hasOwnProperty(\"ts\") && !(s.isInteger(t.ts) || t.ts && s.isInteger(t.ts.low) && s.isInteger(t.ts.high)) ? \"ts: integer|Long expected\" : null != t.snm && t.hasOwnProperty(\"snm\") && !s.isString(t.snm) ? \"snm: string expected\" : null != t.suuid && t.hasOwnProperty(\"suuid\") && !(s.isInteger(t.suuid) || t.suuid && s.isInteger(t.suuid.low) && s.isInteger(t.suuid.high)) ? \"suuid: integer|Long expected\" : null != t.rnm && t.hasOwnProperty(\"rnm\") && !s.isString(t.rnm) ? \"rnm: string expected\" : null != t.ruuid && t.hasOwnProperty(\"ruuid\") && !(s.isInteger(t.ruuid) || t.ruuid && s.isInteger(t.ruuid.low) && s.isInteger(t.ruuid.high)) ? \"ruuid: integer|Long expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null != t.ml && t.hasOwnProperty(\"ml\") && !s.isInteger(t.ml) ? \"ml: integer expected\" : null != t.my && t.hasOwnProperty(\"my\") && \"boolean\" != typeof t.my ? \"my: boolean expected\" : null\n }\n ,\n b),\n t.p_1100574 = (y.prototype.snm = \"\",\n y.prototype.suuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n y.prototype.rnm = \"\",\n y.prototype.ruuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n y.prototype.di = 0,\n y.prototype.sd = 0,\n y.prototype.rs = s.emptyArray,\n y.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.snm && Object.hasOwnProperty.call(t, \"snm\") && e.uint32(10).string(t.snm),\n null != t.suuid && Object.hasOwnProperty.call(t, \"suuid\") && e.uint32(16).int64(t.suuid),\n null != t.rnm && Object.hasOwnProperty.call(t, \"rnm\") && e.uint32(26).string(t.rnm),\n null != t.ruuid && Object.hasOwnProperty.call(t, \"ruuid\") && e.uint32(32).int64(t.ruuid),\n null != t.di && Object.hasOwnProperty.call(t, \"di\") && e.uint32(40).int32(t.di),\n null != t.sd && Object.hasOwnProperty.call(t, \"sd\") && e.uint32(48).int32(t.sd),\n null != t.rs && t.rs.length) {\n e.uint32(58).fork();\n for (var n = 0; n < t.rs.length; ++n)\n e.int32(t.rs[n]);\n e.ldelim()\n }\n return e\n }\n ,\n y.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100574; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.snm = t.string();\n break;\n case 2:\n i.suuid = t.int64();\n break;\n case 3:\n i.rnm = t.string();\n break;\n case 4:\n i.ruuid = t.int64();\n break;\n case 5:\n i.di = t.int32();\n break;\n case 6:\n i.sd = t.int32();\n break;\n case 7:\n if (i.rs && i.rs.length || (i.rs = []),\n 2 == (7 & s))\n for (var o = t.uint32() + t.pos; t.pos < o; )\n i.rs.push(t.int32());\n else\n i.rs.push(t.int32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n y.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.snm && t.hasOwnProperty(\"snm\") && !s.isString(t.snm))\n return \"snm: string expected\";\n if (null != t.suuid && t.hasOwnProperty(\"suuid\") && !(s.isInteger(t.suuid) || t.suuid && s.isInteger(t.suuid.low) && s.isInteger(t.suuid.high)))\n return \"suuid: integer|Long expected\";\n if (null != t.rnm && t.hasOwnProperty(\"rnm\") && !s.isString(t.rnm))\n return \"rnm: string expected\";\n if (null != t.ruuid && t.hasOwnProperty(\"ruuid\") && !(s.isInteger(t.ruuid) || t.ruuid && s.isInteger(t.ruuid.low) && s.isInteger(t.ruuid.high)))\n return \"ruuid: integer|Long expected\";\n if (null != t.di && t.hasOwnProperty(\"di\") && !s.isInteger(t.di))\n return \"di: integer expected\";\n if (null != t.sd && t.hasOwnProperty(\"sd\") && !s.isInteger(t.sd))\n return \"sd: integer expected\";\n if (null != t.rs && t.hasOwnProperty(\"rs\")) {\n if (!Array.isArray(t.rs))\n return \"rs: array expected\";\n for (var e = 0; e < t.rs.length; ++e)\n if (!s.isInteger(t.rs[e]))\n return \"rs: integer[] expected\"\n }\n return null\n }\n ,\n y),\n t.p_1200611 = (ht.prototype.lo = 0,\n ht.encode = function(t, e) {\n return e = e || i.create(),\n null != t.lo && Object.hasOwnProperty.call(t, \"lo\") && e.uint32(8).int32(t.lo),\n e\n }\n ,\n ht.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200611; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.lo = t.int32() : t.skipType(7 & s)\n }\n return i\n }\n ,\n ht.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.lo && t.hasOwnProperty(\"lo\") && !s.isInteger(t.lo) ? \"lo: integer expected\" : null\n }\n ,\n ht),\n t.p_1100614 = (pt.prototype.lo = 0,\n pt.prototype.nm = \"\",\n pt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.lo && Object.hasOwnProperty.call(t, \"lo\") && e.uint32(8).int32(t.lo),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n e\n }\n ,\n pt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100614; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.lo = t.int32();\n break;\n case 2:\n i.nm = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n pt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.lo && t.hasOwnProperty(\"lo\") && !s.isInteger(t.lo) ? \"lo: integer expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null\n }\n ,\n pt),\n t.p_1200191 = (dt.prototype.rp = null,\n dt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.rp && Object.hasOwnProperty.call(t, \"rp\") && r.fc.Policy.encode(t.rp, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n dt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200191; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.rp = r.fc.Policy.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n dt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.rp && t.hasOwnProperty(\"rp\")) {\n t = r.fc.Policy.verify(t.rp);\n if (t)\n return \"rp.\" + t\n }\n return null\n }\n ,\n dt),\n t.p_1100191 = (mt.prototype.rp = null,\n mt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.rp && Object.hasOwnProperty.call(t, \"rp\") && r.fc.Policy.encode(t.rp, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n mt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100191; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.rp = r.fc.Policy.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n mt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.rp && t.hasOwnProperty(\"rp\")) {\n t = r.fc.Policy.verify(t.rp);\n if (t)\n return \"rp.\" + t\n }\n return null\n }\n ,\n mt),\n t.Policy = (ft.prototype.kv = s.emptyArray,\n ft.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.kv && t.kv.length)\n for (var n = 0; n < t.kv.length; ++n)\n r.fc.KeyValue.encode(t.kv[n], e.uint32(10).fork()).ldelim();\n return e\n }\n ,\n ft.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.Policy; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? (i.kv && i.kv.length || (i.kv = []),\n i.kv.push(r.fc.KeyValue.decode(t, t.uint32()))) : t.skipType(7 & s)\n }\n return i\n }\n ,\n ft.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.kv && t.hasOwnProperty(\"kv\")) {\n if (!Array.isArray(t.kv))\n return \"kv: array expected\";\n for (var e = 0; e < t.kv.length; ++e) {\n var n = r.fc.KeyValue.verify(t.kv[e]);\n if (n)\n return \"kv.\" + n\n }\n }\n return null\n }\n ,\n ft),\n t.KeyValue = (bt.prototype.k = \"\",\n bt.prototype.v = \"\",\n bt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.k && Object.hasOwnProperty.call(t, \"k\") && e.uint32(10).string(t.k),\n null != t.v && Object.hasOwnProperty.call(t, \"v\") && e.uint32(18).string(t.v),\n e\n }\n ,\n bt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.KeyValue; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.k = t.string();\n break;\n case 2:\n i.v = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n bt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.k && t.hasOwnProperty(\"k\") && !s.isString(t.k) ? \"k: string expected\" : null != t.v && t.hasOwnProperty(\"v\") && !s.isString(t.v) ? \"v: string expected\" : null\n }\n ,\n bt),\n t.p_1200621 = (yt.prototype.cn = 0,\n yt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n e\n }\n ,\n yt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200621; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cn = t.int32() : t.skipType(7 & s)\n }\n return i\n }\n ,\n yt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null\n }\n ,\n yt),\n t.p_1100621 = (_t.prototype.cam = null,\n _t.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cam && Object.hasOwnProperty.call(t, \"cam\") && r.fc.Cam.encode(t.cam, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n _t.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100621; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cam = r.fc.Cam.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n _t.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cam && t.hasOwnProperty(\"cam\")) {\n t = r.fc.Cam.verify(t.cam);\n if (t)\n return \"cam.\" + t\n }\n return null\n }\n ,\n _t),\n t.p_1100627 = (_.prototype.cn = 0,\n _.prototype.rsn = \"\",\n _.prototype.stp = null,\n _.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.rsn && Object.hasOwnProperty.call(t, \"rsn\") && e.uint32(18).string(t.rsn),\n null != t.stp && Object.hasOwnProperty.call(t, \"stp\") && r.fc.CamStop.encode(t.stp, e.uint32(26).fork()).ldelim(),\n e\n }\n ,\n _.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100627; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.rsn = t.string();\n break;\n case 3:\n i.stp = r.fc.CamStop.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n _.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn))\n return \"cn: integer expected\";\n if (null != t.rsn && t.hasOwnProperty(\"rsn\") && !s.isString(t.rsn))\n return \"rsn: string expected\";\n if (null != t.stp && t.hasOwnProperty(\"stp\")) {\n t = r.fc.CamStop.verify(t.stp);\n if (t)\n return \"stp.\" + t\n }\n return null\n }\n ,\n _),\n t.p_1200631 = (gt.prototype.cn = 0,\n gt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n e\n }\n ,\n gt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200631; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cn = t.int32() : t.skipType(7 & s)\n }\n return i\n }\n ,\n gt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null\n }\n ,\n gt),\n t.p_1100631 = (wt.prototype.cn = 0,\n wt.prototype.stp = null,\n wt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.stp && Object.hasOwnProperty.call(t, \"stp\") && r.fc.CamStop.encode(t.stp, e.uint32(18).fork()).ldelim(),\n e\n }\n ,\n wt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100631; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.stp = r.fc.CamStop.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n wt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn))\n return \"cn: integer expected\";\n if (null != t.stp && t.hasOwnProperty(\"stp\")) {\n t = r.fc.CamStop.verify(t.stp);\n if (t)\n return \"stp.\" + t\n }\n return null\n }\n ,\n wt),\n t.CamStop = (g.prototype.mnm = \"\",\n g.prototype.nm = \"\",\n g.prototype.rsn = \"\",\n g.prototype.ls = 0,\n g.prototype.rs = 0,\n g.encode = function(t, e) {\n return e = e || i.create(),\n null != t.mnm && Object.hasOwnProperty.call(t, \"mnm\") && e.uint32(10).string(t.mnm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.rsn && Object.hasOwnProperty.call(t, \"rsn\") && e.uint32(26).string(t.rsn),\n null != t.ls && Object.hasOwnProperty.call(t, \"ls\") && e.uint32(32).int32(t.ls),\n null != t.rs && Object.hasOwnProperty.call(t, \"rs\") && e.uint32(40).int32(t.rs),\n e\n }\n ,\n g.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.CamStop; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.mnm = t.string();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.rsn = t.string();\n break;\n case 4:\n i.ls = t.int32();\n break;\n case 5:\n i.rs = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n g.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.mnm && t.hasOwnProperty(\"mnm\") && !s.isString(t.mnm) ? \"mnm: string expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.rsn && t.hasOwnProperty(\"rsn\") && !s.isString(t.rsn) ? \"rsn: string expected\" : null != t.ls && t.hasOwnProperty(\"ls\") && !s.isInteger(t.ls) ? \"ls: integer expected\" : null != t.rs && t.hasOwnProperty(\"rs\") && !s.isInteger(t.rs) ? \"rs: integer expected\" : null\n }\n ,\n g),\n t.p_1100635 = (vt.prototype.cam = null,\n vt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cam && Object.hasOwnProperty.call(t, \"cam\") && r.fc.Cam.encode(t.cam, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n vt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100635; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cam = r.fc.Cam.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n vt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cam && t.hasOwnProperty(\"cam\")) {\n t = r.fc.Cam.verify(t.cam);\n if (t)\n return \"cam.\" + t\n }\n return null\n }\n ,\n vt),\n t.Cam = (w.prototype.cn = 0,\n w.prototype.nm = \"\",\n w.prototype.cs = null,\n w.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.cs && Object.hasOwnProperty.call(t, \"cs\") && r.fc.Camserver.encode(t.cs, e.uint32(26).fork()).ldelim(),\n e\n }\n ,\n w.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.Cam; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.cs = r.fc.Camserver.decode(t, t.uint32());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n w.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn))\n return \"cn: integer expected\";\n if (null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm))\n return \"nm: string expected\";\n if (null != t.cs && t.hasOwnProperty(\"cs\")) {\n t = r.fc.Camserver.verify(t.cs);\n if (t)\n return \"cs.\" + t\n }\n return null\n }\n ,\n w),\n t.Camserver = (v.prototype.fn = \"\",\n v.prototype.lc = \"\",\n v.prototype.ta = \"\",\n v.prototype.tu = \"\",\n v.prototype.tp = \"\",\n v.encode = function(t, e) {\n return e = e || i.create(),\n null != t.fn && Object.hasOwnProperty.call(t, \"fn\") && e.uint32(10).string(t.fn),\n null != t.lc && Object.hasOwnProperty.call(t, \"lc\") && e.uint32(18).string(t.lc),\n null != t.ta && Object.hasOwnProperty.call(t, \"ta\") && e.uint32(26).string(t.ta),\n null != t.tu && Object.hasOwnProperty.call(t, \"tu\") && e.uint32(34).string(t.tu),\n null != t.tp && Object.hasOwnProperty.call(t, \"tp\") && e.uint32(42).string(t.tp),\n e\n }\n ,\n v.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.Camserver; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.fn = t.string();\n break;\n case 2:\n i.lc = t.string();\n break;\n case 3:\n i.ta = t.string();\n break;\n case 4:\n i.tu = t.string();\n break;\n case 5:\n i.tp = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n v.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.fn && t.hasOwnProperty(\"fn\") && !s.isString(t.fn) ? \"fn: string expected\" : null != t.lc && t.hasOwnProperty(\"lc\") && !s.isString(t.lc) ? \"lc: string expected\" : null != t.ta && t.hasOwnProperty(\"ta\") && !s.isString(t.ta) ? \"ta: string expected\" : null != t.tu && t.hasOwnProperty(\"tu\") && !s.isString(t.tu) ? \"tu: string expected\" : null != t.tp && t.hasOwnProperty(\"tp\") && !s.isString(t.tp) ? \"tp: string expected\" : null\n }\n ,\n v),\n t.p_1200711 = (k.prototype.cn = 0,\n k.prototype.op1 = !1,\n k.prototype.op2 = !1,\n k.prototype.op3 = !1,\n k.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.op1 && Object.hasOwnProperty.call(t, \"op1\") && e.uint32(16).bool(t.op1),\n null != t.op2 && Object.hasOwnProperty.call(t, \"op2\") && e.uint32(24).bool(t.op2),\n null != t.op3 && Object.hasOwnProperty.call(t, \"op3\") && e.uint32(32).bool(t.op3),\n e\n }\n ,\n k.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200711; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.op1 = t.bool();\n break;\n case 3:\n i.op2 = t.bool();\n break;\n case 4:\n i.op3 = t.bool();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n k.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.op1 && t.hasOwnProperty(\"op1\") && \"boolean\" != typeof t.op1 ? \"op1: boolean expected\" : null != t.op2 && t.hasOwnProperty(\"op2\") && \"boolean\" != typeof t.op2 ? \"op2: boolean expected\" : null != t.op3 && t.hasOwnProperty(\"op3\") && \"boolean\" != typeof t.op3 ? \"op3: boolean expected\" : null\n }\n ,\n k),\n t.p_1100711 = (kt.prototype.cn = 0,\n kt.prototype.ti = 0,\n kt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n e\n }\n ,\n kt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100711; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n kt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null\n }\n ,\n kt),\n t.p_1200723 = (xt.prototype.sdp = null,\n xt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.sdp && Object.hasOwnProperty.call(t, \"sdp\") && r.fc.SDP.encode(t.sdp, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n xt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200723; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.sdp = r.fc.SDP.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n xt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.sdp && t.hasOwnProperty(\"sdp\")) {\n t = r.fc.SDP.verify(t.sdp);\n if (t)\n return \"sdp.\" + t\n }\n return null\n }\n ,\n xt),\n t.p_1200724 = (Ot.prototype.sdp = s.emptyArray,\n Ot.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.sdp && t.sdp.length)\n for (var n = 0; n < t.sdp.length; ++n)\n r.fc.SDP.encode(t.sdp[n], e.uint32(10).fork()).ldelim();\n return e\n }\n ,\n Ot.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200724; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? (i.sdp && i.sdp.length || (i.sdp = []),\n i.sdp.push(r.fc.SDP.decode(t, t.uint32()))) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Ot.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.sdp && t.hasOwnProperty(\"sdp\")) {\n if (!Array.isArray(t.sdp))\n return \"sdp: array expected\";\n for (var e = 0; e < t.sdp.length; ++e) {\n var n = r.fc.SDP.verify(t.sdp[e]);\n if (n)\n return \"sdp.\" + n\n }\n }\n return null\n }\n ,\n Ot),\n t.p_1100723 = (jt.prototype.sdp = null,\n jt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.sdp && Object.hasOwnProperty.call(t, \"sdp\") && r.fc.SDP.encode(t.sdp, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n jt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100723; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.sdp = r.fc.SDP.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n jt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.sdp && t.hasOwnProperty(\"sdp\")) {\n t = r.fc.SDP.verify(t.sdp);\n if (t)\n return \"sdp.\" + t\n }\n return null\n }\n ,\n jt),\n t.p_1200735 = (Pt.prototype.sdp = null,\n Pt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.sdp && Object.hasOwnProperty.call(t, \"sdp\") && r.fc.SDP.encode(t.sdp, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n Pt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200735; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.sdp = r.fc.SDP.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Pt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.sdp && t.hasOwnProperty(\"sdp\")) {\n t = r.fc.SDP.verify(t.sdp);\n if (t)\n return \"sdp.\" + t\n }\n return null\n }\n ,\n Pt),\n t.p_1100735 = (Ct.prototype.sdp = null,\n Ct.encode = function(t, e) {\n return e = e || i.create(),\n null != t.sdp && Object.hasOwnProperty.call(t, \"sdp\") && r.fc.SDP.encode(t.sdp, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n Ct.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100735; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.sdp = r.fc.SDP.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Ct.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.sdp && t.hasOwnProperty(\"sdp\")) {\n t = r.fc.SDP.verify(t.sdp);\n if (t)\n return \"sdp.\" + t\n }\n return null\n }\n ,\n Ct),\n t.SDP = (x.prototype.cn = 0,\n x.prototype.ti = 0,\n x.prototype.dsc = \"\",\n x.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n null != t.dsc && Object.hasOwnProperty.call(t, \"dsc\") && e.uint32(26).string(t.dsc),\n e\n }\n ,\n x.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.SDP; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n case 3:\n i.dsc = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n x.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null != t.dsc && t.hasOwnProperty(\"dsc\") && !s.isString(t.dsc) ? \"dsc: string expected\" : null\n }\n ,\n x),\n t.p_1200747 = (O.prototype.cn = 0,\n O.prototype.ti = 0,\n O.prototype.cnd = \"\",\n O.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n null != t.cnd && Object.hasOwnProperty.call(t, \"cnd\") && e.uint32(26).string(t.cnd),\n e\n }\n ,\n O.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200747; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n case 3:\n i.cnd = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n O.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null != t.cnd && t.hasOwnProperty(\"cnd\") && !s.isString(t.cnd) ? \"cnd: string expected\" : null\n }\n ,\n O),\n t.p_1100747 = (j.prototype.cn = 0,\n j.prototype.ti = 0,\n j.prototype.cnd = \"\",\n j.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n null != t.cnd && Object.hasOwnProperty.call(t, \"cnd\") && e.uint32(26).string(t.cnd),\n e\n }\n ,\n j.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100747; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n case 3:\n i.cnd = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n j.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null != t.cnd && t.hasOwnProperty(\"cnd\") && !s.isString(t.cnd) ? \"cnd: string expected\" : null\n }\n ,\n j),\n t.p_1200748 = (P.prototype.cn = 0,\n P.prototype.ti = 0,\n P.prototype.cnd = s.emptyArray,\n P.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n null != t.cnd && t.cnd.length)\n for (var n = 0; n < t.cnd.length; ++n)\n e.uint32(26).string(t.cnd[n]);\n return e\n }\n ,\n P.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200748; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n case 3:\n i.cnd && i.cnd.length || (i.cnd = []),\n i.cnd.push(t.string());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n P.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn))\n return \"cn: integer expected\";\n if (null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti))\n return \"ti: integer expected\";\n if (null != t.cnd && t.hasOwnProperty(\"cnd\")) {\n if (!Array.isArray(t.cnd))\n return \"cnd: array expected\";\n for (var e = 0; e < t.cnd.length; ++e)\n if (!s.isString(t.cnd[e]))\n return \"cnd: string[] expected\"\n }\n return null\n }\n ,\n P),\n t.p_1100748 = (C.prototype.cn = 0,\n C.prototype.ti = 0,\n C.prototype.cnd = s.emptyArray,\n C.encode = function(t, e) {\n if (e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n null != t.cnd && t.cnd.length)\n for (var n = 0; n < t.cnd.length; ++n)\n e.uint32(26).string(t.cnd[n]);\n return e\n }\n ,\n C.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100748; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n case 3:\n i.cnd && i.cnd.length || (i.cnd = []),\n i.cnd.push(t.string());\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n C.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn))\n return \"cn: integer expected\";\n if (null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti))\n return \"ti: integer expected\";\n if (null != t.cnd && t.hasOwnProperty(\"cnd\")) {\n if (!Array.isArray(t.cnd))\n return \"cnd: array expected\";\n for (var e = 0; e < t.cnd.length; ++e)\n if (!s.isString(t.cnd[e]))\n return \"cnd: string[] expected\"\n }\n return null\n }\n ,\n C),\n t.p_1200798 = (Tt.prototype.cn = 0,\n Tt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n e\n }\n ,\n Tt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200798; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.cn = t.int32() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Tt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null\n }\n ,\n Tt),\n t.p_1100798 = (Et.prototype.cn = 0,\n Et.prototype.ti = 0,\n Et.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n e\n }\n ,\n Et.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100798; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n Et.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null\n }\n ,\n Et),\n t.p_1200799 = (T.prototype.cn = 0,\n T.prototype.ti = 0,\n T.prototype.er = 0,\n T.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n null != t.er && Object.hasOwnProperty.call(t, \"er\") && e.uint32(24).int32(t.er),\n e\n }\n ,\n T.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200799; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n case 3:\n i.er = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n T.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null != t.er && t.hasOwnProperty(\"er\") && !s.isInteger(t.er) ? \"er: integer expected\" : null\n }\n ,\n T),\n t.p_1200797 = (It.prototype.cn = 0,\n It.prototype.ti = 0,\n It.encode = function(t, e) {\n return e = e || i.create(),\n null != t.cn && Object.hasOwnProperty.call(t, \"cn\") && e.uint32(8).int32(t.cn),\n null != t.ti && Object.hasOwnProperty.call(t, \"ti\") && e.uint32(16).int32(t.ti),\n e\n }\n ,\n It.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200797; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.cn = t.int32();\n break;\n case 2:\n i.ti = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n It.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.cn && t.hasOwnProperty(\"cn\") && !s.isInteger(t.cn) ? \"cn: integer expected\" : null != t.ti && t.hasOwnProperty(\"ti\") && !s.isInteger(t.ti) ? \"ti: integer expected\" : null\n }\n ,\n It),\n t.p_1200811 = (Lt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n Lt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n Lt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200811; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Lt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n Lt),\n t.p_1100811 = (E.prototype.mnm = \"\",\n E.prototype.nm = \"\",\n E.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n E.encode = function(t, e) {\n return e = e || i.create(),\n null != t.mnm && Object.hasOwnProperty.call(t, \"mnm\") && e.uint32(10).string(t.mnm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(24).int64(t.uuid),\n e\n }\n ,\n E.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100811; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.mnm = t.string();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.uuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n E.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.mnm && t.hasOwnProperty(\"mnm\") && !s.isString(t.mnm) ? \"mnm: string expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n E),\n t.p_1200815 = (Nt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n Nt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n Nt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200815; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Nt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n Nt),\n t.p_1100815 = (I.prototype.mnm = \"\",\n I.prototype.nm = \"\",\n I.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n I.encode = function(t, e) {\n return e = e || i.create(),\n null != t.mnm && Object.hasOwnProperty.call(t, \"mnm\") && e.uint32(10).string(t.mnm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(24).int64(t.uuid),\n e\n }\n ,\n I.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100815; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.mnm = t.string();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.uuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n I.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.mnm && t.hasOwnProperty(\"mnm\") && !s.isString(t.mnm) ? \"mnm: string expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n I),\n t.p_1200821 = (St.prototype.tpc = \"\",\n St.encode = function(t, e) {\n return e = e || i.create(),\n null != t.tpc && Object.hasOwnProperty.call(t, \"tpc\") && e.uint32(10).string(t.tpc),\n e\n }\n ,\n St.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200821; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.tpc = t.string() : t.skipType(7 & s)\n }\n return i\n }\n ,\n St.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.tpc && t.hasOwnProperty(\"tpc\") && !s.isString(t.tpc) ? \"tpc: string expected\" : null\n }\n ,\n St),\n t.p_1100821 = (zt.prototype.tpc = \"\",\n zt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.tpc && Object.hasOwnProperty.call(t, \"tpc\") && e.uint32(10).string(t.tpc),\n e\n }\n ,\n zt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100821; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.tpc = t.string() : t.skipType(7 & s)\n }\n return i\n }\n ,\n zt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.tpc && t.hasOwnProperty(\"tpc\") && !s.isString(t.tpc) ? \"tpc: string expected\" : null\n }\n ,\n zt),\n t.p_1200831 = (L.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n L.prototype.rsn = \"\",\n L.prototype.ls = 0,\n L.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.rsn && Object.hasOwnProperty.call(t, \"rsn\") && e.uint32(18).string(t.rsn),\n null != t.ls && Object.hasOwnProperty.call(t, \"ls\") && e.uint32(24).int32(t.ls),\n e\n }\n ,\n L.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200831; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.rsn = t.string();\n break;\n case 3:\n i.ls = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n L.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.rsn && t.hasOwnProperty(\"rsn\") && !s.isString(t.rsn) ? \"rsn: string expected\" : null != t.ls && t.hasOwnProperty(\"ls\") && !s.isInteger(t.ls) ? \"ls: integer expected\" : null\n }\n ,\n L),\n t.p_1100831 = (At.prototype.kick = null,\n At.encode = function(t, e) {\n return e = e || i.create(),\n null != t.kick && Object.hasOwnProperty.call(t, \"kick\") && r.fc.Kick.encode(t.kick, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n At.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100831; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.kick = r.fc.Kick.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n At.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.kick && t.hasOwnProperty(\"kick\")) {\n t = r.fc.Kick.verify(t.kick);\n if (t)\n return \"kick.\" + t\n }\n return null\n }\n ,\n At),\n t.Kick = (N.prototype.mnm = \"\",\n N.prototype.nm = \"\",\n N.prototype.rsn = \"\",\n N.prototype.ls = 0,\n N.prototype.rs = 0,\n N.prototype.stm = 0,\n N.prototype.stc = 0,\n N.encode = function(t, e) {\n return e = e || i.create(),\n null != t.mnm && Object.hasOwnProperty.call(t, \"mnm\") && e.uint32(10).string(t.mnm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.rsn && Object.hasOwnProperty.call(t, \"rsn\") && e.uint32(26).string(t.rsn),\n null != t.ls && Object.hasOwnProperty.call(t, \"ls\") && e.uint32(32).int32(t.ls),\n null != t.rs && Object.hasOwnProperty.call(t, \"rs\") && e.uint32(40).int32(t.rs),\n null != t.stm && Object.hasOwnProperty.call(t, \"stm\") && e.uint32(48).int32(t.stm),\n null != t.stc && Object.hasOwnProperty.call(t, \"stc\") && e.uint32(56).int32(t.stc),\n e\n }\n ,\n N.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.Kick; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.mnm = t.string();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.rsn = t.string();\n break;\n case 4:\n i.ls = t.int32();\n break;\n case 5:\n i.rs = t.int32();\n break;\n case 6:\n i.stm = t.int32();\n break;\n case 7:\n i.stc = t.int32();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n N.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.mnm && t.hasOwnProperty(\"mnm\") && !s.isString(t.mnm) ? \"mnm: string expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.rsn && t.hasOwnProperty(\"rsn\") && !s.isString(t.rsn) ? \"rsn: string expected\" : null != t.ls && t.hasOwnProperty(\"ls\") && !s.isInteger(t.ls) ? \"ls: integer expected\" : null != t.rs && t.hasOwnProperty(\"rs\") && !s.isInteger(t.rs) ? \"rs: integer expected\" : null != t.stm && t.hasOwnProperty(\"stm\") && !s.isInteger(t.stm) ? \"stm: integer expected\" : null != t.stc && t.hasOwnProperty(\"stc\") && !s.isInteger(t.stc) ? \"stc: integer expected\" : null\n }\n ,\n N),\n t.p_1200841 = (Mt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n Mt.prototype.prm = !1,\n Mt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n null != t.prm && Object.hasOwnProperty.call(t, \"prm\") && e.uint32(16).bool(t.prm),\n e\n }\n ,\n Mt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200841; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.uuid = t.int64();\n break;\n case 2:\n i.prm = t.bool();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n Mt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.prm && t.hasOwnProperty(\"prm\") && \"boolean\" != typeof t.prm ? \"prm: boolean expected\" : null\n }\n ,\n Mt),\n t.p_1100841 = (Ht.prototype.ban = null,\n Ht.encode = function(t, e) {\n return e = e || i.create(),\n null != t.ban && Object.hasOwnProperty.call(t, \"ban\") && r.fc.RoomBan.encode(t.ban, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n Ht.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100841; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.ban = r.fc.RoomBan.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Ht.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.ban && t.hasOwnProperty(\"ban\")) {\n t = r.fc.RoomBan.verify(t.ban);\n if (t)\n return \"ban.\" + t\n }\n return null\n }\n ,\n Ht),\n t.RoomBan = (S.prototype.bnm = \"\",\n S.prototype.nm = \"\",\n S.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n S.prototype.rsn = \"\",\n S.prototype.exp = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n S.prototype.rs = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n S.prototype.prm = !1,\n S.encode = function(t, e) {\n return e = e || i.create(),\n null != t.bnm && Object.hasOwnProperty.call(t, \"bnm\") && e.uint32(10).string(t.bnm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(24).int64(t.uuid),\n null != t.rsn && Object.hasOwnProperty.call(t, \"rsn\") && e.uint32(34).string(t.rsn),\n null != t.exp && Object.hasOwnProperty.call(t, \"exp\") && e.uint32(40).int64(t.exp),\n null != t.rs && Object.hasOwnProperty.call(t, \"rs\") && e.uint32(48).int64(t.rs),\n null != t.prm && Object.hasOwnProperty.call(t, \"prm\") && e.uint32(56).bool(t.prm),\n e\n }\n ,\n S.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.RoomBan; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.bnm = t.string();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.uuid = t.int64();\n break;\n case 4:\n i.rsn = t.string();\n break;\n case 5:\n i.exp = t.int64();\n break;\n case 6:\n i.rs = t.int64();\n break;\n case 7:\n i.prm = t.bool();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n S.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.bnm && t.hasOwnProperty(\"bnm\") && !s.isString(t.bnm) ? \"bnm: string expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null != t.rsn && t.hasOwnProperty(\"rsn\") && !s.isString(t.rsn) ? \"rsn: string expected\" : null != t.exp && t.hasOwnProperty(\"exp\") && !(s.isInteger(t.exp) || t.exp && s.isInteger(t.exp.low) && s.isInteger(t.exp.high)) ? \"exp: integer|Long expected\" : null != t.rs && t.hasOwnProperty(\"rs\") && !(s.isInteger(t.rs) || t.rs && s.isInteger(t.rs.low) && s.isInteger(t.rs.high)) ? \"rs: integer|Long expected\" : null != t.prm && t.hasOwnProperty(\"prm\") && \"boolean\" != typeof t.prm ? \"prm: boolean expected\" : null\n }\n ,\n S),\n t.p_1200851 = (Bt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n Bt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n Bt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200851; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Bt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n Bt),\n t.p_1100851 = (z.prototype.mnm = \"\",\n z.prototype.nm = \"\",\n z.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n z.encode = function(t, e) {\n return e = e || i.create(),\n null != t.mnm && Object.hasOwnProperty.call(t, \"mnm\") && e.uint32(10).string(t.mnm),\n null != t.nm && Object.hasOwnProperty.call(t, \"nm\") && e.uint32(18).string(t.nm),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(24).int64(t.uuid),\n e\n }\n ,\n z.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100851; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.mnm = t.string();\n break;\n case 2:\n i.nm = t.string();\n break;\n case 3:\n i.uuid = t.int64();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n z.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.mnm && t.hasOwnProperty(\"mnm\") && !s.isString(t.mnm) ? \"mnm: string expected\" : null != t.nm && t.hasOwnProperty(\"nm\") && !s.isString(t.nm) ? \"nm: string expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n z),\n t.p_1200881 = (qt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n qt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n qt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1200881; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n qt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n qt),\n t.p_1100881 = (Dt.prototype.uuid = s.Long ? s.Long.fromBits(0, 0, !1) : 0,\n Dt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.uuid && Object.hasOwnProperty.call(t, \"uuid\") && e.uint32(8).int64(t.uuid),\n e\n }\n ,\n Dt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.p_1100881; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.uuid = t.int64() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Dt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.uuid && t.hasOwnProperty(\"uuid\") && !(s.isInteger(t.uuid) || t.uuid && s.isInteger(t.uuid.low) && s.isInteger(t.uuid.high)) ? \"uuid: integer|Long expected\" : null\n }\n ,\n Dt),\n t.c_4002 = (Rt.prototype.rn = 0,\n Rt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.rn && Object.hasOwnProperty.call(t, \"rn\") && e.uint32(8).int32(t.rn),\n e\n }\n ,\n Rt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.c_4002; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.rn = t.int32() : t.skipType(7 & s)\n }\n return i\n }\n ,\n Rt.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.rn && t.hasOwnProperty(\"rn\") && !s.isInteger(t.rn) ? \"rn: integer expected\" : null\n }\n ,\n Rt),\n t.c_4003 = (Yt.prototype.kick = null,\n Yt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.kick && Object.hasOwnProperty.call(t, \"kick\") && r.fc.Kick.encode(t.kick, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n Yt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.c_4003; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.kick = r.fc.Kick.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Yt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.kick && t.hasOwnProperty(\"kick\")) {\n t = r.fc.Kick.verify(t.kick);\n if (t)\n return \"kick.\" + t\n }\n return null\n }\n ,\n Yt),\n t.c_4004 = (Wt.prototype.ban = null,\n Wt.encode = function(t, e) {\n return e = e || i.create(),\n null != t.ban && Object.hasOwnProperty.call(t, \"ban\") && r.fc.RoomBan.encode(t.ban, e.uint32(10).fork()).ldelim(),\n e\n }\n ,\n Wt.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.c_4004; t.pos < n; ) {\n var s = t.uint32();\n s >>> 3 == 1 ? i.ban = r.fc.RoomBan.decode(t, t.uint32()) : t.skipType(7 & s)\n }\n return i\n }\n ,\n Wt.verify = function(t) {\n if (\"object\" != typeof t || null === t)\n return \"object expected\";\n if (null != t.ban && t.hasOwnProperty(\"ban\")) {\n t = r.fc.RoomBan.verify(t.ban);\n if (t)\n return \"ban.\" + t\n }\n return null\n }\n ,\n Wt),\n t.c_4009 = (A.prototype.ms = 0,\n A.prototype.msg = \"\",\n A.prototype.jth = \"\",\n A.encode = function(t, e) {\n return e = e || i.create(),\n null != t.ms && Object.hasOwnProperty.call(t, \"ms\") && e.uint32(8).int32(t.ms),\n null != t.msg && Object.hasOwnProperty.call(t, \"msg\") && e.uint32(18).string(t.msg),\n null != t.jth && Object.hasOwnProperty.call(t, \"jth\") && e.uint32(26).string(t.jth),\n e\n }\n ,\n A.decode = function(t, e) {\n t instanceof c || (t = c.create(t));\n for (var n = void 0 === e ? t.len : t.pos + e, i = new r.fc.c_4009; t.pos < n; ) {\n var s = t.uint32();\n switch (s >>> 3) {\n case 1:\n i.ms = t.int32();\n break;\n case 2:\n i.msg = t.string();\n break;\n case 3:\n i.jth = t.string();\n break;\n default:\n t.skipType(7 & s)\n }\n }\n return i\n }\n ,\n A.verify = function(t) {\n return \"object\" != typeof t || null === t ? \"object expected\" : null != t.ms && t.hasOwnProperty(\"ms\") && !s.isInteger(t.ms) ? \"ms: integer expected\" : null != t.msg && t.hasOwnProperty(\"msg\") && !s.isString(t.msg) ? \"msg: string expected\" : null != t.jth && t.hasOwnProperty(\"jth\") && !s.isString(t.jth) ? \"jth: string expected\" : null\n }\n ,\n A),\n t)\n}(protobuf);\n",
"fileId": "f1",
"on": true
},
{
"type": "fileInject",
"fileName": "Beep Toggle",
"file": "const params = new URLSearchParams(window.location.search)\n\nif (params.get('beep') == 'Off') {\n document.getElementById(\"btn_right\").innerHTML += '<a href=\"?beep=On\" class = \"abtn report\">🔇</a>';\n} else {\n document.getElementById(\"btn_right\").innerHTML += '<a href=\"?beep=Off\" class = \"abtn report\">🔈</a>';\n}",
"fileId": "f2",
"fileType": "js",
"injectLocation": "body",
"on": true
}
],
"on": true
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment