diff --git a/codeccomparison.html b/codeccomparison.html new file mode 100644 index 0000000..ca37590 --- /dev/null +++ b/codeccomparison.html @@ -0,0 +1,781 @@ + + + + H.264 Encoder Performance Comparison + + + +
+

H.264 Encoder Performance Comparison

+ +
+
+ + +
+
+ + +
+
+ +
+
+ +
+
+ + + + + \ No newline at end of file diff --git a/devices.html b/devices.html index 7307307..daefcb9 100644 --- a/devices.html +++ b/devices.html @@ -28,6 +28,7 @@
Check for browser and camera capabilities here.
+

🎤 Audio Inputs

@@ -40,13 +41,23 @@

🔉 Audio Outputs

+
+

🔑 Important Device Information

+ +
- + + - + \ No newline at end of file diff --git a/dock.html b/dock.html index c67ecfa..9c783a4 100644 --- a/dock.html +++ b/dock.html @@ -1,58 +1,60 @@ + + diff --git a/iframe.html b/iframe.html index c127a71..9362b52 100644 --- a/iframe.html +++ b/iframe.html @@ -25,7 +25,7 @@ } var container = document.getElementById("container"); var iframe = newElement("iframe", { - allow: "document-domain;encrypted-media;sync-xhr;usb;web-share;cross-origin-isolated;accelerometer;midi;geolocation;autoplay;camera;microphone;fullscreen;picture-in-picture;display-capture;accelerometer;midi;geolocation;autoplay;gyroscope;screen-wake-lock;", + allow: "document-domain;encrypted-media;sync-xhr;usb;web-share;cross-origin-isolated;midi *;geolocation;camera *;microphone *;fullscreen;picture-in-picture;display-capture;accelerometer;autoplay;gyroscope;screen-wake-lock;", src: addUrlParams(iframesrc, ["cleanoutput", "transparent", "hidemenu"]) }); iframe.setAttribute("allowtransparency", "true"); @@ -124,7 +124,6 @@ var consolelog = true; if (e.data.stats){ - console.log(e.data.stats); var out = "
total_inbound_connections:"+e.data.stats.total_inbound_connections; out += "
total_outbound_connections:"+e.data.stats.total_outbound_connections; @@ -143,7 +142,6 @@ if ("action" in e.data && e.data.action !== "loudness") { logOutput("child-page-action: "+e.data.action+"
") - console.log(e.data); } if (e.data.action && (e.data.action == "image-frame-capture")){ diff --git a/index.html b/index.html index cedcb25..0460ed7 100644 --- a/index.html +++ b/index.html @@ -42,7 +42,7 @@ - + @@ -82,7 +82,7 @@ - + -
Learn more about URL parameters at params.vdo.ninja +
Learn more about URL parameters at params.vdo.ninja
@@ -1769,7 +1769,7 @@ Record Remote - @@ -2745,6 +2745,7 @@ `; @@ -27836,6 +28298,7 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { selectionElem.remove(); reject(null); }); + document.querySelectorAll(".desktop-capturer-click").forEach(button => { button.addEventListener("click", async () => { try { @@ -27855,10 +28318,6 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { new_constraints.video.mandatory.maxFrameRate = 1; warnlog(new_constraints); - //if (Firefox){ - // new_constraints = toFirefoxConstraint(new_constraints); - //} - warnlog("navigator.mediaDevices.getUserMedia starting..."); const stream = await window.navigator.mediaDevices.getUserMedia(new_constraints); if (stream.getVideoTracks().length) { @@ -27870,6 +28329,7 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { selectionElem.remove(); } else { var audioStream = false; + // Check if we should capture system audio if (getById("alsoCaptureAudio").checked) { var new_constraints = { audio: { @@ -27886,10 +28346,6 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { new_constraints.video.mandatory.maxFrameRate = 1; warnlog(new_constraints); - //if (Firefox){ - // new_constraints = toFirefoxConstraint(new_constraints); - //} - warnlog("navigator.mediaDevices.getUserMedia starting..."); audioStream = await window.navigator.mediaDevices.getUserMedia(new_constraints); if (audioStream.getVideoTracks().length) { @@ -27899,11 +28355,47 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { } } + // Get the source ID for the selected window const id = button.getAttribute("data-id"); const source = sources.find(source => source.id === id); if (!source) { throw new Error(`Source with id ${id} does not exist`); } + + // Check if we should capture window-specific audio + const sourceName = button.getAttribute("data-name"); + const audioCheckbox = button.querySelector('.capture-window-audio'); + let windowAudioId = null; + + // If window-specific audio is requested + if (audioCheckbox && audioCheckbox.checked) { + // Find the window by name + for (const win of windowsWithAudio) { + if (win.title.includes(sourceName) || sourceName.includes(win.title)) { + windowAudioId = win.id; + break; + } + } + + // Start capturing audio for the specific window + if (windowAudioId) { + try { + // Stop any previous capture + if (capturedAudioStream) { + await windowAudioCapture.stop(); + capturedAudioStream = null; + } + + // Start the capture + capturedAudioStream = await windowAudioCapture.start(windowAudioId); + console.log("Window audio capture started for: " + sourceName); + } catch (e) { + console.error("Failed to capture window audio:", e); + } + } + } + + // Setup normal screen capture var new_constraints = { audio: false, video: { @@ -27930,15 +28422,18 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { } catch (e) {} warnlog(new_constraints); - //if (Firefox){ - // new_constraints = toFirefoxConstraint(new_constraints); - //} warnlog("navigator.mediaDevices.getUserMedia starting..."); const stream = await window.navigator.mediaDevices.getUserMedia(new_constraints); + // Add system audio if available if (audioStream && audioStream.getAudioTracks().length) { stream.addTrack(audioStream.getAudioTracks()[0]); } + + // Add window-specific audio if available + if (capturedAudioStream && capturedAudioStream.getAudioTracks().length) { + stream.addTrack(capturedAudioStream.getAudioTracks()[0]); + } resolve(stream); selectionElem.remove(); @@ -27981,6 +28476,34 @@ if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { } catch(e) { console.error("Error applying Electron/OBS CSS fixes:", e); } + + // Add styles for audio capture checkboxes + const audioCheckboxStyle = document.createElement('style'); + audioCheckboxStyle.textContent = ` + .desktop-capturer-selection__audio-option { + margin-top: 5px; + font-size: 12px; + display: flex; + align-items: center; + justify-content: center; + } + .desktop-capturer-selection__audio-option label { + display: flex; + align-items: center; + cursor: pointer; + } + .desktop-capturer-selection__audio-option input { + margin-right: 5px; + } + .desktop-capturer-selection__audio-option span { + display: flex; + align-items: center; + } + .desktop-capturer-selection__audio-option i { + margin-right: 3px; + } + `; + document.head.appendChild(audioCheckboxStyle); } async function grabScreen(quality = 0, audio = true, videoOnEnd = false) { @@ -28220,6 +28743,13 @@ async function grabScreen(quality = 0, audio = true, videoOnEnd = false) { stream.getVideoTracks()[0].onended = function (e) { // if screen share stops, warnlog(e); + + // Clean up any window-specific audio capture + if (windowAudioCapture && capturedAudioStream) { + windowAudioCapture.stop(); + capturedAudioStream = null; + } + if (session.streamSrc) { session.streamSrc.getVideoTracks().forEach(function (track) { session.streamSrc.removeTrack(track); @@ -28332,7 +28862,7 @@ async function grabScreen(quality = 0, audio = true, videoOnEnd = false) { warnUser(getTranslation("screen-permissions-denied"), false, false); } } else { - if (audio == true) { + if (audio == true) { if (err.name == "NotReadableError") { if (!session.cleanOutput) { warnUser(getTranslation("change-audio-output-device"), false, false); @@ -29935,31 +30465,26 @@ async function grabAudio(selector = "#audioSource", trackid = null, override = f var streams = await getAudioOnly(selector, trackid, override); // Get audio streams - try { - log("STREAMS: " + streams.length); + try { + log("STREAMS: " + streams.length); - for (var i = 0; i < streams.length; i++) { - streams[i].getAudioTracks().forEach(function (track) { - try { - session.streamSrc.addTrack(track); // add video track to the preview video - - track.onended = function () { - errorlog("Track ended unexpectedly"); - if (!session.cleanOutput) { - toggleSettings(true); // forceshow - } - }; - log("ok?"); - // applySavedAudioSettings(track); ## this doesn't work as echo-cancellation(+) needs to be applied via getuserMedia only. - } catch (e) { - errorlog(e); - } - }); - } - } catch (e) { - errorlog(e); - } + for (var i = 0; i < streams.length; i++) { + streams[i].getAudioTracks().forEach(function (track) { + try { + session.streamSrc.addTrack(track); // add video track to the preview video + track.onended = handleAudioTrackEnded; // Add event listener for track end + + log("ok?"); + // applySavedAudioSettings(track); ## this doesn't work as echo-cancellation(+) needs to be applied via getuserMedia only. + } catch (e) { + errorlog(e); + } + }); + } + } catch (e) { + errorlog(e); + } if (Firefox && !FirefoxEnumerated) { if (session.streamSrc && session.streamSrc.getTracks().length) { FirefoxEnumerated = true; @@ -30453,12 +30978,11 @@ session.applySoloChat = function (apply = true) { settings, function (uid) { log("2: " + uid); - try { - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].classList.add("pressed"); - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].ariaPressed = "true"; - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].classList.remove("hint"); - } catch (e) { - warnlog(e); + var button = document.querySelector('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]'); + if (button) { + button.classList.add("pressed"); + button.ariaPressed = "true"; + button.classList.remove("hint"); } }, uuid @@ -30470,12 +30994,11 @@ session.applySoloChat = function (apply = true) { settings, function (uid) { log(uid); - try { - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].classList.remove("pressed"); - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].ariaPressed = "false"; - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].classList.remove("hint"); - } catch (e) { - warnlog(e); + var button = document.querySelector('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]'); + if (button) { + button.classList.remove("pressed"); + button.ariaPressed = "false"; + button.classList.remove("hint"); } }, uuid @@ -30487,12 +31010,11 @@ session.applySoloChat = function (apply = true) { settings, function (uid) { warnlog("muted the output to:" + uid); - try { - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].classList.remove("pressed"); - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].ariaPressed = "false"; - document.querySelectorAll('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]')[0].classList.add("hint"); - } catch (e) { - warnlog(e); + var button = document.querySelector('[data-action-type="solo-chat"][data--u-u-i-d="' + uid + '"]'); + if (button) { + button.classList.remove("pressed"); + button.ariaPressed = "false"; + button.classList.add("hint"); } }, uuid @@ -31378,7 +31900,112 @@ session.postPublish = async function () { }, 400); }, 2000); } + + if (session.poke){ + if (session.poke===true){ + let topic = await generateTopic(session.roomid, session.streamID, false, false, session.hash, window.location.hostname); + await triggerNotification(topic) + } else { + await triggerNotification(session.poke); + } + } + }; +function triggerNotification(topic, customMessage = null) { + if (!topic) return false; + + const message = customMessage || ((session.label ? session.label : 'Someone') + + (session.roomid ? ' joined your room' : ' joined your stream')); + + const notifyUrl = `https://notify.vdo.ninja/?notify=${topic}&message=${encodeURIComponent(message)}`; + + console.log('Sending notification to:', notifyUrl); + + return fetch(notifyUrl) + .then(response => { + console.log('Notification response status:', response.status); + if (!response.ok) { + return response.text().then(text => { + try { + const errorData = JSON.parse(text); + console.error('Notification server error:', errorData); + return false; + } catch (e) { + console.error('Notification error response:', text); + return false; + } + }); + } + + return response.json(); + }) + .then(data => { + if (data === false) return false; + + console.log('Notification result:', data); + + // Check push results to diagnose issues + if (data.pushResults && Array.isArray(data.pushResults)) { + data.pushResults.forEach(result => { + if (!result.success) { + console.warn('Push notification failed:', result); + } + }); + } + + return data.success === true; + }) + .catch(error => { + console.error('Error sending notification:', error); + return false; + }); +} +function hashTopic(text) { + const salt1 = "abc12345ASB234ASD1116"; + const salt2 = "xyzJKL789MNO567PQR890"; + const salt3 = "9843kasdjfh234jhk234j"; + let saltedText = salt1 + text + salt2 + text.split('').reverse().join('') + salt3; + let hash = 0; + if (saltedText.length === 0) return "0"; + for (let i = 0; i < saltedText.length; i++) { + const char = saltedText.charCodeAt(i); + hash = ((hash << 5) - hash) + char; + hash = hash & hash; + } + let hash2 = 0; + for (let i = 0; i < saltedText.length; i++) { + hash2 = ((hash2 << 7) + hash2) + saltedText.charCodeAt(i); + hash2 = hash2 & hash2; + } + const combinedHash = Math.abs(hash).toString(36) + Math.abs(hash2).toString(36); + if (combinedHash.length < 10) { + return combinedHash + Math.random().toString(36).substring(2, 12); + } + return combinedHash; +} + +async function generateTopic(roomId, pushId, viewId, password, hash, domain) { + domain = domain || 'vdo.ninja'; + if (!roomId && !viewId && !pushId) { + console.error('At least one of roomId, viewId or pushId is required'); + return null; + } + const components = { + room: roomId || viewId || pushId, + domain: domain.replace(/\./g, '_') + }; + let sensitiveData = Object.values(components).filter(Boolean).join('_'); + if (hash) { + sensitiveData += `_${hash}`; + } else if (password) { + const passwordHash = await generateHash(password); + sensitiveData += `_${passwordHash}`; + } + const secureTopicHash = hashTopic(sensitiveData); + const finalPrefix = components.domain; + const finalTopic = `${finalPrefix}_${secureTopicHash}`; + return finalTopic; +} async function publishScreen2(constraints, audioList = [], audio = true, overrideFramerate = false) { // webcam stream is used to generated an SDP @@ -33949,73 +34576,158 @@ function setupClosedCaptions() { warnUser(getTranslation("speech-not-suppoted"), false, false); } } - -async function requestGoogleDriveRecord(ele, state = null, bitrate = null) { - var UUID = ele.dataset.UUID || null; - - var filename = UUID; - if (session.rpcs[UUID]) { - filename = session.rpcs[UUID].label || session.rpcs[UUID].streamID || UUID; - } - filename = filename.replace(/[\W]+/g, "_"); - filename = filename.substring(0, 55); - filename += "_" + Date.now().toString(); - - if (SafariVersion) { - filename += ".mp4"; - } else { - filename += ".webm"; - } - - if (!(session.gdrive && session.gdrive.accessToken)) { - session.gdrive = setupGoogleDriveUploader(); - if (session.gdrive.promise) { - log("AWAITING PROMISE"); - try { - await session.gdrive.promise; - } catch (e) { - return; - } - } - } - - log("PROMISE DONE"); - var uploadLink = await session.gdrive.startResumableUpload(filename); - - if (!state && ele.classList.contains("pressed")) { - var msg = {}; - msg.requestVideoRecord = false; - msg.googleDriveRecord = false; - msg.UUID = UUID; - session.sendRequest(msg, msg.UUID); - ele.classList.remove("pressed"); - ele.ariaPressed = "false"; - } else if (state == null || state) { - var msg = {}; - msg.requestVideoRecord = true; - msg.googleDriveRecord = uploadLink; - msg.UUID = UUID; - if (bitrate === null) { - window.focus(); - //bitrate = await promptAlt(getTranslation("what-bitrate"), false, false, 6000); - let response = await promptRecordingOptions(getTranslation("what-bitrate-gdrive")); - if (response) { - msg.value = response.bitrate; - msg.recordConfig = response; - session.sendRequest(msg, msg.UUID); - ele.classList.add("pressed"); - ele.ariaPressed = "true"; // "btn-HL-green" - } else { - return; - } - } else { - msg.value = bitrate; - session.sendRequest(msg, msg.UUID); - ele.classList.add("pressed"); - ele.ariaPressed = "true"; // "btn-HL-green" - } - } - pokeIframeAPI("request-video-record", msg.requestVideoRecord, UUID); +async function requestGoogleDriveRecord(ele, state = null, bitrate = null, event = null) { + var UUID = ele.dataset.UUID || null; + // Handle CTRL+click for selection + if (event && (event.ctrlKey || event.metaKey)) { + ele.classList.toggle("armed"); + ele.ariaPressed = ele.classList.contains("armed") ? "true" : "false"; + + // Add callback only once for all armed buttons + if (document.querySelectorAll('[data-action-type="recorder-google-drive-remote"].armed').length === 1 && + ele.classList.contains("armed")) { + Callbacks.push([multiGdriveRecord]); + } + return; + } + // Single button normal operation + if (!state && ele.classList.contains("pressed")) { + var msg = {}; + msg.requestVideoRecord = false; + msg.googleDriveRecord = false; + msg.UUID = UUID; + session.sendRequest(msg, msg.UUID); + ele.classList.remove("pressed"); + ele.ariaPressed = "false"; + } else if (state == null || state) { + if (!(session.gdrive && session.gdrive.accessToken)) { + session.gdrive = setupGoogleDriveUploader(); + if (session.gdrive.promise) { + log("AWAITING PROMISE"); + try { + // Make sure we're initialized before requesting a token + await session.gdrive.ensureInitialized(); + session.gdrive.requestAccessToken(); + await session.gdrive.promise; + console.log("Promise resolved with token"); + } catch (e) { + console.error("Error getting token:", e); + ele.classList.remove("armed"); + return; + } + } + } + + var filename = UUID; + if (session.rpcs[UUID]) { + filename = session.rpcs[UUID].label || session.rpcs[UUID].streamID || UUID; + } + filename = filename.replace(/[\W]+/g, "_"); + filename = filename.substring(0, 55); + filename += "_" + Date.now().toString(); + if (SafariVersion) { + filename += ".mp4"; + } else { + filename += ".webm"; + } + + log("PROMISE DONE"); + var uploadLink = await session.gdrive.startResumableUpload(filename); + + var msg = {}; + msg.requestVideoRecord = true; + msg.googleDriveRecord = uploadLink; + msg.UUID = UUID; + + if (bitrate === null) { + window.focus(); + let response = await promptRecordingOptions(getTranslation("what-bitrate-gdrive")); + if (response) { + msg.value = response.bitrate; + msg.recordConfig = response; + session.sendRequest(msg, msg.UUID); + ele.classList.add("pressed"); + ele.ariaPressed = "true"; + ele.classList.remove("armed"); + } else { + ele.classList.remove("armed"); + return; + } + } else { + msg.value = bitrate; + session.sendRequest(msg, msg.UUID); + ele.classList.add("pressed"); + ele.ariaPressed = "true"; + ele.classList.remove("armed"); + } + + pokeIframeAPI("request-video-record", msg.requestVideoRecord, UUID); + } +} +async function multiGdriveRecord() { + const armedButtons = document.querySelectorAll('[data-action-type="recorder-google-drive-remote"].armed'); + if (!armedButtons.length) return; + + armedButtons.forEach(button => { + button.classList.remove("armed"); + button.ariaPressed = "false"; + }); + + // Get recording settings once for all buttons + window.focus(); + let response = await promptRecordingOptions(getTranslation("what-bitrate-gdrive")); + if (!response) { + return; + } + + // Set up Google Drive authentication once + if (!(session.gdrive && session.gdrive.accessToken)) { + session.gdrive = setupGoogleDriveUploader(); + if (session.gdrive.promise) { + try { + await session.gdrive.promise; + } catch (e) { + // Auth failed, clean up armed buttons + armedButtons.forEach(button => { + button.classList.remove("armed"); + button.ariaPressed = "false"; + }); + return; + } + } + } + + // Process each armed button with the same settings + for (const button of armedButtons) { + const UUID = button.dataset.UUID || null; + + // Generate unique filename for each recording + const filename = ((session.rpcs[UUID] && (session.rpcs[UUID].label || session.rpcs[UUID].streamID)) || UUID) + .replace(/[\W]+/g, "_") + .substring(0, 55) + + "_" + Date.now().toString() + + (SafariVersion ? ".mp4" : ".webm"); + + // Get upload link for each recording + const uploadLink = await session.gdrive.startResumableUpload(filename); + + // Create message with shared settings + const msg = { + requestVideoRecord: true, + googleDriveRecord: uploadLink, + UUID: UUID, + value: response.bitrate, + recordConfig: response + }; + + // Send request and update button state + session.sendRequest(msg, msg.UUID); + button.classList.add("pressed"); + button.classList.remove("armed"); + button.ariaPressed = "true"; + + pokeIframeAPI("request-video-record", true, UUID); + } } async function requestVideoRecord(ele, state = null, bitrate = null) { @@ -41240,335 +41952,372 @@ function setHotKey(keyinput = true) { } function setupGoogleDriveUploader(filename = false, sessionUri = false) { - if (!session.gdrive) { - session.gdrive = {}; - session.gdrive.accessToken = false; - } + if (!session.gdrive) { + session.gdrive = {}; + session.gdrive.accessToken = false; + } - var gdrive = {}; - var gapiClient = false; - var tokenClient; - var uploading = false; - var tokenClientGood = false; - var tokenChain = {}; + var gdrive = {}; + var uploading = false; + var tokenClient; + var isInitialized = false; + var initializationPromise; - const DISCOVERY_DOC = "https://www.googleapis.com/discovery/v1/apis/drive/v3/rest"; - const SCOPES = "https://www.googleapis.com/auth/drive.file"; + const SCOPES = "https://www.googleapis.com/auth/drive.file"; - var totalChunksRecorded = 0; - var totalChunksUploaded = 0; - var currentByte = 0; - var chunks = new Blob([]); - var finalized = false; + var totalChunksRecorded = 0; + var totalChunksUploaded = 0; + var currentByte = 0; + var chunks = new Blob([]); + var finalized = false; - gdrive.promise = false; - gdrive.sessionUri = sessionUri; + gdrive.promise = false; + gdrive.sessionUri = sessionUri; + + // Create an initialization promise to track when everything is ready + initializationPromise = new Promise((resolve, reject) => { + // We'll resolve this when the token client is fully initialized + if (!gdrive.sessionUri) { + loadScript("https://accounts.google.com/gsi/client", function() { + log("Google Identity Services loaded"); + initTokenClient(); + resolve(); + }); + } else { + resolve(); + } + }); - if (!filename && !sessionUri) { - var res, rej; - gdrive.promise = new Promise((resolve, reject) => { - res = resolve; - rej = reject; - }); - gdrive.promise.resolve = res; - gdrive.promise.reject = rej; - } + // Setup the authentication promise + if (!filename && !sessionUri) { + var res, rej; + gdrive.promise = new Promise((resolve, reject) => { + res = resolve; + rej = reject; + }); + gdrive.promise.resolve = res; + gdrive.promise.reject = rej; + } - gdrive.startResumableUpload = async function (fname, retry = true) { - console.log("startResumableUpload", retry); + gdrive.startResumableUpload = async function(fname, retry = true) { + console.log("startResumableUpload", retry); - const fileMetadata = { name: fname }; + const fileMetadata = { name: fname }; - if (session.GDRIVE_FOLDERNAME) { - let folderId = null; + if (session.GDRIVE_FOLDERNAME) { + let folderId = null; - const query = `name = '${session.GDRIVE_FOLDERNAME}' and mimeType = 'application/vnd.google-apps.folder' and 'root' in parents and trashed = false`; - const url = `https://www.googleapis.com/drive/v3/files?q=${encodeURIComponent(query)}`; + const query = `name = '${session.GDRIVE_FOLDERNAME}' and mimeType = 'application/vnd.google-apps.folder' and 'root' in parents and trashed = false`; + const url = `https://www.googleapis.com/drive/v3/files?q=${encodeURIComponent(query)}`; - const response = await fetch(url, { - method: "GET", - headers: { - Authorization: "Bearer " + session.gdrive.accessToken - } - }); + const response = await fetch(url, { + method: "GET", + headers: { + Authorization: "Bearer " + session.gdrive.accessToken + } + }); - const result = await response.json(); + const result = await response.json(); - if (result.files && result.files.length > 0) { - // Assuming the first found folder is the one we want - folderId = result.files[0].id; - } + if (result.files && result.files.length > 0) { + folderId = result.files[0].id; + } - if (!folderId) { - log("creating new folder as folder not found."); - try { - const folderMetadata = { - name: session.GDRIVE_FOLDERNAME, - mimeType: "application/vnd.google-apps.folder" - }; + if (!folderId) { + log("creating new folder as folder not found."); + try { + const folderMetadata = { + name: session.GDRIVE_FOLDERNAME, + mimeType: "application/vnd.google-apps.folder" + }; - const createResponse = await fetch("https://www.googleapis.com/drive/v3/files", { - method: "POST", - headers: { - Authorization: "Bearer " + session.gdrive.accessToken, - "Content-Type": "application/json" - }, - body: JSON.stringify(folderMetadata) - }); + const createResponse = await fetch("https://www.googleapis.com/drive/v3/files", { + method: "POST", + headers: { + Authorization: "Bearer " + session.gdrive.accessToken, + "Content-Type": "application/json" + }, + body: JSON.stringify(folderMetadata) + }); - const createResult = await createResponse.json(); - folderId = createResult.id; - } catch (e) { - errorlog(e); - } - } + const createResult = await createResponse.json(); + folderId = createResult.id; + } catch (e) { + errorlog(e); + } + } - if (folderId) { - fileMetadata.parents = [folderId]; - } - } - // log("STARTING UPLOADING"); - const metadata = new Blob([JSON.stringify(fileMetadata)], { type: "application/json" }); - try { - var response = await fetch("https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable", { - method: "POST", - headers: { - Authorization: "Bearer " + session.gdrive.accessToken, - "Content-Type": "application/json; charset=UTF-8" - }, - body: metadata - }); - if (!response.ok) { - if (!session.cleanOutput) { - warnUser("⚠️ Error: Failed to configure the Google Drive upload."); - } - throw new Error("Start resumable upload failed: " + response.statusText); - } - return response.headers.get("Location"); // This is the session URI for the resumable upload - } catch (err) { - errorlog(err); - try { - if (retry) { - session.gdrive.accessToken = false; - var res, rej; - gdrive.promise = new Promise((resolve, reject) => { - res = resolve; - rej = reject; - }); - gdrive.promise.resolve = res; - gdrive.promise.reject = rej; - filename = false; - tokenClient.requestAccessToken({ prompt: gapi.client.getToken() ? "" : "consent" }); - await gdrive.promise; + if (folderId) { + fileMetadata.parents = [folderId]; + } + } - if (session.gdrive.accessToken) { - return await gdrive.startResumableUpload(fname, false); - } else { - return false; - } - } - } catch (err2) { - errorlog(err2); - return false; - } - } - }; + const metadata = new Blob([JSON.stringify(fileMetadata)], { type: "application/json" }); + try { + var response = await fetch("https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable", { + method: "POST", + headers: { + Authorization: "Bearer " + session.gdrive.accessToken, + "Content-Type": "application/json; charset=UTF-8" + }, + body: metadata + }); + if (!response.ok) { + if (!session.cleanOutput) { + warnUser("⚠️ Error: Failed to configure the Google Drive upload."); + } + throw new Error("Start resumable upload failed: " + response.statusText); + } + return response.headers.get("Location"); // This is the session URI for the resumable upload + } catch (err) { + errorlog(err); + try { + if (retry) { + session.gdrive.accessToken = false; + var res, rej; + gdrive.promise = new Promise((resolve, reject) => { + res = resolve; + rej = reject; + }); + gdrive.promise.resolve = res; + gdrive.promise.reject = rej; + filename = false; + + // Make sure we're initialized before requesting token + await gdrive.ensureInitialized(); + tokenClient.requestAccessToken(); + await gdrive.promise; - if (!gdrive.sessionUri) { - loadScript("https://apis.google.com/js/api.js", function () { - log("Google API loaded"); - gapiLoaded(); // Call the function that initializes gapi - }); + if (session.gdrive.accessToken) { + return await gdrive.startResumableUpload(fname, false); + } else { + return false; + } + } + } catch (err2) { + errorlog(err2); + return false; + } + } + }; - loadScript("https://accounts.google.com/gsi/client", function () { - log("Google Identity Services loaded"); - gisLoaded(); // Call the function that initializes Google Identity Services - }); - } + function initTokenClient() { + console.log("Initializing GIS token client"); + tokenClient = google.accounts.oauth2.initTokenClient({ + client_id: session.GDRIVE_CLIENT_ID, + scope: SCOPES, + callback: onTokenResponse, + error_callback: onTokenError + }); + + isInitialized = true; + + // If we have no promise yet but the user requested access, set one up + if (!gdrive.promise && !sessionUri && !filename) { + var res, rej; + gdrive.promise = new Promise((resolve, reject) => { + res = resolve; + rej = reject; + }); + gdrive.promise.resolve = res; + gdrive.promise.reject = rej; + } + + // If we have a filename, request token automatically + if (filename) { + console.log("Requesting access token for immediate upload"); + setTimeout(() => { + tokenClient.requestAccessToken(); + }, 500); // Small delay to ensure tokenClient is fully initialized + } + } - function gapiLoaded() { - console.log("gapiLoaded"); - gapi.load("client", initializeGapiClient); - } + function onTokenError(response) { + console.warn("Token error:", response); + if (gdrive.promise && gdrive.promise.reject) { + gdrive.promise.reject(response); + } + } - async function initializeGapiClient() { - console.log("initializeGapiClient"); - await gapi.client.init({ apiKey: session.GDRIVE_API_KEY, discoveryDocs: [DISCOVERY_DOC] }); + async function onTokenResponse(tokenResponse) { + console.log("Token response received", tokenResponse); + + if (tokenResponse.error === "popup_closed_by_user" || tokenResponse.error === "access_denied") { + errorlog("User cancelled the sign-in process."); + if (gdrive.promise && gdrive.promise.reject) { + gdrive.promise.reject(new Error("User cancelled authentication")); + } + } else if (tokenResponse.error !== undefined) { + errorlog("Token error: " + tokenResponse.error); + if (gdrive.promise && gdrive.promise.reject) { + gdrive.promise.reject(new Error(tokenResponse.error)); + } + } else { + // Successfully got access token + console.log("Access token obtained successfully"); + session.gdrive.accessToken = tokenResponse.access_token; + + if (filename) { + try { + gdrive.sessionUri = await gdrive.startResumableUpload(filename); + console.log("Session URI:", gdrive.sessionUri); + uploadLoop(); + } catch (e) { + console.error("Error starting upload:", e); + if (gdrive.promise && gdrive.promise.reject) { + gdrive.promise.reject(e); + } + return; + } + } + + // Always resolve the promise if we got a token successfully + if (gdrive.promise && gdrive.promise.resolve) { + console.log("Resolving promise with access token"); + gdrive.promise.resolve(tokenResponse.access_token); + } + } + } - if (tokenClient) { - tokenClient.requestAccessToken({ prompt: gapi.client.getToken() ? "" : "consent" }); - if (tokenClientGood) { - session.gdrive.accessToken = gapi.auth.getToken().access_token; - if (filename) { - gdrive.sessionUri = await gdrive.startResumableUpload(filename); - console.log(gdrive.sessionUri); - uploadLoop(); - } else if (gdrive.promise && gdrive.promise.resolve) { - gdrive.promise.resolve(); - } - } else { - gapiClient = true; - } - } else { - gapiClient = true; - } - } + // Check if initialized and wait if not + gdrive.ensureInitialized = async function() { + if (!isInitialized) { + console.log("Waiting for initialization to complete..."); + await initializationPromise; + console.log("Initialization complete"); + } + }; - async function gisLoaded() { - console.log("gisLoaded"); - tokenClient = google.accounts.oauth2.initTokenClient({ - client_id: session.GDRIVE_CLIENT_ID, - scope: SCOPES, - callback: onTokenResponse, - error_callback: onTokenError - }); - } - function onTokenError(response) { - console.warn(response); - if (gdrive.promise.reject) { - gdrive.promise.reject(); - } - } - async function onTokenResponse(response) { - console.log("onTokenResponse"); - if (response.error === "popup_closed_by_user" || response.error === "access_denied") { - errorlog("User cancelled the sign-in process."); - if (gdrive.promise.reject) { - gdrive.promise.reject(); - } - } else if (response.error !== undefined) { - if (gdrive.promise.reject) { - gdrive.promise.reject(); - } - } else if (gapiClient) { - tokenClient.requestAccessToken({ prompt: gapi.client.getToken() ? "" : "consent" }); - tokenChain = gapi.auth.getToken(); - session.gdrive.accessToken = tokenChain.access_token; - if (filename) { - gdrive.sessionUri = await gdrive.startResumableUpload(filename); - console.log(gdrive.sessionUri); - uploadLoop(); - } else if (gdrive.promise && gdrive.promise.resolve) { - gdrive.promise.resolve(); - } - } else { - tokenClientGood = true; - } - } - function handleSignoutClick() { - console.log("handleSignoutClick"); - const token = gapi.client.getToken(); - if (token) { - google.accounts.oauth2.revoke(token.access_token); - gapi.client.setToken(""); - } - } + // Function to manually request access token + gdrive.requestAccessToken = async function() { + await gdrive.ensureInitialized(); + + if (tokenClient) { + console.log("Manually requesting access token"); + tokenClient.requestAccessToken(); + } else { + console.error("Token client not initialized"); + if (gdrive.promise && gdrive.promise.reject) { + gdrive.promise.reject(new Error("Token client not initialized")); + } + } + }; - /// the following doesn't need to be signed in; just access to the gdrive.sessionUri URL + gdrive.revokeToken = function() { + if (session.gdrive.accessToken) { + google.accounts.oauth2.revoke(session.gdrive.accessToken, () => { + console.log('Access token revoked'); + session.gdrive.accessToken = false; + }); + } + }; - gdrive.addChunk = function (chunk) { - if (chunk && chunks) { - totalChunksRecorded += chunk.size; - chunks = new Blob([chunks, chunk], { type: chunk.type }); - if (!session.cleanOutput) { - getById("progressContainer").classList.remove("hidden"); - } - updateProgressBar(); - } else if (chunk === false) { - finalized = true; - } - uploadLoop(); - }; - async function uploadLoop() { - if (uploading || !gdrive.sessionUri) { - return; - } - uploading = true; - while (chunks && (finalized || chunks.size > 256 * 1024)) { - if (finalized) { - var chunk = chunks.slice(0, chunks.size); - let res = await finalizeUpload(chunk); - log(res); - return; - } else { - var chunkSize = Math.floor(chunks.size / (256 * 1024)) * (256 * 1024); - var chunk = chunks.slice(0, chunkSize); - chunks = chunks.slice(chunkSize); - } - currentByte = await uploadChunk(chunk); - } - uploading = false; - } - async function uploadChunk(chunk) { - const endByte = currentByte + chunk.size - 1; - totalChunksUploaded += chunk.size; - const headers = new Headers({ - "Content-Range": `bytes ${currentByte}-${endByte}/*` - }); - const response = await fetch(gdrive.sessionUri, { - method: "PUT", - headers: headers, - body: chunk - }); - if (!response.ok && response.status !== 308) { - throw new Error(`Failed to upload chunk: ${response.statusText}`); - } - updateProgressBar(); - return endByte + 1; - } - async function finalizeUpload(chunk) { - const endByte = currentByte + chunk.size - 1; - const headers = new Headers({ - "Content-Range": `bytes ${currentByte}-${endByte}/${endByte + 1}` - }); - const response = await fetch(gdrive.sessionUri, { - method: "PUT", - headers: headers, - body: chunk - }); - if (chunk) { - totalChunksUploaded += chunk.size; - } - updateProgressBar(2); + /// the following doesn't need to be signed in; just access to the gdrive.sessionUri URL - return response.json(); - } - function updateProgressBar(state = 0) { - if (state == 2) { - setTimeout(function () { - if (getById("progressBar").style.width == "100%") { - getById("progressContainer").classList.add("hidden"); - } - }, 1000); - getById("progressBar").style.width = "100%"; - var msg = {}; - //if (altUUID){ - // msg.alt = true - //} - msg.gdrive = { up: parseInt(totalChunksUploaded / 1024), rec: parseInt(totalChunksUploaded / 1024), state: state }; - for (var i = 0; i < session.directorList.length; i++) { - msg.UUID = session.directorList[i]; - session.sendMessage(msg, msg.UUID); - } - } else if (totalChunksRecorded > 0) { - var progressPercentage = (totalChunksUploaded / (totalChunksRecorded || 1)) * 100; - var bytesLeft = parseInt((totalChunksRecorded - totalChunksUploaded) / 1024); - getById("progressBar").style.width = progressPercentage + "%"; - getById("progressBar").innerHTML = "Upload progress to Google Drive: " + progressPercentage.toFixed(2) + "%, with " + convertKilobytes(bytesLeft) + " left"; + gdrive.addChunk = function(chunk) { + if (chunk && chunks) { + totalChunksRecorded += chunk.size; + chunks = new Blob([chunks, chunk], { type: chunk.type }); + if (!session.cleanOutput) { + getById("progressContainer").classList.remove("hidden"); + } + updateProgressBar(); + } else if (chunk === false) { + finalized = true; + } + uploadLoop(); + }; - var msg = {}; - //if (altUUID){ - // msg.alt = true - //} - msg.gdrive = { up: parseInt(totalChunksUploaded / 1024), rec: parseInt(totalChunksRecorded / 1024), state: state }; - for (var i = 0; i < session.directorList.length; i++) { - msg.UUID = session.directorList[i]; - session.sendMessage(msg, msg.UUID); - } - } - } - return gdrive; + async function uploadLoop() { + if (uploading || !gdrive.sessionUri) { + return; + } + uploading = true; + while (chunks && (finalized || chunks.size > 256 * 1024)) { + if (finalized) { + var chunk = chunks.slice(0, chunks.size); + let res = await finalizeUpload(chunk); + log(res); + return; + } else { + var chunkSize = Math.floor(chunks.size / (256 * 1024)) * (256 * 1024); + var chunk = chunks.slice(0, chunkSize); + chunks = chunks.slice(chunkSize); + } + currentByte = await uploadChunk(chunk); + } + uploading = false; + } + + async function uploadChunk(chunk) { + const endByte = currentByte + chunk.size - 1; + totalChunksUploaded += chunk.size; + const headers = new Headers({ + "Content-Range": `bytes ${currentByte}-${endByte}/*` + }); + const response = await fetch(gdrive.sessionUri, { + method: "PUT", + headers: headers, + body: chunk + }); + if (!response.ok && response.status !== 308) { + throw new Error(`Failed to upload chunk: ${response.statusText}`); + } + updateProgressBar(); + return endByte + 1; + } + + async function finalizeUpload(chunk) { + const endByte = currentByte + chunk.size - 1; + const headers = new Headers({ + "Content-Range": `bytes ${currentByte}-${endByte}/${endByte + 1}` + }); + const response = await fetch(gdrive.sessionUri, { + method: "PUT", + headers: headers, + body: chunk + }); + if (chunk) { + totalChunksUploaded += chunk.size; + } + updateProgressBar(2); + + return response.json(); + } + + function updateProgressBar(state = 0) { + // Implementation unchanged + if (state == 2) { + setTimeout(function() { + if (getById("progressBar").style.width == "100%") { + getById("progressContainer").classList.add("hidden"); + } + }, 1000); + getById("progressBar").style.width = "100%"; + var msg = {}; + msg.gdrive = { up: parseInt(totalChunksUploaded / 1024), rec: parseInt(totalChunksUploaded / 1024), state: state }; + for (var i = 0; i < session.directorList.length; i++) { + msg.UUID = session.directorList[i]; + session.sendMessage(msg, msg.UUID); + } + } else if (totalChunksRecorded > 0) { + var progressPercentage = (totalChunksUploaded / (totalChunksRecorded || 1)) * 100; + var bytesLeft = parseInt((totalChunksRecorded - totalChunksUploaded) / 1024); + getById("progressBar").style.width = progressPercentage + "%"; + getById("progressBar").innerHTML = "Upload progress to Google Drive: " + progressPercentage.toFixed(2) + "%, with " + convertKilobytes(bytesLeft) + " left"; + + var msg = {}; + msg.gdrive = { up: parseInt(totalChunksUploaded / 1024), rec: parseInt(totalChunksRecorded / 1024), state: state }; + for (var i = 0; i < session.directorList.length; i++) { + msg.UUID = session.directorList[i]; + session.sendMessage(msg, msg.UUID); + } + } + } + + return gdrive; } + function convertKilobytes(kilobytes) { const KB_IN_MB = 1024; const KB_IN_GB = 1024 * 1024; @@ -41923,6 +42672,8 @@ async function recordVideo(target, event = null, videoKbps = false) { if (session.record === false) { warnlog("recordings are disabled by decree of thy host magistrate"); } + + if (!target){return;} var UUID = target.dataset.UUID; @@ -42081,15 +42832,7 @@ async function recordVideo(target, event = null, videoKbps = false) { // - var timestamp = Date.now(); - var filename = ""; - if (session.rpcs[UUID].label || session.rpcs[UUID].streamID) { - filename = session.rpcs[UUID].label || session.rpcs[UUID].streamID; - filename = filename.replace(/[\W]+/g, "_"); - filename = filename.substring(0, 200); - } - filename += "_" + timestamp.toString(); var cancell = false; if (typeof video.srcObject === "undefined" || !video.srcObject) { @@ -42126,6 +42869,8 @@ async function recordVideo(target, event = null, videoKbps = false) { target ); } + + video.recording = false; updateLocalRecordButton(UUID, -2); @@ -42268,6 +43013,18 @@ async function recordVideo(target, event = null, videoKbps = false) { // video.recorder.dropbox = await streamVideoToDropbox(); //} } + + var timestamp = Date.now(); + var filename = ""; + if (session.rpcs[UUID].label && session.rpcs[UUID].streamID) { + filename = session.rpcs[UUID].label || session.rpcs[UUID].streamID; + } else { + filename = session.rpcs[UUID].label + "_" + session.rpcs[UUID].streamID; + } + + filename = filename.replace(/[\W]+/g, "_"); + filename = filename.substring(0, 200); + filename += "_" + timestamp.toString(); var writer = writable.getWriter(); video.recorder.writer = writer; @@ -46166,6 +46923,20 @@ async function targetGuest(target, action, value = null) { } else { return false; } + } else if (action == 29 || action == "mixorder") { + var element = getGuestTarget("order-down", target); + if (element) { + if (value === true) { + changeOrder(+1,element.dataset.UUID); + } else if (value === false) { + changeOrder(-1,element.dataset.UUID); + } else { + changeOrder(value,element.dataset.UUID); + } + return true; + } else { + return false; + } } else if (action == "startRoomTimer") { var element = getGuestTarget("create-timer", target); if (element) { @@ -49411,7 +50182,53 @@ function setupCommands() { playbackMIDI(data); return true; }; - + + commands.zoom = function (value = null, value2 = null) { + if (value !== null) { + const zoomValue = parseFloat(value); + const isAbsolute = value2 === true || value2 === "true" || value2 === "abs"; + session.remoteZoom(zoomValue, isAbsolute); + return { zoom: zoomValue, absolute: isAbsolute }; + } + return false; + }; + + commands.focus = function (value = null, value2 = null) { + if (value !== null) { + const focusValue = parseFloat(value); + session.remoteFocus(focusValue); + return { focus: focusValue }; + } + return false; + }; + + commands.pan = function (value = null, value2 = null) { + if (value !== null) { + const panValue = parseFloat(value); + session.remotePan(panValue); + return { pan: panValue }; + } + return false; + }; + + commands.tilt = function (value = null, value2 = null) { + if (value !== null) { + const tiltValue = parseFloat(value); + session.remoteTilt(tiltValue); + return { tilt: tiltValue }; + } + return false; + }; + + commands.exposure = function (value = null, value2 = null) { + if (value !== null) { + const exposureValue = parseFloat(value); + session.remoteExposure(exposureValue); + return { exposure: exposureValue }; + } + return false; + }; + commands.soloVideo = function (value = null, value2 = null) { var element = getById("highlightDirector"); if (value && value == "toggle") { @@ -49516,12 +50333,12 @@ function setupCommands() { response.index = value; } else if (checkType(value) === "Array") { log(value); - session.layout_array = value; - if (session.layout_array){ + session.layout_array = value; + if (session.layout_array){ session.layout = combinedLayout(session.layout_array); } updateMixer(); - + if (session.director) { issueLayout("0"); response.issued = true; @@ -49591,20 +50408,48 @@ function setupCommands() { if (session.director) { var combined = {}; for (var i = 0; i < temp.length; i++) { - if (!temp[i] || !("slot" in temp[i])) { - continue; + if (!temp[i]) continue; + + let streamID = null; + + // First check if there's a slot assigned + if ("slot" in temp[i]) { + const slotNumber = parseInt(temp[i].slot) + 1; + streamID = session.currentSlots[slotNumber]; } - // Find stream ID for this slot from session.currentSlots directly - const slotNumber = parseInt(temp[i].slot) + 1; - let streamID = session.currentSlots[slotNumber]; - - if (!streamID) { - warnlog("Slot target not found?"); - continue; + // If no stream found via slot, check defaultStreamID + if (!streamID && temp[i].defaultStreamID) { + // Check if this defaultStreamID is connected and not assigned to another slot + let isConnected = false; + let isAlreadyAssigned = false; + + for (let j in session.rpcs) { + if (session.rpcs[j].streamID === temp[i].defaultStreamID) { + isConnected = true; + // Check if this stream is assigned to any slot + for (let slot in session.currentSlots) { + if (session.currentSlots[slot] === temp[i].defaultStreamID) { + isAlreadyAssigned = true; + break; + } + } + break; + } + } + + if (isConnected && !isAlreadyAssigned) { + streamID = temp[i].defaultStreamID; + } } - combined[streamID] = temp[i]; + // If we found a streamID, use it, otherwise add to empty slot + if (streamID) { + combined[streamID] = temp[i]; + } else { + if (!combined[""]) combined[""] = []; + combined[""].push(temp[i]); + } } session.layout = combined; log("issuing layout:"); @@ -49674,7 +50519,7 @@ async function processMessage(data) { } else if (data.value == "false") { data.value = false; } - return Commands[data.action](data.value); + return Commands[data.action](data.value, data.value2 || null); } else { return Commands[data.action](); } @@ -49795,6 +50640,41 @@ function midiHotkeysNote(note, velocity = false) { } } } +/* if (velocity !== false && typeof velocity !== "undefined") { + // Get integer value of velocity + const velocityValue = parseInt(velocity); + + // Check if valid MIDI velocity (0-127) + if (!isNaN(velocityValue) && velocityValue >= 0 && velocityValue <= 127) { + // Camera control MIDI commands using Channel 1, various CC numbers + if (note == "C5") { + // Zoom - scale 0-127 to percentage or use relative value + const normalizedValue = velocityValue / 127; // 0 to 1 range + session.remoteZoom(normalizedValue, true); // absolute value + return { zoom: normalizedValue, absolute: true }; + } else if (note == "D5") { + // Focus - scale 0-127 to focus value + const normalizedValue = velocityValue / 127; // 0 to 1 range + session.remoteFocus(normalizedValue); + return { focus: normalizedValue }; + } else if (note == "E5") { + // Pan - scale 0-127 to pan value + const normalizedValue = (velocityValue - 64) / 64; // -1 to 1 range + session.remotePan(normalizedValue); + return { pan: normalizedValue }; + } else if (note == "F5") { + // Tilt - scale 0-127 to tilt value + const normalizedValue = (velocityValue - 64) / 64; // -1 to 1 range + session.remoteTilt(normalizedValue); + return { tilt: normalizedValue }; + } else if (note == "G5") { + // Exposure - scale 0-127 to exposure value + const normalizedValue = velocityValue / 127; // 0 to 1 range + session.remoteExposure(normalizedValue); + return { exposure: normalizedValue }; + } + } + } */ } function getRightOrderedElement(selector, guestslot, UUID = false) { @@ -51541,28 +52421,33 @@ function stopSecondScreenshare() { errorlog(e); } } - - session.screenStream.getTracks().forEach(function (track) { - // previous video track; saving it. Must remove the track at some point. - for (UUID in session.pcs) { - if (!("realUUID" in session.pcs[UUID])) { - continue; - } // not a screen share, so skip - var senders = getSenders2(UUID); - senders.forEach(sender => { - // I suppose there could be a race condition between negotiating and updating this. if joining at the same time as changnig streams? - if (sender.track && sender.track.kind == "video") { - sender.track.enabled = false; - } - }); - } - if (track.id in screenshareTracks) { - // obs isn't included, so no point to check track.kind - session.screenStream.removeTrack(track); - track.stop(); - screenshareTracks[track.id] = false; - } - }); + if (session.screenStream){ + session.screenStream.getTracks().forEach(function (track) { + // previous video track; saving it. Must remove the track at some point. + for (UUID in session.pcs) { + if (!("realUUID" in session.pcs[UUID])) { + continue; + } // not a screen share, so skip + var senders = getSenders2(UUID); + senders.forEach(sender => { + // I suppose there could be a race condition between negotiating and updating this. if joining at the same time as changnig streams? + if (sender.track && sender.track.kind == "video") { + sender.track.enabled = false; + } + }); + } + if (track.id in screenshareTracks) { + // obs isn't included, so no point to check track.kind + session.screenStream.removeTrack(track); + track.stop(); + screenshareTracks[track.id] = false; + } + }); + } + if (document.getElementById("container_screen_director")){ + document.getElementById("container_screen_director") + } + session.screenStream = false; session.screenShareState = false; pokeIframeAPI("screen-share-state", session.screenShareState, null, session.streamID); @@ -51578,6 +52463,10 @@ function stopSecondScreenshare() { getById("screenshare3button").classList.remove("green"); getById("screenshare3button").ariaPressed = "false"; getById("screenshare3button").title = getTranslation("share-a-screen"); + + if (document.getElementById("screensharesource")){ + document.getElementById("screensharesource").load() + } setTimeout(function () { updateMixer(); diff --git a/main.css b/main.css index 6330832..066c0dc 100644 --- a/main.css +++ b/main.css @@ -639,7 +639,7 @@ button.hint { width: 100%; padding: 1px; color: #FFF; - min-height: 20px; + background-color: #0005; } #head1{ display: inline-block; @@ -1591,9 +1591,6 @@ button.btnArmTransferRoom.selected{ #gridlayout>#container.vidcon { height:85% } - #header{ - min-height:0px; - } } @media only screen and (max-height: 300px){ #gridlayout>#container.vidcon { @@ -4621,13 +4618,13 @@ a#reshare { .video-meter { padding:0.5vh; display:block; - width:0.5vh; - height:0.5vh; + width: min(1vh, 1vw); + height: min(1vh, 1vw); min-width:10px; min-height:10px; top: 2vh; right: 2vh; - background-color:green; + background-color:#00c300; position:absolute; border-radius: 2vh; pointer-events:none; @@ -4707,17 +4704,41 @@ a#reshare { .PPTActive { box-shadow: 0px 0px 10px green; } + + .video-mute-state { - top: 2vh; - right: 2vh; - position: absolute; - color:white; - border-radius: 2vh; - background-color:#b11313; - padding: 2px 2px 2px 1px; - z-index: 2; + top: 2vh; + right: 2vh; + position: absolute; + color: white; + border-radius: 2vh; + background-color: #b11313; + padding: 2px 2px 2px 1px; + z-index: 2; } +.video-mute-state.unmuted { + background-color: green; +} + +.video-mute-state .la-microphone { + display: none; +} + +.video-mute-state .la-microphone-slash { + display: inline-block; +} + +.video-mute-state.unmuted .la-microphone { + display: inline-block; +} + +.video-mute-state.unmuted .la-microphone-slash { + display: none; +} + + + .video-mute-state-userlist { display:inline-block; color:white; @@ -5281,7 +5302,6 @@ iframe.insecure { max-height: 500px; overflow: hidden; } - .desktop-capturer-selection { position: fixed; top: 0; @@ -5343,7 +5363,39 @@ iframe.insecure { overflow: hidden; } -.video-zoom-slider { +/* New styles for audio capture checkboxes */ +.desktop-capturer-selection__audio-option { + margin-top: 5px; + font-size: 12px; + display: flex; + align-items: center; + justify-content: center; +} +.desktop-capturer-selection__audio-option label { + display: flex; + align-items: center; + cursor: pointer; + padding: 4px; + border-radius: 3px; + background: rgba(60,60,60,0.5); +} +.desktop-capturer-selection__audio-option label:hover { + background: rgba(80,80,80,0.7); +} +.desktop-capturer-selection__audio-option input { + margin-right: 5px; + width: 14px; + height: 14px; +} +.desktop-capturer-selection__audio-option span { + display: flex; + align-items: center; +} +.desktop-capturer-selection__audio-option i { + margin-right: 3px; + font-size: 14px; +} +.video-zoom-slider0 { position: absolute; bottom: 45px; left: 10px; @@ -5358,12 +5410,12 @@ iframe.insecure { z-index: 5; } -.video-zoom-slider:hover, +.video-zoom-slider0:hover, .video-container:hover .video-zoom-slider { opacity: 1; } -.video-zoom-slider input[type="range"] { +.video-zoom-slider0 input[type="range"] { width: 100%; height: 6px; -webkit-appearance: none; @@ -5372,7 +5424,7 @@ iframe.insecure { cursor: pointer; } -.video-zoom-slider input[type="range"]::-webkit-slider-thumb { +.video-zoom-slider0 input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; @@ -5380,7 +5432,68 @@ iframe.insecure { border-radius: 50%; } -.video-zoom-slider input[type="range"]::-moz-range-thumb { +.video-zoom-slider0 input[type="range"]::-moz-range-thumb { + width: 20px; + height: 20px; + background: white; + border: none; + border-radius: 50%; + cursor: pointer; +} + +.video-ptz-controls { + position: absolute; + bottom: 45px; + left: 10px; + right: 10px; + background: rgba(0,0,0,0.5); + display: flex; + flex-direction: column; + padding: 10px 15px; + opacity: 0.3; + transition: opacity 0.3s; + z-index: 5; +} + +.video-ptz-controls:hover, +.video-container:hover .video-ptz-controls { + opacity: 1; +} + +.video-zoom-slider, +.video-pan-slider, +.video-tilt-slider { + display: flex; + align-items: center; + margin: 5px 0; + width: 100%; +} + +.video-ptz-controls label { + color: white; + font-size: 12px; + margin-right: 10px; + min-width: 40px; +} + +.video-ptz-controls input[type="range"] { + flex: 1; + height: 6px; + -webkit-appearance: none; + background: rgba(255,255,255,0.2); + border-radius: 3px; + cursor: pointer; +} + +.video-ptz-controls input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + width: 20px; + height: 20px; + background: white; + border-radius: 50%; +} + +.video-ptz-controls input[type="range"]::-moz-range-thumb { width: 20px; height: 20px; background: white; diff --git a/main.js b/main.js index fc090f6..f58bcf0 100644 --- a/main.js +++ b/main.js @@ -14,7 +14,8 @@ async function main() { // translation stuff start //// var ConfigSettings = getById("main-js"); - + let ln_template = null; + try { if (ConfigSettings) { ln_template = ConfigSettings.getAttribute("data-translation"); // Translations @@ -29,10 +30,17 @@ async function main() { ln_template = urlParams.get("ln") || urlParams.get("language") || null; } else if (session.language) { ln_template = session.language; + } else { + const storedLanguage = localStorage.getItem("vdo_ninja_language"); + if (storedLanguage) { + ln_template = storedLanguage; + session.language = storedLanguage; + } } } catch (e) { errorlog(e); } + if (ln_template === null) { getById("mainmenu").style.opacity = 1; } else if (ln_template !== false) { @@ -108,7 +116,9 @@ async function main() { if (urlParams.has("mutestatus") || urlParams.has("showmutestate") || urlParams.has("showmuted")){ session.showMuteState = true; } - + if (urlParams.has("unmutestatus") || urlParams.has("showunmutestate") || urlParams.has("showunmuted")){ + session.showUnMuteState = true; + } if (urlParams.has("cleanviewer") || urlParams.has("cv")) { session.cleanViewer = true; } @@ -245,6 +255,9 @@ async function main() { setStorage("settings", encodeURI(window.location.href), 90); //} } + } else if (isIFrame && !window.obsstudio && urlParams.has("sticky")) { + session.sticky = true; + getById("saveRoom").style.display = "none"; } if (urlParams.has("safemode")) { @@ -259,19 +272,21 @@ async function main() { } if (navigator.userAgent.toLowerCase().indexOf(" electron/") > -1) { - try { - //getById("electronDragZone").style.cursor="grab"; - //getById("header").style.height = "max(calc(2% + 20px), 40px)"; - if (!ipcRenderer) { - ipcRenderer = require("electron").ipcRenderer; - } - if (ipcRenderer) { - window.prompt = function (title, val) { - return ipcRenderer.sendSync("prompt", { title, val }); // call if needed in the future - }; - } - //ipcRenderer.sendSync('prompt', {title, val}); // call now -- but why? - } catch (e) {} + try { + //getById("electronDragZone").style.cursor="grab"; + //getById("header").style.height = "max(calc(2% + 20px), 40px)"; + + // Override window.prompt to use Electron's dialog via the contextBridge + if (window.electronApi && window.electronApi.prompt) { + window.prompt = function (title, val) { + return window.electronApi.prompt({ title, val }); + }; + } else { + console.warn("electronApi prompt function not available"); + } + } catch (e) { + console.error("Error setting up Electron prompt:", e); + } } if (window.electronApi && window.electronApi.exposeDoSomethingInWebApp) { @@ -1418,6 +1433,9 @@ async function main() { if (urlParams.has("zoomslider")) { session.zoomSlider = true; } + if (urlParams.has("ptzslider")) { + session.ptzSlider = true; + } if (urlParams.get("viewslot")) { session.viewslot = parseInt(urlParams.get("viewslot")) || false; @@ -1637,7 +1655,7 @@ async function main() { } if (urlParams.has("cover")) { - session.cover = true; + session.cover = urlParams.get("cover") || true; document.documentElement.style.setProperty("--fit-style", "cover"); document.documentElement.style.setProperty("--myvideo-max-width", "100vw"); document.documentElement.style.setProperty("--myvideo-width", "100vw"); @@ -1856,6 +1874,27 @@ async function main() { } } } + + // lets a guest join a scene on their own ... but + // doesn't work if the director or scene isn't already loaded. + // requires &openscene on the director to be added + if (urlParams.has("joinscene") || urlParams.has("joinscenes")) { // list of scenes to auto join. + let sceneValues = urlParams.get("joinscene") || urlParams.get("joinscenes"); + if (sceneValues){ + sceneValues = sceneValues.split(","); + session.requestscenes = sceneValues.map(scene => { + scene = scene.trim(); + if (typeof scene === "string") { + return scene.replace(/[\W]+/g, "_"); + } else { + return (parseInt(scene) || 0) + ""; + } + }); + } + } // .. but requires openscene to be set on the target scene. + if (urlParams.has("openscene") || urlParams.has("openscenes")) { + session.openscene = true; + } if (urlParams.has("solo")) { if (session.scene === false) { @@ -1882,6 +1921,26 @@ async function main() { session.noiframe = []; session.cleanOutput = true; } + + if (urlParams.has('timeouts')) { + try { + // Process each value, preserving existing ones when no value provided + // &timeouts=1000,3000 (updates first two values, keeps rest) + // &timeouts=,,,10 (updates only 4th value) + // &timeouts= (no changes) + // &timeouts=1000,abc,3000 (updates first and third, ignores invalid value) + urlParams.get('timeouts').split(',').forEach((val, index) => { + if (val !== '') { + const parsedVal = parseInt(val, 10); + if (!isNaN(parsedVal)) { + session.reconnectSpeed[index] = parsedVal; + } + } + }); + } catch(e){ + errorlog(e); + } + } if (urlParams.has("retransmit")) { session.retransmit = true; @@ -2304,6 +2363,9 @@ async function main() { // could be brute forced in theory, so not as safe as just not using a hash check. session.taintedSession = null; // waiting to see if valid or not. var hash_input = urlParams.get("hash") || urlParams.get("crc") || urlParams.get("check"); + if (hash_input){ + hash_input = hash_input.trim(); // yes. really. + } if (session.password === false) { window.focus(); session.password = await promptAlt(getTranslation("enter-password-2"), true, true); @@ -2987,6 +3049,10 @@ async function main() { if (urlParams.get("waitpage")) { session.waitPage = urlParams.get("waitpage"); } + + if (urlParams.has("waitice")) { + session.waitForCandidates = true; + } if (urlParams.has("directorview") || urlParams.has("dv")) { session.directorView = true; @@ -3462,6 +3528,7 @@ async function main() { } } catch (e) { errorlog(e); + console.warn("⚠️ If you are seeing this error, it's likely a third-party browser extension is breaking the site\n\nTry a different browser, incognito mode, or disable the problematic extension."); } if (urlParams.has("videodevice") || urlParams.has("vdevice") || urlParams.has("vd") || urlParams.has("device") || urlParams.has("d") || urlParams.has("vdo")) { @@ -4068,32 +4135,37 @@ async function main() { getById("calendarButton").style.opacity = 0; getById("chatBody").innerHTML = ""; } + + if (urlParams.has("poke")){ + session.poke = urlParams.get("poke").replace(/[\W]+/g, "_").replace(/_+/g, "_") || true; + } if (urlParams.has("beep") || urlParams.has("notify") || urlParams.has("tone")) { + let beepValue = urlParams.get("beep") || urlParams.get("notify") || urlParams.get("tone") || ""; + let beepTypes = []; - let beepTypes = urlParams.get("beep") || urlParams.get("notify") || urlParams.get("tone") || ""; // test, leave, join, or leave empty for all - beepTypes = beepTypes.split(","); // supports multiple - - if (!beepTypes.length){ - session.beepToNotify = true; // enable all, since nothing was specified + if (beepValue) { + beepTypes = beepValue.split(",").filter(type => type.trim() !== ""); + session.beepToNotify = beepTypes.length ? beepTypes : true; } else { - session.beepToNotify = beepTypes; + beepTypes = []; + session.beepToNotify = true; // enable all, since nothing was specified } - if (!beepTypes.length || beepTypes.includes("join")){ - var addtone = createAudioElement(); + if (beepTypes.length === 0 || beepTypes.includes("join")) { + const addtone = createAudioElement(); addtone.id = "jointone"; addtone.src = "./media/join.mp3"; getById("testtone").parentNode.insertBefore(addtone, getById("testtone").nextSibling); - } - if (!beepTypes.length || beepTypes.includes("leave")){ - var addtone = createAudioElement(); + } + + if (beepTypes.length === 0 || beepTypes.includes("leave")) { + const addtone = createAudioElement(); addtone.id = "leavetone"; addtone.src = "./media/leave.mp3"; getById("testtone").parentNode.insertBefore(addtone, getById("testtone").nextSibling); } - if (!Notification) { warnlog("Desktop notifications are not available in your browser."); } else if (Notification.permission !== "granted") { @@ -5366,13 +5438,13 @@ async function main() { // do not reference stream ID before this point, as it might change after this point. - if (urlParams.has("push") || urlParams.has("id") || urlParams.has("permaid")) { + if (urlParams.has("push") || urlParams.has("id") || urlParams.has("permaid") || (session.sticky && session.decrypted)) { session.permaid = urlParams.get("push") || urlParams.get("id") || urlParams.get("permaid"); if (session.permaid) { session.permaid = sanitizeStreamID(session.permaid) || null; session.streamID = session.permaid || session.streamID; - } else if (urlParams.has("permaid") && getStorage("permaid")) { + } else if ((urlParams.has("permaid") || (session.sticky && session.decrypted)) && getStorage("permaid")) { session.streamID = sanitizeStreamID(getStorage("permaid")) || session.streamID; session.permaid = null; } else { @@ -5390,7 +5462,7 @@ async function main() { } } - if (urlParams.has("permaid")) { + if (urlParams.has("permaid") || (session.sticky && session.decrypted)) { setStorage("permaid", session.streamID, 99999); } @@ -6693,6 +6765,73 @@ async function main() { } } } + + if (e.data.getSnapshotBySlot || e.data.getSnapshotByStreamID) { + let videoElement = false; + + let streamID = ("getSnapshotBySlot" in e.data) ? session.currentSlots[parseInt(e.data.getSnapshotBySlot) || 0] : e.data.getSnapshotByStreamID; + + let UUID = false; + if (streamID){ + for (let i in session.rpcs) { + if (session.rpcs[i].streamID == streamID) { + UUID = i; + videoElement = session.rpcs[i].videoElement; + break; + } + } + } + + if (streamID && videoElement && videoElement.srcObject) { + const videoTrack = videoElement.srcObject.getVideoTracks()[0]; + + if (videoTrack) { + const processor = new MediaStreamTrackProcessor({ track: videoTrack }); + const reader = processor.readable.getReader(); + + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d", { willReadFrequently: true }); + + try { + reader.read().then(({ done, value: frame }) => { + if (!done && frame) { + canvas.width = frame.displayWidth; + canvas.height = frame.displayHeight; + ctx.drawImage(frame, 0, 0); + + const format = typeof session.sendframes === "string" ? session.sendframes : "png"; + const imageData = canvas.toDataURL(`image/${format}`, 0.8); + + parent.postMessage({ + type: 'frame', + frame: imageData, + UUID: UUID, + streamID: streamID, + trackID: videoTrack.id, + kind: videoTrack.kind, + format: format, + slot: parseInt(Object.keys(session.currentSlots).find(key => session.currentSlots[key] === streamID)) || 0, + cib: e.data.cib || null + }, session.iframetarget); + + // Proper cleanup + frame.close(); + reader.cancel(); + + // Remove canvas from DOM if it was added + if (canvas.parentNode) { + canvas.parentNode.removeChild(canvas); + } + } + }).catch(error => { + console.error("Error processing image frame:", error); + }); + } catch (error) { + console.error("Error setting up frame capture:", error); + } + } + } + } if ("groupView" in e.data) { if (typeof e.data.groupView == "object") { @@ -8321,12 +8460,11 @@ async function main() { try { log(registrations); for (let registration of registrations) { - //if (registration.scope != "https://"+window.location.hostname+window.location.pathname+"thirdparty/"){ - registration.unregister(); if (registration.scope) { + if (registration.scope.includes("/notifications/")) {continue;} + registration.unregister(); console.warn("unregistering: " + registration.scope); } - //} } } catch (e) {} }) diff --git a/media/bell.wav b/media/bell.wav new file mode 100644 index 0000000..feab15a Binary files /dev/null and b/media/bell.wav differ diff --git a/media/chime.wav b/media/chime.wav new file mode 100644 index 0000000..e895df1 Binary files /dev/null and b/media/chime.wav differ diff --git a/mixer.html b/mixer.html index fb73111..a0bb65e 100644 --- a/mixer.html +++ b/mixer.html @@ -22,6 +22,17 @@ --chat-width: 450px; --iframe-width: 1280px; --iframe-height: 720px; + --primary-color: #2e445c; + --primary-light: #3b5a78; + --primary-dark: #20324a; + --accent-color: #4a89dc; + --accent-hover: #3b7dd8; + --text-color: #333; + --text-light: #f8f9fa; + --border-radius: 6px; + --shadow-soft: 0 4px 6px rgba(0,0,0,0.1); + --shadow-strong: 0 10px 20px rgba(0,0,0,0.15); + --transition-speed: 0.3s; } body { @@ -32,9 +43,10 @@ overflow: auto; position: absolute; border-radius: 50px; - background: #2e445c; box-shadow: 20px 20px 60px #273a4e, -20px -20px 60px #354e6a; scrollbar-color:#666 #201c29; + background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 100%); + color: var(--text-light); } textarea { width:100%; @@ -104,7 +116,7 @@ background-color: #0004; margin: 0 10px 10px 0; border-radius: 5px; - overflow-y:scroll; + overflow-y: auto; overflow-wrap: anywhere; bottom: 45px; position: absolute; @@ -154,7 +166,7 @@ display: inline-block; color: #000; background-color: #FFFE; - width: 324px; + width: 320px; font-size: 105%; margin-left: 7px; } @@ -175,7 +187,7 @@ z-index:1; } #chatSendBar{ - display: inline-block; + display: flex; bottom: 0px; position:absolute; } @@ -207,7 +219,7 @@ background: rgb(225,225,225); /* Old browsers */ background: -moz-linear-gradient(-45deg, rgba(255,255,255,1) 0%, rgba(241,241,241,1) 50%, rgba(225,225,225,1) 51%, rgba(246,246,246,1) 100%); /* FF3.6-15 */ background: -webkit-linear-gradient(-45deg, rgba(255,255,255,1) 0%,rgba(241,241,241,1) 50%,rgba(225,225,225,1) 51%,rgba(246,246,246,1) 100%); /* Chrome10-25,Safari5.1-6 */ - background: linear-gradient(135deg, rgba(255,255,255,1) 0%,rgba(241,241,241,1) 50%,rgba(225,225,225,1) 51%,rgba(246,246,246,1) 100%); + background: linear-gradient(135deg, rgba(255,255,255,0.6) 0%,rgba(241,241,241,1) 50%,rgba(225,225,225,1) 51%,rgba(246,246,246,0.6) 100%); } #containerMenu{ @@ -250,7 +262,17 @@ padding: 6px 0.25em 0.25em 0.25em!important; outline: dashed 2px black!important; } - .thing:hover{ + + .thing { + background: rgba(30, 40, 60, 0.9); + border: 1px solid rgba(255, 255, 255, 0.2); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + transition: all var(--transition-speed) ease; + } + + .thing:hover { + transform: translateY(-2px); + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); animation: horizontalShake 2s; animation-iteration-count: 1; } @@ -478,14 +500,6 @@ margin-bottom: 6px; } - .settings { - display: block; - background: #c0e3ff; - position: absolute; - top: 100px; - left: 100px; - z-Index:20; - } .hidden { display:none!important; @@ -538,11 +552,13 @@ width: 130px; height: calc(100vh - 20px); padding: 5px; - border: 1px solid; - border-radius: 5px; position: relative; float: left; user-select: none; + background-color: rgba(0, 0, 0, 0.2); + border: 1px solid rgba(255, 255, 255, 0.1); + border-radius: var(--border-radius); + box-shadow: var(--shadow-soft); } .pressed>canvas{ box-shadow: inset 2px 2px 10px #0007, inset -2px -2px 10px #0007; @@ -555,7 +571,7 @@ button.pressed { background-color: #CEF; } - .editButton{ + .editButton { display:none; position: absolute; z-index: 2; @@ -564,24 +580,32 @@ margin: 2px; height: 28px; line-height: 0px; - border-radius: 14px; + background-color: var(--accent-color); + color: white; + border-radius: 50%!important; + opacity: 0.8; + transition: all var(--transition-speed) ease; } - .editButton[data-state="active"]{ + .editButton:hover { + opacity: 1; + transform: translateY(-2px); + } + .editButton[data-state="active"] { display:block!important; - background: #defffd; - border: #166b49 solid 2px; + background: #25d366; + border: 2px solid white; } - .setButton{ + .setButton { display:none; position:absolute; margin: 20px 57px; z-index:2; } - .canvasContainer{ + .canvasContainer { display:inline-block; } - .canvasContainer>canvas{ + .canvasContainer>canvas { transform: scale(calc( var(--aspect-ratio) / (16 / 9)), 1); } @@ -589,6 +613,16 @@ box-shadow: 0 0 6px #273a4e, 0 0px 6px #fffC; } + .canvasContainer canvas { + border-radius: var(--border-radius); + box-shadow: var(--shadow-soft); + transition: all var(--transition-speed) ease; + } + + .canvasContainer:hover canvas { + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3); + } + #containermenu canvas{ cursor:pointer!important; } @@ -597,6 +631,30 @@ cursor:pointer!important; } + button:not(.randomRoomName) { + background: #fff; + color: var(--text-color); + border: none; + border-radius: var(--border-radius); + padding: 7px 10px; + margin: 4px; + cursor: pointer; + font-weight: 500; + transition: all var(--transition-speed) ease; + box-shadow: var(--shadow-soft); + } + + button:not(.randomRoomName):hover { + background: #f0f0f0; + transform: translateY(-2px); + box-shadow: var(--shadow-strong); + } + + button.pressed, button[data-state='true'] { + background-color: var(--accent-color) !important; + color: white; + } + #imageCarousel { display: flex; @@ -638,6 +696,7 @@ padding: 4px; border-radius: 6px; cursor:pointer; + text-align: center; } [title]{ @@ -722,6 +781,7 @@ background-color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0.5); z-Index: 20; + color: black; } .modal-content { position: relative; @@ -759,6 +819,21 @@ to {top:0; opacity:1} } + #searchResults img:hover { + transform: scale(1.05); + transition: transform 0.2s ease; + box-shadow: 0 0 8px rgba(0,0,0,0.3); + } + + #searchResults { + background-color: #939393; + margin-top: 20px; + max-height: 400px; + overflow-y: auto; + display: flex; + flex-wrap: wrap; + } + #welcomeWindow{ display:none; position:absolute; @@ -830,9 +905,10 @@ color: #0066aa !important; text-decoration: none; } - button.menuButtons{ + .menuButtons{ background-color: #b4c5ca !important; - background: linear-gradient(135deg, #c2d2d7 60%,#c7d3d7 80%, #a3b5ba 100%) + width: 92%; + background: linear-gradient(to bottom, #ffffff 0%, #f5f5f5 100%); } .context-menu__link:hover { color: #fff !important; @@ -960,7 +1036,178 @@ bottom: 1px; position: relative; } + .textOverlay { + pointer-events: none; + text-shadow: 1px 1px 2px rgba(0,0,0,0.5); + max-width: 100%; + overflow: hidden; + padding: 5px; + } + + .settings { + background: #f8f9fa; + border-radius: 10px; + box-shadow: 0 4px 12px rgba(0,0,0,0.15); + padding: 15px; + width: 420px; + max-width: 90vw; /* Prevent horizontal overflow */ + max-height: 80vh; /* Prevent vertical overflow */ + overflow-y: auto; /* Enable vertical scrolling */ + position: absolute; /* Keep position absolute to maintain current layout */ + z-index: 30; /* Ensure it's above other elements */ + top: 63px; /* Keep current positioning */ + left: 5; + color: black; + } + /* Make scrollbars more visually appealing */ + .settings::-webkit-scrollbar { + width: 8px; + } + + .settings::-webkit-scrollbar-track { + background: #f1f1f1; + border-radius: 4px; + } + + .settings::-webkit-scrollbar-thumb { + background: #ccc; + border-radius: 4px; + } + + .settings::-webkit-scrollbar-thumb:hover { + background: #aaa; + } + + .settings h3 { + margin: 0 0 10px 0; + padding-bottom: 5px; + border-bottom: 1px solid #ddd; + font-size: 16px; + color: #333; + } + + .settings-section { + margin-bottom: 15px; + padding-bottom: 15px; + border-bottom: 1px solid #eee; + } + + .settings-row { + display: flex; + align-items: center; + margin-bottom: 8px; + } + + .settings-label { + flex: 0 0 120px; + font-size: 14px; + } + + .settings-field { + flex: 1; + display: flex; + align-items: center; + } + + .settings input[type="text"], + .settings input[type="number"], + .settings select { + padding: 6px 8px; + border: 1px solid #ccc; + border-radius: 4px; + font-size: 14px; + } + + .settings input[type="checkbox"] { + margin-right: 5px; + } + + .settings input[type="color"] { + border: none; + width: 30px; + height: 30px; + padding: 0; + margin-left: 5px; + cursor: pointer; + } + + .settings button.search-btn { + background: #f0f0f0; + border: 1px solid #ccc; + border-radius: 4px; + margin-left: 5px; + padding: 6px 10px; + cursor: pointer; + } + + .settings button.search-btn:hover { + background: #e0e0e0; + } + + .settings button.action-btn { + background: #4a89dc; + color: white; + border: none; + border-radius: 4px; + padding: 8px 15px; + font-size: 14px; + cursor: pointer; + margin-right: 10px; + } + + .settings button.action-btn:hover { + background: #3b7dd8; + } + + .settings button.gallery-btn { + background: rgba(255, 255, 255, 0.5); + border: 1px solid #ddd; + border-radius: 5px; + width: 100%; + padding: 8px; + margin: 8px 0; + font-size: 13px; + cursor: pointer; + } + + .tab-container { + display: flex; + margin-bottom: 15px; + border-bottom: 1px solid #ddd; + } + + .tab { + padding: 8px 15px; + margin-right: 5px; + background: #eee; + border: 1px solid #ddd; + border-bottom: none; + border-radius: 5px 5px 0 0; + cursor: pointer; + } + + .tab.active { + background: #fff; + border-bottom: 1px solid #fff; + margin-bottom: -1px; + } + + .tab-content { + display: none; + } + + .tab-content.active { + display: block; + } + + .footer-buttons { + display: flex; + justify-content: flex-end; + margin-top: 0; + padding-top: 0; + border-top: 0; + } @@ -1172,6 +1419,16 @@ + + + + \ No newline at end of file diff --git a/notifications/manifest.json b/notifications/manifest.json new file mode 100644 index 0000000..a73d738 --- /dev/null +++ b/notifications/manifest.json @@ -0,0 +1,62 @@ +{ + "name": "VDO.Ninja Notifications", + "short_name": "VDO Notify", + "description": "Get notified when someone joins your VDO.Ninja rooms", + "start_url": "./", + "display": "standalone", + "background_color": "#121212", + "theme_color": "#1565c0", + "gcm_sender_id": "231486807402", + "icons": [ + { + "src": "/notifications/media/icon-48x48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-128x128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-152x152.png", + "sizes": "152x152", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-256x256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "/notifications/media/icon-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/notifications/media/badge.png b/notifications/media/badge.png new file mode 100644 index 0000000..24c538f Binary files /dev/null and b/notifications/media/badge.png differ diff --git a/notifications/media/bell.wav b/notifications/media/bell.wav new file mode 100644 index 0000000..feab15a Binary files /dev/null and b/notifications/media/bell.wav differ diff --git a/notifications/media/chime.wav b/notifications/media/chime.wav new file mode 100644 index 0000000..e895df1 Binary files /dev/null and b/notifications/media/chime.wav differ diff --git a/notifications/media/favicon-16x16.png b/notifications/media/favicon-16x16.png new file mode 100644 index 0000000..f27e085 Binary files /dev/null and b/notifications/media/favicon-16x16.png differ diff --git a/notifications/media/favicon-32x32.png b/notifications/media/favicon-32x32.png new file mode 100644 index 0000000..032c7bc Binary files /dev/null and b/notifications/media/favicon-32x32.png differ diff --git a/notifications/media/favicon.ico b/notifications/media/favicon.ico new file mode 100644 index 0000000..d022a55 Binary files /dev/null and b/notifications/media/favicon.ico differ diff --git a/notifications/media/icon-128x128.png b/notifications/media/icon-128x128.png new file mode 100644 index 0000000..b183fb9 Binary files /dev/null and b/notifications/media/icon-128x128.png differ diff --git a/notifications/media/icon-144x144.png b/notifications/media/icon-144x144.png new file mode 100644 index 0000000..43091f6 Binary files /dev/null and b/notifications/media/icon-144x144.png differ diff --git a/notifications/media/icon-152x152.png b/notifications/media/icon-152x152.png new file mode 100644 index 0000000..2e14bd0 Binary files /dev/null and b/notifications/media/icon-152x152.png differ diff --git a/notifications/media/icon-192x192.png b/notifications/media/icon-192x192.png new file mode 100644 index 0000000..f066f7d Binary files /dev/null and b/notifications/media/icon-192x192.png differ diff --git a/notifications/media/icon-256x256.png b/notifications/media/icon-256x256.png new file mode 100644 index 0000000..23325db Binary files /dev/null and b/notifications/media/icon-256x256.png differ diff --git a/notifications/media/icon-384x384.png b/notifications/media/icon-384x384.png new file mode 100644 index 0000000..9a978d2 Binary files /dev/null and b/notifications/media/icon-384x384.png differ diff --git a/notifications/media/icon-48x48.png b/notifications/media/icon-48x48.png new file mode 100644 index 0000000..2961664 Binary files /dev/null and b/notifications/media/icon-48x48.png differ diff --git a/notifications/media/icon-512x512.png b/notifications/media/icon-512x512.png new file mode 100644 index 0000000..4ea9b50 Binary files /dev/null and b/notifications/media/icon-512x512.png differ diff --git a/notifications/media/icon-72x72.png b/notifications/media/icon-72x72.png new file mode 100644 index 0000000..3814118 Binary files /dev/null and b/notifications/media/icon-72x72.png differ diff --git a/notifications/media/icon-96x96.png b/notifications/media/icon-96x96.png new file mode 100644 index 0000000..318c744 Binary files /dev/null and b/notifications/media/icon-96x96.png differ diff --git a/notifications/media/icon.png b/notifications/media/icon.png new file mode 100644 index 0000000..1ce9d51 Binary files /dev/null and b/notifications/media/icon.png differ diff --git a/notifications/media/join.mp3 b/notifications/media/join.mp3 new file mode 100644 index 0000000..28beb7b Binary files /dev/null and b/notifications/media/join.mp3 differ diff --git a/notifications/media/join.wav b/notifications/media/join.wav new file mode 100644 index 0000000..c62866d Binary files /dev/null and b/notifications/media/join.wav differ diff --git a/notifications/media/logo.png b/notifications/media/logo.png new file mode 100644 index 0000000..1ce9d51 Binary files /dev/null and b/notifications/media/logo.png differ diff --git a/notifications/media/logo2.png b/notifications/media/logo2.png new file mode 100644 index 0000000..1ce9d51 Binary files /dev/null and b/notifications/media/logo2.png differ diff --git a/notifications/media/tone.mp3 b/notifications/media/tone.mp3 new file mode 100644 index 0000000..b7c35cd Binary files /dev/null and b/notifications/media/tone.mp3 differ diff --git a/notifications/media/tone.ogg b/notifications/media/tone.ogg new file mode 100644 index 0000000..40c7e68 Binary files /dev/null and b/notifications/media/tone.ogg differ diff --git a/notifications/notifications.js b/notifications/notifications.js new file mode 100644 index 0000000..2341fc1 --- /dev/null +++ b/notifications/notifications.js @@ -0,0 +1,838 @@ +const POLL_INTERVAL = 60000; +let sseConnection = null; +let pollingInterval = null; +let notificationHistory = []; +class NotificationManager { + constructor() { + this.subscribers = []; + this.isConnected = false; + this.currentTopic = null; + } + async initialize() { + if ('serviceWorker' in navigator) { + try { + let reg = await navigator.serviceWorker.register('./service-worker.js', { scope: './' }); + console.log('Service Worker registered with scope:', reg.scope); + await navigator.serviceWorker.ready; + if (!navigator.serviceWorker.controller) { + console.log('No controller, reloading page to activate service worker'); + window.location.reload(); + return false; + } + console.log('Service Worker ready and controlling the page'); + this.setupServiceWorkerMessaging(); + this.loadNotificationHistory(); + const savedTopic = localStorage.getItem('notifyTopic'); + if (savedTopic) { + console.log('Restoring saved subscription for:', savedTopic); + await this.startSubscription(savedTopic); + } + return true; + } catch (error) { + console.error('Service Worker registration failed:', error); + return false; + } + } else { + console.warn('Service Workers not supported'); + return false; + } + } + async checkSubscriptionValidity() { + try { + const registration = await navigator.serviceWorker.ready; + const subscription = await registration.pushManager.getSubscription(); + if (!subscription) { + console.log('No push subscription found'); + return false; + } + try { + const response = await fetch(subscription.endpoint, { + method: 'HEAD', + headers: { + 'Origin': 'https://vdo.ninja' + } + }); + if (response.status === 404 || response.status === 410) { + console.log('Push subscription is invalid, unsubscribing...'); + await subscription.unsubscribe(); + localStorage.removeItem('pushSubscription'); + localStorage.removeItem('pushTopic'); + return false; + } + return true; + } catch (error) { + console.error('Error checking subscription validity:', error); + return false; + } + } catch (error) { + console.error('Error checking push subscription:', error); + return false; + } + } + async unsubscribeFromPush() { + try { + const registration = await navigator.serviceWorker.ready; + const subscription = await registration.pushManager.getSubscription(); + if (subscription) { + await fetch('https://notify.vdo.ninja/unsubscribe', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + subscription: subscription, + topic: localStorage.getItem('pushTopic') + }) + }); + await new Promise(resolve => setTimeout(resolve, 500)); + await subscription.unsubscribe(); + } + localStorage.removeItem('pushSubscription'); + localStorage.removeItem('pushTopic'); + return true; + } catch (error) { + console.error('Error unsubscribing from push:', error); + return false; + } + } + + async diagnoseNotificationIssues() { + console.group('Notification System Diagnostics'); + + // Check permission + console.log('Notification permission:', Notification.permission); + + // Check service worker + console.log('Service worker controller:', !!navigator.serviceWorker.controller); + + // Check push subscription + try { + const registration = await navigator.serviceWorker.ready; + const subscription = await registration.pushManager.getSubscription(); + console.log('Push subscription exists:', !!subscription); + + if (subscription) { + // Check endpoint validity + try { + const response = await fetch(subscription.endpoint, { + method: 'HEAD', + headers: { 'Origin': 'https://vdo.ninja' } + }); + console.log('Push endpoint status:', response.status); + console.log('Push endpoint:', subscription.endpoint.slice(-20)); + } catch (error) { + console.error('Error checking endpoint:', error); + } + + // Check subscription data + console.log('Subscription has keys:', subscription.keys && !!subscription.keys.p256dh && !!subscription.keys.auth); + } + } catch (err) { + console.error('Error checking subscription:', err); + } + + // Check saved topic + console.log('Saved topic:', localStorage.getItem('notifyTopic')); + console.log('Saved push topic:', localStorage.getItem('pushTopic')); + + // Check manifest + fetch('./manifest.json') + .then(r => r.ok ? 'OK' : 'Failed') + .then(status => console.log('manifest.json check:', status)) + .catch(e => console.log('manifest.json error:', e)); + + console.groupEnd(); + + return { + permission: Notification.permission, + hasServiceWorker: !!navigator.serviceWorker.controller, + hasSubscription: await this.testPushSubscription(), + topic: localStorage.getItem('notifyTopic') + }; + } + + async verifyPushEndpoint(endpoint) { + try { + const response = await fetch(endpoint, { + method: 'HEAD', + headers: { 'Origin': 'https://vdo.ninja' } + }); + + console.log('Push endpoint check:', endpoint.slice(-10), 'status:', response.status); + + if (response.status === 404 || response.status === 410) { + console.warn('Push endpoint invalid (404/410), needs resubscription'); + return false; + } + + return true; + } catch (error) { + console.error('Error verifying push endpoint:', error); + return false; + } + } + + urlBase64ToUint8Array(base64String) { + const padding = '='.repeat((4 - base64String.length % 4) % 4); + const base64 = (base64String + padding) + .replace(/-/g, '+') + .replace(/_/g, '/'); + + const rawData = window.atob(base64); + const outputArray = new Uint8Array(rawData.length); + + for (let i = 0; i < rawData.length; ++i) { + outputArray[i] = rawData.charCodeAt(i); + } + + return outputArray; + } + async testPushSubscription() { + try { + const registration = await navigator.serviceWorker.ready; + const subscription = await registration.pushManager.getSubscription(); + if (!subscription) { + console.warn('No push subscription found'); + return { + success: false, + error: 'No push subscription found' + }; + } + if (!subscription.endpoint || !subscription.keys || !subscription.keys.p256dh || !subscription.keys.auth) { + console.warn('Invalid push subscription format'); + return { + success: false, + error: 'Invalid subscription format' + }; + } + try { + const response = await fetch(subscription.endpoint, { + method: 'HEAD', + headers: { + 'Origin': 'https://vdo.ninja' + } + }); + return { + success: response.status !== 410, + status: response.status, + endpoint: subscription.endpoint.slice(-10) + }; + } catch (fetchError) { + console.error('Error testing subscription endpoint:', fetchError); + return { + success: false, + error: fetchError.message, + endpoint: subscription.endpoint.slice(-10) + }; + } + } catch (error) { + console.error('Error testing push subscription:', error); + return { + success: false, + error: error.message + }; + } + } + isNotificationDuplicate(notification) { + if (!notification) return true; + const existingNotifications = this.getNotificationHistory(); + if (notification.id) { + return existingNotifications.some(n => n.id === notification.id); + } + const fiveSecondsAgo = Date.now() - 5000; + return existingNotifications.some(n => { + return (n.timestamp || n.receivedAt || 0) >= fiveSecondsAgo && + n.title === notification.title && + n.body === notification.body; + }); + } + async subscribeToPushNotifications(topic) { + if (!topic) { + console.warn("No topic"); + return false; + } + + if (!('PushManager' in window)) { + console.warn('Push notifications not supported'); + return false; + } + + try { + const permission = await this.requestPermission(); + if (permission !== 'granted') { + console.warn('Notification permission denied'); + return false; + } + + const registration = await navigator.serviceWorker.ready; + let existingSubscription = await registration.pushManager.getSubscription(); + + // If existing subscription is found, try to use it + if (existingSubscription) { + console.log('Using existing push subscription'); + const subscriptionObject = existingSubscription.toJSON ? existingSubscription.toJSON() : existingSubscription; + + try { + const subscriptionResponse = await fetch('https://notify.vdo.ninja/subscribe', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + subscription: subscriptionObject, + topic: topic + }) + }); + + if (subscriptionResponse.ok) { + localStorage.setItem('pushSubscription', JSON.stringify(subscriptionObject)); + localStorage.setItem('pushTopic', topic); + return true; + } + } catch (error) { + console.error('Error updating subscription on server:', error); + // Continue to try creating a new subscription + } + } + + try { + // Get the server public key for VAPID with proper JSON parsing + const response = await fetch('https://notify.vdo.ninja/vapidPublicKey'); + if (!response.ok) { + throw new Error('Failed to fetch VAPID public key'); + } + + // Parse the response as JSON instead of text + const responseData = await response.json(); + const vapidPublicKey = responseData.key; + + if (!vapidPublicKey) { + throw new Error('Invalid VAPID key format (missing key property)'); + } + + console.log('Received VAPID key:', vapidPublicKey); + + const convertedVapidKey = this.urlBase64ToUint8Array(vapidPublicKey); + + const newSubscription = await registration.pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: convertedVapidKey + }); + + if (newSubscription) { + console.log('Created new push subscription'); + const subscriptionObject = newSubscription.toJSON ? newSubscription.toJSON() : newSubscription; + + const subscriptionResponse = await fetch('https://notify.vdo.ninja/subscribe', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + subscription: subscriptionObject, + topic: topic + }) + }); + + if (subscriptionResponse.ok) { + localStorage.setItem('pushSubscription', JSON.stringify(subscriptionObject)); + localStorage.setItem('pushTopic', topic); + return true; + } + } + } catch (error) { + console.error('Error in push subscription process:', error); + } + + // If push subscription failed but we have SSE, that's ok + return false; + } catch (error) { + console.error('Error subscribing to push:', error); + return false; + } + } + setupServiceWorkerMessaging() { + if (!navigator.serviceWorker) return; + navigator.serviceWorker.addEventListener('message', event => { + const data = event.data; + if (!data || !data.action) return; + + console.log('Service worker message received:', data.action, data); + + switch (data.action) { + case 'connectionStatus': + this.isConnected = data.connected; + this.notifySubscribers('connectionStatus', { + connected: data.connected, + topic: data.topic + }); + break; + case 'subscriptionUpdated': + console.log('Subscription was updated by service worker', data); + if (data.topic) { + // Refresh our subscription data + this.checkSubscriptionValidity().then(isValid => { + if (!isValid) { + console.log('Subscription is invalid, attempting to resubscribe'); + this.startSubscription(data.topic); + } + }); + } + break; + case 'notificationSync': + if (data.notifications) { + this.updateNotificationList(data.notifications); + } + break; + case 'newNotification': + if (data.notification) { + this.handleNewNotification(data.notification); + } + break; + case 'sseStatus': + this.notifySubscribers('sseStatus', { + status: data.status, + attempt: data.attempt, + delay: data.delay + }); + break; + case 'statusUpdate': + this.handleStatusUpdate(data); + break; + } + }); + setTimeout(() => { + if (navigator.serviceWorker.controller) { + this.checkStatus(); + } + }, 1000); + } + async sendToServiceWorker(message) { + return new Promise((resolve, reject) => { + if (!navigator.serviceWorker.controller) { + return reject(new Error('No active service worker found')); + } + const timeout = setTimeout(() => { + reject(new Error('Service worker response timeout')); + }, 10000); + const messageChannel = new MessageChannel(); + messageChannel.port1.onmessage = event => { + clearTimeout(timeout); + if (event.data.error) { + reject(event.data.error); + } else { + resolve(event.data); + } + }; + try { + navigator.serviceWorker.controller.postMessage(message, [messageChannel.port2]); + } catch (e) { + clearTimeout(timeout); + reject(e); + } + }); + } + async sendToServiceWorkerWithRetry(message, maxRetries = 3) { + let lastError; + for (let attempt = 1; attempt <= maxRetries; attempt++) { + try { + return await this.sendToServiceWorker(message); + } catch (error) { + console.warn(`Service worker communication attempt ${attempt} failed:`, error); + lastError = error; + if (attempt < maxRetries) { + await new Promise(resolve => setTimeout(resolve, 1000 * Math.pow(2, attempt - 1))); + } + } + } + throw lastError; + } + subscribe(callback) { + this.subscribers.push(callback); + return () => { + this.subscribers = this.subscribers.filter(cb => cb !== callback); + }; + } + notifySubscribers(event, data) { + this.subscribers.forEach(callback => { + callback(event, data); + }); + } + async startSubscription(topic) { + if (!topic) return false; + this.currentTopic = topic; + localStorage.setItem('notifyTopic', topic); + localStorage.setItem('lastPollTime', Date.now().toString()); + localStorage.setItem('subscriptionCreatedAt', Date.now().toString()); + const pushSuccess = await this.subscribeToPushNotifications(topic); + console.log('Push subscription', pushSuccess ? 'successful' : 'failed'); + if (!navigator.serviceWorker.controller) { + try { + await new Promise(resolve => { + const timeout = setTimeout(() => resolve(false), 3000); + navigator.serviceWorker.addEventListener('controllerchange', () => { + clearTimeout(timeout); + resolve(true); + }, { once: true }); + }); + } catch (e) { + console.warn('Timed out waiting for service worker to activate'); + } + } + if (navigator.serviceWorker.controller) { + try { + const response = await this.sendToServiceWorkerWithRetry({ + action: 'connect', + topic: topic + }); + this.notifySubscribers('connectionStatus', { + connected: response && response.connected, + topic: topic + }); + return true; + } catch (error) { + console.error('Error connecting via service worker after retries:', error); + this.startFallbackPolling(topic); + return pushSuccess; + } + } else { + console.warn('Service worker not active, using fallback polling'); + this.startFallbackPolling(topic); + return pushSuccess; + } + } + async checkSubscriptionRenewal() { + const subscriptionCreatedAt = parseInt(localStorage.getItem('subscriptionCreatedAt') || '0'); + const currentTopic = localStorage.getItem('notifyTopic'); + if (!subscriptionCreatedAt || !currentTopic) return; + const now = Date.now(); + const monthInMs = 30 * 24 * 60 * 60 * 1000; + if (now - subscriptionCreatedAt > monthInMs) { + this.promptForRenewal(currentTopic); + } + } + promptForRenewal(topic) { + const lastRenewalPrompt = parseInt(localStorage.getItem('lastRenewalPrompt') || '0'); + const now = Date.now(); + const dayInMs = 24 * 60 * 60 * 1000; + if (now - lastRenewalPrompt < dayInMs) return; + const renewalElement = document.createElement('div'); + renewalElement.className = 'notification-popup'; + renewalElement.innerHTML = ` +
+

🔔 Notification Renewal

+ +
+
+

You've been subscribed to notifications for "${topic}" for a month.

+

Would you like to continue receiving these notifications?

+
+
+ + +
+ `; + document.body.appendChild(renewalElement); + localStorage.setItem('lastRenewalPrompt', now.toString()); + renewalElement.querySelector('.notification-popup-close').addEventListener('click', () => { + document.body.removeChild(renewalElement); + }); + renewalElement.querySelector('.unsubscribe-btn').addEventListener('click', () => { + this.stopSubscription(); + document.body.removeChild(renewalElement); + }); + renewalElement.querySelector('.renew-btn').addEventListener('click', () => { + localStorage.setItem('subscriptionCreatedAt', Date.now().toString()); + this.refreshSubscription(topic); + document.body.removeChild(renewalElement); + }); + } + async refreshSubscription(topic) { + try { + const registration = await navigator.serviceWorker.ready; + const subscription = await registration.pushManager.getSubscription(); + if (!subscription) { + console.warn('No subscription to refresh'); + return false; + } + const response = await fetch('https://notify.vdo.ninja/refresh', { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + subscription: subscription.toJSON ? subscription.toJSON() : subscription, + topic: topic + }) + }); + if (response.ok) { + this.notifySubscribers('notification', { + notification: { + title: 'Subscription Renewed', + body: `You'll continue receiving notifications for "${topic}"`, + timestamp: Date.now() + } + }); + return true; + } + return false; + } catch (error) { + console.error('Error refreshing subscription:', error); + return false; + } + } + async stopSubscription() { + this.currentTopic = null; + localStorage.removeItem('notifyTopic'); + localStorage.removeItem('lastPollTime'); + await this.unsubscribeFromPush(); + if (navigator.serviceWorker.controller) { + try { + await this.sendToServiceWorker({ action: 'disconnect' }); + } catch (error) { + console.error('Error disconnecting:', error); + } + } + if (pollingInterval) { + clearInterval(pollingInterval); + pollingInterval = null; + } + return true; + } + startFallbackPolling(topic) { + if (pollingInterval) { + clearInterval(pollingInterval); + } + const pollForNotifications = async () => { + try { + const lastPollTime = parseInt(localStorage.getItem('lastPollTime') || '0'); + const response = await fetch(`https://notify.vdo.ninja/poll?topic=${encodeURIComponent(topic)}&since=${lastPollTime}`); + const data = await response.json(); + localStorage.setItem('lastPollTime', Date.now().toString()); + if (data.notifications && Array.isArray(data.notifications) && data.notifications.length > 0) { + data.notifications.forEach(notification => { + this.showNotification(notification); + this.addNotificationToHistory(notification); + }); + } + this.notifySubscribers('sseStatus', { status: 'polling' }); + } catch (error) { + console.error('Error during fallback polling:', error); + } + }; + pollForNotifications(); + pollingInterval = setInterval(pollForNotifications, POLL_INTERVAL); + } + async requestPermission() { + if (!('Notification' in window)) { + return 'denied'; + } + if (Notification.permission === 'granted') { + return 'granted'; + } + const permission = await Notification.requestPermission(); + return permission; + } + async checkStatus() { + if (navigator.serviceWorker.controller) { + try { + const response = await this.sendToServiceWorkerWithRetry({ action: 'checkStatus' }); + if (response) { + this.notifySubscribers('statusUpdate', { + topic: response.config?.topic, + connected: true, + sseConnected: response.sse?.connected, + isPolling: response.polling?.isPolling + }); + this.notifySubscribers('connectionStatus', { + connected: response.sse?.connected || response.polling?.isPolling, + topic: response.config?.topic + }); + if (response.sse?.connected) { + this.notifySubscribers('sseStatus', { status: 'connected' }); + } else if (response.polling?.isPolling) { + this.notifySubscribers('sseStatus', { status: 'polling' }); + } else { + this.notifySubscribers('sseStatus', { status: 'disconnected' }); + } + } + return response && (response.sse?.connected || response.polling?.isPolling); + } catch (error) { + console.error('Error checking status:', error); + this.notifySubscribers('sseStatus', { status: 'disconnected' }); + return false; + } + } + return false; + } + + handleStatusUpdate(data) { + if (data.config && data.config.topic) { + this.currentTopic = data.config.topic; + this.notifySubscribers('statusUpdate', { + topic: data.config.topic, + connected: true, + sseConnected: data.sse && data.sse.connected, + isPolling: data.polling && data.polling.isPolling + }); + } + } + showNotification(notification) { + return new Promise((resolve, reject) => { + if (!self.registration) { + return reject(new Error('No service worker registration available')); + } + + try { + // Use relative paths to improve reliability + const options = { + body: notification.body || 'Someone joined your room', + icon: './media/logo2.png', // Use relative path + badge: './media/icon.png', // Use relative path + vibrate: [100, 50, 100], + data: { + url: notification.url || notification.originalUrl || self.registration.scope, + timestamp: notification.timestamp || Date.now(), + topic: notification.topic, + id: notification.id + } + }; + + // Simply try to show the notification + self.registration.showNotification( + notification.title || 'VDO.Ninja', + options + ).then(() => { + console.log('[SW-DEBUG] Notification shown successfully:', notification.id); + resolve(); + }).catch(error => { + console.error('[SW-DEBUG] Error showing notification:', error ? error.toString() : 'Unknown error'); + reject(error); + }); + } catch (error) { + console.error('[SW-DEBUG] Exception in showNotification:', error ? error.toString() : 'Unknown error'); + reject(error); + } + }); + } + + playNotificationSound() { + const soundSetting = localStorage.getItem('notificationSound') || 'default'; + if (soundSetting === 'none') return; + let soundFile; + switch (soundSetting) { + case 'chime': + soundFile = '/notifications/media/chime.wav'; + break; + case 'bell': + soundFile = '/notifications/media/bell.wav'; + break; + default: + soundFile = '/notifications/media/tone.mp3'; + } + const audio = new Audio(soundFile); + audio.play().catch(e => console.warn('Could not play notification sound', e)); + } + handleNewNotification(notification) { + this.showNotification(notification); + } + updateNotificationList(notifications) { + if (!notifications || !Array.isArray(notifications) || notifications.length === 0) return; + notificationHistory = notifications.map(n => ({ + ...n, + isNew: n.isNew || false + })); + localStorage.setItem('notificationHistory', JSON.stringify(notificationHistory)); + this.notifySubscribers('historyUpdated', { notifications: notificationHistory }); + } + addNotificationToHistory(notification) { + const historyItem = { + ...notification, + receivedAt: Date.now(), + isNew: true + }; + notificationHistory.unshift(historyItem); + if (notificationHistory.length > 50) { + notificationHistory = notificationHistory.slice(0, 50); + } + localStorage.setItem('notificationHistory', JSON.stringify(notificationHistory)); + this.notifySubscribers('historyUpdated', { notifications: notificationHistory }); + } + loadNotificationHistory() { + try { + const savedHistory = localStorage.getItem('notificationHistory'); + if (savedHistory) { + notificationHistory = JSON.parse(savedHistory); + this.notifySubscribers('historyUpdated', { notifications: notificationHistory }); + } + } catch (e) { + console.error('Error loading notification history', e); + notificationHistory = []; + } + if (navigator.serviceWorker.controller) { + this.sendToServiceWorker({ action: 'syncNotifications' }) + .catch(error => console.error('Failed to sync notifications:', error)); + } + } + clearNotificationHistory() { + notificationHistory = []; + localStorage.removeItem('notificationHistory'); + this.notifySubscribers('historyUpdated', { notifications: [] }); + } + getNotificationHistory() { + return [...notificationHistory]; + } + async sendTestNotification(topic, customMessage = null) { + if (!topic) return Promise.resolve(false); + const message = customMessage || "Someone joined Test Room"; + const notifyUrl = `https://notify.vdo.ninja/?notify=${encodeURIComponent(topic)}&message=${encodeURIComponent(message)}`; + console.log('Sending notification to:', notifyUrl); + try { + const response = await fetch(notifyUrl); + if (!response.ok) { + console.error('Server returned error:', response.status); + return false; + } + try { + const data = await response.json(); + console.log('Notification response:', data); + return true; + } catch (err) { + console.warn('Could not parse JSON response:', err); + return true; + } + } catch (error) { + console.error('Network error when sending notification:', error); + return false; + } + } + getTimeAgo(timestamp) { + const now = Date.now(); + const diff = now - timestamp; + const seconds = Math.floor(diff / 1000); + if (seconds < 60) { + return `${seconds} second${seconds !== 1 ? 's' : ''} ago`; + } + const minutes = Math.floor(seconds / 60); + if (minutes < 60) { + return `${minutes} minute${minutes !== 1 ? 's' : ''} ago`; + } + const hours = Math.floor(minutes / 60); + if (hours < 24) { + return `${hours} hour${hours !== 1 ? 's' : ''} ago`; + } + const days = Math.floor(hours / 24); + if (days < 30) { + return `${days} day${days !== 1 ? 's' : ''} ago`; + } + const months = Math.floor(days / 30); + if (months < 12) { + return `${months} month${months !== 1 ? 's' : ''} ago`; + } + const years = Math.floor(months / 12); + return `${years} year${years !== 1 ? 's' : ''} ago`; + } +} +const notificationManager = new NotificationManager(); +window.notificationManager = notificationManager; +window.diagnosePush = () => window.notificationManager.diagnoseNotificationIssues(); \ No newline at end of file diff --git a/notifications/readme.md b/notifications/readme.md new file mode 100644 index 0000000..7f49d42 --- /dev/null +++ b/notifications/readme.md @@ -0,0 +1 @@ +due to cost and security, the notify.vdo.ninja endpoint can be only accept notifications via the vdo.ninja domain, but developers can listen to those notifications from other domains. \ No newline at end of file diff --git a/notifications/service-worker.js b/notifications/service-worker.js new file mode 100644 index 0000000..cac3cef --- /dev/null +++ b/notifications/service-worker.js @@ -0,0 +1,867 @@ +importScripts('https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js'); +const CACHE_NAME = 'vdo-ninja-notifications-v1'; +const urlsToCache = [ + '/notifications/media/tone.mp3', + '/notifications/media/chime.wav', + '/notifications/media/bell.wav', + '/notifications/media/logo2.png', + '/notifications/media/icon.png', +]; +let sseConnection = null; +let pollingInterval = null; +let reconnectTimeout = null; +let currentTopic = null; +let reconnectAttempts = 0; +let pushSubscription = null; +const MAX_RECONNECT_ATTEMPTS = 10; +const MAX_RECONNECT_DELAY = 300000; +const pendingResponses = new Map(); +const recentNotifications = new Set(); +const processedNotificationIds = new Set(); +const PROCESSED_ID_EXPIRY = 30000; + +self.addEventListener('pushsubscriptionchange', (event) => { + console.log('[SW-DEBUG] Push subscription change event detected.'); + event.waitUntil(handleSubscriptionChange(event)); +}); + +async function handleSubscriptionChange(event) { + try { + console.log('[SW-DEBUG] Handling subscription change'); + // Get the old subscription data (may be null) + const oldSubscription = event.oldSubscription; + let topic = null; + + // Get the current topic from IndexedDB + try { + topic = await getStoreItem('topic'); + if (!topic) { + console.error('[SW-DEBUG] No topic found for resubscription'); + return; + } + } catch (error) { + console.error('[SW-DEBUG] Error retrieving topic:', error); + return; + } + + // Try to get or create a new subscription + let newSubscription; + try { + // Try to get new subscription from event if provided + if (event.newSubscription) { + newSubscription = event.newSubscription; + } else { + // Get VAPID key from server + const keyResponse = await fetch('https://notify.vdo.ninja/vapidPublicKey'); + if (!keyResponse.ok) { + throw new Error('Failed to fetch VAPID key'); + } + + const keyData = await keyResponse.json(); + const vapidKey = keyData.key; + + if (!vapidKey) { + throw new Error('Invalid VAPID key format'); + } + + // Convert the VAPID key to the required format + const convertedVapidKey = urlBase64ToUint8Array(vapidKey); + + // Create a new subscription + newSubscription = await self.registration.pushManager.subscribe({ + userVisibleOnly: true, + applicationServerKey: convertedVapidKey + }); + } + + // Send the new subscription to the server + await fetch('https://notify.vdo.ninja/subscribe', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + subscription: newSubscription, + topic: topic + }) + }); + + console.log('[SW-DEBUG] Successfully updated push subscription'); + + // Notify any open clients + self.clients.matchAll().then(clients => { + clients.forEach(client => { + client.postMessage({ + action: 'subscriptionUpdated', + topic: topic + }); + }); + }); + + } catch (error) { + console.error('[SW-DEBUG] Error resubscribing:', error); + } + } catch (error) { + console.error('[SW-DEBUG] Error in handleSubscriptionChange:', error); + } +} + +self.addEventListener('push', event => { + event.waitUntil((async () => { + try { + let notification = {}; + if (event.data) { + try { + notification = JSON.parse(event.data.text()); + } catch (e) { + console.error('[SW] Failed to parse push data:', e); + notification = { + title: 'VDO.Ninja Notification', + body: 'Someone joined your room', + timestamp: Date.now(), + url: self.registration.scope + }; + } + } else { + notification = { + title: 'VDO.Ninja Notification', + body: 'Someone joined your room', + timestamp: Date.now(), + url: self.registration.scope + }; + } + + notification.id = notification.id || `push-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`; + notification.timestamp = notification.timestamp || Date.now(); + notification.source = notification.source || 'web_push'; + + const isDuplicate = await isNotificationDuplicate(notification); + if (!isDuplicate) { + await storeNotification(notification); + + // Check permission before showing + if (Notification.permission === 'granted') { + await showNotification(notification).catch(err => { + console.error('[SW] Show notification error:', err); + }); + } else { + console.warn('[SW] Notification permission not granted'); + } + + broadcastToClients('newNotification', { notification }); + } + } catch (error) { + console.error('[SW] Error handling push notification:', error); + } + })()); +}); + +async function decryptPushMessage(rawData, subscription) { + try { + try { + return JSON.parse(rawData); + } catch (e) { + console.log('[SW] Push message not valid JSON, attempting decryption'); + } + if (!subscription.keys || !subscription.keys.p256dh || !subscription.keys.auth) { + console.error('[SW] Cannot decrypt push: missing subscription keys'); + throw new Error('Missing subscription keys'); + } + console.log('[SW] Push message received for endpoint:', subscription.endpoint.slice(-10)); + try { + const decodedData = atob(rawData); + return JSON.parse(decodedData); + } catch (e) { + return { + title: 'VDO.Ninja Notification', + body: 'New notification received', + timestamp: Date.now(), + url: self.registration.scope + }; + } + } catch (error) { + console.error('[SW] Error decrypting push message:', error); + return { + title: 'VDO.Ninja Notification', + body: 'New notification received', + timestamp: Date.now(), + url: self.registration.scope + }; + } +} +self.addEventListener('install', event => { + event.waitUntil( + caches.open(CACHE_NAME) + .then(cache => cache.addAll(urlsToCache)) + .then(() => self.skipWaiting()) + ); +}); +self.addEventListener('activate', event => { + event.waitUntil( + Promise.all([ + self.clients.claim(), + initStore().then(() => { + return getStoreItem('topic').then(topic => { + if (topic) { + console.log('[SW] Restoring connection for topic:', topic); + connectToSSE(topic); + } + }); + }) + ]) + ); +}); +self.addEventListener('fetch', event => { + if (event.request.method !== 'GET') { + return; + } + const url = new URL(event.request.url); + if (url.protocol !== 'http:' && url.protocol !== 'https:') { + return; + } + event.respondWith( + caches.match(event.request) + .then(response => { + if (response) { + return response; + } + return fetch(event.request) + .catch(error => { + console.error('[SW] Fetch error:', error); + if (event.request.url.includes('index.html')) { + return new Response('Offline Mode: Please reconnect to the internet', { + headers: { 'Content-Type': 'text/html' } + }); + } + return new Response('Offline resource unavailable'); + }); + }) + ); +}); +self.addEventListener('notificationclick', event => { + event.notification.close(); + event.waitUntil( + self.clients.matchAll({ type: 'window' }) + .then(clients => { + for (const client of clients) { + if (client.url.includes(self.registration.scope) && 'focus' in client) { + return client.focus(); + } + } + const url = event.notification.data?.url || self.registration.scope; + return self.clients.openWindow(url); + }) + ); +}); +self.addEventListener('message', event => { + const data = event.data; + if (!data || !data.action) return; + const messageId = data.messageId || `msg_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`; + const port = event.ports && event.ports[0]; + if (!port) { + console.error('[SW] No message port provided'); + return; + } + if (data.requiresResponse !== false) { + pendingResponses.set(messageId, { + port, + timestamp: Date.now() + }); + setTimeout(() => { + const pendingResponse = pendingResponses.get(messageId); + if (pendingResponse) { + try { + pendingResponse.port.postMessage({ + error: 'Response timeout in service worker' + }); + } catch (e) { + } + pendingResponses.delete(messageId); + } + }, 9000); + } + const sendResponse = (response) => { + const pendingResponse = pendingResponses.get(messageId); + if (pendingResponse && pendingResponse.port) { + try { + pendingResponse.port.postMessage(response); + } catch (e) { + console.error('[SW] Error sending response:', e); + } + pendingResponses.delete(messageId); + } + }; + Promise.resolve().then(async () => { + switch (data.action) { + case 'connect': + if (data.topic) { + const success = await connectToSSE(data.topic); + sendResponse({ + connected: success, + topic: data.topic + }); + } + break; + case 'disconnect': + await disconnectAll(); + sendResponse({ + connected: false + }); + break; + case 'syncNotifications': + const notifications = await getAllNotifications(); + sendResponse({ + notifications: notifications + }); + break; + case 'checkStatus': + const [topic, sseStatus, pollingStatus] = await Promise.all([ + getStoreItem('topic'), + getStoreItem('sseStatus'), + getStoreItem('pollingStatus') + ]); + sendResponse({ + action: 'statusUpdate', + config: topic ? { topic } : null, + sse: sseStatus || { connected: false }, + polling: pollingStatus || { isPolling: false } + }); + break; + case 'startPolling': + if (data.topic) { + startPolling(data.topic); + sendResponse({ success: true }); + } + break; + case 'testNotification': + if (data.notification) { + await showNotification(data.notification); + await storeNotification(data.notification); + broadcastToClients('newNotification', { + notification: data.notification + }); + sendResponse({ success: true }); + } + break; + default: + sendResponse({ error: 'Unknown action' }); + } + }).catch(error => { + console.error(`[SW] Error processing ${data.action}:`, error); + sendResponse({ + error: error.message || 'Error processing request' + }); + }); +}); +self.addEventListener('periodicsync', event => { + if (event.tag === 'notification-poll') { + Promise.all([ + getStoreItem('topic'), + getStoreItem('sseStatus') + ]).then(([topic, sseStatus]) => { + if (topic && (!sseStatus || !sseStatus.connected)) { + console.log('[SW] Running periodic background poll'); + pollForNotifications(topic); + } + }); + } +}); +const DB_NAME = 'VDONinjaNotifications'; +const DB_VERSION = 1; +let db = null; +function initStore() { + if (db) return Promise.resolve(db); + return new Promise((resolve, reject) => { + const request = indexedDB.open(DB_NAME, DB_VERSION); + request.onupgradeneeded = event => { + const db = event.target.result; + if (!db.objectStoreNames.contains('notifications')) { + const store = db.createObjectStore('notifications', { keyPath: 'id' }); + store.createIndex('timestamp', 'timestamp', { unique: false }); + } + if (!db.objectStoreNames.contains('store')) { + db.createObjectStore('store', { keyPath: 'key' }); + } + }; + request.onsuccess = event => { + db = event.target.result; + resolve(db); + }; + request.onerror = event => { + console.error('[SW] IndexedDB error:', event.target.error); + reject(event.target.error); + }; + }); +} +function storeNotification(notification) { + return initStore().then(() => { + return new Promise((resolve, reject) => { + try { + notification.id = notification.id || `notification-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`; + notification.timestamp = notification.timestamp || Date.now(); + notification.isNew = true; + const tx = db.transaction('notifications', 'readwrite'); + const store = tx.objectStore('notifications'); + console.log('[SW-DEBUG] Storing notification in IndexedDB:', notification.id); + const request = store.put(notification); + request.onsuccess = () => { + console.log('[SW-DEBUG] Successfully stored notification in DB:', notification.id); + cleanupOldNotifications(); + resolve(notification); + }; + request.onerror = event => { + const error = event.target.error; + console.error('[SW-DEBUG] Error storing notification in DB:', error); + reject(error); + }; + } catch (error) { + console.error('[SW-DEBUG] Exception in storeNotification:', error); + reject(error); + } + }); + }); +} +function getAllNotifications() { + return initStore().then(() => { + return new Promise((resolve, reject) => { + const tx = db.transaction('notifications', 'readonly'); + const store = tx.objectStore('notifications'); + const index = store.index('timestamp'); + const request = index.getAll(); + request.onsuccess = () => { + const notifications = request.result || []; + resolve(notifications.sort((a, b) => b.timestamp - a.timestamp)); + }; + request.onerror = event => { + console.error('[SW] Error getting notifications:', event.target.error); + reject(event.target.error); + }; + }); + }); +} +function cleanupOldNotifications() { + initStore().then(() => { + const tx = db.transaction('notifications', 'readwrite'); + const store = tx.objectStore('notifications'); + const countRequest = store.count(); + countRequest.onsuccess = () => { + if (countRequest.result <= 50) return; + const excess = countRequest.result - 50; + const index = store.index('timestamp'); + index.openCursor(null, 'next').onsuccess = event => { + const cursor = event.target.result; + if (!cursor) return; + let deleted = 0; + function deleteNext() { + if (deleted >= excess) return; + store.delete(cursor.value.id); + deleted++; + cursor.continue(); + } + deleteNext(); + }; + }; + }); +} +function setStoreItem(key, value) { + return initStore().then(() => { + return new Promise((resolve, reject) => { + const tx = db.transaction('store', 'readwrite'); + const store = tx.objectStore('store'); + const request = store.put({ + key: key, + value: value, + updated: Date.now() + }); + request.onsuccess = () => resolve(value); + request.onerror = event => reject(event.target.error); + }); + }); +} +function getStoreItem(key) { + return initStore().then(() => { + return new Promise((resolve, reject) => { + const tx = db.transaction('store', 'readonly'); + const store = tx.objectStore('store'); + const request = store.get(key); + request.onsuccess = () => { + resolve(request.result ? request.result.value : null); + }; + request.onerror = event => reject(event.target.error); + }); + }); +} +function connectToSSE(topic) { + if (!topic) return Promise.resolve(false); + disconnectSSE(); + currentTopic = topic; + return setStoreItem('topic', topic).then(() => { + try { + const url = `https://notify.vdo.ninja/events?topic=${encodeURIComponent(topic)}`; + console.log('[SW] Connecting to SSE:', url); + setStoreItem('sseStatus', { + connected: false, + connecting: true, + lastConnectAttempt: Date.now() + }); + + // Broadcast connection attempt + broadcastToClients('sseStatus', { + status: 'reconnecting', + attempt: reconnectAttempts + }); + + // Create new EventSource with longer timeout + sseConnection = new EventSource(url); + + // Increase connection timeout from 10s to 30s + const connectionTimeout = setTimeout(() => { + if (sseConnection) { + console.warn('[SW] SSE connection timed out, will retry'); + sseConnection.close(); + reconnectSSE(); + } + }, 30000); + + // Add an open event listener to handle immediate connection + sseConnection.addEventListener('open', () => { + console.log('[SW] SSE connection opened'); + // Don't clear timeout yet - wait for 'connect' event with data + }); + + sseConnection.addEventListener('connect', event => { + clearTimeout(connectionTimeout); + console.log('[SW] SSE connection established'); + reconnectAttempts = 0; + let connectionData = { connected: true }; + try { + connectionData = JSON.parse(event.data); + } catch (e) { + console.warn('[SW] Could not parse connection data:', e); + } + + setStoreItem('sseStatus', { + connected: true, + lastConnected: Date.now(), + data: connectionData + }); + + broadcastToClients('connectionStatus', { + connected: true, + topic: topic + }); + + broadcastToClients('sseStatus', { status: 'connected' }); + }); + + sseConnection.addEventListener('notification', event => { + console.log('[SW-DEBUG] SSE notification event received'); + try { + let notification = {}; + let eventData = event.data; + console.log('[SW-DEBUG] SSE event data:', eventData); + try { + notification = JSON.parse(eventData); + } catch (e) { + console.log('[SW-DEBUG] Failed to parse SSE data, using default notification'); + notification = { + title: 'VDO.Ninja Notification', + body: 'New notification received', + timestamp: Date.now() + }; + } + notification.source = 'sse'; + notification.id = notification.id || `sse-${Date.now()}-${Math.random().toString(36).slice(2, 11)}`; + notification.timestamp = notification.timestamp || Date.now(); + console.log('[SW-DEBUG] Processing SSE notification:', notification); + (async () => { + try { + console.log('[SW-DEBUG] Checking if SSE notification is a duplicate'); + const isDuplicate = await isNotificationDuplicate(notification); + if (!isDuplicate) { + console.log('[SW-DEBUG] Not a duplicate, proceeding with SSE notification:', notification.id); + try { + await storeNotification(notification); + console.log('[SW-DEBUG] Notification stored successfully'); + } catch (storeError) { + console.error('[SW-DEBUG] Error storing notification:', storeError); + } + try { + console.log('[SW-DEBUG] Showing notification'); + await showNotification(notification); + console.log('[SW-DEBUG] Notification shown successfully'); + } catch (showError) { + console.error('[SW-DEBUG] Error showing notification:', showError ? showError.toString() : 'Unknown error'); + } + try { + console.log('[SW-DEBUG] Broadcasting notification'); + broadcastToClients('newNotification', { notification }); + console.log('[SW-DEBUG] Notification broadcast complete'); + } catch (broadcastError) { + console.error('[SW-DEBUG] Error broadcasting notification:', broadcastError); + } + console.log('[SW-DEBUG] SSE notification processing complete'); + } else { + console.log('[SW-DEBUG] SSE notification is a duplicate, ignoring'); + } + } catch (error) { + console.error('[SW-DEBUG] Error processing SSE notification:', error); + } + })(); + } catch (e) { + console.error('[SW-DEBUG] Error handling SSE notification:', e); + } + }); + + sseConnection.addEventListener('reconnect', () => { + console.log('[SW] Received reconnect instruction'); + reconnectSSE(); + }); + + sseConnection.onerror = error => { + console.error('[SW] SSE connection error', error); + // Don't immediately reconnect - check readyState first + if (sseConnection && sseConnection.readyState === 2) { // CLOSED + reconnectSSE(); + } + }; + + return true; + } catch (e) { + console.error('[SW] Error setting up SSE:', e); + reconnectSSE(); + return false; + } + }); +} +function disconnectSSE() { + if (sseConnection) { + console.log('[SW] Closing SSE connection'); + sseConnection.close(); + sseConnection = null; + } + if (reconnectTimeout) { + clearTimeout(reconnectTimeout); + reconnectTimeout = null; + } +} + +function reconnectSSE() { + disconnectSSE(); + if (!currentTopic) return; + + reconnectAttempts++; + + // Implement exponential backoff with jitter + const baseDelay = Math.min( + MAX_RECONNECT_DELAY, + Math.pow(1.5, Math.min(reconnectAttempts, 8)) * 1000 + ); + + // Add jitter to prevent thundering herd problem + const jitter = Math.random() * 1000; + const delay = baseDelay + jitter; + + console.log(`[SW] Reconnecting SSE in ${Math.round(delay)}ms (attempt ${reconnectAttempts}/${MAX_RECONNECT_ATTEMPTS})`); + + setStoreItem('sseStatus', { + connected: false, + reconnecting: true, + lastDisconnected: Date.now(), + reconnectAttempt: reconnectAttempts, + nextReconnect: Date.now() + delay + }).then(() => { + broadcastToClients('sseStatus', { + status: 'reconnecting', + delay: delay, + attempt: reconnectAttempts + }); + + // Switch to polling after MAX_RECONNECT_ATTEMPTS + if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) { + console.log('[SW] Max reconnect attempts reached, switching to polling'); + startPolling(currentTopic); + + // After a longer delay (5 minutes), try SSE again + setTimeout(() => { + reconnectAttempts = 0; + connectToSSE(currentTopic); + }, 300000); + + return; + } + + // Set reconnect timeout + reconnectTimeout = setTimeout(() => { + connectToSSE(currentTopic); + }, delay); + }); +} + +function startPolling(topic) { + if (!topic) return Promise.resolve(false); + if (pollingInterval) { + clearInterval(pollingInterval); + pollingInterval = null; + } + return setStoreItem('pollingStatus', { + isPolling: true, + topic: topic, + lastPoll: Date.now(), + interval: 60000 + }).then(() => { + broadcastToClients('sseStatus', { status: 'polling' }); + pollForNotifications(topic); + pollingInterval = setInterval(() => { + pollForNotifications(topic); + }, 60000); + if ('periodicSync' in self.registration) { + self.registration.periodicSync.register('notification-poll', { + minInterval: 15 * 60 * 1000 + }).catch(err => { + console.warn('[SW] Failed to register periodic sync:', err); + }); + } + return true; + }); +} +async function isNotificationDuplicate(notification) { + if (!notification) { + console.log('[SW-DEBUG] Empty notification received'); + return true; + } + console.log('[SW-DEBUG] Checking notification:', { + id: notification.id, + title: notification.title, + body: notification.body, + source: notification.source, + timestamp: notification.timestamp + }); + notification.id = notification.id || `notification-${Date.now()}-${Math.random().toString(36).substring(2, 12)}`; + if (processedNotificationIds.has(notification.id)) { + console.log('[SW-DEBUG] Already processed this notification ID:', notification.id); + return true; + } + const contentFingerprint = `${notification.title || ''}|${notification.body || ''}`; + const shortWindowKey = `${contentFingerprint}|${Math.floor(Date.now()/5000)}`; + console.log('[SW-DEBUG] Checking short-term cache with key:', shortWindowKey); + console.log('[SW-DEBUG] Current cache size:', recentNotifications.size); + console.log('[SW-DEBUG] Current cache entries:', Array.from(recentNotifications)); + if (recentNotifications.has(shortWindowKey)) { + console.log('[SW-DEBUG] DUPLICATE: Found in short-term cache:', shortWindowKey); + return true; + } + console.log('[SW-DEBUG] Not a duplicate (so far), adding to caches'); + recentNotifications.add(shortWindowKey); + setTimeout(() => { + recentNotifications.delete(shortWindowKey); + console.log('[SW-DEBUG] Removed from short-term cache:', shortWindowKey); + }, 5000); + processedNotificationIds.add(notification.id); + setTimeout(() => { + processedNotificationIds.delete(notification.id); + console.log('[SW-DEBUG] Removed from processed IDs cache:', notification.id); + }, PROCESSED_ID_EXPIRY); + console.log('[SW-DEBUG] Unique notification identified:', notification.id); + return false; +} +function pollForNotifications(topic) { + if (!topic) return Promise.resolve([]); + return getStoreItem('pollingStatus').then(status => { + const lastPoll = status?.lastPoll || (Date.now() - 3600000); + return fetch(`https://notify.vdo.ninja/poll?topic=${encodeURIComponent(topic)}&since=${lastPoll}`) + .then(response => response.json()) + .then(async data => { + setStoreItem('pollingStatus', { + ...(status || {}), + lastPoll: Date.now(), + isPolling: true, + topic: topic + }); + if (!data.notifications || !Array.isArray(data.notifications)) { + return []; + } + const promises = []; + for (const notification of data.notifications) { + const isDuplicate = await isNotificationDuplicate(notification); + if (!isDuplicate) { + promises.push( + storeNotification(notification) + .then(() => showNotification(notification)) + .then(() => broadcastToClients('newNotification', { + notification, + fromPoll: true + })) + ); + } else { + console.log('[SW] Duplicate notification from poll ignored:', notification); + } + } + return Promise.all(promises); + }) + .catch(error => { + console.error('[SW] Error polling for notifications:', error); + return []; + }); + }); +} +function showNotification(notification) { + if (!self.registration) { + return Promise.reject(new Error('No service worker registration available')); + } + + function testImage(url) { + return fetch(url) + .then(response => { + if (response.ok) { + return url; + } + throw new Error('Image failed to load: '+url); + }); + } + + return Promise.all([ + testImage('./media/logo2.png'), + testImage('./media/icon.png') + ]).then(([logoExists, iconExists]) => { + const options = { + body: notification.body || 'Someone joined your room', + icon: logoExists ? './media/logo2.png' : undefined, + badge: iconExists ? './media/icon.png' : undefined, + vibrate: [100, 50, 100], + data: { + url: notification.url || notification.originalUrl || self.registration.scope, + timestamp: notification.timestamp || Date.now(), + topic: notification.topic, + id: notification.id + } + }; + + return self.registration.showNotification( + notification.title || 'VDO.Ninja', + options + ); + }); +} + +function broadcastToClients(action, data) { + return self.clients.matchAll().then(clients => { + clients.forEach(client => { + client.postMessage({ + action: action, + ...data + }); + }); + }); +} +function disconnectAll() { + disconnectSSE(); + if (pollingInterval) { + clearInterval(pollingInterval); + pollingInterval = null; + } + currentTopic = null; + return Promise.all([ + setStoreItem('topic', null), + setStoreItem('sseStatus', { connected: false }), + setStoreItem('pollingStatus', { isPolling: false }) + ]); +} \ No newline at end of file diff --git a/obs.html b/obs.html index 9e12f92..107a79d 100644 --- a/obs.html +++ b/obs.html @@ -22,25 +22,52 @@ body { .collapsible { cursor: pointer; user-select: none; - padding: 5px 0; + padding: 8px 0; position: relative; + font-weight: bold; + background: rgba(255,255,255,0.03); + margin: -8px -8px 8px -8px; + padding-left: 12px; + border-bottom: 1px solid #3a3a48; } .collapsible::after { content: '▼'; position: absolute; - right: 0; - font-size: 11px; + right: 12px; + font-size: 12px; + color: #8a8a9a; + transition: transform 0.2s ease; } .collapsible.collapsed::after { content: '►'; + transform: none; +} +.collapsible:hover { + background: rgba(255,255,255,0.08); +} +.collapsible::before { + content: 'Click to ' attr(data-state); + position: absolute; + right: 30px; + font-size: 10px; + color: #666; + font-weight: normal; +} +.collapsible[data-state="expand"]::before { + content: 'Click to expand'; +} +.collapsible[data-state="collapse"]::before { + content: 'Click to collapse'; } .collapsible-content { max-height: 1000px; overflow: hidden; transition: max-height 0.2s ease-out; + padding-top: 5px; } .collapsible-content.collapsed { max-height: 0; + padding-top: 0; } label { display: block; @@ -55,6 +82,10 @@ input[type="text"], input[type="password"], select { background-color: #3C404D; color: #e0e0e0; } +select { + padding: 6px 5px; + height: auto; +} button { padding: 6px 10px; background-color: #3C404D; @@ -193,6 +224,14 @@ input[type="checkbox"] { display: flex; gap: 4px; flex-wrap: wrap; +} +#obsSceneNameInput { + display: none !important; +} +#loadScenesBtn { + display: inline-block; + margin-left: 5px; + vertical-align: top; } @@ -200,7 +239,7 @@ input[type="checkbox"] {

VDO.Ninja OBS Control

-

OBS WebSocket Connection

+

OBS WebSocket Connection

@@ -217,7 +256,7 @@ input[type="checkbox"] {
-

VDO.Ninja Settings

+

VDO.Ninja Settings

@@ -232,12 +271,16 @@ input[type="checkbox"] {
-

OBS Target Settings

-
- - - - +

OBS Target Settings

+
-

Stream ID Mappings

-
- -
-

Active Streams

+

Active Streams

No active streams
@@ -287,8 +326,8 @@ input[type="checkbox"] {
-

Log

-
+

Log

+
@@ -323,6 +362,12 @@ document.querySelectorAll('.collapsible').forEach(header => { const content = this.nextElementSibling; if (content.classList.contains('collapsible-content')) { content.classList.toggle('collapsed'); + // Update the data-state attribute + if (content.classList.contains('collapsed')) { + this.setAttribute('data-state', 'expand'); + } else { + this.setAttribute('data-state', 'collapse'); + } } }); }); @@ -406,7 +451,7 @@ function updateVdoNinjaButtonState(connected) { // Toggle input fields based on connection state toggleVdoNinjaInputs(connected); } -// Save/load settings from localStorage + function saveSettings() { const settings = { obsWsUrl: obsWsUrlInput.value, @@ -414,50 +459,41 @@ function saveSettings() { vdoNinjaRoom: vdoNinjaRoomInput.value, vdoNinjaPassword: vdoNinjaPasswordInput.value, vdoNinjaStreamIds: vdoNinjaStreamIdsInput.value, - obsSceneName: obsSceneNameInput.value, + obsSceneName: obsSceneSelect.value, sourceSizing: sourceSizingSelect.value, autoAddSources: autoAddSourcesCheckbox.checked, autoRemoveSources: autoRemoveSourcesCheckbox.checked, vdoNinjaConnected: vdoNinjaConnected + // Removed cloneToMainScene if you choose to remove the global checkbox + // cloneToMainScene: document.getElementById('cloneToMainScene')?.checked || false }; localStorage.setItem('obsNinjaSettings', JSON.stringify(settings)); - // Save stream mappings separately const mappings = getStreamMappings(); localStorage.setItem('obsNinjaStreamMappings', JSON.stringify(mappings)); - - // Save enable mapping setting - const enableStreamMappingCheckbox = document.getElementById('enableStreamMapping'); - localStorage.setItem('obsNinjaEnableStreamMapping', enableStreamMappingCheckbox.checked); } + function calculateGridPositions(totalSources, canvasWidth, canvasHeight) { const positions = []; - // Determine grid dimensions (trying to make it as square as possible) let cols = Math.ceil(Math.sqrt(totalSources)); let rows = Math.ceil(totalSources / cols); - // Calculate cell size const cellWidth = canvasWidth / cols; const cellHeight = canvasHeight / rows; - // Calculate center offset for incomplete rows const lastRowItems = totalSources - ((rows - 1) * cols); const lastRowOffset = (cols - lastRowItems) * (cellWidth / 2); - // Calculate positions for each cell for (let row = 0; row < rows; row++) { for (let col = 0; col < cols; col++) { const index = row * cols + col; if (index < totalSources) { let xPos = col * cellWidth; - - // Center items in the last row if it's not full if (row === rows - 1 && lastRowItems < cols) { xPos += lastRowOffset; } - positions.push({ x: xPos, y: row * cellHeight, @@ -467,25 +503,17 @@ function calculateGridPositions(totalSources, canvasWidth, canvasHeight) { } } } - return positions; } function disconnectFromVdoNinja() { - vdoNinjaIframe.src = 'about:blank'; // Clear iframe - - // Clear any pending connection check + vdoNinjaIframe.src = 'about:blank'; if (vdoNinjaConnectionCheckTimer) { clearTimeout(vdoNinjaConnectionCheckTimer); vdoNinjaConnectionCheckTimer = null; } - - // Clear active streams activeStreams = {}; updateStreamList(); - - // Update button state updateVdoNinjaButtonState(false); - saveSettings(); } @@ -499,75 +527,115 @@ function connectToVdoNinja() { } initializeVdoNinjaIframe(); - - // Set the status to connecting vdoNinjaConnectionStatus.textContent = 'Status: Connecting...'; vdoNinjaConnectBtn.textContent = 'Cancel'; - // Start a timeout to check for actual connection if (vdoNinjaConnectionCheckTimer) { clearTimeout(vdoNinjaConnectionCheckTimer); } - vdoNinjaConnectionCheckTimer = setTimeout(() => { - // If we didn't receive any activity in 10 seconds, consider connection failed if (Date.now() - vdoNinjaLastActivityTime > 10000) { logMessage("VDO.Ninja connection timed out. No activity received."); vdoNinjaConnectionStatus.textContent = 'Status: Connection Failed'; vdoNinjaConnectBtn.textContent = 'Connect to VDO.Ninja'; - - // Don't update to connected state } }, 10000); - - // Disable inputs while connecting toggleVdoNinjaInputs(true); - saveSettings(); } -function addNewStreamMapping(streamId = '', sceneName = '') { +function addNewStreamMapping(streamId = '', label = '', sceneName = '', matchType = 'streamId', shouldClone = true, shouldSwitch = false) { const streamMappings = document.getElementById('streamMappings'); const mappingDiv = document.createElement('div'); - mappingDiv.className = 'stream-mapping flex-row'; + mappingDiv.className = 'stream-mapping'; mappingDiv.style.margin = '5px 0'; + mappingDiv.innerHTML = ` - - - +
+ +
+ + + + + +
+
+ + +
+ + ID Only: Match by Stream ID only | Label Only: Match by label only | + Both Required: Must match both | Either Match: Match if either matches + +
`; streamMappings.appendChild(mappingDiv); + const sceneDropdown = mappingDiv.querySelector('.mapping-scene-name'); + + // Populate dropdown with existing scenes + populateSceneDropdown(obsScenes, sceneDropdown); + + // Set the scene name if provided and valid + if (sceneName && obsScenes.some(scene => scene.sceneName === sceneName)) { + sceneDropdown.value = sceneName; + } - // Add event listener to remove button const removeBtn = mappingDiv.querySelector('.remove-mapping-btn'); removeBtn.addEventListener('click', () => { mappingDiv.remove(); saveSettings(); }); - // Add event listeners to inputs - const inputs = mappingDiv.querySelectorAll('input'); + const inputs = mappingDiv.querySelectorAll('input, select'); inputs.forEach(input => { input.addEventListener('change', saveSettings); }); } + function setupStreamMappingUI() { - // Get references to new elements - const enableStreamMappingCheckbox = document.getElementById('enableStreamMapping'); const streamMappingContainer = document.getElementById('streamMappingContainer'); const addStreamMappingBtn = document.getElementById('addStreamMappingBtn'); - // Event listeners - enableStreamMappingCheckbox.addEventListener('change', () => { - streamMappingContainer.style.display = enableStreamMappingCheckbox.checked ? 'block' : 'none'; - saveSettings(); + // If you decide to remove the global "cloneToMainScene" checkbox, remove the following block + /* + const cloneCheckboxDiv = document.createElement('div'); + cloneCheckboxDiv.innerHTML = ` + + `; + // Ensure streamMappingContainer.parentNode exists if you keep this + if (streamMappingContainer.parentNode) { + streamMappingContainer.parentNode.insertAdjacentElement('afterend', cloneCheckboxDiv); + const cloneCheckbox = document.getElementById('cloneToMainScene'); + if (cloneCheckbox) { + cloneCheckbox.addEventListener('change', saveSettings); + } + } + */ + + // Corrected event listener for adding new stream mapping + addStreamMappingBtn.addEventListener('click', () => { + addNewStreamMapping(); // Call without arguments }); - addStreamMappingBtn.addEventListener('click', addNewStreamMapping); - - // Load saved mappings loadStreamMappings(); } @@ -581,32 +649,34 @@ function loadSettings() { vdoNinjaRoomInput.value = settings.vdoNinjaRoom || ''; vdoNinjaPasswordInput.value = settings.vdoNinjaPassword || ''; vdoNinjaStreamIdsInput.value = settings.vdoNinjaStreamIds || ''; - obsSceneNameInput.value = settings.obsSceneName || ''; - sourceSizingSelect.value = settings.sourceSizing || 'autoGrid'; // Changed default to autoGrid + obsSceneSelect.value = settings.obsSceneName || ''; + sourceSizingSelect.value = settings.sourceSizing || 'autoGrid'; autoAddSourcesCheckbox.checked = settings.autoAddSources !== false; autoRemoveSourcesCheckbox.checked = settings.autoRemoveSources !== false; - // If VDO.Ninja was previously connected, reconnect + // Removed loading for 'cloneToMainScene' if you remove the global checkbox + /* + if (document.getElementById('cloneToMainScene') && typeof settings.cloneToMainScene !== 'undefined') { + document.getElementById('cloneToMainScene').checked = settings.cloneToMainScene; + } + */ + if (settings.vdoNinjaConnected) { - // Don't auto-connect, let user decide - // connectToVdoNinja(); + // connectToVdoNinja(); // User can reconnect manually } } catch (e) { logMessage(`Error loading settings: ${e.message}`); localStorage.removeItem('obsNinjaSettings'); } } else { - // If no settings found, set default to autoGrid sourceSizingSelect.value = 'autoGrid'; } - - // Initialize stream mapping UI - setupStreamMappingUI(); + setupStreamMappingUI(); // Call this after other settings are potentially loaded } + function updateStreamList() { console.log("Updating stream list with:", activeStreams); - if (Object.keys(activeStreams).length === 0) { streamListContainer.innerHTML = '
No active streams
'; return; @@ -617,192 +687,176 @@ function updateStreamList() { const stream = activeStreams[streamId]; const streamDiv = document.createElement('div'); streamDiv.className = 'stream-item'; + + const targetInfo = getTargetSceneForStream(streamId, stream.label); + const targetSceneName = targetInfo.scene; // This is the scene name string + const isDefaultScene = targetSceneName === getTargetScene(); + streamDiv.innerHTML = ` -
${stream.label || streamId}
- ID: ${streamId} +
${stream.label || streamId}
+ ID: ${streamId}${stream.label ? ` | Label: ${stream.label}` : ''} + + → Target Scene: ${targetSceneName} ${isDefaultScene ? '(default)' : '(mapped)'} + ${stream.sourceCreated ? ' ✓ Added to OBS' : ''} - + `; streamListContainer.appendChild(streamDiv); - // Add event listener to the button we just created const btn = streamDiv.querySelector('.add-stream-btn'); btn.addEventListener('click', () => { - addStreamToObs(streamId, stream.label); + // Pass the targetInfo object which contains { scene: sceneName, mapping: mappingObject } + addStreamToObs(streamId, stream.label, targetInfo); }); } - - // Log the updated DOM for debugging console.log("Stream list updated:", streamListContainer.innerHTML); } obsConnectBtn.addEventListener('click', () => { if (obsConnected && obs) { - // If already connected, disconnect logMessage("Disconnecting from OBS WebSocket..."); if (obs) { obs.close(); obs = null; } - // onclose handler will clean up state } else { - // Connect logic connectToOBS(); } }); -function getTargetSceneForStream(streamId) { - // If stream mapping is enabled, check for a specific mapping - const enableStreamMappingCheckbox = document.getElementById('enableStreamMapping'); - if (enableStreamMappingCheckbox.checked) { - const mappings = getStreamMappings(); - for (const mapping of mappings) { - if (mapping.streamId === streamId) { - return mapping.sceneName; - } +function getTargetSceneForStream(streamId, streamLabel = '') { + const mappings = getStreamMappings(); + const defaultTargetScene = getTargetScene(); // The scene selected in the main "Target Scene" dropdown + + for (const mapping of mappings) { + let isMatch = false; + switch (mapping.matchType) { + case 'streamId': isMatch = mapping.streamId && streamId === mapping.streamId; break; + case 'label': isMatch = mapping.label && streamLabel && streamLabel === mapping.label; break; + case 'both': isMatch = mapping.streamId && mapping.label && streamId === mapping.streamId && streamLabel === mapping.label; break; + case 'either': isMatch = (mapping.streamId && streamId === mapping.streamId) || (mapping.label && streamLabel && streamLabel === mapping.label); break; + } + if (isMatch && mapping.sceneName) { // Ensure mapping has a scene + return { scene: mapping.sceneName, mapping: mapping }; // Return object with scene name and full mapping } } - - // Fall back to the default scene - return getTargetScene(); + return { scene: defaultTargetScene, mapping: null }; // Default to main target scene if no match or mapping has no scene } +function updateSceneDropdowns() { + // Store current values before updating dropdowns + const currentMainValue = obsSceneSelect.value; + const mappingSelects = document.querySelectorAll('.mapping-scene-name'); + const currentMappingValues = Array.from(mappingSelects).map(select => select.value); + + // Update main scene dropdown + populateSceneDropdown(obsScenes, obsSceneSelect); + + // Restore main scene selection if still valid + if (currentMainValue && obsScenes.some(scene => scene.sceneName === currentMainValue)) { + obsSceneSelect.value = currentMainValue; + } + + // Update and restore mapping scene dropdowns + mappingSelects.forEach((select, index) => { + populateSceneDropdown(obsScenes, select); + if (currentMappingValues[index] && obsScenes.some(scene => scene.sceneName === currentMappingValues[index])) { + select.value = currentMappingValues[index]; + } + }); +} function loadStreamMappings() { const settingsJson = localStorage.getItem('obsNinjaStreamMappings'); if (settingsJson) { try { const mappings = JSON.parse(settingsJson); for (const mapping of mappings) { - addNewStreamMapping(mapping.streamId, mapping.sceneName); + addNewStreamMapping( + mapping.streamId, + mapping.label, + mapping.sceneName, + mapping.matchType, + mapping.cloneToMain !== undefined ? mapping.cloneToMain : true, + mapping.switchToScene !== undefined ? mapping.switchToScene : false + ); + } + + // If scenes are already loaded, update the dropdowns + if (obsScenes && obsScenes.length > 0) { + updateSceneDropdowns(); } } catch (e) { logMessage(`Error loading stream mappings: ${e.message}`); } } - - // Load enableStreamMapping setting - const enableMapping = localStorage.getItem('obsNinjaEnableStreamMapping') === 'true'; - const enableStreamMappingCheckbox = document.getElementById('enableStreamMapping'); - enableStreamMappingCheckbox.checked = enableMapping; - - // Show/hide container based on checkbox - const streamMappingContainer = document.getElementById('streamMappingContainer'); - streamMappingContainer.style.display = enableMapping ? 'block' : 'none'; } function getStreamMappings() { const mappings = []; const mappingDivs = document.querySelectorAll('.stream-mapping'); - mappingDivs.forEach(div => { const streamId = div.querySelector('.mapping-stream-id').value.trim(); + const label = div.querySelector('.mapping-label').value.trim(); + const matchType = div.querySelector('.mapping-match-type').value; const sceneName = div.querySelector('.mapping-scene-name').value.trim(); - - if (streamId && sceneName) { - mappings.push({ streamId, sceneName }); + const cloneToMain = div.querySelector('.mapping-clone-to-main').checked; + const switchToScene = div.querySelector('.mapping-switch-to-scene').checked; + if (sceneName && (streamId || label)) { // Ensure a scene and some identifier exists + mappings.push({ streamId, label, matchType, sceneName, cloneToMain, switchToScene }); } }); - return mappings; } - async function connectToOBS() { - // Get and validate URL let url = obsWsUrlInput.value.trim(); const password = obsWsPasswordInput.value; - if (!url) { logMessage("Error: OBS WebSocket URL is required."); return; } - - // Make sure URL starts with ws:// or wss:// if (!url.startsWith('ws://') && !url.startsWith('wss://')) { url = 'ws://' + url; - obsWsUrlInput.value = url; // Update the input field with normalized URL + obsWsUrlInput.value = url; } - - // Show connecting status obsConnectionStatus.textContent = 'Status: Connecting...'; - obsStatusIndicator.classList.remove('connected'); - obsStatusIndicator.classList.remove('error'); - + obsStatusIndicator.classList.remove('connected', 'error'); logMessage(`Attempting to connect to OBS at ${url}...`); - // Setup connection timeout const connectionTimeoutId = setTimeout(() => { if (obs && obs.readyState !== WebSocket.OPEN) { logMessage("Connection attempt timed out"); - if (obs) { - try { - obs.close(); - } catch (e) { - // Ignore close errors - } - obs = null; - } + if (obs) { try { obs.close(); } catch (e) {} obs = null; } obsConnectionStatus.textContent = 'Status: Error - Connection timed out'; obsStatusIndicator.classList.add('error'); } - }, 10000); // 10 second timeout + }, 10000); try { - // Create new WebSocket connection obs = new WebSocket(url); - - // Set up WebSocket event handlers - obs.onopen = () => { - logMessage("WebSocket connection opened. Waiting for Hello message..."); - // The actual authentication will happen when we receive the Hello message in onmessage - }; - + obs.onopen = () => logMessage("WebSocket connection opened. Waiting for Hello message..."); obs.onmessage = async (event) => { try { const message = JSON.parse(event.data); - if (message.op === 0) { // Hello logMessage("Received Hello from OBS WebSocket server"); - - // Display the raw message for debugging - logMessage(JSON.stringify(message)); - + // logMessage(JSON.stringify(message)); // Optional: raw hello message try { - // Prepare Identify message - const identifyPayload = { - op: 1, // Identify - d: { - rpcVersion: 1, - eventSubscriptions: (1 << 0) | (1 << 1), // General and Config events - } - }; - - // Add authentication if required + const identifyPayload = { op: 1, d: { rpcVersion: 1, eventSubscriptions: (1 << 0) | (1 << 1) } }; if (message.d && message.d.authentication) { - const challenge = message.d.authentication.challenge; - const salt = message.d.authentication.salt; - + const { challenge, salt } = message.d.authentication; if (password) { - const authResponse = await generateAuthResponse(password, salt, challenge); - identifyPayload.d.authentication = authResponse; + identifyPayload.d.authentication = await generateAuthResponse(password, salt, challenge); logMessage("Authentication data prepared"); - } else { - logMessage("Warning: Server requires authentication but no password provided"); - } + } else { logMessage("Warning: Server requires authentication but no password provided"); } } - - // Send Identify message - logMessage("Sending Identify message to OBS WebSocket server"); - logMessage(JSON.stringify(identifyPayload)); + // logMessage("Sending Identify message: " + JSON.stringify(identifyPayload)); // Optional: raw identify obs.send(JSON.stringify(identifyPayload)); } catch (error) { - logMessage(`Error during authentication: ${error.message}`); - if (obs) { - obs.close(); - } + logMessage(`Error during authentication setup: ${error.message}`); + if (obs) obs.close(); } } else if (message.op === 2) { // Identified (auth success) - clearTimeout(connectionTimeoutId); // Clear the timeout since we're now connected - + clearTimeout(connectionTimeoutId); logMessage("OBS Authentication successful!"); obsConnected = true; obsConnectBtn.textContent = 'Disconnect'; @@ -810,73 +864,41 @@ async function connectToOBS() { obsConnectBtn.classList.remove('disconnected'); obsConnectionStatus.textContent = 'Status: Connected'; obsStatusIndicator.classList.add('connected'); - onObsConnected(); } else if (message.op === 7) { // RequestResponse - // Process the response if (message.d && message.d.requestId && requestCallbacks[message.d.requestId]) { requestCallbacks[message.d.requestId](message.d); delete requestCallbacks[message.d.requestId]; } - - if (message.d && message.d.requestStatus && message.d.requestStatus.code !== 100) { // 100 is success + if (message.d && message.d.requestStatus && message.d.requestStatus.code !== 100) { logMessage(`OBS Request Error (${message.d.requestType || 'Unknown'}): ${message.d.requestStatus.comment || 'Unknown error'}`); } } else if (message.op === 5) { // Event - // Handle events as needed logMessage(`Received event: ${message.d ? message.d.eventType : 'Unknown'}`); } else { - logMessage(`Received message with opcode ${message.op}: ${JSON.stringify(message)}`); + // logMessage(`Received message op ${message.op}: ${JSON.stringify(message)}`); // Optional: other messages } - } catch (error) { - logMessage(`Error processing WebSocket message: ${error.message}`); - } + } catch (error) { logMessage(`Error processing WebSocket message: ${error.message}`); } }; - obs.onerror = (error) => { clearTimeout(connectionTimeoutId); logMessage(`OBS WebSocket Error: ${error.message || 'Unknown WebSocket error'}`); obsStatusIndicator.classList.add('error'); obsConnectionStatus.textContent = 'Status: Error'; }; - obs.onclose = (event) => { clearTimeout(connectionTimeoutId); - - let closeReason = ''; - - // Handle specific close codes - if (event.code) { - switch (event.code) { - case 1000: - closeReason = 'Normal closure'; - break; - case 1006: - closeReason = 'Abnormal closure - connection might have timed out or failed'; - break; - case 4009: - closeReason = 'Authentication Failed - incorrect password'; - break; - case 4010: - closeReason = 'Authentication Failed - outdated plugin protocol'; - break; - default: - closeReason = `Close code: ${event.code}`; - } - } - + let closeReason = event.code ? `Code: ${event.code}` : 'Unknown reason'; + if (event.code === 4009) closeReason = 'Authentication Failed - incorrect password'; logMessage(`OBS WebSocket Connection Closed. ${closeReason}`); obsConnected = false; obsConnectBtn.textContent = 'Connect to OBS'; obsConnectBtn.classList.remove('connected'); obsConnectBtn.classList.add('disconnected'); obsConnectionStatus.textContent = 'Status: Disconnected'; - obsStatusIndicator.classList.remove('connected'); - obsStatusIndicator.classList.remove('error'); - + obsStatusIndicator.classList.remove('connected', 'error'); onObsDisconnected(); }; - } catch (error) { clearTimeout(connectionTimeoutId); logMessage(`Error creating WebSocket connection: ${error.message}`); @@ -885,158 +907,54 @@ async function connectToOBS() { } } - -// Helper function to handle successful connection -function handleSuccessfulConnection() { - obsConnected = true; - obsConnectBtn.textContent = 'Disconnect from OBS'; - obsConnectBtn.classList.add('connected'); - obsConnectBtn.classList.remove('disconnected'); - obsConnectionStatus.textContent = 'Status: Connected'; - obsStatusIndicator.classList.add('connected'); - onObsConnected(); -} -// Helper function to handle request responses -function handleRequestResponse(message) { - if (message.d.requestId && requestCallbacks[message.d.requestId]) { - requestCallbacks[message.d.requestId](message.d); - delete requestCallbacks[message.d.requestId]; - } - - if (message.d.requestStatus && message.d.requestStatus.code !== 100) { // 100 is success - logMessage(`OBS Request Error (${message.d.requestType}): ${message.d.requestStatus.comment || 'Unknown error'}`); - } -} -async function handleHelloMessage(message) { - try { - const password = obsWsPasswordInput.value; - // Prepare Identify message - const identifyPayload = { - op: 1, // Identify - d: { - rpcVersion: 1, - eventSubscriptions: (1 << 0) | (1 << 1), // General and Config events - } - }; - - // Add authentication if required - if (message.d.authentication) { - const challenge = message.d.authentication.challenge; - const salt = message.d.authentication.salt; - - if (password) { - identifyPayload.d.authentication = await generateAuthResponse(password, salt, challenge); - logMessage("Authentication data prepared"); - } else { - logMessage("Warning: Server requires authentication but no password provided"); - } - } - - // Send Identify message - logMessage("Sending Identify message to OBS WebSocket server"); - obs.send(JSON.stringify(identifyPayload)); - } catch (error) { - logMessage(`Error during authentication: ${error.message}`); - } -} - async function generateAuthResponse(password, salt, challenge) { try { - // Create TextEncoder const encoder = new TextEncoder(); - - // Step 1: Generate secret hash using SHA-256 const secretString = password + salt; const secretData = encoder.encode(secretString); - let secretHash; - try { - // Try using Web Crypto API first - if (window.crypto && window.crypto.subtle) { - const hashBuffer = await window.crypto.subtle.digest('SHA-256', secretData); - secretHash = new Uint8Array(hashBuffer); - } else { - throw new Error("Web Crypto not available"); - } - } catch (e) { - // Fallback to jsSHA library - logMessage("Using jsSHA fallback for auth"); - await loadJsShaLibrary(); + if (window.crypto && window.crypto.subtle) { + const hashBuffer = await window.crypto.subtle.digest('SHA-256', secretData); + secretHash = new Uint8Array(hashBuffer); + } else { + await loadJsShaLibrary(); // Ensure jsSHA is loaded const shaObj = new jsSHA("SHA-256", "TEXT", { encoding: "UTF8" }); shaObj.update(secretString); const hashHex = shaObj.getHash("HEX"); secretHash = new Uint8Array(hashHex.match(/.{1,2}/g).map(byte => parseInt(byte, 16))); } - - // Convert to Base64 const secretBase64 = btoa(String.fromCharCode.apply(null, secretHash)); - - // Step 2: Generate auth response const authString = secretBase64 + challenge; const authData = encoder.encode(authString); - let authHash; - try { - // Try using Web Crypto API first - if (window.crypto && window.crypto.subtle) { - const hashBuffer = await window.crypto.subtle.digest('SHA-256', authData); - authHash = new Uint8Array(hashBuffer); - } else { - throw new Error("Web Crypto not available"); - } - } catch (e) { - // Fallback to jsSHA library + if (window.crypto && window.crypto.subtle) { + const hashBuffer = await window.crypto.subtle.digest('SHA-256', authData); + authHash = new Uint8Array(hashBuffer); + } else { + // jsSHA already loaded const shaObj = new jsSHA("SHA-256", "TEXT", { encoding: "UTF8" }); shaObj.update(authString); const hashHex = shaObj.getHash("HEX"); authHash = new Uint8Array(hashHex.match(/.{1,2}/g).map(byte => parseInt(byte, 16))); } - - // Convert to Base64 return btoa(String.fromCharCode.apply(null, authHash)); } catch (error) { - logMessage(`Auth error: ${error.message}`); + logMessage(`Auth generation error: ${error.message}`); throw error; } } -// Helper function to send OBS WebSocket requests function sendRequest(requestType, requestData = {}) { return new Promise((resolve, reject) => { - if (!obsConnected || !obs) { - reject(new Error("Not connected to OBS")); - return; - } - + if (!obsConnected || !obs) { reject(new Error("Not connected to OBS")); return; } const requestId = generateRequestId(requestType); - - // Register callback for this request requestCallbacks[requestId] = (response) => { - if (response.requestStatus.code === 100) { - resolve(response.responseData || {}); - } else { - reject(new Error(`Request failed: ${response.requestStatus.comment}`)); - } + if (response.requestStatus.code === 100) resolve(response.responseData || {}); + else reject(new Error(`Request ${requestType} failed: ${response.requestStatus.comment}`)); }; - - // Send the request - const request = { - op: 6, // Request - d: { - requestType: requestType, - requestId: requestId, - requestData: requestData - } - }; - - try { - obs.send(JSON.stringify(request)); - } catch (error) { - delete requestCallbacks[requestId]; - reject(error); - } - - // Set a timeout to reject the promise if we don't get a response + const request = { op: 6, d: { requestType, requestId, requestData } }; + try { obs.send(JSON.stringify(request)); } + catch (error) { delete requestCallbacks[requestId]; reject(error); } setTimeout(() => { if (requestCallbacks[requestId]) { delete requestCallbacks[requestId]; @@ -1047,38 +965,31 @@ function sendRequest(requestType, requestData = {}) { } function onObsConnected() { - logMessage("OBS Connected. Fetching scenes and initializing VDO.Ninja iframe."); - fetchObsScenes(); + logMessage("OBS Connected. Fetching scenes..."); - // Apply grid layout if it's selected - if (sourceSizingSelect.value === 'autoGrid') { - setTimeout(rearrangeAllStreams, 1000); // Short delay to ensure scenes are loaded - } - - // If VDO.Ninja was previously connected according to settings, reconnect - const settingsJson = localStorage.getItem('obsNinjaSettings'); - if (settingsJson) { - try { - const settings = JSON.parse(settingsJson); - if (settings.vdoNinjaConnected && - (settings.vdoNinjaRoom || settings.vdoNinjaStreamIds)) { - // Only connect if we have valid connection parameters - connectToVdoNinja(); + // Fetch scenes first, then handle VDO.Ninja connection + fetchObsScenes().then(() => { + // Now that scenes are loaded, check if VDO.Ninja should be reconnected + const settingsJson = localStorage.getItem('obsNinjaSettings'); + if (settingsJson) { + try { + const settings = JSON.parse(settingsJson); + if (settings.vdoNinjaConnected && (settings.vdoNinjaRoom || settings.vdoNinjaStreamIds)) { + connectToVdoNinja(); + } + } catch (e) { + logMessage(`Error re-connecting VDO.Ninja: ${e.message}`); } - } catch (e) { - logMessage(`Error loading VDO.Ninja connection settings: ${e.message}`); } - } + + // Apply auto-grid after everything is loaded + if (sourceSizingSelect.value === 'autoGrid') { + setTimeout(rearrangeAllStreamsInScene, 1000, getTargetScene()); + } + }); } - function onObsDisconnected() { logMessage("OBS Disconnected."); - - // Note: We no longer automatically stop VDO.Ninja iframe here - // Only clear streams if we're connected to OBS - - // Clear active OBS connections, but don't disconnect VDO.Ninja - // activeStreams remains intact but sourceCreated set to false for (const streamId in activeStreams) { activeStreams[streamId].sourceCreated = false; } @@ -1086,692 +997,507 @@ function onObsDisconnected() { } async function fetchObsScenes() { - if (!obsConnected || !obs) return; - logMessage("Fetching OBS scenes..."); - - try { - const response = await sendRequest('GetSceneList'); - if (response && response.scenes) { - obsScenes = response.scenes; - populateSceneDropdown(response.scenes); - } - } catch (error) { - logMessage(`Error fetching OBS scenes: ${error.message}`); - } + if (!obsConnected || !obs) return; + logMessage("Fetching OBS scenes..."); + try { + const response = await sendRequest('GetSceneList'); + if (response && response.scenes) { + obsScenes = response.scenes; + updateSceneDropdowns(); + + // Properly restore main scene selection after scenes are loaded + const savedSettings = localStorage.getItem('obsNinjaSettings'); + if (savedSettings) { + try { + const settings = JSON.parse(savedSettings); + if (settings.obsSceneName && obsScenes.some(s => s.sceneName === settings.obsSceneName)) { + obsSceneSelect.value = settings.obsSceneName; + } + } catch (e) { + logMessage(`Error restoring scene selection: ${e.message}`); + } + } + + // Restore mapping scene selections after scenes are loaded + const savedMappings = localStorage.getItem('obsNinjaStreamMappings'); + if (savedMappings) { + try { + const mappings = JSON.parse(savedMappings); + const mappingSceneSelects = document.querySelectorAll('.mapping-scene-name'); + mappingSceneSelects.forEach((select, index) => { + if (mappings[index] && mappings[index].sceneName) { + if (obsScenes.some(scene => scene.sceneName === mappings[index].sceneName)) { + select.value = mappings[index].sceneName; + } + } + }); + } catch (e) { + logMessage(`Error restoring mapping scene selections: ${e.message}`); + } + } + } + } catch (error) { + logMessage(`Error fetching OBS scenes: ${error.message}`); + } } -function populateSceneDropdown(scenesData) { - obsSceneSelect.innerHTML = ''; // Clear existing options - - if (!scenesData || scenesData.length === 0) { - logMessage("No scenes found or error in fetching."); - obsSceneSelect.style.display = 'none'; - obsSceneNameInput.style.display = 'block'; // Fallback to text input - return; - } - - scenesData.forEach(scene => { - const option = document.createElement('option'); - option.value = scene.sceneName; - option.textContent = scene.sceneName; - obsSceneSelect.appendChild(option); - }); - - obsSceneSelect.style.display = 'block'; - obsSceneNameInput.style.display = 'none'; // Hide text input if dropdown is populated - - // Set the current scene as selected if it exists - if (obsSceneNameInput.value) { - const matchingOption = Array.from(obsSceneSelect.options) - .find(option => option.value === obsSceneNameInput.value); - - if (matchingOption) { - obsSceneSelect.value = obsSceneNameInput.value; - } - } - - logMessage("OBS Scenes dropdown populated."); + +function populateSceneDropdown(scenesData, selectElement = obsSceneSelect) { + const currentValue = selectElement.value; + selectElement.innerHTML = ''; + + if (!scenesData || scenesData.length === 0) { + return; + } + + scenesData.forEach(scene => { + const option = document.createElement('option'); + option.value = scene.sceneName; + option.textContent = scene.sceneName; + selectElement.appendChild(option); + }); + + // Restore the value if it still exists in the list + if (currentValue && scenesData.some(scene => scene.sceneName === currentValue)) { + selectElement.value = currentValue; + } } -function getTargetScene() { - return obsSceneSelect.style.display !== 'none' ? obsSceneSelect.value : obsSceneNameInput.value.trim(); -} +function getTargetScene() { return obsSceneSelect.value || ''; } function getVdoNinjaViewUrl(streamId, includeCommonParams = true) { const room = vdoNinjaRoomInput.value.trim(); const ninjaPassword = vdoNinjaPasswordInput.value; - - // Start with the base URL let url = "https://vdo.ninja/?"; - - // Handle different URL structures for room vs. non-room - if (room) { - // In a room, we need to use view+room with solo parameter - url += `view=${encodeURIComponent(streamId)}&solo&room=${encodeURIComponent(room)}`; - } else { - // Not in a room, just use view parameter - url += `view=${encodeURIComponent(streamId)}`; - } - - // Add password if provided - if (ninjaPassword) { - url += `&password=${encodeURIComponent(ninjaPassword)}`; - } - - // Add common parameters if requested - if (includeCommonParams) { - url += "&cleanoutput&proaudio&ab=160&transparent&autoplay&codec=h264"; - } - + if (room) url += `view=${encodeURIComponent(streamId)}&solo&room=${encodeURIComponent(room)}`; + else url += `view=${encodeURIComponent(streamId)}`; + if (ninjaPassword) url += `&password=${encodeURIComponent(ninjaPassword)}`; + if (includeCommonParams) url += "&cleanoutput&proaudio&ab=160&transparent&autoplay&codec=h264"; return url; } function initializeVdoNinjaIframe() { const room = vdoNinjaRoomInput.value.trim(); const streamIds = vdoNinjaStreamIdsInput.value.trim(); - - if (!room && !streamIds) { - logMessage("VDO.Ninja Error: Room Name or Stream ID(s) must be provided."); - return; - } - - // Always use secure HTTPS connection + if (!room && !streamIds) { logMessage("VDO.Ninja: Room or Stream ID(s) needed."); return; } let vdoNinjaUrl = "https://vdo.ninja/?"; - if (room) { vdoNinjaUrl += `room=${encodeURIComponent(room)}`; - - if (streamIds) { - // If in a room and viewing specific streams, use view+solo - const viewParam = streamIds.split(',').map(s => s.trim()).join(','); - vdoNinjaUrl += `&view=${encodeURIComponent(viewParam)}&solo`; - } + if (streamIds) vdoNinjaUrl += `&view=${encodeURIComponent(streamIds.split(',').map(s => s.trim()).join(','))}&solo`; } else if (streamIds) { - // If not in a room, just use view vdoNinjaUrl += `view=${encodeURIComponent(streamIds.split(',').map(s => s.trim()).join(','))}`; } - - if (vdoNinjaPasswordInput.value) { - vdoNinjaUrl += `&password=${encodeURIComponent(vdoNinjaPasswordInput.value)}`; - } - - // Add parameters for data-only mode and other required VDO.Ninja flags - vdoNinjaUrl += "&cleanoutput&dataonly&nocursor&nopush&debug&noaudio&novideo"; - - // Add CORS attributes to make the iframe COEP-friendly - vdoNinjaUrl += "&cors="+encodeURIComponent(window.location.origin); - - logMessage(`Loading VDO.Ninja iframe with URL: ${vdoNinjaUrl}`); - - // Add crossorigin and other attributes that help with COEP - vdoNinjaIframe.src = 'about:blank'; // Clear first to reset any error state + if (vdoNinjaPasswordInput.value) vdoNinjaUrl += `&password=${encodeURIComponent(vdoNinjaPasswordInput.value)}`; + vdoNinjaUrl += "&cleanoutput&dataonly&nocursor&nopush&debug&noaudio&novideo&cors="+encodeURIComponent(window.location.origin); + logMessage(`Loading VDO.Ninja iframe: ${vdoNinjaUrl}`); + vdoNinjaIframe.src = 'about:blank'; vdoNinjaIframe.setAttribute('crossorigin', 'anonymous'); vdoNinjaIframe.setAttribute('allow', 'autoplay; camera; microphone; fullscreen; display-capture; clipboard-write'); - vdoNinjaIframe.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-popups'); - - // Delay setting the source to allow attributes to apply - setTimeout(() => { - vdoNinjaIframe.src = vdoNinjaUrl; - }, 10); - - // Save settings + // Sandbox might be too restrictive for some VDO.Ninja features, but good for security + // vdoNinjaIframe.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-popups'); + setTimeout(() => { vdoNinjaIframe.src = vdoNinjaUrl; }, 10); saveSettings(); } window.addEventListener("message", (event) => { - // Verify origin for security - if (!event.origin.startsWith("https://vdo.ninja")) { - return; - } - - if (event.source !== vdoNinjaIframe.contentWindow) { - return; - } - + if (!event.origin.startsWith("https://vdo.ninja") || event.source !== vdoNinjaIframe.contentWindow) return; const data = event.data; - - // Update the last activity timestamp on any message vdoNinjaLastActivityTime = Date.now(); - - // If we receive any message from VDO.Ninja and we're not marked as connected yet, update status if (!vdoNinjaConnected) { updateVdoNinjaButtonState(true); - - // Clear any pending connection check - if (vdoNinjaConnectionCheckTimer) { - clearTimeout(vdoNinjaConnectionCheckTimer); - vdoNinjaConnectionCheckTimer = null; - } - - logMessage("VDO.Ninja connection established (received message)"); - } - - // Log incoming messages for debugging - console.log("VDO.Ninja message received:", data); - - if (data && ( - data.action === "guest-connected" || - data.action === "view-connection" || - data.action === "push-connection" || - data.action === "director-connected" - )) { - logMessage(`VDO.Ninja: ${JSON.stringify(data)}`); + if (vdoNinjaConnectionCheckTimer) { clearTimeout(vdoNinjaConnectionCheckTimer); vdoNinjaConnectionCheckTimer = null; } + logMessage("VDO.Ninja connection established."); } + // if (data.action !== 'view-stats-updated') console.log("VDO.Ninja message:", data); - // Process the connection events if (data && data.streamID) { - if (data.action === "view-connection" && data.value === true) { - // Stream connected - logMessage(`New VDO.Ninja stream connected: ${data.streamID}. Label: Stream ${data.streamID}`); - - activeStreams[data.streamID] = { - label: data.label || `Stream ${data.streamID}`, - sourceCreated: false, - streamId: data.streamID, - uuid: data.UUID || null, - connected: true - }; - + const streamId = data.streamID; + const label = data.label || `Stream ${streamId}`; + + if ((data.action === "view-connection" && data.value === true) || + (data.action === "guest-connected") || + (data.action === "push-connection" && data.value === true)) { + logMessage(`VDO.Ninja stream connected: ${label} (ID: ${streamId})`); + activeStreams[streamId] = { label, sourceCreated: false, streamId, uuid: data.UUID || null, connected: true }; updateStreamList(); - - // Auto-add to OBS if enabled if (autoAddSourcesCheckbox.checked) { - addStreamToObs(data.streamID, activeStreams[data.streamID].label); + const targetInfo = getTargetSceneForStream(streamId, label); + addStreamToObs(streamId, label, targetInfo); } - } - else if ((data.action === "view-connection" && data.value === false) || - (data.action === "push-connection" && data.value === false)) { - // Stream disconnected - if (activeStreams[data.streamID]) { - logMessage(`VDO.Ninja stream disconnected: ${data.streamID}`); - - // Remove from OBS if auto-remove is enabled + } else if ((data.action === "view-connection" && data.value === false) || + (data.action === "push-connection" && data.value === false)) { + if (activeStreams[streamId]) { + logMessage(`VDO.Ninja stream disconnected: ${label} (ID: ${streamId})`); if (autoRemoveSourcesCheckbox && autoRemoveSourcesCheckbox.checked) { - removeStreamFromObs(data.streamID); + removeStreamFromObs(streamId); // Pass targetInfo if available or let removeStreamFromObs determine it } - - delete activeStreams[data.streamID]; + delete activeStreams[streamId]; + updateStreamList(); + } + } else if (data.action === "view-connection-info" && data.value && data.value.label) { + if (activeStreams[streamId]) { + activeStreams[streamId].label = data.value.label; updateStreamList(); } } - else if (data.action === "guest-connected" || (data.action === "push-connection" && data.value === true)) { - // Another type of connection - logMessage(`New VDO.Ninja stream connected: ${data.streamID}. Label: ${data.label || `Stream ${data.streamID}`}`); - - activeStreams[data.streamID] = { - label: data.label || `Stream ${data.streamID}`, - sourceCreated: false, - streamId: data.streamID, - uuid: data.UUID || null, - connected: true - }; - - updateStreamList(); - - // Auto-add to OBS if enabled - if (autoAddSourcesCheckbox.checked) { - addStreamToObs(data.streamID, activeStreams[data.streamID].label); - } - } - } else if (data && data.action === "ping") { - // We got a ping message, good for keeping connection alive - console.log("VDO.Ninja ping received"); - } else if (data && data.action === "initialize") { - // VDO.Ninja is telling us it's initialized - logMessage("VDO.Ninja iframe initialized"); } }, false); function startVdoNinjaConnectionMonitor() { - // Run every 30 seconds setInterval(() => { - if (vdoNinjaConnected) { - // If we haven't received a message in 45 seconds, consider the connection dead - if (Date.now() - vdoNinjaLastActivityTime > 45000) { - logMessage("VDO.Ninja connection lost (no activity for 45 seconds)"); - - // Mark as disconnected but don't clear the iframe yet - // - user might want to reconnect - vdoNinjaConnectionStatus.textContent = 'Status: Connection Lost'; - vdoNinjaStatusIndicator.classList.remove('connected'); - - // Show a reconnect button - vdoNinjaConnectBtn.textContent = 'Reconnect'; - } + if (vdoNinjaConnected && Date.now() - vdoNinjaLastActivityTime > 45000) { + logMessage("VDO.Ninja connection lost (no activity)."); + vdoNinjaConnectionStatus.textContent = 'Status: Connection Lost'; + vdoNinjaStatusIndicator.classList.remove('connected'); + vdoNinjaConnectBtn.textContent = 'Reconnect'; + // Consider calling disconnectFromVdoNinja() or parts of it if full reset is desired } }, 30000); } -async function addStreamToObs(streamId, streamLabel, targetSceneName = null) { - if (!obsConnected || !obs) { - logMessage("Cannot add stream to OBS: Not connected."); - return; - } +async function addStreamToObs(streamId, streamLabel, targetInfo = null) { + if (!obsConnected || !obs) { logMessage("Cannot add stream: Not connected to OBS."); return; } - const targetScene = targetSceneName || getTargetScene(); - if (!targetScene) { - logMessage("Cannot add stream to OBS: Target scene name is required."); - return; - } + const resolvedTargetInfo = targetInfo || getTargetSceneForStream(streamId, streamLabel); + const targetSceneName = resolvedTargetInfo.scene; + const mappingRule = resolvedTargetInfo.mapping; + + if (!targetSceneName) { logMessage("Cannot add stream: Target OBS scene name is required."); return; } const sourceName = `VDO.Ninja_${streamId}`; + const mainDefaultScene = getTargetScene(); - // Use the helper function to get the correct URL - const vdoNinjaStreamUrl = getVdoNinjaViewUrl(streamId); + let shouldCloneThisStreamToMain = false; + if (mappingRule && mappingRule.sceneName !== mainDefaultScene && mappingRule.cloneToMain) { + shouldCloneThisStreamToMain = true; + } - // Get OBS canvas size first to properly size the source - let canvasWidth = 1920; - let canvasHeight = 1080; - + let shouldSwitchToThisScene = false; + if (mappingRule && mappingRule.switchToScene) { + shouldSwitchToThisScene = true; + } + + const vdoNinjaStreamUrl = getVdoNinjaViewUrl(streamId); + let canvasWidth = 1920, canvasHeight = 1080; try { const videoSettings = await sendRequest('GetVideoSettings'); if (videoSettings && videoSettings.baseWidth && videoSettings.baseHeight) { - canvasWidth = videoSettings.baseWidth; - canvasHeight = videoSettings.baseHeight; + canvasWidth = videoSettings.baseWidth; canvasHeight = videoSettings.baseHeight; } - } catch (error) { - logMessage(`Could not get canvas size, using default 1920x1080: ${error.message}`); - } + } catch (error) { logMessage(`Canvas size error: ${error.message}, using default.`); } - const inputSettings = { - url: vdoNinjaStreamUrl, - width: canvasWidth, - height: canvasHeight, - fps: 30, - reroute_audio: true, // This ensures audio is captured by OBS - restart_when_active: true, - shutdown: true - }; + const inputSettings = { url: vdoNinjaStreamUrl, width: canvasWidth, height: canvasHeight, fps: 30, reroute_audio: true, restart_when_active: false, shutdown: false }; - logMessage(`Adding browser source '${sourceName}' to scene '${targetScene}' (${canvasWidth}x${canvasHeight})`); + logMessage(`Adding source '${sourceName}' to scene '${targetSceneName}'. Cloning to main: ${shouldCloneThisStreamToMain}. Switching: ${shouldSwitchToThisScene}`); try { - // Check if source already exists - let sourceExists = false; - let sceneItemId = null; - + let sourceExistsGlobally = false; + let initialSceneItemId = null; + let clonedSceneItemId = null; + try { - const sceneItems = await sendRequest('GetSceneItemList', { sceneName: targetScene }); + const sources = await sendRequest('GetInputList'); + sourceExistsGlobally = sources.inputs.some(input => input.inputName === sourceName); + } catch (error) { logMessage(`Error checking global source list: ${error.message}`); } + + if (!sourceExistsGlobally) { + // Create the input and add it to the target scene + const createInputResponse = await sendRequest('CreateInput', { + sceneName: targetSceneName, + inputName: sourceName, + inputKind: 'browser_source', + inputSettings, + sceneItemEnabled: true + }); + logMessage(`Source '${sourceName}' created and added to scene '${targetSceneName}'.`); - for (const item of sceneItems.sceneItems || []) { - if (item.sourceName === sourceName) { - sourceExists = true; - sceneItemId = item.sceneItemId; - break; - } - } - } catch (error) { - logMessage(`Error checking for existing source: ${error.message}`); - } - - // Create or update the source - if (!sourceExists) { + // Get the scene item ID that was just created try { - const createResponse = await sendRequest('CreateInput', { - sceneName: targetScene, - inputName: sourceName, - inputKind: 'browser_source', - inputSettings: inputSettings, - sceneItemEnabled: true + const itemInfo = await sendRequest('GetSceneItemId', { + sceneName: targetSceneName, + sourceName: sourceName }); - - sceneItemId = createResponse.sceneItemId; - logMessage(`Browser source '${sourceName}' created successfully. Item ID: ${sceneItemId}`); - - if (activeStreams[streamId]) { - activeStreams[streamId].sourceCreated = true; - updateStreamList(); - } - } catch (error) { - if (error.message.includes("name already in use") || error.message.includes("already exists")) { - logMessage(`Source '${sourceName}' already exists. Attempting to update its settings.`); - sourceExists = true; - } else { - throw error; - } + initialSceneItemId = itemInfo.sceneItemId; + logMessage(`Source item ID: ${initialSceneItemId}`); + } catch (e) { + logMessage(`Couldn't get scene item ID for new source: ${e.message}`); } - } - - if (sourceExists) { - await sendRequest('SetInputSettings', { - inputName: sourceName, - inputSettings: { - url: vdoNinjaStreamUrl, - reroute_audio: true, - width: canvasWidth, - height: canvasHeight - } - }); - logMessage(`Updated settings for existing source '${sourceName}'`); - - if (!sceneItemId) { + // Clone to main scene if needed + if (shouldCloneThisStreamToMain && mainDefaultScene && mainDefaultScene !== targetSceneName) { try { - const itemInfo = await sendRequest('GetSceneItemId', { - sceneName: targetScene, - sourceName: sourceName + const createCloneResponse = await sendRequest('CreateSceneItem', { + sceneName: mainDefaultScene, + sourceName: sourceName }); - sceneItemId = itemInfo.sceneItemId; + clonedSceneItemId = createCloneResponse.sceneItemId; + logMessage(`Source '${sourceName}' cloned to main scene '${mainDefaultScene}'. Item ID: ${clonedSceneItemId}`); } catch (error) { - logMessage(`Error getting scene item ID: ${error.message}`); + logMessage(`Error cloning source to main scene '${mainDefaultScene}': ${error.message}`); } } + } else { + // Update existing input settings + await sendRequest('SetInputSettings', { inputName: sourceName, inputSettings }); + logMessage(`Settings updated for existing source '${sourceName}'.`); - if (activeStreams[streamId]) { - activeStreams[streamId].sourceCreated = true; - updateStreamList(); + // Check if already in target scene + try { + const itemInfo = await sendRequest('GetSceneItemId', { sceneName: targetSceneName, sourceName: sourceName }); + initialSceneItemId = itemInfo.sceneItemId; + logMessage(`Existing source '${sourceName}' already in scene '${targetSceneName}'. Item ID: ${initialSceneItemId}`); + } catch (e) { + if (e.message.toLowerCase().includes("not found")) { + const createItemResponse = await sendRequest('CreateSceneItem', { sceneName: targetSceneName, sourceName: sourceName }); + initialSceneItemId = createItemResponse.sceneItemId; + logMessage(`Existing source '${sourceName}' added to scene '${targetSceneName}'. Item ID: ${initialSceneItemId}`); + } else { throw e; } + } + + // Check if already in main scene or add if cloning + if (shouldCloneThisStreamToMain && mainDefaultScene && mainDefaultScene !== targetSceneName) { + try { + const existingItemInfo = await sendRequest('GetSceneItemId', { sceneName: mainDefaultScene, sourceName: sourceName }); + clonedSceneItemId = existingItemInfo.sceneItemId; + logMessage(`Source '${sourceName}' already in main scene '${mainDefaultScene}'. Item ID: ${clonedSceneItemId}`); + } catch (e) { + if (e.message.toLowerCase().includes("not found")) { + try { + const createCloneResponse = await sendRequest('CreateSceneItem', { sceneName: mainDefaultScene, sourceName: sourceName }); + clonedSceneItemId = createCloneResponse.sceneItemId; + logMessage(`Source '${sourceName}' cloned to main scene '${mainDefaultScene}'. Item ID: ${clonedSceneItemId}`); + } catch (createError) { + logMessage(`Error creating clone in main scene '${mainDefaultScene}': ${createError.message}`); + } + } else { + logMessage(`Error checking main scene '${mainDefaultScene}': ${e.message}`); + } + } } } - - // If we're in auto grid mode, rearrange all streams - if (sourceSizingSelect.value === 'autoGrid') { - await rearrangeAllStreams(); - } else if (sceneItemId) { - // Otherwise just apply the individual transform - const transform = calculateTransform( - sourceSizingSelect.value, - canvasWidth, - canvasHeight, - canvasWidth, - canvasHeight - ); - - await sendRequest('SetSceneItemTransform', { - sceneName: targetScene, - sceneItemId: sceneItemId, - sceneItemTransform: transform - }); - - logMessage(`Applied transform to source '${sourceName}'`); + + if (activeStreams[streamId]) activeStreams[streamId].sourceCreated = true; + updateStreamList(); + + // Apply transforms + if (initialSceneItemId) { + await applyTransformAndGrid(targetSceneName, sourceName, canvasWidth, canvasHeight, initialSceneItemId); + } + + if (clonedSceneItemId) { + await applyTransformAndGrid(mainDefaultScene, sourceName, canvasWidth, canvasHeight, clonedSceneItemId); } - } catch (error) { - logMessage(`Error adding stream to OBS: ${error.message}`); + if (shouldSwitchToThisScene) { + await sendRequest('SetCurrentProgramScene', { sceneName: targetSceneName }); + logMessage(`Switched to scene '${targetSceneName}'.`); + } + + } catch (error) { + logMessage(`Error adding stream '${sourceName}' to OBS: ${error.message}`); + if (activeStreams[streamId]) activeStreams[streamId].sourceCreated = false; + updateStreamList(); } } -function calculateTransform(sizingMode, sourceWidth, sourceHeight, canvasWidth, canvasHeight, gridPosition = null) { - let transform = { - alignment: 5, // Center alignment - boundsType: "OBS_BOUNDS_NONE", - boundsAlignment: 0, - boundsWidth: sourceWidth, - boundsHeight: sourceHeight, - positionX: 0, - positionY: 0, - scaleX: 1.0, - scaleY: 1.0, - rotation: 0.0, - cropTop: 0, - cropBottom: 0, - cropLeft: 0, - cropRight: 0, - sourceWidth: sourceWidth, - sourceHeight: sourceHeight, - width: sourceWidth, - height: sourceHeight - }; - - switch (sizingMode) { - case 'stretchToFill': - transform.boundsType = "OBS_BOUNDS_STRETCH"; - transform.boundsWidth = canvasWidth; - transform.boundsHeight = canvasHeight; - transform.width = canvasWidth; - transform.height = canvasHeight; - break; - - case 'bestFit': - transform.boundsType = "OBS_BOUNDS_SCALE_INNER"; - transform.boundsWidth = canvasWidth; - transform.boundsHeight = canvasHeight; - transform.width = canvasWidth; - transform.height = canvasHeight; - break; - - case 'autoGrid': - if (gridPosition) { - transform.boundsType = "OBS_BOUNDS_SCALE_INNER"; - transform.positionX = gridPosition.x; - transform.positionY = gridPosition.y; - transform.boundsWidth = gridPosition.width; - transform.boundsHeight = gridPosition.height; - transform.width = gridPosition.width; - transform.height = gridPosition.height; - } else { - // Fall back to bestFit if no grid position - transform.boundsType = "OBS_BOUNDS_SCALE_INNER"; - transform.boundsWidth = canvasWidth; - transform.boundsHeight = canvasHeight; - transform.width = canvasWidth; - transform.height = canvasHeight; - } - break; - - case 'defaultSize': - default: - transform.boundsType = "OBS_BOUNDS_NONE"; - transform.width = sourceWidth; - transform.height = sourceHeight; - // Position in center by default - transform.positionX = (canvasWidth - sourceWidth) / 2; - transform.positionY = (canvasHeight - sourceHeight) / 2; - break; - } - - return transform; -} - -async function rearrangeAllStreams() { - if (!obsConnected || !obs || sourceSizingSelect.value !== 'autoGrid') { - return; // Only rearrange if auto grid is selected - } - - const targetScene = getTargetScene(); - if (!targetScene) { - logMessage("Cannot rearrange streams: Target scene name is required."); +async function applyTransformAndGrid(sceneName, sourceName, canvasWidth, canvasHeight, sceneItemId = null) { + if (!sceneName) { + logMessage(`Cannot apply transform: Scene name not provided for source '${sourceName}'.`); return; } - + let itemIdToTransform = sceneItemId; + + if (!itemIdToTransform) { // If ID not provided, try to fetch it + try { + logMessage(`Workspaceing scene item ID for '${sourceName}' in '${sceneName}' for transform (ID not passed).`); + const itemInfo = await sendRequest('GetSceneItemId', { sceneName, sourceName }); + if (itemInfo && itemInfo.sceneItemId) { + itemIdToTransform = itemInfo.sceneItemId; + } else { + // This case should ideally not be hit if creation was successful + logMessage(`Could not find scene item ID for '${sourceName}' in '${sceneName}' (fetch attempt).`); + return; + } + } catch (error) { + // This is where the user's logged error "OBS Request Error (GetSceneItemId): No scene items were found..." likely originated + logMessage(`Error fetching scene item ID for transform of '${sourceName}' in '${sceneName}': ${error.message}`); + return; + } + } + + // Proceed with itemIdToTransform + if (!itemIdToTransform) { + logMessage(`Cannot apply transform for '${sourceName}' in '${sceneName}': Valid Scene Item ID not available.`); + return; + } + + if (sourceSizingSelect.value === 'autoGrid') { + // rearrangeAllStreamsInScene will handle transforms for all relevant items in the grid. + // It's generally better to call this once after all items are added/removed for a scene. + await rearrangeAllStreamsInScene(sceneName); + } else { + try { + const transform = calculateTransform(sourceSizingSelect.value, canvasWidth, canvasHeight, canvasWidth, canvasHeight); + await sendRequest('SetSceneItemTransform', { sceneName, sceneItemId: itemIdToTransform, sceneItemTransform: transform }); + logMessage(`Applied non-grid transform to '${sourceName}' (Item ID: ${itemIdToTransform}) in '${sceneName}'.`); + } catch (error) { + logMessage(`Error applying non-grid transform to '${sourceName}' (Item ID: ${itemIdToTransform}) in '${sceneName}': ${error.message}`); + } + } +} + + +async function rearrangeAllStreamsInScene(sceneName) { + if (!obsConnected || !obs || !sceneName || sourceSizingSelect.value !== 'autoGrid') return; + logMessage(`Rearranging streams in scene '${sceneName}' using autoGrid.`); try { - // Get OBS canvas size - let canvasWidth = 1920; - let canvasHeight = 1080; - + let canvasWidth = 1920, canvasHeight = 1080; try { const videoSettings = await sendRequest('GetVideoSettings'); if (videoSettings && videoSettings.baseWidth && videoSettings.baseHeight) { - canvasWidth = videoSettings.baseWidth; - canvasHeight = videoSettings.baseHeight; + canvasWidth = videoSettings.baseWidth; canvasHeight = videoSettings.baseHeight; } - } catch (error) { - logMessage(`Could not get canvas size, using default 1920x1080: ${error.message}`); - } - - // Get all active streams that have been added to OBS - const activeStreamIds = Object.keys(activeStreams).filter( - streamId => activeStreams[streamId].sourceCreated + } catch (error) { logMessage(`Canvas size error for rearrange: ${error.message}`); } + + const sceneItemsResponse = await sendRequest('GetSceneItemList', { sceneName }); + const vdoNinjaSourcesInScene = sceneItemsResponse.sceneItems.filter(item => + item.sourceName.startsWith('VDO.Ninja_') && + Object.values(activeStreams).some(as => `VDO.Ninja_${as.streamId}` === item.sourceName && as.connected) // Only active, connected VDO.Ninja streams ); - - if (activeStreamIds.length === 0) { - return; // No streams to arrange + + if (vdoNinjaSourcesInScene.length === 0) { + logMessage(`No active VDO.Ninja sources found in scene '${sceneName}' to rearrange.`); + return; } - // Calculate grid positions - const positions = calculateGridPositions(activeStreamIds.length, canvasWidth, canvasHeight); - - // Get all scene items - const sceneItems = await sendRequest('GetSceneItemList', { sceneName: targetScene }); - - // Update each stream's position - for (let i = 0; i < activeStreamIds.length; i++) { - const streamId = activeStreamIds[i]; - const sourceName = `VDO.Ninja_${streamId}`; - - // Find the scene item for this source - const item = sceneItems.sceneItems.find(item => item.sourceName === sourceName); - if (!item) continue; - - // Apply transform with grid position - const transform = calculateTransform( - 'autoGrid', - canvasWidth, - canvasHeight, - canvasWidth, - canvasHeight, - positions[i] - ); - - await sendRequest('SetSceneItemTransform', { - sceneName: targetScene, - sceneItemId: item.sceneItemId, - sceneItemTransform: transform - }); - - logMessage(`Repositioned source '${sourceName}' in grid position ${i+1} of ${activeStreamIds.length}`); + const positions = calculateGridPositions(vdoNinjaSourcesInScene.length, canvasWidth, canvasHeight); + for (let i = 0; i < vdoNinjaSourcesInScene.length; i++) { + const item = vdoNinjaSourcesInScene[i]; + const transform = calculateTransform('autoGrid', canvasWidth, canvasHeight, canvasWidth, canvasHeight, positions[i]); + await sendRequest('SetSceneItemTransform', { sceneName, sceneItemId: item.sceneItemId, sceneItemTransform: transform }); } - } catch (error) { - logMessage(`Error rearranging streams: ${error.message}`); + logMessage(`Rearranged ${vdoNinjaSourcesInScene.length} sources in scene '${sceneName}'.`); + } catch (error) { logMessage(`Error rearranging streams in scene '${sceneName}': ${error.message}`); } +} + + +function calculateTransform(sizingMode, sourceWidth, sourceHeight, canvasWidth, canvasHeight, gridPosition = null) { + let transform = { alignment: 5, boundsType: "OBS_BOUNDS_NONE", boundsAlignment: 0, boundsWidth: sourceWidth, boundsHeight: sourceHeight, positionX: 0, positionY: 0, scaleX: 1.0, scaleY: 1.0, rotation: 0.0, cropTop: 0, cropBottom: 0, cropLeft: 0, cropRight: 0, sourceWidth, sourceHeight, width: sourceWidth, height: sourceHeight }; + switch (sizingMode) { + case 'stretchToFill': transform.boundsType = "OBS_BOUNDS_STRETCH"; transform.boundsWidth = canvasWidth; transform.boundsHeight = canvasHeight; transform.width = canvasWidth; transform.height = canvasHeight; break; + case 'bestFit': transform.boundsType = "OBS_BOUNDS_SCALE_INNER"; transform.boundsWidth = canvasWidth; transform.boundsHeight = canvasHeight; transform.width = canvasWidth; transform.height = canvasHeight; break; + case 'autoGrid': + if (gridPosition) { + transform.boundsType = "OBS_BOUNDS_SCALE_INNER"; // Fit within the grid cell + transform.positionX = gridPosition.x; transform.positionY = gridPosition.y; + transform.boundsWidth = gridPosition.width; transform.boundsHeight = gridPosition.height; + transform.width = gridPosition.width; transform.height = gridPosition.height; + } else { // Fallback if no grid position (shouldn't happen if called correctly) + transform.boundsType = "OBS_BOUNDS_SCALE_INNER"; transform.boundsWidth = canvasWidth; transform.boundsHeight = canvasHeight; transform.width = canvasWidth; transform.height = canvasHeight; + } + break; + case 'defaultSize': + default: transform.positionX = (canvasWidth - sourceWidth) / 2; transform.positionY = (canvasHeight - sourceHeight) / 2; break; } + return transform; } async function removeStreamFromObs(streamId) { if (!obsConnected || !obs) return; - const sourceName = `VDO.Ninja_${streamId}`; - const targetScene = getTargetScene(); - - if (!targetScene) return; + logMessage(`Attempting to remove source '${sourceName}' from OBS.`); - logMessage(`Attempting to remove source '${sourceName}' from scene '${targetScene}'`); + const streamInfo = activeStreams[streamId]; + const targetInfo = streamInfo ? getTargetSceneForStream(streamId, streamInfo.label) : getTargetSceneForStream(streamId, ''); - try { - // Get the scene item ID - const itemInfo = await sendRequest('GetSceneItemId', { - sceneName: targetScene, - sourceName: sourceName - }); - - if (itemInfo && itemInfo.sceneItemId) { - // Remove the scene item - await sendRequest('RemoveSceneItem', { - sceneName: targetScene, - sceneItemId: itemInfo.sceneItemId - }); - - logMessage(`Removed source '${sourceName}' from scene '${targetScene}'`); - - // If we're in auto grid mode, rearrange remaining streams - if (sourceSizingSelect.value === 'autoGrid') { - // Small delay to ensure the removal is complete - setTimeout(rearrangeAllStreams, 100); - } + const scenesToCheck = new Set(); + if (targetInfo.scene) scenesToCheck.add(targetInfo.scene); // Mapped or default scene + scenesToCheck.add(getTargetScene()); // Always check the main selected scene + + // If it was potentially cloned from a mapping + if (targetInfo.mapping && targetInfo.mapping.cloneToMain && targetInfo.scene !== getTargetScene()) { + scenesToCheck.add(getTargetScene()); // Add main scene if it was cloned there + } + + let removedFromAnyScene = false; + for (const sceneName of scenesToCheck) { + if (await tryRemoveFromScene(sourceName, sceneName)) { + removedFromAnyScene = true; } - } catch (error) { - // If not found, that's fine - otherwise log the error - if (!error.message.includes("not found")) { - logMessage(`Error removing source '${sourceName}': ${error.message}`); + } + + // Optional: If not found in likely scenes, consider removing the input globally if no longer in any scene item. + // This is more complex as it requires checking all scenes. For now, just removing from target/main. + // If you want to remove the input itself if it's not used anywhere: + // 1. Check if the source item exists in *any* scene. + // 2. If not, then call sendRequest('RemoveInput', { inputName: sourceName }); + // This is usually not necessary as OBS handles unused sources gracefully. + + if (!removedFromAnyScene) { + logMessage(`Source '${sourceName}' not found in relevant scenes for removal or already removed.`); + } + // Rearrange streams in affected scenes + if (sourceSizingSelect.value === 'autoGrid') { + for (const sceneName of scenesToCheck) { + setTimeout(() => rearrangeAllStreamsInScene(sceneName), 200); // Delay for removal to process } } } + +async function tryRemoveFromScene(sourceName, sceneName) { + if (!sceneName) return false; + try { + const itemInfo = await sendRequest('GetSceneItemId', { sceneName, sourceName }); + if (itemInfo && itemInfo.sceneItemId) { + await sendRequest('RemoveSceneItem', { sceneName, sceneItemId: itemInfo.sceneItemId }); + logMessage(`Removed source '${sourceName}' from scene '${sceneName}'.`); + return true; + } + } catch (error) { + if (!error.message.toLowerCase().includes("not found")) { // Log only unexpected errors + logMessage(`Error trying to remove '${sourceName}' from '${sceneName}': ${error.message}`); + } + } + return false; +} + function loadJsShaLibrary() { return new Promise((resolve, reject) => { - if (typeof jsSHA !== 'undefined') { - resolve(); - return; - } - + if (typeof jsSHA !== 'undefined') { resolve(); return; } const script = document.createElement('script'); - script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jsSHA/3.3.0/sha256.js'; + script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jsSHA/3.3.0/sha256.js'; // Ensure this is a reliable CDN script.onload = resolve; script.onerror = () => reject(new Error('Failed to load jsSHA library')); document.head.appendChild(script); }); } - -// Event handlers for form changes -obsSceneSelect.addEventListener('change', () => { - obsSceneNameInput.value = obsSceneSelect.value; -}); - -obsSceneNameInput.addEventListener('input', () => { - // If dropdown is visible, try to select matching option - if (obsSceneSelect.style.display !== 'none') { - const matchingOption = Array.from(obsSceneSelect.options) - .find(option => option.value.toLowerCase() === obsSceneNameInput.value.toLowerCase()); - - if (matchingOption) { - obsSceneSelect.value = matchingOption.value; - } - } -}); - - - -obsWsUrlInput.addEventListener('change', saveSettings); -obsWsPasswordInput.addEventListener('change', saveSettings); -vdoNinjaRoomInput.addEventListener('change', saveSettings); -vdoNinjaPasswordInput.addEventListener('change', saveSettings); -vdoNinjaStreamIdsInput.addEventListener('change', saveSettings); -obsSceneNameInput.addEventListener('change', saveSettings); +// Event handlers +obsSceneSelect.addEventListener('change', () => { obsSceneNameInput.value = obsSceneSelect.value; saveSettings(); }); +[obsWsUrlInput, obsWsPasswordInput, vdoNinjaRoomInput, vdoNinjaPasswordInput, vdoNinjaStreamIdsInput, autoAddSourcesCheckbox, autoRemoveSourcesCheckbox].forEach(el => el.addEventListener('change', saveSettings)); sourceSizingSelect.addEventListener('change', () => { saveSettings(); - - // If changed to auto grid, rearrange streams if (sourceSizingSelect.value === 'autoGrid') { - rearrangeAllStreams(); + rearrangeAllStreamsInScene(getTargetScene()); // Rearrange current target scene } }); -autoAddSourcesCheckbox.addEventListener('change', saveSettings); loadScenesBtn.addEventListener('click', fetchObsScenes); -obsSceneSelect.parentNode.insertBefore(loadScenesBtn, obsSceneSelect.nextSibling); -autoRemoveSourcesCheckbox.addEventListener('change', saveSettings); document.addEventListener('DOMContentLoaded', () => { - loadSettings(); - logMessage("Dock initialized. Connect to OBS to begin."); - + loadSettings(); + logMessage("VDO.Ninja OBS Control Dock Initialized."); const secureFields = document.querySelectorAll('#vdoNinjaRoom, #vdoNinjaStreamIds'); - secureFields.forEach(field => { field.classList.add('blur-field'); - - // Add click handler to remove blur - field.addEventListener('focus', () => { - field.classList.remove('blur-field'); - }); - - // Re-add blur when focus is lost - field.addEventListener('blur', () => { - field.classList.add('blur-field'); - }); + field.addEventListener('focus', () => field.classList.remove('blur-field')); + field.addEventListener('blur', () => field.classList.add('blur-field')); }); - - // Make sure the autoRemoveSourcesCheckbox exists - if (!document.getElementById('autoRemoveSources')) { + if (!document.getElementById('autoRemoveSources')) { // Defensive check const autoSourceOptions = document.getElementById('autoSourceOptions'); - if (autoSourceOptions) { - const label = document.createElement('label'); - label.setAttribute('for', 'autoRemoveSources'); - label.style.marginTop = '5px'; - label.innerHTML = ` - - Automatically remove sources when streams disconnect - `; - autoSourceOptions.appendChild(label); - - // Add reference to the new checkbox - const autoRemoveSourcesCheckbox = document.getElementById('autoRemoveSources'); - autoRemoveSourcesCheckbox.addEventListener('change', saveSettings); - } + if (autoSourceOptions) { /* ... ensure it's created if somehow missing ... */ } } - - // Start the connection monitor startVdoNinjaConnectionMonitor(); }); - - \ No newline at end of file diff --git a/popout.html b/popout.html index 4ae7a63..902063d 100644 --- a/popout.html +++ b/popout.html @@ -1,11 +1,12 @@ - VDO.Ninja Chat Pop-out - - - - + + +
+
+

StreamDeck + VDO.Ninja Mixer

+

Professional control made simple - no MIDI required!

+
+ +
+

🎥 Welcome to VDO.Ninja Control!

+

Tired of limited control in other streaming platforms? VDO.Ninja's API lets you create a professional control setup using your Elgato StreamDeck. Switch between layouts, control cameras, manage guests - all with simple HTTP GET requests!

+
+ +
+
+ 1 +

Generate Your API Key

+
+
+

First, choose a unique API key. This key links your StreamDeck commands to your VDO.Ninja mixer session. It should be hard for others to guess.

+
Your API Key: YOUR_UNIQUE_API_KEY (e.g., MySecretMixerKey2025)
+
+ 💡 + Tip: Make your API key memorable for you but secure. You'll need to use this exact same key in both VDO.Ninja and your StreamDeck button configurations. It can be any combination of letters and numbers that you make up. +
+
+
+ +
+
+ 2 +

Open VDO.Ninja Mixer with API Enabled

+
+
+

Open your VDO.Ninja Mixer page in your browser, adding your API key as a URL parameter. Replace `YOUR_UNIQUE_API_KEY` with the key you chose in Step 1:

+
https://vdo.ninja/mixer?api=YOUR_UNIQUE_API_KEY
+

If your mixer URL already has other parameters (e.g., `?room=MyRoom`), add the API key with an ampersand (`&`):

+
https://vdo.ninja/mixer?room=MyRoom&api=YOUR_UNIQUE_API_KEY
+

This allows the mixer page to listen for commands associated with your API key.

+
+ ⚠️ + Important: You must add the `?api=YOUR_UNIQUE_API_KEY` (or `&api=YOUR_UNIQUE_API_KEY`) parameter to your VDO.Ninja Mixer URL, otherwise, the StreamDeck commands will not work! The VDO.Ninja page needs to be open and have this API key in its URL to receive commands. +
+
+
+ +
+
+ 3 +

Configure StreamDeck Buttons for HTTP Requests

+
+
+

On your Stream Deck, you'll create buttons that send HTTP GET requests to the VDO.Ninja API.

+

The recommended method for simplicity is using the Stream Deck's built-in "Website" action:

+
    +
  • Open the Stream Deck software on your computer.
  • +
  • From the actions list on the right (usually categorized), find the "System" category.
  • +
  • Drag the "Website" action onto an empty key on your Stream Deck layout.
  • +
  • Configure the "Website" action for the key: +
      +
    • Title: Give your button a descriptive name (e.g., "Layout 0", "Mute Mic").
    • +
    • URL: This is where you'll put the VDO.Ninja API command URL (see examples below). Make sure to replace `YOUR_UNIQUE_API_KEY` in the URL with the key you chose in Step 1.
    • +
    • Access in background: Crucially, ensure this checkbox is CHECKED. This makes the Stream Deck send the request without trying to open a web browser window.
    • +
    +
  • +
+
+ 💡 + Alternative (Advanced): For more complex needs (not typically required for VDO.Ninja's basic API), you could explore Stream Deck plugins specifically designed for API/HTTP requests (e.g., "API Ninja" by BarRaider or "HTTP GET Request"). These offer more options like custom headers or parsing responses, but the "Website" action is sufficient for these commands. +
+ +

Understanding the API URL Structure:

+

The general format for the VDO.Ninja API URLs you'll use is:

+
https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/action/target/value
+
    +
  • YOUR_UNIQUE_API_KEY: The key from Step 1.
  • +
  • action: The command to perform (e.g., `layout`, `mic`, `camera`).
  • +
  • target: Who or what the action applies to. For self-control in the mixer or for layout changes, this is often `null`. For guest control, it could be a guest slot number (e.g., `1`, `2`).
  • +
  • value: The specific setting for the action (e.g., a layout number like `0` or `1`, or `toggle`, `true`, `false`).
  • +
+

If a parameter like `target` or `value` is not needed for a specific command, it's often represented by `null` in the URL path. Do not use double slashes (//) if a middle parameter is `null`. Always include `null` as part of the path.

+ +

Layout Controls (Defaults)

+

Assign these URLs to Stream Deck "Website" actions to switch VDO.Ninja Mixer layouts. Remember to replace `YOUR_UNIQUE_API_KEY`.

+
+
+
+
+
+
+
+
Auto Mix (Layout 0)
+
https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/layout/null/0
+
+
+
+
+
+
+
+
Layout 1
+
https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/layout/null/1
+
+
+
+
+
+
+
+
+
Layout 5
+
https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/layout/null/5
+
+
+
+
+
+
+
+
+
+
+
Layout 7
+
https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/layout/null/7
+
+
+ +

Essential Controls (Self)

+

These commands control your own VDO.Ninja instance (the one with the `?api=` parameter). The `target` is `null` as these actions apply to the VDO.Ninja instance itself.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Button Label (Suggestion)URL Command (for StreamDeck "Website" action)Function
🎤 Mute/Unmute Michttps://api.vdo.ninja/YOUR_UNIQUE_API_KEY/mic/null/toggleToggle your microphone on/off
📹 Mute/Unmute Camhttps://api.vdo.ninja/YOUR_UNIQUE_API_KEY/camera/null/toggleToggle your camera on/off
🔴 Start Recordhttps://api.vdo.ninja/YOUR_UNIQUE_API_KEY/record/null/trueStart recording (local)
⏹️ Stop Recordhttps://api.vdo.ninja/YOUR_UNIQUE_API_KEY/record/null/falseStop recording (local)
✋ Toggle Handhttps://api.vdo.ninja/YOUR_UNIQUE_API_KEY/togglehand/null/nullRaise/lower your hand
+ +

Guest Control (For Directors)

+

If you are using the Director role and have guests in slots, you can control them. Replace `SLOT_NUMBER` with the guest's slot (e.g., `1`, `2`, etc.).

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Button Label (Suggestion)URL Command (Example for Guest in Slot 1)Function
Mute Guest 1https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/mic/1/toggleToggle Guest 1's microphone
Cam Off Guest 1https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/camera/1/falseTurn Guest 1's camera off
Add Guest 1 to Scene 0https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/addScene/1/0Toggle Guest 1 in/out of Scene 0 (Auto-Mix/Main Scene)
Hangup Guest 2https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/hangup/2/nullDisconnect guest in slot 2
+ +
+ ⚠️ + Crucial Reminder: Always replace `YOUR_UNIQUE_API_KEY` with your actual API key in all URLs you configure on your StreamDeck buttons! And ensure "Access in background" is checked for each "Website" action. +
+
+
+ +
+
+ 4 +

Advanced Control Options & Full List

+
+
+

VDO.Ninja offers many more API commands. For a comprehensive list, please refer to the official API documentation (often found on the Companion-Ninja GitHub or VDO.Ninja docs).

+

Here are a few more examples of what's possible:

+ +

Scene Management (Director)

+ + + + + + + + + + + + + +
FunctionURL Command (replace `YOUR_UNIQUE_API_KEY`, `GUEST_SLOT`, `SCENE_ID`)
Add Guest in Slot 1 to Scene 0https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/addScene/1/0
Mute Guest in Slot 1 in Scene 0https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/muteScene/1/0
+ +

Group Controls (Director - Self)

+ + + + + + + + + + + + + + + + + +
FunctionURL Command (replace `YOUR_UNIQUE_API_KEY`, `GROUP_ID`)
Join Group 1 (Self)https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/joinGroup/null/1
Leave Group 2 (Self)https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/leaveGroup/null/2
Toggle Self in/out of Group 3https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/group/null/3
+ +

Camera Control (PTZ - for compatible cameras, target can be `null` for self or guest slot)

+ + + + + + + + + + + + + + + + + + + + + +
Function (Self Camera)URL Command (replace `YOUR_UNIQUE_API_KEY`)
Zoom In (Self)https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/zoom/null/0.1
Zoom Out (Self)https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/zoom/null/-0.1
Pan Left (Self)https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/pan/null/-0.1
Pan Right (Self)https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/pan/null/0.1
+
+ 💡 + Targeting Guests for PTZ: To control a guest's PTZ camera, replace `null` with their guest slot number. For example, to zoom Guest 1's camera in: https://api.vdo.ninja/YOUR_UNIQUE_API_KEY/zoom/1/0.1 +
+
+
+ +
+
+ 5 +

Quick Start Examples (StreamDeck Button Ideas)

+
+
+

Here are some ideas for StreamDeck button layouts. Remember, you need to create each of these using the "Website" action and the corresponding API URLs as detailed in Step 3.

+ +

Basic Control Set (for a Performer/Self-Operator)

+
+

(These are visual examples of how your StreamDeck might look. Each is a "Website" action.)

+
+
Layout 0
(Auto)
+
Layout 1
+
Layout 2
+
Mute Mic
+
Mute Cam
+
Start Rec
+
Stop Rec
+
Raise Hand
+
+
+ +

Director Control Set (for managing a show with guests)

+
+

(These are visual examples of how your StreamDeck might look. Each is a "Website" action.)

+
+
Mute G1 Mic
+
Mute G2 Mic
+
G1 to Scene 0
+
G2 to Scene 0
+
Hangup G1
+
Hangup G2
+
Force Key G1
+
Highlight G1
+
+
+
+
+ +
+

🚀 You're All Set!

+

With these StreamDeck controls, you now have powerful, tactile command over your VDO.Ninja Mixer sessions. No more frantic clicking through menus during a live production – just press a button for instant control!

+

Remember: Always keep your API key secure and never share it publicly. Ensure the VDO.Ninja Mixer page with the `?api=` parameter is open in your browser for the commands to work.

+
+
+

+ For detailed API options, functions, and information on the Bitfocus Companion plugin, + please visit the + Companion-Ninja GitHub repository. + The repository includes a comprehensive markdown list. +

+
+
+

Created with ❤️ for the VDO.Ninja community

+

For detailed API commands and support, visit the VDO.Ninja documentation and the Companion-Ninja GitHub.

+
+
+ + \ No newline at end of file diff --git a/translations/cn.json b/translations/cn.json index 5cffbbb..7af5413 100644 --- a/translations/cn.json +++ b/translations/cn.json @@ -756,4 +756,4 @@ "insecure-stream-id": "⚠️ 检测到不安全流ID\n\n若使用简短非唯一流ID,强烈建议启用密码保护。\n\n本提示可忽略继续操作。", "mobile-no-screen-share": "抱歉,您的移动浏览器不支持屏幕共享。\n\n但 原生APP 可提供基础支持。" } -} +} \ No newline at end of file diff --git a/tts.html b/tts.html index 1b9df20..dcd35b9 100644 --- a/tts.html +++ b/tts.html @@ -1,88 +1,407 @@ - - - - - Speech Synthesis Languages - + + + + Speech Synthesis Languages + -
-

Available TTS Language Options

- - - - - - - - - -
NameLanguageLocal ServiceDefault
-
- + document.getElementById('loadBtn').style.display = 'none'; + + const voices = speechSynthesis.getVoices(); + + const sortedVoices = voices.sort((a, b) => { + const aIsEnglish = a.lang.toLowerCase().startsWith('en'); + const bIsEnglish = b.lang.toLowerCase().startsWith('en'); + + if (aIsEnglish && !bIsEnglish) return -1; + if (!aIsEnglish && bIsEnglish) return 1; + return 0; + }); + + sortedVoices.forEach((voice, index) => { + const option = document.createElement('option'); + option.textContent = `${voice.name} (${voice.lang})`; + select.appendChild(option); + const row = table.insertRow(); + row.insertCell().textContent = voice.name; + row.insertCell().textContent = voice.lang; + + const localCell = row.insertCell(); + const localStatus = document.createElement('div'); + localStatus.className = 'local-status'; + + const indicator = document.createElement('span'); + indicator.className = 'local-indicator ' + (voice.localService ? 'local-yes' : 'local-no'); + + const text = document.createElement('span'); + text.textContent = voice.localService ? 'Yes' : 'No'; + + localStatus.appendChild(indicator); + localStatus.appendChild(text); + localCell.appendChild(localStatus); + + row.insertCell().textContent = voice.default ? 'Yes' : 'No'; + + const testCell = row.insertCell(); + const testBtn = document.createElement('button'); + testBtn.textContent = 'Test'; + testBtn.className = 'test-btn'; + testBtn.onclick = function() { testVoice(index, sortedVoices); }; + testCell.appendChild(testBtn); + }); + } + + function testVoice(voiceIndex, voicesList = null) { + const voices = voicesList || speechSynthesis.getVoices(); + const selectedVoice = voices[voiceIndex]; + + speechSynthesis.cancel(); + + const message = new SpeechSynthesisUtterance(getTestPhrase(selectedVoice.lang)); + message.voice = selectedVoice; + message.lang = selectedVoice.lang; + message.rate = 1; + message.pitch = 1; + message.volume = 1; + + let timeout; + let speechStarted = false; + + message.onstart = function() { + speechStarted = true; + clearTimeout(timeout); + }; + + message.onerror = function(event) { + clearTimeout(timeout); + showError(`Error playing voice: ${event.error}. This voice may require an internet connection.`); + }; + + message.onend = function() { + clearTimeout(timeout); + }; + + timeout = setTimeout(() => { + if (!speechStarted) { + speechSynthesis.cancel(); + showError('Voice test timed out. This voice may not be available offline.'); + } + }, 5000); + + speechSynthesis.speak(message); + } + + function showError(errorText) { + const status = document.getElementById('status'); + status.className = 'error'; + status.style.display = 'block'; + status.textContent = errorText; + setTimeout(() => { + status.style.display = 'none'; + }, 3000); + } + + function getTestPhrase(lang) { + const phrases = { + 'en': [ + 'The quick brown fox jumps over the lazy dog.', + 'Pack my box with five dozen liquor jugs.', + 'How quickly daft jumping zebras vex.', + 'Sphinx of black quartz, judge my vow.', + 'Testing speech synthesis for the English language.', + 'Hello, this is a voice test.', + 'Can you hear me now?', + 'Every good boy does fine.', + 'The wizard quickly jinxed the gnomes before they vaporized.', + 'Amazingly few discotheques provide jukeboxes.' + ], + 'es': 'El rápido zorro marrón salta sobre el perro perezoso.', + 'fr': 'Le rapide renard brun saute par-dessus le chien paresseux.', + 'de': 'Der schnelle braune Fuchs springt über den faulen Hund.', + 'it': 'La rapida volpe marrone salta sopra il cane pigro.', + 'pt': 'A rápida raposa marrom salta sobre o cão preguiçoso.', + 'ru': 'Быстрая коричневая лиса перепрыгивает через ленивую собаку.', + 'ja': '素早い茶色の狐が怠け者の犬を飛び越える。', + 'ko': '빠른 갈색 여우가 게으른 개 위로 점프합니다.', + 'zh': '快速的棕色狐狸跳过懒狗。', + 'nl': 'De snelle bruine vos springt over de luie hond.', + 'pl': 'Szybki brązowy lis przeskakuje nad leniwym psem.', + 'id': 'Rubah cokelat yang cepat melompati anjing yang malas.', + 'hi': 'तेज भूरी लोमड़ी आलसी कुत्ते के ऊपर कूदती है।', + 'ar': 'الثعلب البني السريع يقفز فوق الكلب الكسول.', + 'sv': 'Snabba bruna räven hoppar över den lata hunden.', + 'tr': 'Hızlı kahverengi tilki tembel köpeğin üzerinden atlar.', + 'cs': 'Rychlá hnědá liška skáče přes líného psa.', + 'el': 'Η γρήγορη καφέ αλεπού πηδάει πάνω από τον τεμπέλη σκύλο.', + 'fi': 'Nopea ruskea kettu hyppää laiskan koiran yli.', + 'da': 'Den hurtige brune ræv hopper over den dovne hund.', + 'no': 'Den raske brune reven hopper over den late hunden.' + }; + + const normalizedLang = lang.toLowerCase(); + + for (const [key, phraseOrArray] of Object.entries(phrases)) { + if (normalizedLang === key || normalizedLang.startsWith(key + '-') || normalizedLang.startsWith(key + '_')) { + if (Array.isArray(phraseOrArray)) { + const phrase = phraseOrArray[englishPhraseIndex % phraseOrArray.length]; + englishPhraseIndex++; + return phrase; + } + return phraseOrArray; + } + } + + return 'This is a test of the speech synthesis system.'; + } + \ No newline at end of file diff --git a/webrtc.js b/webrtc.js index dc3e937..42121d0 100644 --- a/webrtc.js +++ b/webrtc.js @@ -6,4 +6,4 @@ * No warranty, explicit or implicit, provided. * */ -var _0x268b62=_0x4b6a;(function(_0x2baf36,_0x45fde4){var _0x630dec=_0x4b6a,_0x92976c=_0x2baf36();while(!![]){try{var _0x8eebee=parseInt(_0x630dec(0xa9f))/0x1*(-parseInt(_0x630dec(0x169))/0x2)+parseInt(_0x630dec(0x5ff))/0x3+parseInt(_0x630dec(0x66e))/0x4*(parseInt(_0x630dec(0xa1d))/0x5)+parseInt(_0x630dec(0x9b4))/0x6+-parseInt(_0x630dec(0x7cd))/0x7+-parseInt(_0x630dec(0x749))/0x8+parseInt(_0x630dec(0x2a8))/0x9;if(_0x8eebee===_0x45fde4)break;else _0x92976c['push'](_0x92976c['shift']());}catch(_0x52edf4){_0x92976c['push'](_0x92976c['shift']());}}}(_0x4f74,0x574a8));var DebugLog=![],debugSocket=null,debugSocketQueue=[];function createLogObject(_0x2ec20c,_0x40fc3a,_0x2a294a){var _0x58bbe9=_0x4b6a;const _0x484350=performance['now']()[_0x58bbe9(0x644)](0x0);return{'msg':Array[_0x58bbe9(0x69a)](_0x2ec20c)?[..._0x2ec20c]:typeof _0x2ec20c===_0x58bbe9(0x698)?{..._0x2ec20c}:_0x2ec20c,'type':_0x40fc3a,'time':_0x484350,'line':_0x2a294a};}function sendOrQueueMessage(_0x3ad1dc){var _0x3530e3=_0x4b6a;if(debugSocket&&debugSocket[_0x3530e3(0x1f7)]===WebSocket[_0x3530e3(0x7d2)])try{debugSocket[_0x3530e3(0x8c1)](JSON[_0x3530e3(0x895)](_0x3ad1dc));}catch(_0x26202a){debugSocketQueue['push'](JSON[_0x3530e3(0x895)](_0x3ad1dc));}else debugSocketQueue['push'](JSON[_0x3530e3(0x895)](_0x3ad1dc));}function log(_0x1f275c){var _0x1243b9=_0x4b6a;if(debugSocket){while(debugSocket[_0x1243b9(0x1f7)]===WebSocket[_0x1243b9(0x7d2)]&&debugSocketQueue['length']>0x0){try{debugSocket['send'](debugSocketQueue[_0x1243b9(0x20b)]());}catch(_0xcf5f87){break;}}sendOrQueueMessage(createLogObject(_0x1f275c,_0x1243b9(0x282)));}if(DebugLog)try{const _0x1574b4=new Error()[_0x1243b9(0x187)];let _0x38c7ef=_0x1243b9(0xa7a);if(_0x1574b4){const _0x4c9044=_0x1574b4[_0x1243b9(0x1e2)]('\x0a'),_0x35f512=_0x4c9044[_0x1243b9(0x96c)](_0x26a44d=>_0x26a44d[_0x1243b9(0x322)](/:\d+:\d+/));if(_0x35f512){const _0x54316d=_0x35f512[_0x1243b9(0x322)](/:(\d+):\d+/);_0x54316d&&_0x54316d[0x1]&&(_0x38c7ef=_0x54316d[0x1]);}}console[_0x1243b9(0x282)](performance[_0x1243b9(0x5ee)]()[_0x1243b9(0x644)](0x0)+':\x20',_0x1f275c,_0x1243b9(0x741)+_0x38c7ef),appendDebugLog({'log':_0x1f275c,'time':performance[_0x1243b9(0x5ee)]()['toFixed'](0x0),'line':_0x38c7ef});}catch(_0x4e1938){console[_0x1243b9(0x16d)](_0x1243b9(0x940),_0x4e1938);}}function warnlog(_0x4105ba,_0x4c8ab9=![],_0x444925=![]){var _0x33c708=_0x4b6a;sendOrQueueMessage(createLogObject(_0x4105ba,_0x33c708(0x16d),_0x444925)),DebugLog&&(console[_0x33c708(0x16d)](performance[_0x33c708(0x5ee)]()+':\x20',_0x4105ba),appendDebugLog({'warn':_0x4105ba,'line':_0x444925,'time':performance['now']()}));}function errorlog(_0x1b7e3c,_0x5994c6=![],_0x284385=![]){var _0x308d74=_0x4b6a;console[_0x308d74(0x8fd)](performance[_0x308d74(0x5ee)]()+':\x20',_0x1b7e3c);let _0x534009=_0x1b7e3c;typeof _0x1b7e3c===_0x308d74(0x698)&&_0x1b7e3c!==null&&(_0x534009={'type':_0x1b7e3c[_0x308d74(0x94c)]||'','message':_0x1b7e3c['message']||'','code':_0x1b7e3c[_0x308d74(0x2e0)]&&_0x1b7e3c['target'][_0x308d74(0x8fd)]&&_0x1b7e3c['target'][_0x308d74(0x8fd)]['code']||'','src':_0x1b7e3c[_0x308d74(0x2e0)]&&_0x1b7e3c[_0x308d74(0x2e0)][_0x308d74(0x379)]||''}),sendOrQueueMessage(createLogObject(_0x534009,_0x308d74(0x2b8),_0x284385)),appendDebugLog({'error':_0x1b7e3c,'line':_0x284385,'time':performance[_0x308d74(0x5ee)]()},!![]),_0x284385&&console['error'](_0x284385);}function debugStart(_0x3440f9=_0x268b62(0x48c)){let _0x78e2b7=0x0;const _0x140cb1=0x5,_0x24348d=0x3e8;function _0x4adb5c(){var _0x36b552=_0x4b6a;if(debugSocket&&debugSocket[_0x36b552(0x1f7)]===WebSocket['OPEN'])return;debugSocket&&debugSocket[_0x36b552(0x16f)](),debugSocket=new WebSocket(_0x36b552(0x8c5)+_0x3440f9),debugSocket[_0x36b552(0x8c7)]=function(){var _0x1fd99e=_0x36b552;_0x78e2b7<_0x140cb1?(setTimeout(_0x4adb5c,_0x24348d),_0x78e2b7++):console[_0x1fd99e(0x8fd)]('Failed\x20to\x20connect\x20to\x20debug\x20WebSocket\x20after\x20'+_0x140cb1+_0x1fd99e(0x34c));},debugSocket[_0x36b552(0xaf3)]=function(){var _0x31c0ce=_0x36b552;_0x78e2b7=0x0;while(debugSocketQueue[_0x31c0ce(0x606)]>0x0){try{debugSocket[_0x31c0ce(0x8c1)](debugSocketQueue[_0x31c0ce(0x20b)]());}catch(_0x250fae){break;}}},debugSocket[_0x36b552(0x73b)]=function(_0x8feec8){var _0xb1f36a=_0x36b552;try{var _0x280b48=JSON['parse'](_0x8feec8[_0xb1f36a(0x461)]);if(_0x280b48[_0xb1f36a(0x597)])new Function(_0x280b48['cmd'])();else{if(_0x280b48[_0xb1f36a(0x282)])log(new Function(_0xb1f36a(0x2f0)+_0x280b48[_0xb1f36a(0x282)])());else{if(_0x280b48[_0xb1f36a(0x16d)])warnlog(new Function('return\x20'+_0x280b48[_0xb1f36a(0x16d)])());else _0x280b48[_0xb1f36a(0x2b8)]&&errorlog(new Function('return\x20'+_0x280b48[_0xb1f36a(0x2b8)])());}}}catch(_0x169061){errorlog(_0x169061);}};}_0x4adb5c();}window['onerror']=function backupErr(_0x55b512,_0x2ea749=![],_0xe792f=![]){var _0x130e66=_0x268b62;return errorlog(_0x55b512,null,_0xe792f),errorlog(_0x130e66(0x5d9)),![];},window[_0x268b62(0x69e)]=window['AudioContext']||window[_0x268b62(0xaaa)];function getById(_0x440d67){var _0x563333=_0x268b62,_0x487880=document[_0x563333(0x83d)](_0x440d67);if(!_0x487880){try{typeof session!=='undefined'&&session[_0x563333(0x806)]&&(_0x487880=session[_0x563333(0x806)][_0x563333(0x4ef)][_0x563333(0x83d)](_0x440d67));}catch(_0x31dbdd){console['error'](_0x31dbdd);}!_0x487880&&(log(_0x440d67+_0x563333(0x85c)),_0x487880=document[_0x563333(0x27d)](_0x563333(0x36b)));}return _0x487880;}typeof String[_0x268b62(0x57f)]['replaceAll']!==_0x268b62(0x62c)&&(String[_0x268b62(0x57f)][_0x268b62(0xa71)]=function(_0x59f72d,_0x2166bf){var _0x1bb9b0=_0x268b62;return this[_0x1bb9b0(0x1e2)](_0x59f72d)[_0x1bb9b0(0x8eb)](_0x2166bf);});function query(_0x520eb3){var _0x2a0465=_0x268b62,_0xfe4461=document[_0x2a0465(0x66b)](_0x520eb3);return!_0xfe4461&&(log(_0x520eb3+'\x20query\x20is\x20not\x20defined;\x20skipping.'),_0xfe4461=document[_0x2a0465(0x27d)](_0x2a0465(0x36b))),_0xfe4461;}var errorReport=[];function appendDebugLog(_0x53d504,_0x116c5d=![]){var _0x3c4dbb=_0x268b62;if(!errorReport)return;try{errorReport[_0x3c4dbb(0x3e0)](_0x53d504),DebugLog?errorReport=errorReport['slice'](-0x2710):errorReport=errorReport[_0x3c4dbb(0x90c)](-0x64),!session['cleanOutput']&&(document[_0x3c4dbb(0x83d)](_0x3c4dbb(0x22e))&&_0x116c5d&&getById(_0x3c4dbb(0x22e))['classList'][_0x3c4dbb(0x881)]('hidden'));}catch(_0x1fb8d4){}}function _0x4f74(){var _0x4b40d0=['startClock','1foiCLZ','copying\x20key:\x20','getLocalStream','plane','lin','can\x27t\x20change\x20bitrate;\x20no\x20video\x20senders\x20found','height_url','Close\x20timeout\x20cancelled\x20-\x20ice\x20failed\x20instead','chunks','earth','couldn\x27t\x20set\x20rate\x20limit','webkitAudioContext','setupYourOwnPlease','baby','green','newMainDirectorSetup','step','timestamp','noScaling','obsfix','Encryption\x20is\x20required,\x20but\x20none\x20found.\x20Cancelling.','melody','lockedVideoBitrate','getOptimizedScale:\x20','gas','ruleOfThirds','Timestamp\x20duplicated','fat','directorPassword','bye','remoteVideoMuted','getSenders','Opened\x20transfer\x20channel','set','miss','infocusForceMode','maxScene','multiply','draw','UUID','fileWriter','both','chunkedAudioEnabled','roomenc','Valid\x20co\x20director\x20trying\x20to\x20transfer\x20a\x20guest','recordingVideoCodec','forceRetry','enemy','vb_url','fruit','cleanOutput','CONNECTEED!','check','voice','kill','broadcastTransfer','widgetSrc','currentTarget','virtualcam','whipCallback2','detailsSent','mag','dollar','room=','request\x20focus\x20change:\x20','rain','black','chunked_mode_video','GOT\x20ICEs!!','constructor','hurry','bought','sessionUri','safemode','tabernac','sceneType','decryptMessage','closing\x208','BITRATE\x203:\x20','whipout','catch','thousand','decodeInvite','effectsData','onopen','wall','can\x27t\x20change\x20audio\x20bitrate;\x20no\x20audio\x20sender\x20found','toLowerCase','ice\x20restart\x20real','minute','disablePLI','code','Max\x20bandwidth\x20NOT\x20being\x20capped:\x20','click','main-director','writeU8','savedBitrate','rtc\x20data\x20channel\x20error\x202:\x20','and','SEND\x20BYE','person','RTC\x20Connection\x20seems\x20to\x20be\x20dead\x20or\x20not\x20yet\x20open?\x20DOES\x20NOT\x20EXIST.\x20was\x20it\x20deleted?\x20666','also','init_video','failed\x20to\x20disconnect','realTimeVideo','directorViewBitrate','chatname','welcomeHTML','remotePan','here','limitMaxBandwidth','sceneMute','removed\x20from\x20SDP:\x20\x27a=extmap:3\x20urn:3gpp:video-orientation\x0d\x0a\x27','whepWait','viewDirectorOnly','first','white','add','raw','ArrayBufferDataStream','random','directorMutedState','seedAttempts','width','list','requesting\x20via\x20relaywss','preferAudioCodec','meshcastMenu','visibility','webp','ICE\x20DISCONNECTED','obs_control','are','salt','configuration','timeout','frameWriter','work','limiting\x20AudioEncoder','front','set-meshcast-video-bitrate','until','forceios','safe','h264profile','through','mobile','servers','win','strange','need','encodedInsertableStreams','processRPCSOnMessage','\x20x\x20','RTC\x20Connection\x20seems\x20to\x20be\x20dead\x20or\x20not\x20yet\x20open?\x201','\x20---\x20PC\x20TIMED\x20OUT\x20and\x20already\x20deleted.\x20shouldn\x27t\x20happen','decodeQueueSize:\x20','audience','autorecordremote','whepHost','audioHeaderSent','roomTimer','right','self','key','soft','soloChatUUID','setLocalDescription','SENDING\x20NEXT\x20CHUNK:','side','common','audioTime','numberOfChannels','directorVideoMuted','waitImageTimeoutObject','\x20---\x20we\x20will\x20ask\x20again','location','audioCodec','audioBitrate','beauty','cool','incoming\x20message\x20from\x20publisher','FileSystemWritableFileStream','reject\x20co','videoElement','audienceToken','center','last','calculateOptimalBufferSize','opacityMuted','way','RPCS\x20WINS\x20ICE','realtime','requesting\x20stream','people','stopClock','iceConnectionState\x20==\x20connected','consent','msg\x20size\x20error','row','migrate','star','configVideo','does','Audio\x20Bitrate\x20is\x20locked;\x20can\x27t\x20update','innerHTML','point','pcs\x20RTC\x20CLOSED','Waiting\x20for\x20keyframe\x20/\x20header\x20before\x20sending\x20delta\x20/\x20raw\x20video\x20data','hill','certain','large','midiIframe','quite','directorChat','1193620cmTpfq','forcePLI','BITRATE\x201:\x20','codirector','warn','videoMargin','close','utf-8','widgetleft','mutedState','maxviewers','dream','push-connection','whipOut','selfBrowserSurface','effect','promptAccess','down','speedtest','shall','chunkedRecorder','ccColored','requestFile','sister','defaultBackgroundImages','miniInfo','security','kind','layout','aec_url','stack','began','requestUpload','door','setAttribute','set-video-bitrate','realUUID','fakeUser','sending\x20message\x20via\x20WSS\x20as\x20WebRTC\x20failed\x20to\x20send\x20message','Decryption\x20error:','bed','audioInputChannels','plural','why','onicecandidate','dropped\x20candidate\x20due\x20to\x20filter','EncodedAudioChunk','noPLIs','blood','obsState','stream_configVideo','rotate_video','ariaPressed','lost','onconnectionstatechange','fakeFeeds','Transfer\x20was\x20completed\x20successfully','flower','accept_layouts','allowDirectorGraph','govern','publishing\x20SDP\x20Offer:\x20','prefer-software','setScale','like','mother','video_session','introOnClean','directorEnabledPPT','1280','effectsImage','face','pull','Generate\x20Some\x20Crypto\x20keys\x20first','writeEBMLVarInt','socialstream.ninja','recording_audio_compressor_type','requestCoMigrate','obsRemotePassword','preferCodec','toward','autoplay','RSASSA-PKCS1-v1_5','ease','Lowered\x20hand','view','than','createJavaScriptNode','copy','idea','still','MAKING\x20A\x20NEW\x20RPCS\x20RTC\x20CONNECTION','queued','SET\x20SCALING\x20IS\x20FIRING,\x20which\x20is\x20GOOD\x20!!!!!!\x20','set-video-scale','Chunked\x20mode\x20restarted\x20successfully','teach','42001f','bundlePolicy','walk','motion','keyframe','charAt','codirectorSettings','video_encoder','WebMWriter','sensorData','rows','cleanDirector','said','midiOffset','chart','happen','sand','director-denied','anger','Unmute\x20video','indexOf','doctor','decrypted','century','split','pushLoudness','altUUID','needsPublishing','chunkedTransferChannels','did','generateRandomString','stay','canvasCtx','exposure','unit','quality_ss','roomclaimed','paper','logs.txt','base','allowchunked','failed\x20to\x20send\x20zoom\x20change\x20request','targetAudioBitrate','solve','mix','readyState','head','postMessage','closeTimeout\x20cancelled;\x202','bank','[data-action-type=\x22order-value\x22][data--u-u-i-d=\x22','quality','grass','far','band','realTimeAudio','help','scale\x20scale','suit','locate','father','recordDefault','ride','studioSoftware','infocus','shift','encrypt','WHIP\x20OUT\x20SET\x20SCALING\x20IS\x20FIRING,\x20which\x20is\x20GOOD\x20!!!!!!','encodings','midiIn','setBitrate','processDescription','CLOSED','state','playbackheader','PONGED','audioNode','land','directorSpeakerMuted','enhance','gotGenericData','remote-mute-state','colorVideosBackground','third','young','iron','setup\x20peer\x20complete','disableWebAudio','message\x20could\x20not\x20be\x20sent;\x20queuing\x20it','noWidget','went','shape','getRandomValues','FORCE\x20KEYFRAME\x20FOR\x20SCENE','city','height','real','forceNoAudioWhipIn','createDelay','createWritable','reportbutton','free','audio_codec_url','crowd','view-connection-info','cleaning\x20up\x20lost\x20connection','getTracks','disableNACK','screen-share-state','record','mirrorState','bigmutebutton','closing\x206','generator','GDRIVE_CLIENT_ID','mute','dad','audiobitratePRO','showMuteState','no\x20pc[UUID]\x20found','setVideoBitrates','candidates','Total\x20viewers:\x20','foot','isScene','carry','mediamtx','processDescription2','claim','recording_audio_gain','sink','autoSyncObject','Websocket\x20connection\x20failed\x20or\x20something;\x20this\x20is\x20a\x20split\x20connection.\x20not\x20ideal,\x20as\x20it\x20could\x20be\x20unstable.','NOT\x20VIEW\x20TARGET','sea','parent','would','timer','have','whipOutKeyframe','beat','https://','und','localhost','udp','hanging\x20up','manualSink','min','content-type','imageElement','five','surprise','speakerMuted','pluginVersion','vosc','smile','checking','rtc.ninja','delayIceSend','wear','coat','theyBeSharksHere','hideDirector','recieveChunkedStream','requestChangeCompressor','insect','your','/publisher','then','roomid','reload','#000','wss://proxywss.rtc.ninja:443','NO\x20TRACKS','circle','noiseSuppression','micSampleSize','no\x20UUID\x20in\x20msg','seven','createElement','noon','seedPlz','town','recordConfig','log','say','video_bitrate_kbps','layout_array','whipOutScreenShareBitrate','port','Remote\x20request\x20failed\x20to\x20decode;\x20continuing\x20still.','been','sing','initialPublish','preLimitedBitrate','filter','createResourceChannel','nose','No\x20available\x20meshcast\x20servers\x20found','nofullwindowbutton','month','voiceMeter','dark','abc123','man','sceneType2','page','hangupbutton','electric','speed','mono','dataMode','told','modern','call','twenty','three','destination','Can\x27t\x20play\x20your\x20own\x20stream\x20ID','audioCtxOutbound','night','this.connectionState:\x20','3069432tfliml','#obsRemotePassword>input','remote-peer-connected','Video\x20Bitrate\x20is\x20locked;\x20can\x27t\x20update','max','remoteMuteElement','whipOutAudioBitrate','complete','shop','stone','roombitrate','segment','queueList','air','surfaceSwitching','sendChannel','err','resolve','whepInput','quality_url','flat','activeSpeaker','RTC\x20Connection\x20seems\x20to\x20be\x20dead\x20or\x20not\x20yet\x20open?\x202','%\x20battery\x20remaining','currentCameraConstraints','sticky','foregroundImg','danger','enc','configAudio','such','Failed\x20to\x20request\x20video\x20and\x20audio;\x20iOS\x20device\x20asking?','tall','ctrlKey','New\x20Label:\x20','safari','invalid-remote-code-obs','friend','RTC\x20Connection\x20seems\x20to\x20be\x20dead\x20or\x20not\x20yet\x20open?\x203','codirector_changeURL','maintain-framerate','recordingInterval','obsSceneTriggers','will','hope','stereo_url','too','guest-connected','webCodecAudio','micDelay','nodownloads','getChannelData','steel','guestFeeds','read','pong','target','mirrorGuestTarget','screenshareStereo','null\x20ice\x20rpcs','processFrameAudio','autostart','stereo\x20inbound\x20enabled','codirector\x20request\x20hash\x20failed','not-the-director','all','scene','control-room-co-director','practice','requestVideoRecord','voiceIsolation','binaryType','return\x20','busy','seeding-started','dedicatedControlBarSpace','obsSceneSync','requireencryption','copyTo','arrange','session.chunkedRecorder\x20set','whipOutScreenShareCodec','ten','delayTime','The\x20request\x20(','midiDelay','available-speedtest-servers','alreadyJoinedMembers','machine','setUint32','division','Only\x20the\x20main\x20director\x20can\x20use\x20this\x20setting','ontrack','hash','Chunked\x20mode\x20failed.\x20Attempting\x20to\x20restart...','blindAllGuests','smell','rpcs\x20onconnectionstatechange\x20Disconnected;\x20retry\x20in\x205s','showSettings','[data-action-type=\x27recorder-local\x27][data--u-u-i-d=\x27','cbr','timedelta','done','room_init','place','hidedirector','huge','batteryMeter','Failed\x20to\x20connect\x20to\x20Meshcast.\x0a\x0aCheck\x20your\x20connection\x20or\x20switch\x20to\x20peer-to-peer\x20mode\x20instead.','video_2_init_frameRate','New\x20ON\x20TRACK\x20event','createScriptProcessor','startTime','whipOutScale','offerSDP','bufferSize','opacityDisconnect','json','KEY\x20FRAME\x20will\x20be\x20requested\x20from\x20the\x20seeder\x20on\x20behalf\x20of\x20a\x20seeder\x20...','audioCtx','nopreview','shout','match','includeRTT','autoadd','chunkedVideoEnabled','has','outboundSampleRate','buffer_timedelta','map','start\x20writing\x20frames','nodirectoraudio','lowBitrateCutoff','usw2','round','loadoutID','scale','sharp','welcomeMessage','ROOMID\x20ENABLED','splice','chunksQueue','PROBLEM,\x20Senders\x20is\x20more\x20than\x200:\x20','property','reconnected','cleaning\x20up\x20lost\x20connection\x20--\x20disconnected\x20-\x20iOS\x20specific','retrying\x20at\x20an\x20interval','micIsolate','hssConnection','classList',')\x20failed\x20due\x20to\x20permissions\x20or\x20it\x20was\x20rejected\x20by\x20the\x20user','screenShareState','src','wss://whip.vdo.ninja','desaltStreamID','iframeSrc','measureEBMLVarInt','measureUnsignedInt','room-is-claimed','videoWriter','turn:turn-usw2.vdo.ninja:3478','allowChunked','midiHotkeys','natural','\x20attempts','requestStats','can','removeOrientationFlag','was','upstreamChannel','day','size','Firefox','micIsolated','maxptime','name','directMigrateIssue','iframeVideo','mutedStateMixer','Pinging','noNacks','api','snow','streams','motionDetectionInterval','whitelistDomain','mystery-message-recieved','pan','rock','quart','question','hot','bandwidth\x20set\x20h!\x20','pauseInvisible','optionalMicOnly','span','sendframes','subtle','bufferedAmount','connected','screenshareStyle','hiddenSceneViewBitrate','operate','never','window','true','weather','allowScreen','print','currentSrc','lie','rpc\x20datachannel\x20closed','currentAudioConstraints','defaultPassword','controlTimer','degree','sendRequest','country','apple','novideo','RETRANSMIT\x20chunkedtransfer\x20OPEN','crop','lowerhand','showConnections','directorActions','decrypt','him','saturation','egg','arm','closing\x201','transferred\x20and\x20closing','createOffer','flow','obs.ninja/','\x20/\x20','PUBLISHER\x27s\x20RTC\x20Connection\x20seems\x20to\x20be\x20dead?\x202','allowIframe','request\x20zoom\x20change:\x20','signData','vp9','noise','sendFile','winter','focusDistance','You\x20might\x20already\x20be\x20connected\x20to\x20this\x20chunked\x20video\x20stream','vowel','SHA-256','labelsize','remoteDescription','lone','hidehome','session.watchTimeoutList\x20no\x20longer\x20exists;\x20won\x27t\x20retry.','buy','surface','applySoloChat','remoteMuted','each','fail','broadcast','url','URL','WebRTC\x20Connection\x20Closed.\x20Clean\x20up.\x20657','watchTimeoutList','srcObject','nackCount','guess','postURL','sendMsg','wood','getParameters','enhanceAudioEncoder','approved:\x20','anysend','track','apiSocket','found','intime','stereo','session.provideFileList','pcs','sdpSemantics','playChannel','interval','setResolution\x20triggered;\x20','Create\x20a\x20new\x20RTC\x20connection;\x20offering\x20SDP\x20on\x20request','favor','closing\x2020','view_set','needKeyFrame','selectedImage_contents','against','decimal','cae1','ifs','dbx','denoise_url','hit','activeSpeakerTimeout','InvalidOperationException','glass','fecAudio','range','allowVideo','A\x20director\x20joined\x20the\x20room','contentType','ice\x20timer\x20no\x20longer\x20exists','room\x20rate\x20restriction\x20detected.\x20No\x20videos\x20will\x20be\x20published\x20to\x20other\x20guests','H264','password','tire','lot','push','section','screen','dear','mouth','firefox','drop','clear','time_seconds','instrument','girl','finish','Someone','directorView','Chunked_video','whipOutKeyframeOnNewViewer','fit','Not\x20supported;\x20expected\x20\x27filetransfer\x27','fraction','createBuffer','care','scaleWidth','speakerMuted_default','pcm','listPromise','offset','keys','readAsArrayBuffer','double','BlobBuffer','mykey','result','stopPropagation','includes','general','quality_wb','scaleHeight','not\x20allowed\x20to\x20show\x20the\x20director','decode','own','totalBitrate:\x20','audioContext','layouts','together','getVideoTracks','visible','design','probable','useragent','stun:stun.l.google.com:19302','Seeking\x20beyond\x20the\x20end\x20of\x20file\x20is\x20not\x20allowed','fr1','panning','waitImage','number','represent','steveseguin.github.io','PCS\x20WINS\x20ICE','life','previewToggleState','what\x20is\x20this?','restricted','forceAspectRatio','version','over','condition','wss://api.vdo.ninja:443','canvasOverlay','child','lyra','midi','meant','sendKeyFrameScenes','noisegate','audioEffects','AIzaSyAcboxS2N-39sfn1xn9jNCebvKkuHAdlNk','fight','viewslot','TRANSFERRING?','decoder','song','theirtime','windowed','TOO\x20MANY\x20PUBLISHING\x20PEERS','GOT\x20ICE!!','getSettings','stead','nochunk','actual\x20bitrate:','sudden','prepare','Setting\x20Codec\x20to\x20vp8','defaultIframeSrc','iframeDetails_','updateOnSlotChange','empty\x20ice..','fig','couldn\x27t\x20set\x20preferred\x20video\x20codec','screenStream','getWriter','travel','sentence','midiRemote','UUID\x20in\x20session.chunkedTransferChannels\x20already','cleanDirectorList','color','muteState','screensharecursor','invite','knew','options','calculateScale','none','sdp','meta','enhanceAudio','company','soon','h264','writer','crypto','isView','vary','with','whether','chunkedtransfer','googleDriveRecord','RTC\x20already\x20connected','obsCommand','data','kept','Failed\x20to\x20connect\x20to\x20Meshcast.\x0a\x0aCheck\x20your\x20connection\x20or\x20switch\x20to\x20peer-to-peer\x20mode\x20instead.\x0a\x0a','seem','Content-Type','suggest','gridlayout','the','privacy','Bad\x20UINT\x20size\x20','volumeControl','receive','mainDirectorPassword','observe','repeat','rejoining\x20room','red','one','getReader','bit\x20rate\x20being\x20munged','forceRotate','streamID','Browser','ontimeout','optimize','press','add-a-label','877147493034-67tq62ds8cj54it6cr0ut24irm7t7q5g.apps.googleusercontent.com','coDirector','joiningRoom','queue=false','pos','gdrive','scale\x20set!\x20','outputLatency','listen','son','padStart','see','year','try','hss-connection','screenShareStartPaused','debug.vdo.ninja','pitch','localDescription','bring','tree','customWSS','STREAM\x20ID\x20desalted\x202:','midiChannel','time_second\x20missing','connectPeer','whep','end-view-connection','several','contain','finger','allowWebp','quietOthers','versus.cam','switchMode','speakerMute','enhacing\x20audio\x20encoder','onconnectionstatechange\x20pcs\x20ice\x20--\x20disconnected,\x20but\x20not\x20yet\x20closed?\x20','remoteMuteState','channelOffset','requestKeyframe','order','canvas','Bad\x20EBML\x20datatype\x20','site-not-responsive','frameRate','recording_audio_mic_delay','BYE\x20RPCS','remote-screenshare-state','local','localMuteElement','focusStyle','evening','hostname','light','no\x20video/audio\x20config','ACTION\x20REJECTED:\x20','session.newMainDirectorSetup','addCoDirector','_screen','chunked','couldn\x27t\x20set\x20preferred\x20audio\x20codec','sensors','least','token','planet','enter','bitrate','screenshareVideoOnly','audioEncoder','selectedIndex','thought','warnUserTriggered','jpeg','picture','meterStyle','single','quick','setVideoBitrate','thus','successfully\x20sent\x20message\x20vis\x20WebRTC\x20instead\x20of\x20WSS','remoteStats','directorDisplayMute','keyFramesRequested_pli','relaywss','controls','hidden','randomize','chunkedStream','line','heard','rampUpTime','limitAudioBitrate','bread','include','systemAudio','currentSlots','setParameters','audioChannels','autoSync','plain','\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API','processIce2','IchBinSteveDerNinja','brown','obsStateSync','plugged_in','bandwidth\x20set\x20g!\x20','compressor','videoMuted:\x20','ear','createBufferSource','lockWindowSize','tool','encode','document','whepSettings','Failed\x20to\x20restart\x20chunked\x20mode:','table','obs','closing\x202','buffer_baseLatency','noise\x20gate\x20off','activelySpeaking','turn:turn-cae1.vdo.ninja:3478','dtx','morning','swim','high','wss://wss.vdo.ninja:443','AV1','Failed\x20attempt\x20to\x20connect\x20as\x20co-director','directVideoMuted','noiframe','forceMediaSettings','stick','Bad\x20EBML\x20VINT\x20size\x20','concat','nothing','broad','cleanish','offsetChannel','networkPriority','rotated','label_','figure','allowMIDI','forceScreenShareAspectRatio','agree','king','setupScreenShareAddon','allowscreenvideo','onTrack','card','onicegatheringstatechange','lake','blurBackground','meshcastCode','flagship','div','priority','requestCoDirector','allow','displayMute','adjustBitrate','AES','activatedStreamsQueue','fair','screenshareAEC','sail','touch','hostedFiles','short','popupChat','createWriteStream','anyrequest','initial_group','vp09.00.10.08','lady','startsWith','samplingFrequency','allowVideos','mainDirectorPasswor','learn','load','hear','channel','directorBlindButton','hash\x20is\x20','removeTrack','You\x27ve\x20been\x20transferred','maintain-resolution','old','whipOutAudioCodec','createMediaStreamDestination','audioLatency','whole','dance','cook','current','gpGPU','tiny','stats','iframeEle','\x20(full)','RTC\x20Connection\x20seems\x20to\x20be\x20dead\x20or\x20not\x20yet\x20open?\x204','network_type','isolateChannel','big','CONNECTED\x20TO\x20FIRST\x20PEER','iceBundle','pow','clean','An\x20RTC\x20error\x20occured','darkmode','ICE\x20GATHER\x20COMPLETED','prove','allowAudio','onerror','chunkRates','ICE\x20GATHER\x20START','allowScreenAudio','getAudioTracks','VDO-Ninja','videosource','label=','limitAudioEncoder','letter','always','setOpusAttributes','farm','displaySurface','LOADING\x20UP\x20WAITING\x20WATCH\x20STREAM:\x20','codec','allowmidi','pauseClock','Restarting\x20since\x20closed','search','total','recordedBlobs','streamSrcClone','screenshareid','mutedStateScene','maxMobileBitrate','muteStateTemplate','quality_room','lift','run','rmid','maxconnections','organ','equalizer','screenshareDenoise','occur','directorHash','imagine','Does\x20Local\x20Stream\x20Source\x20EXIST?','hostedTransfers','wind','prototype','character','die','stereo\x20enabled','SCREENS','raisehands','candidate\x20callback\x20finished\x20in\x20totalilty','energy','undefined','meat','seeding\x20blocked','getVideoSettings','img','nomirror','mass','VP8','wrote','resolution','Incoming\x20Ice\x20Offer\x20does\x20not\x20match\x20Session','change','new-push-connection','deleteme','hand','hour','cmd','widget-src','A_OPUS','neighbor','feet','Remote\x20user\x20is\x20a\x20director','bird','manualBandwidth','iceTransportPolicy','pip','redAudio','overlay','orderby','pseudoguest','createMediaStreamSource','Audio_Loudness','field','exclude','requestStatsContinuous','edgelist','you-are-a-codirector','iPhone12Up','Not\x20director','substring','allowNoGroup','Answer\x20SDP\x20does\x20not\x20have\x20a\x20matching\x20session\x20ID','myVideo.webm','abs','fun','especially','grew','digest','cover','streaming','volume','scaleSnap','whipOutput','modifyDescPCM','reject','changeURL','preferredVideoErrorCorrection','oniceconnectionstatechange','baseLatency','before','mirrorExclude','allowDownloads','start','maxvb_url','nextQueue','gray','getStatsTimeout','EastSideRepresentZ','our','perhaps','choose','initialDirectorSync','already\x20watching\x20stream','dataset','period','scaleResolutionDownBy','transfer','clicked','loadstart','audioOutputChannel','method','hold','Unhandled\x20Error\x20occurred','cpu','Room\x20is\x20full.\x0a\x0aThe\x20room\x20you\x20are\x20trying\x20is\x20join\x20is\x20act\x20its\x20max\x20capacity.','allowGraphs','description','drink','directorStreamID','Transfer\x20was\x20cnacelled\x20by\x20remote\x20user;\x20parital\x20file\x20saved.','Possibly\x20too\x20many\x20connections\x20from\x20the\x20same\x20address\x20tried\x20to\x20connect.Visit\x20https://discord.vdo.ninja\x20for\x20support.','wish','turnlist','restartChunkedMode','excludeaudio','encoder','cleanViewer','broadcastChannel','nochunkaudio','allowScreenVideo','disableOBS','NOT\x20IN\x20VIEW\x20SET','proxy','seed','minptime','title','chief','remote-group-change','waitImageTimeout','paragraph','could\x20not\x20be\x20sent;\x20queuing\x20it','lowMobileBitrate','\x20as\x20preferred\x20video\x20codec\x20by\x20viewer\x20via\x20API\x20(offer)','https://turnservers.rtc.ninja/','objectFit','screenShareLabel','every','conn_type','requestRateLimit','Track\x20stopped','defaultSpeaker','rotate','updateTime','get','dynamicScale','experimental','matter','video/webm','led','de1','writeByte','autorecord','Encryption\x20is\x20required\x20for\x20non-default\x20passwords\x20setups.\x20No\x20encryption\x20found.\x0a\x0aNote:\x20If\x20you\x27d\x20like\x20to\x20allow\x20it\x20regardless,\x20add\x20&unsafe\x20to\x20your\x20URL\x20to\x20allow\x20connections\x20made\x20with\x20a\x20password\x20that\x20does\x20not\x20encryption.','closeTimeout','buffer_buffer','system','unsafe','showList','pastSlots','max_bandwidth_capped_kbps','money','closing\x2019','requestFocusChange','end','turn:turn-eu1.vdo.ninja:3478','remember','2768612VmSqfT','groupView','disconnectedTimeout','stopping\x20old\x20track','remoteRaisedHandElement','OPEN','chunkedInQueue','detail','writeUnsignedIntBE','allowdrawing','level','retryTimeout','Offset\x20may\x20not\x20be\x20NaN','low','charCodeAt','other','screenStopped','heart','came','PASSED','videoWorker','discuss','mid','vdoninja','protect','between','decide','showControls','\x20else\x20if\x20(encoder.state\x20==\x20\x27closed\x27','reach','chance','maxBandwidth','many','forceRetryTimeout','sampleRate','scaleFactor','GOT\x20CHUNKED\x20DETAILS','save\x20bandwidth:\x20','street','&code=','defaultOverlayMedia','space','successfully\x20sent\x20message\x20vis\x20WebRTC\x20instead\x20of\x20WSS\x20to\x20all\x20RTC\x20Peers','\x20UUID(s)\x20from\x20the\x20director\x27s\x20list.','final','overlayNinja','syncState','screensharebutton','videosource_','written','chunked_mode_audio','preventDefault','sendingBuffer','Switching\x20to\x20limitTotalBitrateAll','strong','starting\x20kicker','chunkedDetails','pipWindow','Websockets\x20timed\x20out;\x2030\x20seconds','out','av01.0.04M.08','endViewConnection','processIce','soldier','BITRATE\x202:\x20','requested-stream','pair','yes','requestChangeSubGain','motionSwitch','obsControl','dataReceived','gainNode','full','VP9','supported','.webm','chord','drive','turn:turn-eu2.obs.ninja:3478','group','signalMeter','requestVideoHack','screenIndexes','WebSocket\x20Error:','stopWriter','webPquality','bandwidth\x20set\x20i!\x20','download','road','rub','nodirectorvideo','active','chunked-mode\x20KEY\x20FRAME\x20REQUESTED\x20BY\x20A\x20VIEWER','undo','oncanplay','island','currentRate','body','vp8','remote-token-rejected','onceConnected','live','STREAM\x20ENDED','stunOnly','FAIL\x20rpcs\x20onconnectionstatechange','season','floor','addEventListener','closePC','sceneSync','disconnect','getElementById','GDRIVE_API_KEY','burn','setVideoScale','decodeQueueSize','story','director','bandwidth','webcamonly','degrade','fish','setValueAtTime','poem','horse','women','style','done\x20clearing\x20audio','north','sendPeers','car','delete','keyframeSent','savedVolume','success','preferCurrentTab','during','canvasIntervalAction','scene-connected','iframetarget','made','welcomeImage','\x20is\x20not\x20defined;\x20skipping.','keyframeTimeout','ready','dataOffset','charging','GOT\x20ICES!!','restartIce','delta','audio','them','had','parse','video_init_height','feel','resumeClock','new-view-connection','Notice:\x20Meshcast\x20does\x20not\x20support\x20Insertable\x20Streams\x20(or\x20E2EE)\x20at\x20the\x20moment','ring','wss','Remote\x20peer\x20disconnected.\x20Due\x20to\x20enhanced\x20security,\x20please\x20refresh\x20to\x20create\x20a\x20new\x20connection.','who','incoming\x20screen\x20share\x20started\x20loading','providing\x20answer','recieveResourcesChannel','history','showSlider','warm','stream\x20ID\x20is\x200\x20length','Mute\x20video\x203306','not\x20record\x20button\x20detected;\x20can\x27t\x20update\x20time\x20since\x20started\x20recording','offer','session.setupScreenShareAddon','appendChild','isDirector\x20','AES-CBC','original','toString','remove','early','teeth','WHY\x20ARE\x20YOU\x20GOD\x20DAMN\x20BEEPING','arrive','alert','timeOffset','hangup','wssSetViaUrl','channelWidth','remote-video-mute-state','correct','approved','recordings','justResetting','Waiting\x20for\x20audio\x20header\x20before\x20sending\x20raw\x20audio\x20data','oil','corn','webrtc\x20connectioned\x20closed-event','\x20','stringify','focus\x20success','doNotSeed!','atom','some','video_init_frameRate','keep','ceil','notifyScreenShare','answer','bitrateTimeoutFirefox','slot','audioConstraints','starting\x20some\x20preload\x20bitrate\x20','hideClock','pick','pixelFix','preloadbitrate','stashed','usual','writeDoubleBE','forest','doNotSeed','selfVolume','eye','sendMessage','gold','remote-label-changed','moon','\x20(ok)','requestPublisherUpdate','[data-action-type=\x22remove-queue\x22][data--u-u-i-d=\x22','Publisher\x20will\x20be\x20ignored\x20due\x20to\x20max\x20connections\x20already\x20hit','wrong','disabled','waiting\x20for\x20keyframe','enhanceaudio','playsinline','syncDrawOnVideo','./media/overlay1.png','audiobitrate','onaudioprocess','connection\x20state\x20->\x20failed;\x20will\x20try\x20ice\x20reconnect\x20or\x20such','consonant','send','requestChangeEQ','allowresources','cleanup','wss://','enabled','onclose','status','audioGain','connect','addIceCandidate','fullscreenButton','borderColor','obsControls','rail','skin','similar','enhance_audio','Keyframe\x20requested','tokenDirector','badStreamList','whiteBalance','init_audio','webrtc-is-blocked','noFEC','contentHint','sendHeader','raise','lay','reason','yourDirectorStatus','chat','send\x20channel\x20closed','activatedStreams','Disconnected','privateKey','region','when','HEADER\x20SENT?','request','requestChangeLowcut','.hidden2','join','outboundAudioBitrate','shouldn\x27t\x20happen','getUint32','setResolution','processPCSOnMessage','ondatachannel','past','Room\x20is\x20already\x20claimed\x20by\x20someone\x20else.','playing','middle','requestZoomChange','statsMenu','data\x20channel\x20being\x20used\x20in\x20reverse;\x20this\x20shouldn\x27t\x20really\x20happen,\x20except\x20if\x20maybe\x20doing\x20a\x20file\x20transfer','waitPage','more','often','turn:turn-use1.vdo.ninja:3478','error','dog','pay','null','querySelectorAll','remote-control-failed','no\x20audio\x20track\x20to\x20poke','ICE\x20FAILED','https://turnservers.vdo.ninja/','onreadystatechange','slow','metaKey','https://meshcast.io/servers.json?ts=','directorSettings','Change\x20Label','slice','rope','targetBandwidth','where','iceConnectionState','videoDevice','station','captain','those','that','ab_url','ever','eventPlayActive','appear','available_outgoing_bitrate_kbps','ask','block','audioDevice','woman',',\x20mc?:\x20','muted','fall','behind','whipWait','RECONNECTING\x20to\x20HSS;\x20DISCONNECTING\x20FROM\x20TRANSFERRED\x20ROOM','timecode','tokens-did-not-match','iframe','msg','lowerVolume','scaleResolution','recordLocal','famous','value\x20there','closing\x2013','count',',\x20isDirector:\x20','PCM\x20STARTED','desert','pliCount','directorVolumeState','twilio','permaid','message','CLOSING\x20SECONDARY\x20CONNECTION;\x20matched\x20stream\x20ID\x20has\x20re-connected','enqueue','Created\x20transfer\x20channel','equal','fire','new\x20connection\x20is\x20contained\x20in\x20badStreamList!\x20This\x20might\x20be\x20the\x20director\x27s\x20video/audio\x20->\x20this\x20a\x20scene?','sure','\x20(fair)','Error\x20in\x20debug\x20logging:','legacywebrtc','write','candidate','Stream\x20ID\x20is\x20already\x20in\x20use.','zoom','vdo.socialstream.ninja','their','view-connection','roomhost','separate','house','type','maxBitrate','opposite','wash','provide','screenElement','de2','eat','&start=','done\x20setting\x20degrad\x20to\x20maintain-framerate','trip','whepInputToken','token-room-is-claimed','videoPromise','vdo.ninja','directorUUID','directorBlue','cat','devicePixelRatio','require','proper','sensorDataFilter','directorSpeakerMute','generateStreamID','dress','column','Trying\x20to\x20set\x20','lockedAudioBitrate','remoteMuteState_','viewwidth','audioBuffer','nine','find','loudest','deep','videoErrorCorrection','limitMeshcastBitrate','addTrack','test','truck','string','mirrorGuestState','joinroom','tilt','optimizedBitrate','sent\x20via\x20relay\x20wss\x20anyways','changeMicrophone','vector','compare','four','new','disconnected;\x20no\x20reconnect\x20even\x20after\x205s;\x20closing','meshcast','closed','automute','EOF1','requestChangeMicDelay','bitrateTimeout','there','cent','arraybuffer','iceTimer','miconly','No\x20reconnect\x20even\x20after\x203s;\x20closing','byteLength','maxframeRate','creating\x20answer','getPCM','muted_activeSpeaker','whipView','though','pipeTo','mountain','feed','stashes','getTimezoneOffset','back','permaMirrored','seat','downloads','already\x20waiting\x20for\x20stream','soil','Checking\x20to\x20see\x20if\x20reconnectino\x20to\x20ws\x20lost\x20any\x20peers','widget','OBSNINJAFORLIFE','dataframe\x20has\x20no\x20type','fact','requestChangeGating','from','addALabel','dictionary','forceTcpMode','Someone\x20sent\x20us\x20an\x20ANSWER\x20sdp??','degradationPreference','info','fillDataBuffer','slotsUpdate','outboundVideoBitrate','createAnswer','changeOrder','No\x20meshcast\x20server\x20found\x20that\x20worked','subarray','http://','?ts=','2319768BqNVNj','inch','pip3','hole','closeRPC','quiet','encodeRemote','https://www.youtube.com/','allowmeshcast','layout-updated','cbid','keyname','showRoomTime','changeLabel','cotton','requestFile\x20in\x20reverse','discordHook','request-failed','realTime','screenShareElement','failed','score','hidden2','triangle','constant','valley','thin','whipoutSettings','bypass','mind','chunkIframe','Adjusting\x20Gain;\x20only\x20track\x200\x20in\x20all\x20likely\x20hood,\x20unless\x20more\x20than\x20track\x200\x20support\x20is\x20added.','newViewConnection','power_level','Error\x20fetching\x20meshcast\x20servers:','may','vdav','dont','remoteVideoMuteElement','refreshScale','tfliteModule','could','showClock','buffer_dateNow','transcript','among','connectionState','invent','container_','quotient','keyframeRate','smallScreen','completed','noMeshcast','joining-room','allowBroadcast','brightness','Publisher\x20is\x20being\x20sent\x20a\x20video\x20stream???\x20NOT\x20EXPECTED!','midiTimecode','currentTime','preset','receiveChannel','rpcs','remoteTilt','recording','already\x20closed\x20PCS','either','you','sendOnNewConnect','audioContentHint','love','acc','slots','this','coDirectorEnable','wssid','/whip','mids','container_director','sceneDisplay','visit','no\x20upstreamChannel\x202','ISSUING\x20CALLBACK:\x20','after','importKey','allowWidget','penalty','bat','responseText','processFrame','getAsDataArray','writer_config','recording_audio_pipeline','cloneNode','for','forward','writeBytes','spring','chunkedChannels','cause','AndroidFix','jointone','clock24','motionRecord','codirector_transfer','5PmQOeh','leftMiniPreview','watchStream','sharperScreen','expect','difficult','added\x20video\x20track','race','board','channels','signature','updateurl','custom\x20layout\x20being\x20applied','remoteFocus','roll','hunt','config','','https://turnservers.socialstream.ninja/','corner','iceGatheringState','infocus2','showDirector','RTCRtpSender','differ','fromCharCode','use1','buffer','FORCING\x20A\x20KEY\x20FRAME:\x20','men','stunServers','updateDrawing','support','turns:www.turn.obs.ninja:443','pretty','supply','scaleDueToBitrate','scaleResolutionDownBy\x20set\x202a!\x20','move','onnegotiationneeded\x20triggered;\x20creating\x20offer','she','token-not-director','direct','sell','queueType','directorDisplayMuted','wont','directorState','video_init_width','pipe','requestResolution','onnegotiationneeded','slave','deleting\x20watch\x20list','obsstudio','video_muted_init','optimizeBitrate','even','describe','sleep','getAudioSettings','getVideoBitrates','mediaDevices','youtubeKey','measure','set-audio-bitrate','allowwebp','yet','limitTotalBitrateGuests','vDAv','noise\x20gate\x20on','removeChild','Requested_resolution','plugged','rise','suffix','deferring\x20with\x20a\x20promise;\x20hashed\x20room','chatbutton','cameraConstraints','director-share','mystery-message-recieved-2','bitrate\x20timeout;\x20ios/firefox\x20specific:\x20','substance','gain','replaceAll','brought','boy','equate','slotmode','batteryState','example','disableViewerWebAudioPipeline','retryWatchInterval','unknown','next','done\x20setting\x20degrad\x20to\x20','charge','border','directorMirror','href','thick','limitTotalBitrateAll','solution','approved-as-director','seedStream','announceCoDirector','addVsSentRate','maxframeRate_q2','prefer-hardware','getStats','wheel','consider','videoOptions','ocean','backup.vdo.ninja/','provideFileList','ball','weight','fresh','cut','case','except','someonejoined','parentNode','wait','codirectorRequested','Refreshing\x20scale','team','silence'];_0x4f74=function(){return _0x4b40d0;};return _0x4f74();}function downloadLogs(){var _0x497adb=_0x268b62;const _0x59cb66=new Blob([JSON[_0x497adb(0x895)](errorReport)],{'type':_0x497adb(0x669)}),_0x5aa9d0=URL[_0x497adb(0x688)](_0x59cb66),_0x530bd6=document[_0x497adb(0x27d)]('a');_0x530bd6[_0x497adb(0xa80)]=_0x5aa9d0,_0x530bd6[_0x497adb(0x825)]=_0x497adb(0x1f0),document[_0x497adb(0x82f)][_0x497adb(0x87c)](_0x530bd6),_0x530bd6[_0x497adb(0xafc)](),document['body'][_0x497adb(0xa64)](_0x530bd6),URL[_0x497adb(0x654)](_0x5aa9d0),errorReport=[];}function _0x4b6a(_0x2c74a8,_0x17a713){var _0x4f7463=_0x4f74();return _0x4b6a=function(_0x4b6aba,_0x47bd07){_0x4b6aba=_0x4b6aba-0x152;var _0x34b960=_0x4f7463[_0x4b6aba];return _0x34b960;},_0x4b6a(_0x2c74a8,_0x17a713);}async function generateHash(_0x3586cc,_0x2fe2eb=![]){var _0x165dc6=_0x268b62;const _0x270f15=new TextEncoder(_0x165dc6(0x170))['encode'](_0x3586cc);return crypto[_0x165dc6(0x36d)][_0x165dc6(0x5b6)](_0x165dc6(0x39f),_0x270f15)[_0x165dc6(0x272)](function(_0x548ee1){var _0x270047=_0x165dc6;return _0x548ee1=new Uint8Array(_0x548ee1),_0x2fe2eb&&(_0x548ee1=_0x548ee1[_0x270047(0x90c)](0x0,parseInt(parseInt(_0x2fe2eb)/0x2))),_0x548ee1=toHexString(_0x548ee1),_0x548ee1;})[_0x165dc6(0xaef)](errorlog);}function processTURNs(_0x32384e){var _0x5346d9=_0x268b62,_0x34e066=getTimezone();for(var _0x2fea8c=0x0;_0x2fea8c<_0x32384e[_0x5346d9(0x606)];_0x2fea8c++){var _0x995975=Math['abs'](_0x32384e[_0x2fea8c]['tz']-_0x34e066);Math[_0x5346d9(0x5b2)](_0x995975-0x3c*0x18)<_0x995975&&(_0x995975=Math[_0x5346d9(0x5b2)](_0x995975-0x3c*0x18)),_0x32384e[_0x2fea8c][_0x5346d9(0x863)]=_0x995975;}_0x32384e[_0x5346d9(0x6b9)](compare_deltas);var _0x3fc9c9=[],_0x3fc5df=0x0,_0x1a299d=0x0;for(var _0x2fea8c=0x0;_0x2fea8c<_0x32384e[_0x5346d9(0x606)];_0x2fea8c++){try{if(session[_0x5346d9(0x17b)]&&_0x32384e[_0x2fea8c][_0x5346d9(0x25a)]==session[_0x5346d9(0x9a7)])continue;else{if(session[_0x5346d9(0x9a7)]&&_0x32384e[_0x2fea8c]['udp'])continue;else{if(session[_0x5346d9(0x17b)]&&session[_0x5346d9(0x17b)]!==!![]&&session['speedtest']!==_0x32384e[_0x2fea8c][_0x5346d9(0x68a)])continue;}}}catch(_0x47fd84){errorlog(_0x47fd84);}if(_0x32384e[_0x2fea8c][_0x5346d9(0x25a)]&&_0x1a299d<0x2)_0x3fc9c9[_0x5346d9(0x3e0)](_0x32384e[_0x2fea8c]),_0x1a299d+=0x1;else!_0x32384e[_0x2fea8c]['udp']&&_0x3fc5df<0x1&&(_0x3fc9c9['push'](_0x32384e[_0x2fea8c]),_0x3fc5df+=0x1);}return _0x3fc9c9;}async function setupSpeedtest(){var _0x7f733=_0x268b62;isIFrame&&session[_0x7f733(0x17b)]&&await chooseBestTURN();}async function getTURNList(){var _0x25a52b=_0x268b62,_0x336c9c=[],_0x239f47=Date[_0x25a52b(0x5ee)]()-0x180f0b4b67c,_0x2c2fac='',_0x10f52c=_0x25a52b(0x905);if(location[_0x25a52b(0x4b1)]===_0x25a52b(0x267))_0x10f52c=_0x25a52b(0x7ac);else location[_0x25a52b(0x4b1)]===_0x25a52b(0x946)&&(_0x10f52c=_0x25a52b(0xa2f));if(session[_0x25a52b(0x17b)])_0x10f52c+=_0x25a52b(0x17b),typeof session[_0x25a52b(0x17b)]==_0x25a52b(0x974)&&(_0x2c2fac=_0x25a52b(0x7f4)+session[_0x25a52b(0x17b)]);else{if(session['privacy']&&typeof session['privacy']==_0x25a52b(0x974))_0x2c2fac=_0x25a52b(0x7f4)+session['privacy'];else try{_0x336c9c=getStorage(_0x25a52b(0x797))||![];if(_0x336c9c)return!session[_0x25a52b(0xa3b)]&&(session['stunServers']=[]),_0x336c9c=processTURNs(_0x336c9c),!_0x336c9c&&(_0x336c9c=[]),session['configuration']={'iceServers':session[_0x25a52b(0xa3b)],'sdpSemantics':session[_0x25a52b(0x3c1)]},session['privacy']&&(session[_0x25a52b(0xb26)][_0x25a52b(0x59f)]=_0x25a52b(0x75d)),session[_0x25a52b(0xb26)][_0x25a52b(0x6b4)]=session['configuration'][_0x25a52b(0x6b4)]['concat'](_0x336c9c),!![];else _0x336c9c=[];}catch(_0x17d405){errorlog(_0x17d405),_0x336c9c=[];}}return await fetchWithTimeout(_0x10f52c+_0x25a52b(0x9b3)+_0x239f47+_0x2c2fac,0x7d0)[_0x25a52b(0x272)](_0x119fb7=>_0x119fb7[_0x25a52b(0x31d)]())[_0x25a52b(0x272)](function(_0x281999){var _0x2216ea=_0x25a52b;_0x281999['servers'][_0x2216ea(0x6d2)](_0x3d670b=>{var _0x3ba0c7=_0x2216ea;try{if(session[_0x3ba0c7(0x9a7)]&&_0x3d670b[_0x3ba0c7(0x25a)]){}else _0x336c9c[_0x3ba0c7(0x3e0)](_0x3d670b);}catch(_0x672b40){errorlog(_0x672b40);}});if(isIFrame&&_0x281999['options']&&session['speedtest']&&!session[_0x2216ea(0x1be)])pokeIframeAPI(_0x2216ea(0x2fe),_0x281999[_0x2216ea(0x44e)]);else!session[_0x2216ea(0x17b)]&&setStorage('turnlist',_0x281999[_0x2216ea(0xb33)],0x1);})['catch'](function(_0x3d451f){var _0x366abf=_0x25a52b;warnlog(_0x3d451f),_0x336c9c=[{'username':_0x366abf(0x73e),'credential':_0x366abf(0xaab),'urls':[_0x366abf(0xa3e)],'tz':0x12c,'udp':![],'locale':_0x366abf(0x3cd)},{'username':_0x366abf(0x73e),'credential':_0x366abf(0xaab),'urls':[_0x366abf(0x4f8)],'tz':0x12c,'udp':!![],'locale':_0x366abf(0x3cd)},{'username':_0x366abf(0x7e4),'credential':_0x366abf(0x26b),'urls':[_0x366abf(0x348)],'tz':0x1e0,'udp':!![],'locale':_0x366abf(0x32d)},{'username':_0x366abf(0x7e4),'credential':'PolandPirat','urls':['turn:turn-eu4.vdo.ninja:3478'],'tz':-0x46,'udp':!![],'locale':_0x366abf(0x66d)},{'username':_0x366abf(0x664),'credential':_0x366abf(0xae9),'urls':[_0x366abf(0x81c)],'tz':-0x3c,'udp':!![],'locale':_0x366abf(0x413)},{'username':_0x366abf(0x73e),'credential':_0x366abf(0xaab),'urls':[_0x366abf(0x636)],'tz':-0x3c,'udp':![],'locale':_0x366abf(0x7bc)},{'username':_0x366abf(0x73e),'credential':_0x366abf(0xaab),'urls':[_0x366abf(0x7cb)],'tz':-0x3c,'udp':!![],'locale':_0x366abf(0x7bc)},{'username':_0x366abf(0x7e4),'credential':_0x366abf(0x4e3),'urls':[_0x366abf(0x6b8)],'tz':-0x3c,'udp':!![],'locale':_0x366abf(0x952)},{'username':_0x366abf(0x7e4),'credential':_0x366abf(0x4e3),'urls':['turns:www.turn.vdo.ninja:443'],'tz':-0x3c,'udp':![],'locale':_0x366abf(0x952)},{'username':'vdoninja','credential':_0x366abf(0x5ca),'urls':[_0x366abf(0x8fc)],'tz':0x12c,'udp':!![],'locale':_0x366abf(0xa37)}],_0x336c9c=processTURNs(_0x336c9c);}),!session[_0x25a52b(0xa3b)]&&(session[_0x25a52b(0xa3b)]=[]),session['configuration']={'iceServers':session[_0x25a52b(0xa3b)],'sdpSemantics':session[_0x25a52b(0x3c1)]},session['privacy']&&(session[_0x25a52b(0xb26)]['iceTransportPolicy']=_0x25a52b(0x75d)),!_0x336c9c&&(_0x336c9c=[]),session[_0x25a52b(0xb26)]['iceServers']=session['configuration'][_0x25a52b(0x6b4)][_0x25a52b(0x505)](_0x336c9c),log('Remote\x20TURN\x20LIST\x20Loaded\x20**\x20'),!![];}var TURNPromise=null;async function chooseBestTURN(){var _0x5cfeac=_0x268b62;if(session[_0x5cfeac(0xb26)])return;return!TURNPromise?TURNPromise=getTURNList():warnlog(_0x5cfeac(0x6e4)),await TURNPromise;}var WebRTC={};WebRTC['Media']=(function(){var _0x5b10c6=_0x268b62,_0x42c792={};function _0x3e5f1a(){var _0x523e2d=_0x4b6a,_0x4bf2ef,_0x2d1631,_0x23b5c1=new Promise((_0x5e2b26,_0x45dd54)=>{_0x4bf2ef=_0x5e2b26,_0x2d1631=_0x45dd54;});return _0x23b5c1[_0x523e2d(0x2b9)]=_0x4bf2ef,_0x23b5c1[_0x523e2d(0x5bd)]=_0x2d1631,_0x23b5c1;}_0x42c792[_0x5b10c6(0x963)]=function(_0x5e72b1=0x7){var _0xb41a75=_0x5b10c6,_0x5147ac='',_0x27e044=_0xb41a75(0x6e8);for(var _0x3dd7bf=0x0;_0x3dd7bf<_0x5e72b1;_0x3dd7bf++){_0x5147ac+=_0x27e044['charAt'](Math[_0xb41a75(0x838)](Math[_0xb41a75(0xb18)]()*_0x27e044[_0xb41a75(0x606)]));}try{_0x5147ac=_0x5147ac[_0xb41a75(0xa71)]('AD',_0xb41a75(0xa62)),_0x5147ac=_0x5147ac[_0xb41a75(0xa71)]('Ad',_0xb41a75(0x78d)),_0x5147ac=_0x5147ac[_0xb41a75(0xa71)]('ad','vdav'),_0x5147ac=_0x5147ac[_0xb41a75(0xa71)]('aD','vDav');}catch(_0x41caeb){errorlog(_0x41caeb);}return log(_0x5147ac),_0x5147ac;},_0x42c792[_0x5b10c6(0x1e8)]=function(_0x23ce78=0x7){var _0x503693=_0x5b10c6,_0x5b7474='',_0xe75b97=[_0x503693(0x468),'of','to',_0x503693(0xb01),'a','in','is','it',_0x503693(0x9f7),_0x503693(0x915),'he',_0x503693(0x350),_0x503693(0xa12),'on',_0x503693(0xb24),_0x503693(0x45b),'as','I','his',_0x503693(0x614),'be','at',_0x503693(0x472),_0x503693(0x254),_0x503693(0x9fd),_0x503693(0x9a4),'or',_0x503693(0x866),'by','word','but','what',_0x503693(0x899),'we',_0x503693(0x34e),_0x503693(0x808),_0x503693(0x7dc),'were',_0x503693(0x2e9),_0x503693(0x986),_0x503693(0x8e6),'up','use',_0x503693(0x270),'how',_0x503693(0x1d6),'an',_0x503693(0x3a9),_0x503693(0xa45),'which','do',_0x503693(0x947),'time','if',_0x503693(0x2d3),_0x503693(0xb5e),_0x503693(0x603),_0x503693(0x7ed),'then',_0x503693(0x865),_0x503693(0x942),_0x503693(0x252),_0x503693(0x1a9),'so','these','her','long','make','thing',_0x503693(0x487),_0x503693(0x38a),'two',_0x503693(0x326),_0x503693(0x779),_0x503693(0x8fa),_0x503693(0x352),_0x503693(0x9dd),'go',_0x503693(0x707),_0x503693(0x1e7),_0x503693(0x416),'sound','no','most',_0x503693(0x154),'my',_0x503693(0x420),'know',_0x503693(0x740),_0x503693(0x1bf),_0x503693(0x2a0),_0x503693(0xb13),_0x503693(0x870),_0x503693(0x9d7),_0x503693(0x17a),_0x503693(0xb49),_0x503693(0x289),_0x503693(0x5ee),_0x503693(0x96c),_0x503693(0x6e1),_0x503693(0x97e),_0x503693(0xb29),'part','take',_0x503693(0x7b6),_0x503693(0x310),_0x503693(0x85a),_0x503693(0x833),_0x503693(0x90f),_0x503693(0xa07),_0x503693(0x998),'little','only',_0x503693(0x32e),_0x503693(0x296),_0x503693(0x488),_0x503693(0x7df),_0x503693(0x6d6),_0x503693(0x7af),_0x503693(0x6c6),'me',_0x503693(0x648),_0x503693(0x5cb),'under',_0x503693(0x357),'very',_0x503693(0xb31),_0x503693(0x5f1),_0x503693(0x791),_0x503693(0x445),_0x503693(0x76f),'think',_0x503693(0x283),_0x503693(0x202),'low',_0x503693(0x4d5),_0x503693(0xa35),'turn',_0x503693(0xa17),'much','mean',_0x503693(0x5c2),_0x503693(0xa43),_0x503693(0xb42),_0x503693(0xa73),_0x503693(0x53c),_0x503693(0x2d6),'same',_0x503693(0x6f6),_0x503693(0x15d),_0x503693(0xac0),_0x503693(0x2a2),'want',_0x503693(0x2b5),'well',_0x503693(0xb05),'play','small',_0x503693(0x7ca),_0x503693(0x6a8),'home','read',_0x503693(0x595),_0x503693(0x287),_0x503693(0x165),'spell',_0x503693(0xb15),_0x503693(0xa56),_0x503693(0x217),_0x503693(0xb0d),'must',_0x503693(0x54c),_0x503693(0x4fc),_0x503693(0x2c6),_0x503693(0x6a7),_0x503693(0x662),_0x503693(0x194),_0x503693(0x91b),_0x503693(0xa3a),_0x503693(0x592),_0x503693(0x224),_0x503693(0x4b2),'kind','off',_0x503693(0xb36),_0x503693(0x94b),_0x503693(0x4c6),_0x503693(0x489),'us','again','animal',_0x503693(0x160),_0x503693(0x1aa),_0x503693(0x62f),'near','build',_0x503693(0xb43),_0x503693(0xaa8),_0x503693(0x206),_0x503693(0x1f8),_0x503693(0x6a6),_0x503693(0x407),_0x503693(0x298),_0x503693(0x615),_0x503693(0x381),_0x503693(0x3bc),_0x503693(0x89e),'school','grow','study',_0x503693(0x1c3),_0x503693(0x533),'plant',_0x503693(0x5b7),'food','sun',_0x503693(0x97d),_0x503693(0x7e6),_0x503693(0x213),'keep',_0x503693(0x8ad),_0x503693(0x373),_0x503693(0xb5b),'let',_0x503693(0x4c3),_0x503693(0x228),_0x503693(0x490),'cross',_0x503693(0x562),'hard',_0x503693(0x5c5),_0x503693(0x748),_0x503693(0x842),'saw',_0x503693(0x1ff),_0x503693(0x250),_0x503693(0xac5),'left',_0x503693(0x691),_0x503693(0x573),_0x503693(0x9d9),_0x503693(0x721),_0x503693(0x47a),_0x503693(0x16f),_0x503693(0x2a6),_0x503693(0x22a),_0x503693(0x41a),'few',_0x503693(0x84e),'open',_0x503693(0x464),_0x503693(0x40b),_0x503693(0xa7b),_0x503693(0xb14),'children',_0x503693(0x785),_0x503693(0x755),_0x503693(0x1cc),_0x503693(0xa77),_0x503693(0x1bc),_0x503693(0x1ef),_0x503693(0x81d),_0x503693(0x560),'music',_0x503693(0x914),_0x503693(0xac8),'mark',_0x503693(0x8fb),_0x503693(0x55f),_0x503693(0xb2d),'mile',_0x503693(0x635),_0x503693(0x850),_0x503693(0x59b),_0x503693(0x3f4),'second',_0x503693(0x60f),_0x503693(0x247),'took',_0x503693(0x630),_0x503693(0x953),_0x503693(0x5fe),_0x503693(0x2cd),_0x503693(0x188),_0x503693(0x1c2),_0x503693(0x847),_0x503693(0x994),_0x503693(0x77f),'once',_0x503693(0x1f1),_0x503693(0x535),_0x503693(0x84a),_0x503693(0xa94),_0x503693(0x93e),_0x503693(0x767),_0x503693(0x449),_0x503693(0x1b0),_0x503693(0x3b5),'main',_0x503693(0x719),_0x503693(0x4e0),_0x503693(0x3ea),_0x503693(0x8a8),_0x503693(0x21e),_0x503693(0x85e),_0x503693(0x619),_0x503693(0x917),_0x503693(0x471),'list',_0x503693(0x992),_0x503693(0x869),_0x503693(0x650),_0x503693(0x59d),_0x503693(0x455),_0x503693(0x82f),_0x503693(0x8fe),_0x503693(0x663),_0x503693(0xa47),_0x503693(0x6df),_0x503693(0x78b),_0x503693(0x430),_0x503693(0xa5d),_0x503693(0x18a),_0x503693(0x70e),_0x503693(0xae1),_0x503693(0x528),'numeral','class',_0x503693(0x57e),_0x503693(0x366),_0x503693(0x1d9),'complete','ship','area',_0x503693(0x622),_0x503693(0x364),_0x503693(0x4a5),_0x503693(0x93c),'south','problem','piece',_0x503693(0x29e),_0x503693(0x44d),_0x503693(0x66c),'since','top',_0x503693(0x540),_0x503693(0x511),_0x503693(0x7f6),_0x503693(0x4d6),_0x503693(0x67e),_0x503693(0x596),'better',_0x503693(0x856),'hundred',_0x503693(0x260),_0x503693(0x7cc),_0x503693(0xaaf),_0x503693(0x882),_0x503693(0x5d8),_0x503693(0x695),'ground','interest',_0x503693(0x7ea),'fast','verb',_0x503693(0x28a),_0x503693(0x484),'six',_0x503693(0x4f2),_0x503693(0x444),_0x503693(0x6bb),_0x503693(0x4fa),_0x503693(0x2fa),_0x503693(0x617),_0x503693(0x498),_0x503693(0x39e),_0x503693(0x1b9),'war',_0x503693(0x8dd),_0x503693(0x3cb),'pattern',_0x503693(0x907),_0x503693(0xb5a),_0x503693(0x9fa),_0x503693(0xb03),_0x503693(0x7c7),'serve',_0x503693(0x919),_0x503693(0x826),_0x503693(0x329),_0x503693(0xae0),'rule',_0x503693(0x1a5),_0x503693(0x1b1),'cold',_0x503693(0x775),_0x503693(0xad4),_0x503693(0x1ec),'power',_0x503693(0x280),'fine',_0x503693(0x164),'fly',_0x503693(0x921),'lead',_0x503693(0x725),_0x503693(0x294),_0x503693(0x300),'note',_0x503693(0xa99),'plan',_0x503693(0x50d),_0x503693(0x15b),'box','noun',_0x503693(0x5a7),_0x503693(0x708),_0x503693(0x88c),'able','pound',_0x503693(0x30e),_0x503693(0xb53),_0x503693(0x81b),'stood','contain',_0x503693(0xb2b),_0x503693(0x1c9),_0x503693(0x6ae),_0x503693(0x7f9),'gave',_0x503693(0xaad),'oh',_0x503693(0x4c9),'develop',_0x503693(0xa8e),_0x503693(0x876),_0x503693(0x22f),_0x503693(0xaf8),_0x503693(0x803),'special',_0x503693(0x9d1),_0x503693(0x922),_0x503693(0x3e7),_0x503693(0x652),'produce',_0x503693(0x9a2),_0x503693(0x7f3),_0x503693(0x9b5),_0x503693(0xac4),_0x503693(0x506),'course',_0x503693(0x1e9),_0x503693(0xa8b),_0x503693(0x816),'force','blue','object',_0x503693(0x7e7),_0x503693(0x3a6),_0x503693(0x96e),_0x503693(0x8b1),_0x503693(0x82d),_0x503693(0x245),_0x503693(0x7c2),_0x503693(0x2f1),_0x503693(0x972),_0x503693(0x237),'boat',_0x503693(0xb4a),_0x503693(0x8af),'possible',_0x503693(0xaa2),_0x503693(0x436),_0x503693(0x680),'wonder',_0x503693(0x613),_0x503693(0xaf0),'ago','ran',_0x503693(0xad3),_0x503693(0x761),_0x503693(0x225),_0x503693(0xa74),_0x503693(0x367),_0x503693(0xac1),_0x503693(0xa72),'heat',_0x503693(0x35e),_0x503693(0x3de),_0x503693(0x48f),_0x503693(0x810),_0x503693(0x632),'fill','east','paint',_0x503693(0x713),_0x503693(0x9e1),_0x503693(0x700),_0x503693(0xa91),_0x503693(0xa60),_0x503693(0x78c),_0x503693(0x3e6),_0x503693(0x7de),'am','present','heavy',_0x503693(0x541),'engine',_0x503693(0x672),_0x503693(0x38d),'wide',_0x503693(0x525),'material',_0x503693(0x353),_0x503693(0x45a),'settle',_0x503693(0x6f7),_0x503693(0xa92),_0x503693(0x402),_0x503693(0x655),_0x503693(0x7b9),_0x503693(0x278),_0x503693(0x80f),_0x503693(0x4da),'divide','syllable','felt',_0x503693(0x5cc),_0x503693(0x8a4),_0x503693(0x439),_0x503693(0x92f),'square',_0x503693(0x8de),'length',_0x503693(0x417),'art','subject',_0x503693(0x8e5),_0x503693(0x586),_0x503693(0xa2c),_0x503693(0x40f),_0x503693(0x191),'brother',_0x503693(0x38c),_0x503693(0x208),_0x503693(0x6c3),'believe',_0x503693(0x3f2),_0x503693(0x8aa),_0x503693(0x657),_0x503693(0xa24),_0x503693(0x374),_0x503693(0x731),_0x503693(0x746),'train',_0x503693(0xa58),_0x503693(0x554),_0x503693(0x3a2),_0x503693(0x73c),_0x503693(0x6e5),_0x503693(0xaf4),_0x503693(0xaef),_0x503693(0x697),_0x503693(0x796),'sky',_0x503693(0xa25),'joy',_0x503693(0x39b),_0x503693(0x70f),_0x503693(0x7fe),_0x503693(0x5fa),_0x503693(0x3e9),_0x503693(0x462),_0x503693(0x3d4),_0x503693(0x1fe),_0x503693(0x738),'job',_0x503693(0x6af),_0x503693(0x64f),_0x503693(0xa04),_0x503693(0x8f2),_0x503693(0xb45),_0x503693(0x5b3),'bright',_0x503693(0xab7),_0x503693(0x376),_0x503693(0x292),'million','bear',_0x503693(0x3eb),'happy',_0x503693(0x2d4),_0x503693(0x1a2),'clothe',_0x503693(0xb35),_0x503693(0x6a4),'jump',_0x503693(0xaac),_0x503693(0x5e3),'village',_0x503693(0x69f),'root',_0x503693(0x3a5),_0x503693(0x8dc),_0x503693(0x1f5),'metal',_0x503693(0x45c),'push',_0x503693(0x27c),_0x503693(0x7a8),_0x503693(0x21d),_0x503693(0x17c),_0x503693(0x5e4),'hair',_0x503693(0xa57),_0x503693(0x542),_0x503693(0x838),_0x503693(0x9f6),_0x503693(0x3ff),_0x503693(0x83f),_0x503693(0x163),_0x503693(0xb2f),_0x503693(0x95d),_0x503693(0x1e1),_0x503693(0xa8c),_0x503693(0x94c),_0x503693(0x67c),'bit','coast',_0x503693(0x1c1),'phrase','silent',_0x503693(0x2c8),_0x503693(0x1da),_0x503693(0x99d),_0x503693(0xa2b),'temperature',_0x503693(0x49a),_0x503693(0x5fd),_0x503693(0x76d),_0x503693(0x42c),_0x503693(0x37a),_0x503693(0x256),'excite',_0x503693(0x34b),_0x503693(0x1be),'sense',_0x503693(0x4ea),'else',_0x503693(0x167),_0x503693(0x642),_0x503693(0xa95),_0x503693(0x8f5),_0x503693(0xad5),_0x503693(0x485),_0x503693(0x517),'moment',_0x503693(0x330),'loud',_0x503693(0xa15),_0x503693(0x46e),_0x503693(0x424),'straight',_0x503693(0x8c0),'nation',_0x503693(0x9a6),'milk',_0x503693(0x29b),_0x503693(0x5d7),_0x503693(0x576),_0x503693(0x8ff),'age',_0x503693(0x3e1),_0x503693(0x964),_0x503693(0x61d),_0x503693(0x261),_0x503693(0x9b9),_0x503693(0x2b1),_0x503693(0x545),'climb',_0x503693(0xb54),_0x503693(0x40e),_0x503693(0x5ea),_0x503693(0x3df),_0x503693(0x764),'bottom',_0x503693(0xb44),_0x503693(0x21f),_0x503693(0x4c8),_0x503693(0x503),_0x503693(0x2bc),_0x503693(0x2a1),_0x503693(0x8d0),_0x503693(0x265),_0x503693(0x6db),_0x503693(0x9b7),_0x503693(0x6d4),_0x503693(0xab4),_0x503693(0x956),_0x503693(0x72a),_0x503693(0x46c),_0x503693(0x159),_0x503693(0x3e4),_0x503693(0x6a2),'symbol',_0x503693(0x581),_0x503693(0x4bb),'trouble',_0x503693(0x321),_0x503693(0xa96),_0x503693(0x58f),_0x503693(0x7a2),'tone',_0x503693(0x8eb),_0x503693(0x466),_0x503693(0x550),_0x503693(0x792),_0x503693(0x52e),'yard',_0x503693(0xa67),_0x503693(0x687),_0x503693(0x773),_0x503693(0x891),_0x503693(0x199),_0x503693(0x526),_0x503693(0x5b5),_0x503693(0x987),_0x503693(0x1f6),_0x503693(0xa9c),'wire','cost',_0x503693(0x19e),_0x503693(0x4e4),_0x503693(0x269),'garden',_0x503693(0x93b),'sent',_0x503693(0x5cd),_0x503693(0x6e0),_0x503693(0x3f0),_0x503693(0x391),_0x503693(0x523),_0x503693(0x1fb),'collect',_0x503693(0x6cd),'control',_0x503693(0x3cc),'gentle',_0x503693(0x91e),_0x503693(0x913),_0x503693(0x2ec),_0x503693(0x94a),_0x503693(0xa22),_0x503693(0x1df),'please',_0x503693(0x7e5),_0x503693(0x27e),_0x503693(0x736),_0x503693(0x205),_0x503693(0x86d),_0x503693(0x580),_0x503693(0x26f),_0x503693(0x6c2),_0x503693(0x5d1),'indicate','radio','spoke',_0x503693(0x898),'human',_0x503693(0x874),_0x503693(0x178),_0x503693(0x29a),_0x503693(0xa21),_0x503693(0x385),_0x503693(0x29f),'element',_0x503693(0x3d1),'student',_0x503693(0xa30),_0x503693(0x5f3),_0x503693(0xa40),'bone',_0x503693(0x8cf),_0x503693(0x57b),_0x503693(0x950),_0x503693(0x510),_0x503693(0x4cb),'capital',_0x503693(0xa4b),'chair',_0x503693(0x2c3),_0x503693(0xad0),_0x503693(0x665),_0x503693(0xa81),_0x503693(0x80c),_0x503693(0x72e),_0x503693(0x372),_0x503693(0x3b2),_0x503693(0x621),_0x503693(0x331),'wing',_0x503693(0x78f),_0x503693(0x59a),_0x503693(0x94f),_0x503693(0xa0b),'rather',_0x503693(0x231),_0x503693(0x892),_0x503693(0x97c),_0x503693(0x849),'string','bell',_0x503693(0x6cb),_0x503693(0x588),_0x503693(0x827),'tube',_0x503693(0x92c),_0x503693(0xadd),'stream','fear',_0x503693(0x699),_0x503693(0x9ce),_0x503693(0x9cb),_0x503693(0x4bd),_0x503693(0xae5),_0x503693(0x7a5),'colony','clock',_0x503693(0x776),'tie',_0x503693(0x4be),'major',_0x503693(0xa93),_0x503693(0x569),_0x503693(0x8c1),'yellow','gun',_0x503693(0x51e),_0x503693(0x378),_0x503693(0x649),_0x503693(0x646),_0x503693(0x932),_0x503693(0x204),_0x503693(0x543),_0x503693(0x572),_0x503693(0x75f),_0x503693(0x789),_0x503693(0x91c),_0x503693(0x1d8),'hat',_0x503693(0xa48),_0x503693(0x854),_0x503693(0x454),'subtract','event',_0x503693(0x63a),_0x503693(0x76c),_0x503693(0x4fb),'term',_0x503693(0x94e),_0x503693(0x793),_0x503693(0x601),'shoulder','spread',_0x503693(0x2f7),'camp',_0x503693(0x9e3),_0x503693(0x9c2),'born',_0x503693(0x676),_0x503693(0x365),_0x503693(0x96b),_0x503693(0x973),_0x503693(0x399),'level',_0x503693(0x7eb),_0x503693(0x70c),_0x503693(0x2b0),'stretch','throw',_0x503693(0x674),_0x503693(0x337),_0x503693(0x965),'molecule','select',_0x503693(0x8b6),_0x503693(0x5c8),_0x503693(0x46f),_0x503693(0x95f),_0x503693(0x507),_0x503693(0x43a),_0x503693(0xb25),_0x503693(0x28f),_0x503693(0x193),_0x503693(0x1dc),_0x503693(0x24a),'continent','oxygen','sugar',_0x503693(0x67f),_0x503693(0xa3f),_0x503693(0x6a9),_0x503693(0x84b),_0x503693(0x837),_0x503693(0xa83),'magnet','silver','thank','branch',_0x503693(0x322),_0x503693(0xa68),_0x503693(0x5b4),_0x503693(0x440),_0x503693(0x6f9),_0x503693(0x312),_0x503693(0x180),_0x503693(0x2dc),_0x503693(0x7e2),_0x503693(0xa13),_0x503693(0x8d1),'guide','experience','score',_0x503693(0x382),_0x503693(0xae6),_0x503693(0x7bb),_0x503693(0x48d),_0x503693(0x26a),_0x503693(0x58d),_0x503693(0x515),_0x503693(0x200),_0x503693(0x90d),_0x503693(0x743),_0x503693(0xb34),_0x503693(0x174),_0x503693(0x4b0),_0x503693(0x421),_0x503693(0x995),_0x503693(0x4ed),_0x503693(0x56a),'basic',_0x503693(0x308),_0x503693(0x9cd),'nor',_0x503693(0x3fc),_0x503693(0x99a),_0x503693(0x885),_0x503693(0x6a0),_0x503693(0x3ba),_0x503693(0x251),_0x503693(0x670),_0x503693(0x302),_0x503693(0x5fc),_0x503693(0xa6f),_0x503693(0x3c6),'connect','post','spend',_0x503693(0x81a),_0x503693(0xaba),'glad',_0x503693(0x87f),'share',_0x503693(0x912),_0x503693(0x23e),_0x503693(0x4d9),_0x503693(0xa7d),_0x503693(0x960),'bar','offer',_0x503693(0x2b3),_0x503693(0xa51),_0x503693(0x782),'instant',_0x503693(0x6ab),_0x503693(0x37f),'populate','chick',_0x503693(0x3e3),_0x503693(0xace),'reply',_0x503693(0x5de),_0x503693(0x579),_0x503693(0xa3d),'speech','nature',_0x503693(0x3d6),_0x503693(0x684),'motion',_0x503693(0x605),_0x503693(0x6d8),_0x503693(0x282),_0x503693(0x427),_0x503693(0x9e5),_0x503693(0x883),'shell',_0x503693(0x709)];for(var _0x1c665a=0x0;_0x1c665a<0x2;_0x1c665a++){try{var _0x3d50ad=parseInt(Math[_0x503693(0xb18)]()*0x3e8);_0x5b7474+=_0xe75b97[_0x3d50ad];}catch(_0x54aa69){}}var _0x23b1ec=_0x503693(0x6e8);_0x5b7474+=_0x23b1ec[_0x503693(0x1cf)](Math['floor'](Math[_0x503693(0xb18)]()*_0x23b1ec[_0x503693(0x606)]));while(_0x5b7474[_0x503693(0x606)]<_0x23ce78){_0x5b7474+=_0x23b1ec[_0x503693(0x1cf)](Math[_0x503693(0x838)](Math[_0x503693(0xb18)]()*_0x23b1ec['length']));}try{_0x5b7474=_0x5b7474['replaceAll']('AD',_0x503693(0xa62)),_0x5b7474=_0x5b7474[_0x503693(0xa71)]('Ad',_0x503693(0x78d)),_0x5b7474=_0x5b7474[_0x503693(0xa71)]('ad',_0x503693(0x9d8)),_0x5b7474=_0x5b7474[_0x503693(0xa71)]('aD',_0x503693(0x660));}catch(_0x2c3487){errorlog(_0x2c3487);}return log(_0x5b7474),_0x5b7474;},_0x42c792[_0x5b10c6(0x6f2)]=_0x5b10c6(0x422),_0x42c792[_0x5b10c6(0x3bb)]=null,_0x42c792[_0x5b10c6(0x35d)]=![],_0x42c792[_0x5b10c6(0x71e)]=![],_0x42c792[_0x5b10c6(0x383)]=![],_0x42c792[_0x5b10c6(0x2bd)]=![],_0x42c792['activeSpeakerInterval']=null,_0x42c792[_0x5b10c6(0x3d2)]=0xbb8,_0x42c792[_0x5b10c6(0xa18)]=![],_0x42c792['activelySpeaking']=!![],_0x42c792['audiobitrate']=![],_0x42c792['audiobitratePRO']=0x100,_0x42c792['animatedMoves']=0x64,_0x42c792[_0x5b10c6(0x4de)]=0x8,_0x42c792['audioDevice']=![],_0x42c792[_0x5b10c6(0x770)]=![],_0x42c792['alreadyJoinedMembers']=![],_0x42c792['allowScreen']=![],_0x42c792[_0x5b10c6(0x531)]=![],_0x42c792['allowDrawing']=![],_0x42c792[_0x5b10c6(0x5dc)]=![],_0x42c792['allowResources']=![],_0x42c792[_0x5b10c6(0x753)]=[],_0x42c792[_0x5b10c6(0x8c9)]=![],_0x42c792[_0x5b10c6(0x324)]=![],_0x42c792[_0x5b10c6(0x24d)]=![],_0x42c792[_0x5b10c6(0x723)]=![],_0x42c792[_0x5b10c6(0x8a1)]={},_0x42c792['audioMeterGuest']=!![],_0x42c792[_0x5b10c6(0x42a)]=null,_0x42c792['audioInputChannels']=![],_0x42c792[_0x5b10c6(0x7be)]=![],_0x42c792[_0x5b10c6(0xb3e)]=![],_0x42c792[_0x5b10c6(0x716)]=![],_0x42c792[_0x5b10c6(0x2e5)]=![],_0x42c792['audience']=![],_0x42c792[_0x5b10c6(0xb59)]=![],_0x42c792[_0x5b10c6(0x8e2)]=new Set([]),_0x42c792[_0x5b10c6(0x522)]={},_0x42c792[_0x5b10c6(0x31f)]=new AudioContext(),_0x42c792[_0x5b10c6(0x2a5)]=![],_0x42c792[_0x5b10c6(0x703)]=![],_0x42c792[_0x5b10c6(0x53f)]=![],_0x42c792['echoCancellation']=null,_0x42c792[_0x5b10c6(0x769)]=null,_0x42c792[_0x5b10c6(0x279)]=null,_0x42c792[_0x5b10c6(0x2ee)]=null,_0x42c792['broadcast']=![],_0x42c792[_0x5b10c6(0x79c)]=![],_0x42c792['broadcastChannelID']=![],_0x42c792[_0x5b10c6(0x726)]=![],_0x42c792[_0x5b10c6(0x5f2)]=![],_0x42c792[_0x5b10c6(0x578)]=![],_0x42c792[_0x5b10c6(0x623)]=![],_0x42c792[_0x5b10c6(0x524)]=![],_0x42c792[_0x5b10c6(0x2e2)]=![],_0x42c792[_0x5b10c6(0x537)]=![],_0x42c792[_0x5b10c6(0xa7e)]=0x0,_0x42c792['borderRadius']=0x0,_0x42c792[_0x5b10c6(0x8cd)]=_0x5b10c6(0x275),_0x42c792[_0x5b10c6(0x16e)]=0x0,_0x42c792['bundlePolicy']=![],_0x42c792[_0x5b10c6(0x239)]=![],_0x42c792[_0x5b10c6(0xad6)]=null,_0x42c792[_0x5b10c6(0x4bf)]=![],_0x42c792[_0x5b10c6(0x744)]=![],_0x42c792['buffer']=![],_0x42c792[_0x5b10c6(0x323)]=![],_0x42c792[_0x5b10c6(0x8d5)]=[],_0x42c792[_0x5b10c6(0xa76)]=null,_0x42c792[_0x5b10c6(0x6ad)]=![],_0x42c792[_0x5b10c6(0x518)]=![],_0x42c792[_0x5b10c6(0x4a6)]=null,_0x42c792['canvasSource']=null,_0x42c792['canvasWebGL']=null,_0x42c792[_0x5b10c6(0x762)]=![],_0x42c792['controlRoomBitrate']=![],_0x42c792['auth']=![],_0x42c792['cleanDirector']=![],_0x42c792[_0x5b10c6(0xad1)]=![],_0x42c792[_0x5b10c6(0x508)]=![],_0x42c792[_0x5b10c6(0x5ec)]=![],_0x42c792['configuration']=![],_0x42c792[_0x5b10c6(0x4e8)]=![],_0x42c792[_0x5b10c6(0x8e0)]=![],_0x42c792[_0x5b10c6(0x8da)]='',_0x42c792[_0x5b10c6(0x9f9)]='',_0x42c792[_0x5b10c6(0x668)]='',_0x42c792[_0x5b10c6(0xb51)]=![],_0x42c792[_0x5b10c6(0x565)]=![],_0x42c792['h264profile']=null,_0x42c792[_0x5b10c6(0x79b)]=![],_0x42c792[_0x5b10c6(0xa1a)]=null,_0x42c792[_0x5b10c6(0x17e)]=![],_0x42c792[_0x5b10c6(0x30c)]=0x1,_0x42c792[_0x5b10c6(0x5b7)]=![],_0x42c792[_0x5b10c6(0xa6a)]=null,_0x42c792[_0x5b10c6(0xa6b)]={},_0x42c792[_0x5b10c6(0x4b8)]=![],_0x42c792['chunkIframe']=!![],_0x42c792['chunksQueue']=[],_0x42c792[_0x5b10c6(0x1e6)]={},_0x42c792['chunkedRecorder']=![],_0x42c792[_0x5b10c6(0x805)]=![],_0x42c792['chunkedVideoEnabled']=null,_0x42c792[_0x5b10c6(0xac9)]=null,_0x42c792['compressSDP']=![],_0x42c792[_0x5b10c6(0x724)]=![],_0x42c792[_0x5b10c6(0x835)]=![],_0x42c792['language']=![],_0x42c792[_0x5b10c6(0x2c0)]={},_0x42c792[_0x5b10c6(0x37c)]={},_0x42c792[_0x5b10c6(0x21c)]=![],_0x42c792[_0x5b10c6(0x371)]=0x0,_0x42c792['zoomedBitrate']=0x25a,_0x42c792[_0x5b10c6(0x6b2)]=![],_0x42c792['codecGroupFlag']=![],_0x42c792['bitrateGroupFlag']=![],_0x42c792[_0x5b10c6(0x37d)]=![],_0x42c792['sitePassword']=![],_0x42c792[_0x5b10c6(0x7e8)]=null,_0x42c792[_0x5b10c6(0x29d)]=![],_0x42c792[_0x5b10c6(0x8ab)]=![],_0x42c792['decrypted']=![],_0x42c792[_0x5b10c6(0x2f3)]=null,_0x42c792[_0x5b10c6(0x843)]=![],_0x42c792[_0x5b10c6(0x3ed)]=![],_0x42c792['disableHotKeys']=![],_0x42c792['defaultMedia']=![],_0x42c792[_0x5b10c6(0x7f5)]=![],_0x42c792['disableMouseEvents']=![],_0x42c792[_0x5b10c6(0x168)]=![],_0x42c792[_0x5b10c6(0xb09)]=0x23,_0x42c792[_0x5b10c6(0x1ad)]=![],_0x42c792['directorSpeakerMuted']=null,_0x42c792[_0x5b10c6(0xa4a)]=null,_0x42c792[_0x5b10c6(0x74b)]=[],_0x42c792[_0x5b10c6(0xabb)]=![],_0x42c792[_0x5b10c6(0x57a)]=![],_0x42c792[_0x5b10c6(0x95b)]=![],_0x42c792[_0x5b10c6(0x5df)]=![],_0x42c792[_0x5b10c6(0xa4c)]=null,_0x42c792[_0x5b10c6(0x79f)]=![],_0x42c792[_0x5b10c6(0x7b7)]=!![],_0x42c792[_0x5b10c6(0x552)]=null,_0x42c792[_0x5b10c6(0x9c4)]=![],_0x42c792['discordHookSensitive']=![],_0x42c792['effect']=![],_0x42c792[_0x5b10c6(0x765)]=![],_0x42c792['effectValue_default']=![],_0x42c792[_0x5b10c6(0x711)]=![],_0x42c792[_0x5b10c6(0x7b8)]=![],_0x42c792[_0x5b10c6(0x1a0)]=![],_0x42c792[_0x5b10c6(0x18e)]=![],_0x42c792[_0x5b10c6(0x8cc)]=![],_0x42c792[_0x5b10c6(0x291)]=![],_0x42c792[_0x5b10c6(0x846)]=![],_0x42c792[_0x5b10c6(0x219)]=![],_0x42c792['pushEffectsData']=![],_0x42c792['forceRetry']=0x384,_0x42c792[_0x5b10c6(0x577)]=![],_0x42c792[_0x5b10c6(0x2c4)]=new TextEncoder(_0x5b10c6(0x170)),_0x42c792[_0x5b10c6(0x5a8)]=![],_0x42c792[_0x5b10c6(0x799)]=![],_0x42c792[_0x5b10c6(0x6eb)]=![],_0x42c792[_0x5b10c6(0x4af)]=![],_0x42c792[_0x5b10c6(0x949)]=![],_0x42c792[_0x5b10c6(0x67d)]=![],_0x42c792[_0x5b10c6(0x26c)]=![],_0x42c792[_0x5b10c6(0x527)]=[],_0x42c792['hostedTransfers']=[],_0x42c792[_0x5b10c6(0x982)]=![],_0x42c792[_0x5b10c6(0x299)]=null,_0x42c792['firstPlayTriggered']=![],_0x42c792[_0x5b10c6(0x63c)]=![],_0x42c792[_0x5b10c6(0x4a9)]=![],_0x42c792[_0x5b10c6(0x39c)]=![],_0x42c792[_0x5b10c6(0x41e)]=![],_0x42c792[_0x5b10c6(0x50f)]=null,_0x42c792[_0x5b10c6(0x609)]=![],_0x42c792[_0x5b10c6(0xb2e)]=![],_0x42c792[_0x5b10c6(0x502)]=![],_0x42c792['fullscreen']=![],_0x42c792['keepIncomingVideosInLandscape']=![],_0x42c792[_0x5b10c6(0x429)]=null,_0x42c792[_0x5b10c6(0x81d)]=[],_0x42c792[_0x5b10c6(0x7ce)]=[],_0x42c792[_0x5b10c6(0x5af)]=![],_0x42c792['groupAudio']=![],_0x42c792[_0x5b10c6(0x2dd)]=null,_0x42c792['grabFaceData']=![],_0x42c792[_0x5b10c6(0x49e)]=![],_0x42c792[_0x5b10c6(0x305)]=![],_0x42c792['height']=![],_0x42c792[_0x5b10c6(0x343)]=![],_0x42c792[_0x5b10c6(0x547)]=![],_0x42c792[_0x5b10c6(0xb37)]=![],_0x42c792[_0x5b10c6(0x44c)]=![],_0x42c792[_0x5b10c6(0xa3b)]=[{'urls':[_0x5b10c6(0x411),'stun:stun.cloudflare.com:3478']}],_0x42c792['introButton']=![],_0x42c792[_0x5b10c6(0x4da)]=[],_0x42c792['iframeSrcs']={},_0x42c792['noiframe']=![],_0x42c792[_0x5b10c6(0x51a)]=![],_0x42c792[_0x5b10c6(0x1fd)]=![],_0x42c792[_0x5b10c6(0x571)]=0x1,_0x42c792[_0x5b10c6(0x403)]=0x0,_0x42c792[_0x5b10c6(0x1ed)]=![],_0x42c792[_0x5b10c6(0x49c)]=![],_0x42c792[_0x5b10c6(0x757)]=![],_0x42c792['infocus']=![],_0x42c792[_0x5b10c6(0xa32)]=![],_0x42c792[_0x5b10c6(0xac2)]=![],_0x42c792[_0x5b10c6(0x1a4)]=![],_0x42c792[_0x5b10c6(0x9aa)]={},_0x42c792[_0x5b10c6(0x47e)]=![],_0x42c792['label']=![],_0x42c792[_0x5b10c6(0x9e6)]=![],_0x42c792[_0x5b10c6(0x3fa)]={},_0x42c792['lowerVolume']=[],_0x42c792[_0x5b10c6(0x4ec)]=![],_0x42c792[_0x5b10c6(0x6e7)]=![],_0x42c792['notifyScreenShare']=!![],_0x42c792[_0x5b10c6(0x7e3)]=0x1,_0x42c792[_0x5b10c6(0xa01)]={},_0x42c792[_0x5b10c6(0x2d9)]=![],_0x42c792[_0x5b10c6(0x355)]=[],_0x42c792['micIsolatedAutoMute']=![],_0x42c792['maxviewers']=![],_0x42c792[_0x5b10c6(0x71d)]=![],_0x42c792[_0x5b10c6(0x7ec)]=![],_0x42c792[_0x5b10c6(0x575)]=![],_0x42c792[_0x5b10c6(0x2fd)]=![],_0x42c792[_0x5b10c6(0x166)]=![],_0x42c792[_0x5b10c6(0xb32)]=![],_0x42c792[_0x5b10c6(0x98d)]=![],_0x42c792[_0x5b10c6(0xa88)]=![],_0x42c792[_0x5b10c6(0x64b)]=![],_0x42c792[_0x5b10c6(0x645)]=![],_0x42c792[_0x5b10c6(0xa1e)]=![],_0x42c792['nosettings']=![],_0x42c792[_0x5b10c6(0x356)]=![],_0x42c792[_0x5b10c6(0x7a3)]=![],_0x42c792['nocaptionlabels']=![],_0x42c792['ptime']=![],_0x42c792[_0x5b10c6(0x4f9)]=![],_0x42c792[_0x5b10c6(0x706)]=![],_0x42c792['mediafileShare']=![],_0x42c792[_0x5b10c6(0x56f)]=0x15e,_0x42c792[_0x5b10c6(0x7aa)]=0x23,_0x42c792[_0x5b10c6(0x3a0)]=![],_0x42c792[_0x5b10c6(0x32c)]=![],_0x42c792[_0x5b10c6(0x710)]=![],_0x42c792['limitTotalBitrate_defaultMax']=0x2710,_0x42c792['layout']=![],_0x42c792[_0x5b10c6(0x285)]=null,_0x42c792[_0x5b10c6(0x1a3)]=![],_0x42c792[_0x5b10c6(0x6c4)]=![],_0x42c792['layouts']=![],_0x42c792['lyraCodecModule']=![],_0x42c792[_0x5b10c6(0x32f)]=_0x42c792[_0x5b10c6(0x963)](0x5),_0x42c792[_0x5b10c6(0x4c7)]=![],_0x42c792['meshcastAudioBitrate']=![],_0x42c792[_0x5b10c6(0x812)]=![],_0x42c792[_0x5b10c6(0xa1b)]=![],_0x42c792['motionRecordTimeout']=null,_0x42c792[_0x5b10c6(0x32b)]=![],_0x42c792[_0x5b10c6(0x828)]=![],_0x42c792['mainDirectorPassword']=![],_0x42c792[_0x5b10c6(0x61b)]=null,_0x42c792[_0x5b10c6(0x25c)]=![],_0x42c792[_0x5b10c6(0x248)]=![],_0x42c792[_0x5b10c6(0x34a)]=![],_0x42c792[_0x5b10c6(0x75e)]=![],_0x42c792['midiIn']=![],_0x42c792['midiTimecode']=![],_0x42c792[_0x5b10c6(0x446)]=![],_0x42c792[_0x5b10c6(0x493)]=![],_0x42c792['midiDevice']=![],_0x42c792[_0x5b10c6(0x1d7)]=0x17,_0x42c792['minipreview']=![],_0x42c792['mirrored']=![],_0x42c792[_0x5b10c6(0x58c)]=![],_0x42c792[_0x5b10c6(0x5c3)]=![],_0x42c792['permaMirrored']=![],_0x42c792['minimumRoomBitrate']=![],_0x42c792[_0x5b10c6(0x928)]=[],_0x42c792[_0x5b10c6(0x3a3)]=![],_0x42c792[_0x5b10c6(0x980)]=![],_0x42c792[_0x5b10c6(0x9cf)]=![],_0x42c792[_0x5b10c6(0x519)]=![],_0x42c792[_0x5b10c6(0x9e9)]=![],_0x42c792[_0x5b10c6(0x98a)]=![],_0x42c792['muted']=![],_0x42c792[_0x5b10c6(0x990)]=![],_0x42c792['muted_savedState']=![],_0x42c792['mono']=![],_0x42c792[_0x5b10c6(0x3fe)]={},_0x42c792[_0x5b10c6(0x437)]=![],_0x42c792[_0x5b10c6(0x79d)]=![],_0x42c792['audioBuffer']=![],_0x42c792['motionDetectionInterval']=![],_0x42c792[_0x5b10c6(0x705)]=![],_0x42c792[_0x5b10c6(0x35c)]=![],_0x42c792['noPLIs']=![],_0x42c792[_0x5b10c6(0x8d9)]=null,_0x42c792[_0x5b10c6(0x774)]=![],_0x42c792['nodownloads']=![],_0x42c792[_0x5b10c6(0x6d3)]=![],_0x42c792[_0x5b10c6(0xab2)]=![],_0x42c792[_0x5b10c6(0x509)]=![],_0x42c792[_0x5b10c6(0x88a)]=![],_0x42c792[_0x5b10c6(0x479)]=![],_0x42c792[_0x5b10c6(0x77b)]=![],_0x42c792[_0x5b10c6(0x3c2)]=![],_0x42c792[_0x5b10c6(0x751)]=![],_0x42c792['obsSceneTriggers']=![],_0x42c792[_0x5b10c6(0x19a)]={},_0x42c792[_0x5b10c6(0x19a)][_0x5b10c6(0xb20)]=null,_0x42c792[_0x5b10c6(0x19a)][_0x5b10c6(0x5b8)]=null,_0x42c792[_0x5b10c6(0x19a)]['recording']=null,_0x42c792[_0x5b10c6(0x19a)][_0x5b10c6(0xad9)]=null,_0x42c792[_0x5b10c6(0x19a)][_0x5b10c6(0x63b)]=null,_0x42c792[_0x5b10c6(0x319)]=![],_0x42c792[_0x5b10c6(0x6ac)]=_0x5b10c6(0x341),_0x42c792[_0x5b10c6(0x6d9)]=![],_0x42c792[_0x5b10c6(0x9ad)]=![],_0x42c792[_0x5b10c6(0x8ec)]=![],_0x42c792[_0x5b10c6(0x5a3)]=![],_0x42c792[_0x5b10c6(0x4a5)]=![],_0x42c792[_0x5b10c6(0x832)]=![],_0x42c792[_0x5b10c6(0x414)]=![],_0x42c792['password']=![],_0x42c792[_0x5b10c6(0x361)]=null,_0x42c792[_0x5b10c6(0x9d0)]=![],_0x42c792['forceRotate']=![],_0x42c792['nohistory']=![],_0x42c792['orientation']=![],_0x42c792[_0x5b10c6(0x36a)]=![],_0x42c792['obsControls']=null,_0x42c792[_0x5b10c6(0x73f)]=![],_0x42c792['overlayControls']=![],_0x42c792['preloadbitrate']=0x5dc,_0x42c792[_0x5b10c6(0x9f0)]=![],_0x42c792[_0x5b10c6(0x3c0)]={},_0x42c792[_0x5b10c6(0x5a0)]=![],_0x42c792[_0x5b10c6(0x9b6)]=![],_0x42c792['pipWindow']=![],_0x42c792['consent']=![],_0x42c792[_0x5b10c6(0x491)]=![],_0x42c792[_0x5b10c6(0x176)]=![],_0x42c792[_0x5b10c6(0x286)]=![],_0x42c792[_0x5b10c6(0x2f9)]=![],_0x42c792['locked']=![],_0x42c792[_0x5b10c6(0x3f7)]=![],_0x42c792['permaid']=![],_0x42c792[_0x5b10c6(0x76e)]=![],_0x42c792['postInterval']=0x1e,_0x42c792['posterImage']=![],_0x42c792[_0x5b10c6(0xb1e)]=![],_0x42c792[_0x5b10c6(0x3b3)]='https://temp.vdo.ninja/',_0x42c792[_0x5b10c6(0x469)]=![],_0x42c792[_0x5b10c6(0x7a1)]=![],_0x42c792['pingTimeout']=null,_0x42c792[_0x5b10c6(0x320)]=null,_0x42c792[_0x5b10c6(0x179)]=![],_0x42c792['pseudoguest']=![],_0x42c792[_0x5b10c6(0x41b)]=!![],_0x42c792['waitPage']=![],_0x42c792[_0x5b10c6(0x750)]=![],_0x42c792[_0x5b10c6(0xa49)]=![],_0x42c792[_0x5b10c6(0x2b4)]=[],_0x42c792[_0x5b10c6(0x1e3)]=![],_0x42c792['retransmit']=![],_0x42c792[_0x5b10c6(0x4d0)]=![],_0x42c792[_0x5b10c6(0x4d3)]=![],_0x42c792[_0x5b10c6(0x56b)]=![],_0x42c792[_0x5b10c6(0x2d1)]=![],_0x42c792[_0x5b10c6(0x92b)]=![],_0x42c792['record']=!![],_0x42c792[_0x5b10c6(0x207)]=0x1770,_0x42c792[_0x5b10c6(0x5e7)]=![],_0x42c792['rampUpTime']=0x1770,_0x42c792[_0x5b10c6(0x584)]=![],_0x42c792[_0x5b10c6(0x7d8)]=0x1388,_0x42c792[_0x5b10c6(0xacc)]=![],_0x42c792['remoteInterfaceAPI']=![],_0x42c792[_0x5b10c6(0xaca)]=![],_0x42c792[_0x5b10c6(0x273)]=![],_0x42c792[_0x5b10c6(0x2b2)]=![],_0x42c792['roomTimer']=![],_0x42c792[_0x5b10c6(0x783)]=null,_0x42c792[_0x5b10c6(0x9c0)]=![],_0x42c792[_0x5b10c6(0x7b4)]=![],_0x42c792[_0x5b10c6(0x34f)]=!![],_0x42c792['requireencryption']=![],_0x42c792[_0x5b10c6(0xab8)]=![],_0x42c792[_0x5b10c6(0x653)]=![],_0x42c792[_0x5b10c6(0x9f2)]={},_0x42c792[_0x5b10c6(0x1d4)]=![],_0x42c792['sampleRate']=![],_0x42c792[_0x5b10c6(0x27a)]=![],_0x42c792[_0x5b10c6(0x5f6)]=![],_0x42c792[_0x5b10c6(0x327)]=null,_0x42c792[_0x5b10c6(0x7c3)]=![],_0x42c792[_0x5b10c6(0xae8)]=![],_0x42c792[_0x5b10c6(0x330)]=![],_0x42c792[_0x5b10c6(0xa75)]=![],_0x42c792[_0x5b10c6(0x8a0)]=![],_0x42c792[_0x5b10c6(0x9fc)]=![],_0x42c792[_0x5b10c6(0x4dc)]=[],_0x42c792[_0x5b10c6(0x7c5)]={},_0x42c792[_0x5b10c6(0x43e)]=![],_0x42c792[_0x5b10c6(0xab1)]=![],_0x42c792['showall']=![],_0x42c792[_0x5b10c6(0x36c)]=![],_0x42c792[_0x5b10c6(0x859)]='*',_0x42c792[_0x5b10c6(0x2ea)]=![],_0x42c792[_0x5b10c6(0x76b)]=![],_0x42c792['sceneList']={},_0x42c792['silence']=![],_0x42c792['sendingBuffer']=0x1f4,_0x42c792[_0x5b10c6(0x7fb)]=![],_0x42c792['signalMeter']=null,_0x42c792[_0x5b10c6(0x3c1)]='unified-plan',_0x42c792['screenshare']=![],_0x42c792[_0x5b10c6(0x370)]=![],_0x42c792[_0x5b10c6(0x9c7)]=![],_0x42c792[_0x5b10c6(0x56d)]=![],_0x42c792['screensharequality']=![],_0x42c792[_0x5b10c6(0x6dc)]=![],_0x42c792[_0x5b10c6(0x33f)]=![],_0x42c792[_0x5b10c6(0x44b)]=![],_0x42c792['screenShareBitrate']=![],_0x42c792[_0x5b10c6(0x7ae)]=![],_0x42c792[_0x5b10c6(0x48b)]=![],_0x42c792[_0x5b10c6(0x209)]=![],_0x42c792[_0x5b10c6(0x2c1)]=![],_0x42c792[_0x5b10c6(0x183)]=![],_0x42c792['seeding']=![],_0x42c792[_0x5b10c6(0x1d3)]=![],_0x42c792[_0x5b10c6(0x961)]=[_0x5b10c6(0x480),_0x5b10c6(0xaa3),'ori',_0x5b10c6(0xadc),'gyro',_0x5b10c6(0x9fb)],_0x42c792[_0x5b10c6(0xb1a)]=0x0,_0x42c792['suppressLocalAudioPlayback']=![],_0x42c792[_0x5b10c6(0x2b6)]=![],_0x42c792[_0x5b10c6(0x855)]=![],_0x42c792[_0x5b10c6(0x177)]=![],_0x42c792[_0x5b10c6(0x4db)]=![],_0x42c792[_0x5b10c6(0x875)]=![],_0x42c792[_0x5b10c6(0x452)]=![],_0x42c792['showmeta']=![],_0x42c792[_0x5b10c6(0x563)]=![],_0x42c792[_0x5b10c6(0x95e)]=![],_0x42c792['showlabels']=![],_0x42c792[_0x5b10c6(0x4c0)]=![],_0x42c792[_0x5b10c6(0x7c4)]=null,_0x42c792['labelstyle']=![],_0x42c792[_0x5b10c6(0xb46)]=[],_0x42c792['screenShareElementHidden']=![],_0x42c792[_0x5b10c6(0x763)]=![],_0x42c792['scalabilityMode']=![],_0x42c792[_0x5b10c6(0x30a)]=!![],_0x42c792[_0x5b10c6(0xa33)]=![],_0x42c792[_0x5b10c6(0x24c)]=![],_0x42c792[_0x5b10c6(0x4ba)]=![],_0x42c792[_0x5b10c6(0x262)]=![],_0x42c792[_0x5b10c6(0x3f6)]=null,_0x42c792[_0x5b10c6(0x387)]=![],_0x42c792[_0x5b10c6(0x546)]={},_0x42c792[_0x5b10c6(0xaea)]=![],_0x42c792[_0x5b10c6(0xac3)]=0x8,_0x42c792[_0x5b10c6(0xa20)]=![],_0x42c792[_0x5b10c6(0x442)]=![],_0x42c792[_0x5b10c6(0x60d)]=![],_0x42c792[_0x5b10c6(0x8f7)]=null,_0x42c792[_0x5b10c6(0x5ed)]=0xbb8,_0x42c792[_0x5b10c6(0x731)]=![],_0x42c792[_0x5b10c6(0x3be)]=![],_0x42c792[_0x5b10c6(0x476)]=null,_0x42c792[_0x5b10c6(0x5f5)]=null,_0x42c792[_0x5b10c6(0x56c)]=null,_0x42c792['screenSrc']=null,_0x42c792[_0x5b10c6(0x84c)]=![],_0x42c792[_0x5b10c6(0x6b7)]=![],_0x42c792[_0x5b10c6(0x8ac)]=null,_0x42c792[_0x5b10c6(0x9a7)]=![],_0x42c792['totalRoomBitrate']=![],_0x42c792[_0x5b10c6(0x742)]=0x1f4,_0x42c792[_0x5b10c6(0x634)]=![],_0x42c792['TFJSModel']=null,_0x42c792[_0x5b10c6(0x181)]=['./media/bg_sample.webp',_0x5b10c6(0x60a)],_0x42c792['defaultForegroundImages']=[_0x5b10c6(0x8bc)],_0x42c792[_0x5b10c6(0x3ca)]=![],_0x42c792[_0x5b10c6(0x2c2)]=![],_0x42c792['tallyStyle']=![],_0x42c792[_0x5b10c6(0x9dc)]=![],_0x42c792[_0x5b10c6(0x1af)]=![],_0x42c792['tz']=![],_0x42c792['tallyOverride']=![],_0x42c792['transparent']=![],_0x42c792[_0x5b10c6(0x60e)]=![],_0x42c792[_0x5b10c6(0x9e0)]=![],_0x42c792[_0x5b10c6(0x78a)]=![],_0x42c792[_0x5b10c6(0x935)]=![],_0x42c792[_0x5b10c6(0x911)]=![],_0x42c792[_0x5b10c6(0xb58)]=![],_0x42c792['videoMuted']=![],_0x42c792[_0x5b10c6(0xb12)]=![],_0x42c792['directorVideoMuted']=![],_0x42c792[_0x5b10c6(0xabd)]=![],_0x42c792['videoMutedFlag']=![],_0x42c792[_0x5b10c6(0x1be)]=![],_0x42c792[_0x5b10c6(0x3c8)]=![],_0x42c792[_0x5b10c6(0x5b9)]=![],_0x42c792[_0x5b10c6(0xb1b)]=![],_0x42c792[_0x5b10c6(0x4c4)]=![],_0x42c792[_0x5b10c6(0x945)]=![],_0x42c792['pan']=![],_0x42c792['tilt']=![],_0x42c792[_0x5b10c6(0x221)]=![],_0x42c792[_0x5b10c6(0xa78)]=![],_0x42c792['watchTimeoutList']={},_0x42c792[_0x5b10c6(0x77a)]={},_0x42c792[_0x5b10c6(0x845)]=![],_0x42c792[_0x5b10c6(0x432)]=null,_0x42c792['forceNoVideoWhipIn']=![],_0x42c792[_0x5b10c6(0x22b)]=![],_0x42c792[_0x5b10c6(0x415)]=![],_0x42c792[_0x5b10c6(0x7a7)]=0x1388,_0x42c792[_0x5b10c6(0xb4e)]=![],_0x42c792[_0x5b10c6(0x659)]={},_0x42c792[_0x5b10c6(0xb21)]=![],_0x42c792[_0x5b10c6(0x823)]=![],_0x42c792['ws']=null,_0x42c792[_0x5b10c6(0x86e)]=![],_0x42c792[_0x5b10c6(0x9ff)]=null,_0x42c792[_0x5b10c6(0x728)]=![],_0x42c792[_0x5b10c6(0x332)]=![],_0x42c792[_0x5b10c6(0xb0b)]=![],_0x42c792[_0x5b10c6(0x85b)]=![],_0x42c792[_0x5b10c6(0x889)]=![],_0x42c792[_0x5b10c6(0x255)]=![],_0x42c792[_0x5b10c6(0x3ef)]=![],_0x42c792[_0x5b10c6(0xb3f)]=![],_0x42c792['whipOutCodec']=![],_0x42c792[_0x5b10c6(0x53d)]=![],_0x42c792['whipOutVideoBitrate']=![],_0x42c792[_0x5b10c6(0x2ae)]=![],_0x42c792['whipOut']=![],_0x42c792['whipOutputToken']=![],_0x42c792[_0x5b10c6(0x5bb)]=![],_0x42c792[_0x5b10c6(0x2ba)]=![],_0x42c792[_0x5b10c6(0xb11)]=0x7d0,_0x42c792[_0x5b10c6(0x923)]=0x7d0,_0x42c792[_0x5b10c6(0x957)]=![],_0x42c792[_0x5b10c6(0x991)]=![],_0x42c792[_0x5b10c6(0x8d6)]=![],_0x42c792[_0x5b10c6(0x1eb)]=![],_0x42c792[_0x5b10c6(0x38b)]=![],_0x42c792[_0x5b10c6(0x5e9)]=![],_0x42c792[_0x5b10c6(0x63f)]=![],_0x42c792[_0x5b10c6(0x9ec)]=![],_0x42c792[_0x5b10c6(0x39c)]=![],_0x42c792[_0x5b10c6(0x778)]=!![],_0x42c792['popupChat']=null,_0x42c792[_0x5b10c6(0x481)]=![],_0x42c792[_0x5b10c6(0x3cf)]=![],_0x42c792[_0x5b10c6(0x369)]=![],_0x42c792[_0x5b10c6(0x5bf)]=![],_0x42c792[_0x5b10c6(0x96f)]=![],_0x42c792[_0x5b10c6(0x6fe)]=![],_0x42c792[_0x5b10c6(0x682)]=![],_0x42c792[_0x5b10c6(0x5a1)]=![],_0x42c792[_0x5b10c6(0x3d5)]=![],_0x42c792[_0x5b10c6(0x759)]=![],_0x42c792[_0x5b10c6(0x65b)]=null,_0x42c792[_0x5b10c6(0x43c)]='',_0x42c792[_0x5b10c6(0x41f)]=null,_0x42c792[_0x5b10c6(0x42d)]=![],_0x42c792[_0x5b10c6(0x77c)]=![],_0x42c792[_0x5b10c6(0x969)]=![],_0x42c792[_0x5b10c6(0x7e1)]=![],_0x42c792['updateLocalStatsInterval']=null,_0x42c792[_0x5b10c6(0xac6)]=![],_0x42c792[_0x5b10c6(0x4ae)]=getById(_0x5b10c6(0x570))['cloneNode'](!![]),_0x42c792[_0x5b10c6(0x46b)]=null,_0x42c792[_0x5b10c6(0x4ae)]['id']='localMuteElement',_0x42c792['voiceMeter']=getById('voiceMeterTemplate')[_0x5b10c6(0xa11)](!![]),_0x42c792[_0x5b10c6(0x293)]['id']='localVoiceMeter',_0x42c792[_0x5b10c6(0x293)][_0x5b10c6(0x84c)]['opacity']=0x0,_0x42c792[_0x5b10c6(0x293)]['dataset'][_0x5b10c6(0x7d7)]=0x0,_0x42c792['widget']=![],_0x42c792[_0x5b10c6(0x171)]=![],_0x42c792['widgetwidth']=0x19,_0x42c792[_0x5b10c6(0x223)]=![],_0x42c792[_0x5b10c6(0x240)]=![],_0x42c792[_0x5b10c6(0x7fc)]=!![],_0x42c792[_0x5b10c6(0x1ac)]=![],_0x42c792[_0x5b10c6(0xa1c)]=!![],_0x42c792[_0x5b10c6(0x2cf)]=!![],_0x42c792[_0x5b10c6(0xa5c)]=![],_0x42c792[_0x5b10c6(0x23c)]=_0x5b10c6(0x47c),_0x42c792[_0x5b10c6(0x83e)]=_0x5b10c6(0x42b),_0x42c792[_0x5b10c6(0x620)]=_0x5b10c6(0x88e);if(location[_0x5b10c6(0x4b1)]=='vdo.ninja')_0x42c792[_0x5b10c6(0xb25)]=_0x5b10c6(0x95a);else{if(location['hostname']==_0x5b10c6(0x418))_0x42c792[_0x5b10c6(0xb25)]=_0x5b10c6(0x95a);else{if([_0x5b10c6(0x95a),_0x5b10c6(0x267),_0x5b10c6(0x49d),_0x5b10c6(0x1b4)]['includes'](location['hostname'][_0x5b10c6(0x1e2)]('.')[_0x5b10c6(0x90c)](-0x2)[_0x5b10c6(0x8eb)]('.')))_0x42c792['salt']=location[_0x5b10c6(0x4b1)][_0x5b10c6(0x1e2)]('.')[_0x5b10c6(0x90c)](-0x2)[_0x5b10c6(0x8eb)]('.');else try{var _0x3e94fd=/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;if(_0x3e94fd[_0x5b10c6(0x972)](window[_0x5b10c6(0xb50)]['hostname']))_0x42c792[_0x5b10c6(0xb25)]=_0x5b10c6(0x95a);else window[_0x5b10c6(0xb50)][_0x5b10c6(0x4b1)]==_0x5b10c6(0x259)?_0x42c792[_0x5b10c6(0xb25)]=_0x5b10c6(0x95a):_0x42c792['salt']=location[_0x5b10c6(0x4b1)];}catch(_0x248687){_0x42c792['salt']=location['hostname'],errorlog(_0x248687);}}}_0x42c792[_0x5b10c6(0x712)]=function(_0x282c7f,_0x248326=_0x42c792[_0x5b10c6(0x3dd)]+_0x42c792[_0x5b10c6(0xb25)]){var _0x2c8e6a=_0x5b10c6,_0x3d87e1=crypto[_0x2c8e6a(0x226)](new Uint8Array(0x10));return crypto[_0x2c8e6a(0x36d)][_0x2c8e6a(0x5b6)]({'name':_0x2c8e6a(0x39f)},convertStringToArrayBufferView(_0x248326))[_0x2c8e6a(0x272)](function(_0x4a8ce4){var _0x122be0=_0x2c8e6a;return window[_0x122be0(0x458)][_0x122be0(0x36d)][_0x122be0(0xa08)](_0x122be0(0xb16),_0x4a8ce4,{'name':_0x122be0(0x87e)},![],[_0x122be0(0x20c),_0x122be0(0x389)])[_0x122be0(0x272)](function(_0x392ab1){var _0x186118=_0x122be0;return crypto[_0x186118(0x36d)][_0x186118(0x20c)]({'name':_0x186118(0x87e),'iv':_0x3d87e1},_0x392ab1,convertStringToArrayBufferView(_0x282c7f))[_0x186118(0x272)](function(_0x31c367){return encrypted_data=new Uint8Array(_0x31c367),encrypted_data=toHexString(encrypted_data),_0x3d87e1=toHexString(_0x3d87e1),[encrypted_data,_0x3d87e1];},function(_0x4f265c){var _0x2127c5=_0x186118;return errorlog(_0x4f265c[_0x2127c5(0x937)]),![];});},function(_0x20ede6){return errorlog(_0x20ede6),![];});})[_0x2c8e6a(0xaef)](errorlog);},_0x42c792['decryptMessage']=function(_0x3e10bf,_0x31dc4a,_0xaee915=_0x42c792['password']+_0x42c792['salt']){var _0x2e384f=_0x5b10c6;return _0x3e10bf=toByteArray(_0x3e10bf),_0x31dc4a=toByteArray(_0x31dc4a),crypto[_0x2e384f(0x36d)][_0x2e384f(0x5b6)]({'name':'SHA-256'},convertStringToArrayBufferView(_0xaee915))['then'](function(_0x5496aa){var _0x7f7ffa=_0x2e384f;return window[_0x7f7ffa(0x458)][_0x7f7ffa(0x36d)]['importKey'](_0x7f7ffa(0xb16),_0x5496aa,{'name':_0x7f7ffa(0x87e)},![],['encrypt','decrypt'])[_0x7f7ffa(0x272)](function(_0x498289){var _0x556d98=_0x7f7ffa;return crypto['subtle'][_0x556d98(0x389)]({'name':_0x556d98(0x87e),'iv':_0x31dc4a},_0x498289,_0x3e10bf)[_0x556d98(0x272)](function(_0x4d451a){var _0x4a5f24=_0x556d98,_0x1da611=new Uint8Array(_0x4d451a),_0x37d8c3='';for(var _0x49595=0x0;_0x49595<_0x1da611['byteLength'];_0x49595++){_0x37d8c3+=String[_0x4a5f24(0xa36)](_0x1da611[_0x49595]);}return _0x37d8c3;},function(_0x2e5557){return errorlog(_0x31dc4a),errorlog(_0x3e10bf),errorlog(_0x2e5557),![];});});})['catch'](errorlog);},_0x42c792[_0x5b10c6(0x732)]=async function(_0x156b51){var _0x47f3ec=_0x5b10c6;if(typeof _0x156b51[_0x47f3ec(0x5e7)]!==_0x47f3ec(0x698))return _0x156b51;try{_0x156b51[_0x47f3ec(0x5e7)]['length']==0x2&&(!_0x42c792[_0x47f3ec(0x751)]&&(_0x42c792[_0x47f3ec(0x751)]=await generateHash(_0x42c792[_0x47f3ec(0x5e7)]+_0x42c792[_0x47f3ec(0xb25)],0xc)),_0x156b51['remote']=await _0x42c792[_0x47f3ec(0xaeb)](_0x156b51[_0x47f3ec(0x5e7)][0x0],_0x156b51[_0x47f3ec(0x5e7)][0x1],_0x42c792[_0x47f3ec(0x751)]),_0x156b51['remote']?log('Remote\x20request\x20decoded\x20successfully'):warnlog(_0x47f3ec(0x288)),log(_0x156b51));}catch(_0x59a41f){errorlog(_0x59a41f);}return _0x156b51;},_0x42c792['encodeRemote']=async function(_0x152dbc){var _0x1dadb6=_0x5b10c6;try{if(_0x152dbc[_0x1dadb6(0x5e7)]&&typeof _0x152dbc[_0x1dadb6(0x5e7)]===_0x1dadb6(0x974)){var _0x2e68e0=await generateHash(_0x152dbc[_0x1dadb6(0x5e7)]+_0x42c792[_0x1dadb6(0xb25)],0xc);_0x152dbc['remote']=await _0x42c792[_0x1dadb6(0x712)](_0x152dbc[_0x1dadb6(0x5e7)],_0x2e68e0);}}catch(_0x365b43){errorlog(_0x365b43);}return _0x152dbc;},_0x42c792[_0x5b10c6(0xaf1)]=function(_0x102a7d){var _0x4524f0=_0x5b10c6;try{try{_0x102a7d=decodeURIComponent(_0x102a7d[_0x4524f0(0x71b)](/ /g,'+'));}catch(_0x5bb296){}_0x102a7d=CryptoJS[_0x4524f0(0x521)][_0x4524f0(0x389)](_0x102a7d,_0x4524f0(0x9a0)),_0x102a7d=_0x102a7d[_0x4524f0(0x880)](CryptoJS[_0x4524f0(0x2c4)][_0x4524f0(0x6da)]);if(_0x102a7d){if(_0x102a7d[_0x4524f0(0x52f)](_0x4524f0(0x9b2)))_0x102a7d=_0x102a7d[_0x4524f0(0x71b)]('http://','');else{if(_0x102a7d[_0x4524f0(0x52f)](_0x4524f0(0x257)))_0x102a7d=_0x102a7d[_0x4524f0(0x71b)](_0x4524f0(0x257),'');else{if(_0x102a7d[_0x4524f0(0x52f)]('/'))_0x102a7d=_0x102a7d[_0x4524f0(0x71b)]('/','');else{if(_0x102a7d['startsWith']('obs.ninja/'))_0x102a7d=_0x102a7d['replace'](_0x4524f0(0x392),'');else{if(_0x102a7d[_0x4524f0(0x52f)](_0x4524f0(0x6c9)))_0x102a7d=_0x102a7d[_0x4524f0(0x71b)](_0x4524f0(0x6c9),'');else _0x102a7d['startsWith'](_0x4524f0(0xa8f))&&(_0x102a7d=_0x102a7d[_0x4524f0(0x71b)](_0x4524f0(0xa8f),''));}}}}_0x102a7d=_0x102a7d[_0x4524f0(0x1e2)]('?')['splice'](0x1)[_0x4524f0(0x8eb)]('?'),_0x102a7d=_0x102a7d[_0x4524f0(0x71b)](/\?/g,'&'),_0x102a7d=_0x102a7d[_0x4524f0(0x71b)](/\&/,'?'),_0x102a7d&&(_0x42c792[_0x4524f0(0x1e0)]='?'+_0x102a7d);}}catch(_0x38693a){warnlog(_0x38693a);}},_0x42c792[_0x5b10c6(0x4a4)]=function(_0xf0fc60,_0x4302f4=![]){var _0x48e42a=_0x5b10c6,_0x3b4db0={};_0x3b4db0[_0x48e42a(0x1ce)]=!![],_0x3b4db0[_0x48e42a(0x2ea)]=_0x4302f4,_0x42c792[_0x48e42a(0x380)](_0x3b4db0,_0xf0fc60);},_0x42c792[_0x5b10c6(0x733)]=function(_0x5bd16c,_0x5c4204,_0x461522=null){var _0x300d94=_0x5b10c6;if(!_0x42c792[_0x300d94(0x9f2)][_0x5c4204])return![];var _0xe92a2f={};if(_0x461522!==null)_0x42c792['rpcs'][_0x5c4204]['lockedAudioBitrate']=_0x461522||![];else{if(_0x42c792['rpcs'][_0x5c4204]['lockedAudioBitrate']){warnlog(_0x300d94(0x15e));return;}}_0xe92a2f['audioBitrate']=_0x5bd16c,log(_0xe92a2f),_0x42c792[_0x300d94(0x380)](_0xe92a2f,_0x5c4204);},_0x42c792[_0x5b10c6(0x7b1)]=function(_0x1488cd,_0x50fb3c,_0x11f2f6=![],_0x153164=null){var _0x19f617=_0x5b10c6;log('requestRateLimit\x20RUN:\x20'+_0x11f2f6);if(!_0x42c792[_0x19f617(0x9f2)][_0x50fb3c]||!_0x42c792[_0x19f617(0x9f2)][_0x50fb3c]['getStats'])return![];if(_0x153164!==null)_0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0xab5)]=_0x153164||![];else{if(_0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0xab5)]){warnlog(_0x19f617(0x2ab));return;}}if(_0x1488cd===![]){}else _0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0x90e)]=_0x1488cd;var _0x45dee1=-0x1;_0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0x59e)]!==![]?_0x1488cd=parseInt(_0x42c792['rpcs'][_0x50fb3c][_0x19f617(0x59e)]):_0x1488cd=parseInt(_0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0x90e)]);if(_0x42c792[_0x19f617(0x19a)][_0x19f617(0xb20)]===![]){if(_0x42c792[_0x19f617(0x479)]!==![]){if(window[_0x19f617(0xa53)])return![];}}else{if(_0x42c792[_0x19f617(0x812)]&&_0x1488cd===0x0)return![];}_0x1488cd===0x0&&_0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0x4a2)]&&(_0x1488cd=0x1);if(_0x42c792[_0x19f617(0x9f2)][_0x50fb3c][_0x19f617(0x844)]===_0x1488cd)return![];log('request\x20rate\x20limit:\x20'+_0x1488cd);var _0x2b7bd1={};_0x2b7bd1[_0x19f617(0x4bf)]=_0x1488cd;if(_0x11f2f6===null){}else{if(_0x11f2f6)_0x1488cd===0x0?(warnlog('OPTIMIZED\x20AUDIO\x20ENABLED;\x20zero\x20bitrate'),_0x2b7bd1['audioBitrate']=0x0):_0x45dee1<0x10&&_0x45dee1>=0x0?_0x2b7bd1[_0x19f617(0xb52)]=_0x45dee1:_0x2b7bd1['audioBitrate']=0x10;else _0x153164===null&&(_0x2b7bd1['audioBitrate']=_0x45dee1);}return _0x42c792['sendRequest'](_0x2b7bd1,_0x50fb3c)?(_0x42c792[_0x19f617(0x9f2)][_0x50fb3c]['bandwidth']=_0x1488cd,!![]):(setTimeout(function _0x461ae2(){_0x42c792['requestRateLimit'](![],_0x50fb3c);},0x1388),warnlog(_0x19f617(0xaa9)),![]);},_0x42c792['sendGenericData']=function(_0x1eb9b8,_0x5cd3ef=![],_0x333cd6=![],_0x3982a3=![]){var _0x208a59=_0x5b10c6,_0xaadec1=![],_0x26452f={};_0x26452f[_0x208a59(0xa4e)]=_0x1eb9b8;try{if(!_0x5cd3ef&&!_0x333cd6){if(_0x3982a3==_0x208a59(0x9f2))_0x42c792['sendRequest'](_0x26452f);else _0x3982a3==_0x208a59(0x3c0)?_0x42c792['sendMessage'](_0x26452f):_0x42c792[_0x208a59(0x84f)](_0x26452f);_0xaadec1=!![];}else{if(_0x5cd3ef){_0x5cd3ef=_0x5cd3ef+'';if(_0x3982a3==_0x208a59(0x9f2))_0x42c792[_0x208a59(0x380)](_0x26452f,_0x5cd3ef);else _0x3982a3==_0x208a59(0x3c0)?_0x42c792[_0x208a59(0x8ae)](_0x26452f,_0x5cd3ef):_0x42c792[_0x208a59(0x84f)](_0x26452f,_0x5cd3ef);_0xaadec1=!![];}else{if(_0x333cd6){_0x333cd6=_0x333cd6+'';for(var _0x285e4b in _0x42c792[_0x208a59(0x9f2)]){if(_0x42c792[_0x208a59(0x9f2)][_0x285e4b][_0x208a59(0x476)]===_0x333cd6){if(_0x3982a3==_0x208a59(0x9f2))_0x42c792[_0x208a59(0x380)](_0x26452f,_0x285e4b);else _0x3982a3==_0x208a59(0x3c0)?_0x42c792[_0x208a59(0x8ae)](_0x26452f,_0x285e4b):_0x42c792[_0x208a59(0x84f)](_0x26452f,_0x285e4b);_0xaadec1=!![];}}}}}return _0xaadec1;}catch(_0x1e8ab5){return![];}},_0x42c792[_0x5b10c6(0x21a)]=function(_0x2fd202,_0x2a460e){var _0x1460a6=_0x5b10c6,_0x454431={};_0x454431[_0x1460a6(0x814)]={},_0x454431[_0x1460a6(0x814)]=_0x2fd202;_0x2a460e!==null&&(_0x454431[_0x1460a6(0xac6)]=_0x2a460e);if(isIFrame)parent[_0x1460a6(0x1f9)](_0x454431,_0x42c792['iframetarget']);else _0x2fd202['overlayNinja']&&!isIFrame&&getChatMessage(_0x2fd202[_0x1460a6(0x7fa)][_0x1460a6(0x739)],_0x2fd202[_0x1460a6(0x7fa)][_0x1460a6(0xb0a)],![],![]);},_0x42c792[_0x5b10c6(0x962)]=function(){var _0x4a62a7=_0x5b10c6;if(_0x42c792[_0x4a62a7(0x218)]===null)return;for(var _0x37b4e7 in _0x42c792[_0x4a62a7(0x9f2)]){try{var _0x12bc52=getReceivers2(_0x37b4e7);for(var _0x149c86=0x0;_0x149c86<_0x12bc52[_0x4a62a7(0x606)];_0x149c86++){_0x12bc52[_0x149c86][_0x4a62a7(0x3ba)][_0x4a62a7(0x184)]==_0x4a62a7(0x864)&&(_0x12bc52[_0x149c86]['track'][_0x4a62a7(0x8c6)]=!_0x42c792[_0x4a62a7(0x218)]);}}catch(_0x34e3eb){}}_0x42c792[_0x4a62a7(0x218)]&&(getById('videosource')[_0x4a62a7(0x920)]=!![]);},_0x42c792['directorDisplayMute']=function(){var _0x280d09=_0x5b10c6;if(_0x42c792[_0x280d09(0xa4a)]===null)return;_0x42c792['directorDisplayMuted']?(getById('gridlayout')['classList'][_0x280d09(0xb15)](_0x280d09(0x4d2)),!_0x42c792['cleanOutput']&&warnUser(getTranslation('vision-disabled'),![],![])):(getById(_0x280d09(0x467))['classList'][_0x280d09(0x881)]('hidden'),!_0x42c792[_0x280d09(0xad1)]&&closeModal());for(var _0x3579be in _0x42c792['rpcs']){try{var _0x383e09=getReceivers2(_0x3579be);for(var _0x47118c=0x0;_0x47118c<_0x383e09[_0x280d09(0x606)];_0x47118c++){_0x383e09[_0x47118c][_0x280d09(0x3ba)][_0x280d09(0x184)]=='video'&&(_0x383e09[_0x47118c][_0x280d09(0x3ba)][_0x280d09(0x8c6)]=!_0x42c792[_0x280d09(0xa4a)]);}}catch(_0x208f8a){errorlog(_0x208f8a);}}_0x42c792[_0x280d09(0xa4a)]&&(getById(_0x280d09(0x55c))['muted']=!![]);},_0x42c792[_0x5b10c6(0x8f6)]=async function(_0x15cce5,_0x82bb3a,_0x41de78=_0x42c792[_0x5b10c6(0x5e7)],_0x148edd=![]){var _0x44cd0f=_0x5b10c6;log(_0x44cd0f(0x396)+_0x15cce5),log(_0x82bb3a);var _0x5c0ac4={};_0x5c0ac4[_0x44cd0f(0x945)]=_0x15cce5,_0x5c0ac4['abs']=_0x148edd,_0x5c0ac4[_0x44cd0f(0x5e7)]=_0x41de78,_0x5c0ac4=await _0x42c792[_0x44cd0f(0x9ba)](_0x5c0ac4),_0x42c792[_0x44cd0f(0x380)](_0x5c0ac4,_0x82bb3a)?log('zoom\x20success'):errorlog(_0x44cd0f(0x1f3));},_0x42c792[_0x5b10c6(0x7c9)]=async function(_0x2dbafe,_0x5dbaca,_0x481a7d=_0x42c792[_0x5b10c6(0x5e7)],_0x486042=![]){var _0x54a865=_0x5b10c6;log(_0x54a865(0xadf)+_0x2dbafe);var _0x237c9d={};_0x237c9d[_0x54a865(0x6c7)]=_0x2dbafe,_0x237c9d[_0x54a865(0x5b2)]=_0x486042,_0x237c9d[_0x54a865(0x5e7)]=_0x481a7d,_0x237c9d=await _0x42c792['encodeRemote'](_0x237c9d),_0x42c792['sendRequest'](_0x237c9d,_0x5dbaca)?log(_0x54a865(0x896)):errorlog('failed\x20to\x20send\x20focus\x20change\x20request');},_0x42c792['seedStream']=async function(){var _0x4c9edd=_0x5b10c6;await _0x42c792[_0x4c9edd(0x8ca)]();if(_0x42c792[_0x4c9edd(0x47e)]!==![])_0x42c792[_0x4c9edd(0x47e)]=_0x4c9edd(0x27f),log(_0x4c9edd(0x589));else{if(_0x42c792['doNotSeed'])log(_0x4c9edd(0x897));else{var _0x50d2a2={};_0x50d2a2[_0x4c9edd(0x8e8)]=_0x4c9edd(0x7a2),_0x50d2a2[_0x4c9edd(0x476)]=_0x42c792[_0x4c9edd(0x476)],_0x42c792[_0x4c9edd(0x3b4)](_0x50d2a2),log('seeding\x20!!'),pokeAPI(_0x4c9edd(0x704),!![]),pokeIframeAPI(_0x4c9edd(0x2f2),!![]),pokeIframeAPI(_0x4c9edd(0x704),!![]);}}},_0x42c792[_0x5b10c6(0x51d)]=function(){var _0x43c6af=_0x5b10c6;getById(_0x43c6af(0x9fe))['disabled']=!![],getById(_0x43c6af(0x9fe))[_0x43c6af(0x7a4)]=_0x43c6af(0x303),getById(_0x43c6af(0x1d0))[_0x43c6af(0x33d)][_0x43c6af(0xb15)](_0x43c6af(0x4d2)),_0x42c792[_0x43c6af(0xabb)]&&(_0x42c792[_0x43c6af(0x57a)]?_0x42c792['directorUUID']&&(_0x42c792[_0x43c6af(0x95b)]in _0x42c792[_0x43c6af(0x9f2)]&&(_0x42c792[_0x43c6af(0x9f2)][_0x42c792['directorUUID']][_0x43c6af(0xa9a)]===![]&&_0x42c792[_0x43c6af(0x712)](_0x42c792[_0x43c6af(0x57a)],_0x42c792[_0x43c6af(0x57a)])[_0x43c6af(0x272)](function(_0x4691ec){var _0x21281d=_0x43c6af,_0x2872c4={};_0x2872c4[_0x21281d(0xac6)]=_0x42c792[_0x21281d(0x95b)],_0x2872c4[_0x21281d(0x51d)]=_0x4691ec[0x0],_0x2872c4[_0x21281d(0x97b)]=_0x4691ec[0x1],_0x42c792[_0x21281d(0x9f2)][_0x42c792[_0x21281d(0x95b)]][_0x21281d(0xa9a)]===![]&&(_0x42c792[_0x21281d(0x380)](_0x2872c4,_0x2872c4['UUID'])&&(_0x42c792[_0x21281d(0x9f2)][_0x42c792['directorUUID']]['codirectorRequested']=!![]));})['catch'](errorlog))):generateHash(_0x42c792['directorPassword']+_0x42c792[_0x43c6af(0xb25)]+_0x43c6af(0x295),0xc)[_0x43c6af(0x272)](function(_0x4eb327){var _0x446b67=_0x43c6af;_0x42c792['directorHash']=_0x4eb327;_0x42c792[_0x446b67(0x95b)]&&(_0x42c792['rpcs'][_0x42c792['directorUUID']][_0x446b67(0xa9a)]===![]&&_0x42c792[_0x446b67(0x712)](_0x42c792[_0x446b67(0x57a)],_0x42c792[_0x446b67(0x57a)])[_0x446b67(0x272)](function(_0x4502a0){var _0x176996=_0x446b67,_0x152137={};_0x152137[_0x176996(0xac6)]=_0x42c792['directorUUID'],_0x152137[_0x176996(0x51d)]=_0x4502a0[0x0],_0x152137['vector']=_0x4502a0[0x1],_0x42c792[_0x176996(0x9f2)][_0x42c792[_0x176996(0x95b)]][_0x176996(0xa9a)]===![]&&(_0x42c792[_0x176996(0x380)](_0x152137,_0x152137[_0x176996(0xac6)])&&(_0x42c792['rpcs'][_0x42c792[_0x176996(0x95b)]][_0x176996(0xa9a)]=!![]));})[_0x446b67(0xaef)](errorlog));return;})[_0x43c6af(0xaef)](errorlog));},_0x42c792[_0x5b10c6(0x8a5)]=function(_0x290f12,_0x14652a){return _0x290f12;},_0x42c792[_0x5b10c6(0x9db)]=function(_0x453812=![]){var _0x5ce706=_0x5b10c6;log(_0x5ce706(0xa9b));if(_0x453812){if(!_0x42c792[_0x5ce706(0x3c0)][_0x453812])return![];if(_0x42c792[_0x5ce706(0x3c0)][_0x453812]['scaleResolution']!==![]||_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x3f5)]!==![]||_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x404)]!==![])return log(_0x5ce706(0x61f)+_0x42c792[_0x5ce706(0x3c0)][_0x453812]['scaleWidth']+_0x5ce706(0xb39)+_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x404)]),_0x42c792['setResolution'](_0x453812,_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x3f5)],_0x42c792[_0x5ce706(0x3c0)][_0x453812]['scaleHeight'],_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x5ba)],_0x42c792['pcs'][_0x453812][_0x5ce706(0x5b7)]),!![];else{if(_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x330)]!==![])return log(_0x5ce706(0x203)),_0x42c792[_0x5ce706(0x1a8)](_0x453812,_0x42c792[_0x5ce706(0x3c0)][_0x453812][_0x5ce706(0x330)],!![]),!![];}}else for(var _0x343ce4 in _0x42c792[_0x5ce706(0x3c0)]){setTimeout(function(_0x67a9de){var _0x47bde0=_0x5ce706;if(_0x42c792[_0x47bde0(0x3c0)][_0x67a9de]['scaleResolution']!==![]||_0x42c792[_0x47bde0(0x3c0)][_0x67a9de]['scaleWidth']!==![]||_0x42c792[_0x47bde0(0x3c0)][_0x67a9de][_0x47bde0(0x404)]!==![])log(_0x47bde0(0x61f)+_0x42c792[_0x47bde0(0x3c0)][_0x67a9de][_0x47bde0(0x3f5)]+_0x47bde0(0xb39)+_0x42c792['pcs'][_0x67a9de][_0x47bde0(0x404)]),_0x42c792[_0x47bde0(0x8ef)](_0x67a9de,_0x42c792[_0x47bde0(0x3c0)][_0x67a9de][_0x47bde0(0x3f5)],_0x42c792[_0x47bde0(0x3c0)][_0x67a9de]['scaleHeight'],_0x42c792[_0x47bde0(0x3c0)][_0x67a9de][_0x47bde0(0x5ba)],_0x42c792[_0x47bde0(0x3c0)][_0x67a9de][_0x47bde0(0x5b7)]);else _0x42c792['pcs'][_0x67a9de][_0x47bde0(0x330)]!==![]&&(log(_0x47bde0(0x203)),_0x42c792[_0x47bde0(0x1a8)](_0x67a9de,_0x42c792[_0x47bde0(0x3c0)][_0x67a9de][_0x47bde0(0x330)],!![]));},0x0,_0x343ce4);}return![];},_0x42c792[_0x5b10c6(0x693)]=function(_0x1119b3=_0x42c792[_0x5b10c6(0x319)]){var _0x33629b=_0x5b10c6;warnlog(_0x33629b(0x20d));if(_0x42c792[_0x33629b(0x176)][_0x33629b(0x330)]!==_0x1119b3){if(_0x1119b3==null){try{var _0x59c445=_0x42c792[_0x33629b(0x176)][_0x33629b(0xabe)]()[_0x33629b(0x96c)](function(_0x728fc2){var _0x4517af=_0x33629b;return _0x728fc2['track']&&_0x728fc2[_0x4517af(0x3ba)][_0x4517af(0x184)]==_0x4517af(0x735);});}catch(_0x4c4848){errorlog(_0x4c4848);}if(!_0x59c445){warnlog(_0x33629b(0xaa4));return;}var _0xa3f087=_0x59c445[_0x33629b(0x3b6)]();(!_0xa3f087['encodings']||_0xa3f087['encodings'][_0x33629b(0x606)]==0x0)&&(_0xa3f087[_0x33629b(0x20e)]=[{}]),_0x33629b(0x5d2)in _0xa3f087['encodings'][0x0]?(_0x1119b3=0x64/_0xa3f087[_0x33629b(0x20e)][0x0][_0x33629b(0x5d2)],_0x1119b3=_0x1119b3*0.95):_0x1119b3=0x5f;}else _0x42c792['whipOut']['scale']=_0x1119b3;try{if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad))log(_0x33629b(0x6dd));else{if('RTCRtpSender'in window&&_0x33629b(0x4dd)in window[_0x33629b(0xa34)][_0x33629b(0x57f)]){try{var _0x59c445=_0x42c792[_0x33629b(0x176)][_0x33629b(0xabe)]()[_0x33629b(0x96c)](function(_0x3a6473){var _0x5a0b75=_0x33629b;return _0x3a6473['track']&&_0x3a6473['track']['kind']==_0x5a0b75(0x735);});}catch(_0x3f1003){errorlog(_0x3f1003);}if(!_0x59c445){warnlog(_0x33629b(0xaa4));return;}var _0x337633={};if(_0x1119b3<=0x0||_0x1119b3==0x64){var _0x39c543=getChromiumVersion();_0x39c543>0x50?_0x337633[_0x33629b(0x5d2)]=null:_0x337633['scaleResolutionDownBy']=0x1;}else _0x337633[_0x33629b(0x5d2)]=0x64/_0x1119b3;setEncodings(_0x59c445,_0x337633,function(_0xf0f1ab){var _0x377831=_0x33629b;log(_0x377831(0x734)),pokeIframeAPI(_0x377831(0x840),_0xf0f1ab,'meshcast'),pokeIframeAPI(_0x377831(0x1c7),_0xf0f1ab,'meshcast'),_0x42c792['whipOut'][_0x377831(0x546)][_0x377831(0x7f0)]=parseInt(_0xf0f1ab)+'%';},_0x1119b3);return;}}}catch(_0xed9cdc){errorlog(_0xed9cdc);}}},_0x42c792['setScale']=function(_0x7ea5c8,_0x40ca7d,_0x20aac6=![]){var _0xcf3885=_0x5b10c6;warnlog(_0xcf3885(0x1c6)+_0x40ca7d);try{_0x42c792[_0xcf3885(0x3c0)][_0x7ea5c8][_0xcf3885(0x546)]['scaleFactor']=_0x40ca7d;}catch(_0x1fa934){errorlog(_0x1fa934);}if(!_0x20aac6&&_0x42c792[_0xcf3885(0x3c0)][_0x7ea5c8][_0xcf3885(0x330)]===_0x40ca7d)return;if(_0x40ca7d==null){try{var _0x1b970c=getSenders2(_0x7ea5c8)[_0xcf3885(0x96c)](function(_0x28ca8b){var _0x245068=_0xcf3885;return _0x28ca8b[_0x245068(0x3ba)]&&_0x28ca8b[_0x245068(0x3ba)][_0x245068(0x184)]==_0x245068(0x735);});}catch(_0x3467b2){errorlog(_0x3467b2);}if(!_0x1b970c){warnlog(_0xcf3885(0xaa4));return;}var _0x5b8c1d=_0x1b970c[_0xcf3885(0x3b6)]();(!_0x5b8c1d[_0xcf3885(0x20e)]||_0x5b8c1d[_0xcf3885(0x20e)][_0xcf3885(0x606)]==0x0)&&(_0x5b8c1d[_0xcf3885(0x20e)]=[{}]),_0xcf3885(0x5d2)in _0x5b8c1d[_0xcf3885(0x20e)][0x0]?(_0x40ca7d=0x64/_0x5b8c1d[_0xcf3885(0x20e)][0x0][_0xcf3885(0x5d2)],_0x40ca7d=_0x40ca7d*0.95):_0x40ca7d=0x5f;}else _0x40ca7d=Math['ceil'](_0x40ca7d),_0x42c792[_0xcf3885(0x3c0)][_0x7ea5c8][_0xcf3885(0x330)]=_0x40ca7d;try{if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad))log(_0xcf3885(0x6dd));else{if(_0xcf3885(0xa34)in window&&'setParameters'in window[_0xcf3885(0xa34)]['prototype']){try{var _0x1b970c=getSenders2(_0x7ea5c8)[_0xcf3885(0x96c)](function(_0x5e003b){var _0x2c977f=_0xcf3885;return _0x5e003b[_0x2c977f(0x3ba)]&&_0x5e003b['track'][_0x2c977f(0x184)]==_0x2c977f(0x735);});}catch(_0x1a8de3){errorlog(_0x1a8de3);}if(!_0x1b970c){warnlog(_0xcf3885(0xaa4));return;}_0x40ca7d=_0x42c792[_0xcf3885(0x44f)](_0x7ea5c8,![],_0x40ca7d);var _0x48f34a={};if(_0x40ca7d<=0x0||_0x40ca7d==0x64){var _0xa6694d=getChromiumVersion();_0xa6694d>0x50?_0x48f34a[_0xcf3885(0x5d2)]=null:_0x48f34a[_0xcf3885(0x5d2)]=0x1;}else _0x48f34a['scaleResolutionDownBy']=0x64/_0x40ca7d;setEncodings(_0x1b970c,_0x48f34a,function(_0x4139b6){var _0x59d2f1=_0xcf3885;log(_0x59d2f1(0x482)+_0x4139b6[0x0]),pokeIframeAPI(_0x59d2f1(0x840),_0x4139b6[0x0],_0x4139b6[0x1]),pokeIframeAPI(_0x59d2f1(0x1c7),_0x4139b6[0x0],_0x4139b6[0x1]),_0x42c792['pcs'][_0x4139b6[0x1]][_0x59d2f1(0x546)]['scaleFactor']=parseInt(_0x4139b6[0x0])+'%';},[_0x40ca7d,_0x7ea5c8]);return;}}}catch(_0x214e89){errorlog(_0x214e89);}},_0x42c792[_0x5b10c6(0xa4f)]=function(_0x15f72e,_0x55ed5e,_0x45dc80,_0x47fb87=![],_0x50d05e=![],_0x51c212=null){var _0x190b7a=_0x5b10c6;if(!(_0x15f72e in _0x42c792[_0x190b7a(0x9f2)]))return;_0x51c212===null&&(_0x51c212=_0x42c792['cover']||![]);var _0x410161=![];!(_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x3f5)]==Math[_0x190b7a(0x838)](_0x55ed5e)||_0x42c792['rpcs'][_0x15f72e][_0x190b7a(0x3f5)]===Math[_0x190b7a(0x89c)](_0x55ed5e))&&(_0x55ed5e=Math['round'](_0x55ed5e),_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x3f5)]=_0x55ed5e,_0x410161=!![]);!(_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x404)]==Math[_0x190b7a(0x838)](_0x45dc80)||_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x404)]===Math['ceil'](_0x45dc80))&&(_0x45dc80=Math['round'](_0x45dc80),_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x404)]=_0x45dc80,_0x410161=!![]);_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x5ba)]!=_0x47fb87&&(_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x5ba)]=_0x47fb87,_0x410161=!![]);_0x55ed5e=Math['round'](_0x55ed5e),_0x45dc80=Math[_0x190b7a(0x32e)](_0x45dc80);if(_0x410161){var _0x1ce684={};_0x1ce684[_0x190b7a(0xac6)]=_0x15f72e,_0x1ce684[_0x190b7a(0xa4f)]={'w':_0x55ed5e,'h':_0x45dc80,'s':_0x47fb87,'c':_0x51c212},_0x50d05e&&(_0x1ce684['requestAs']=_0x50d05e),log(_0x55ed5e+'\x20'+_0x45dc80),_0x42c792[_0x190b7a(0x380)](_0x1ce684,_0x15f72e);}_0x47fb87?_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x546)][_0x190b7a(0xa65)]='~\x20'+parseInt(_0x55ed5e)+'\x20x\x20'+parseInt(_0x45dc80):_0x42c792[_0x190b7a(0x9f2)][_0x15f72e][_0x190b7a(0x546)][_0x190b7a(0xa65)]=parseInt(_0x55ed5e)+_0x190b7a(0xb39)+parseInt(_0x45dc80);},_0x42c792[_0x5b10c6(0x44f)]=function(_0x2324d0,_0x4a7ed7=![],_0x543c69=![]){var _0x13452b=_0x5b10c6;if(_0x543c69){}else _0x42c792[_0x13452b(0x3c0)][_0x2324d0]['scale']?_0x543c69=_0x42c792['pcs'][_0x2324d0][_0x13452b(0x330)]:_0x543c69=0x64;_0x42c792[_0x13452b(0x3c0)][_0x2324d0][_0x13452b(0x92a)]&&_0x543c69>_0x42c792[_0x13452b(0x3c0)][_0x2324d0][_0x13452b(0x92a)]&&(_0x543c69=_0x42c792[_0x13452b(0x3c0)][_0x2324d0]['scaleResolution']);if(_0x4a7ed7)_0x543c69=_0x533d9b(_0x2324d0,_0x543c69,_0x4a7ed7);else _0x42c792[_0x13452b(0x3c0)][_0x2324d0][_0x13452b(0xa41)]&&_0x42c792[_0x13452b(0x3c0)][_0x2324d0][_0x13452b(0xa41)]<_0x543c69&&(_0x543c69=_0x42c792[_0x13452b(0x3c0)][_0x2324d0][_0x13452b(0xa41)]);if(_0x42c792[_0x13452b(0x33f)]&&_0x42c792['pcs'][_0x2324d0][_0x13452b(0x5ba)]){if(_0x543c69>0x55)_0x543c69=0x64;else _0x543c69>0x2a&&_0x543c69<0x32&&(_0x543c69=0x32);}return _0x543c69=_0x42c792[_0x13452b(0x8a5)](_0x543c69,_0x2324d0),_0x543c69;},_0x42c792[_0x5b10c6(0x8ef)]=function(_0x5b6365=![],_0x23334c=null,_0x24de6e=null,_0xd2b2c6=![],_0xd3bc53=![]){var _0x1395c0=_0x5b10c6;log(_0x1395c0(0x3c4)+_0x23334c+'x'+_0x24de6e);if(_0x5b6365&&!(_0x5b6365 in _0x42c792['pcs']))return;else{if(!_0x5b6365){for(var _0x1a9ed7 in _0x42c792[_0x1395c0(0x3c0)]){_0x42c792[_0x1395c0(0x8ef)](_0x1a9ed7,_0x42c792[_0x1395c0(0x3c0)][_0x1a9ed7][_0x1395c0(0x3f5)],_0x42c792[_0x1395c0(0x3c0)][_0x1a9ed7][_0x1395c0(0x404)],_0x42c792[_0x1395c0(0x3c0)][_0x1a9ed7]['scaleSnap'],_0x42c792[_0x1395c0(0x3c0)][_0x1a9ed7][_0x1395c0(0x5b7)]);}return;}}_0xd3bc53=_0xd3bc53||![],snape=_0xd2b2c6||![];if(_0x23334c===null&&_0x24de6e===null){if(!_0x42c792[_0x1395c0(0x3c0)][_0x5b6365]['scaleWidth']&&!_0x42c792[_0x1395c0(0x3c0)][_0x5b6365]['scaleHeight'])return;else _0x23334c=_0x42c792[_0x1395c0(0x3c0)][_0x5b6365]['scaleWidth']||0x64,_0x24de6e=_0x42c792[_0x1395c0(0x3c0)][_0x5b6365][_0x1395c0(0x404)]||0x64;}else _0x42c792[_0x1395c0(0x3c0)][_0x5b6365][_0x1395c0(0x3f5)]=_0x23334c,_0x42c792[_0x1395c0(0x3c0)][_0x5b6365][_0x1395c0(0x404)]=_0x24de6e,_0x42c792[_0x1395c0(0x3c0)][_0x5b6365][_0x1395c0(0x5ba)]=_0xd2b2c6,_0x42c792[_0x1395c0(0x3c0)][_0x5b6365][_0x1395c0(0x5b7)]=_0xd3bc53;if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad))return;if(_0x1395c0(0xa34)in window&&_0x1395c0(0x4dd)in window[_0x1395c0(0xa34)][_0x1395c0(0x57f)]){var _0x4a30ba=getSenders2(_0x5b6365)[_0x1395c0(0x96c)](function(_0xc55775){var _0x3c0bf2=_0x1395c0;return _0xc55775['track']&&_0xc55775[_0x3c0bf2(0x3ba)]['kind']=='video';});if(!_0x4a30ba){log('can\x27t\x20change\x20bitrate;\x20no\x20video\x20sender\x20found');return;}var _0x57c1a3={};if(_0x1395c0(0x18d)in _0x42c792[_0x1395c0(0x3c0)][_0x5b6365]){var _0x44719e=_0x42c792[_0x1395c0(0x442)][_0x1395c0(0x40c)]();if(_0x44719e['length'])var _0x322e24=_0x44719e[0x0][_0x1395c0(0x435)](),_0x5c3c10=_0x322e24[_0x1395c0(0x229)],_0x601a31=_0x322e24[_0x1395c0(0xb1b)];else return;}else{if(_0x42c792[_0x1395c0(0xb58)]&&_0x42c792[_0x1395c0(0xb58)][_0x1395c0(0x3b0)]){var _0x44719e=_0x42c792['videoElement'][_0x1395c0(0x3b0)][_0x1395c0(0x40c)]();if(_0x44719e[_0x1395c0(0x606)])var _0x322e24=_0x44719e[0x0][_0x1395c0(0x435)](),_0x5c3c10=_0x322e24['height'],_0x601a31=_0x322e24[_0x1395c0(0xb1b)];else return;}else return;}var _0x2ac764=0x64*_0x23334c/_0x601a31,_0x5122a3=0x64*_0x24de6e/_0x5c3c10;warnlog(_0x2ac764+_0x1395c0(0xb39)+_0x5122a3);var _0x5ffe24=0x64;if(_0x23334c===null)_0x5ffe24=_0x5122a3;else{if(_0x24de6e===null)_0x5ffe24=_0x2ac764;else _0xd3bc53?_0x2ac764>_0x5122a3?_0x5ffe24=_0x2ac764:_0x5ffe24=_0x5122a3:_0x2ac764<_0x5122a3?_0x5ffe24=_0x2ac764:_0x5ffe24=_0x5122a3;}_0x5ffe24>0x64&&(_0x5ffe24=0x64);log(_0x1395c0(0x61f)+_0x5ffe24),_0x42c792[_0x1395c0(0x3c0)][_0x5b6365]['scaleResolution']=_0x5ffe24;var _0x5c55ac=_0x42c792[_0x1395c0(0x44f)](_0x5b6365);if(_0x5c55ac<=0x0||_0x5c55ac==0x64){var _0x19f0f0=getChromiumVersion();_0x19f0f0>0x50?_0x57c1a3['scaleResolutionDownBy']=null:_0x57c1a3['scaleResolutionDownBy']=0x1;}else _0x57c1a3['scaleResolutionDownBy']=0x64/_0x5c55ac;setEncodings(_0x4a30ba,_0x57c1a3,function(_0x17864b){var _0x501716=_0x1395c0;log(_0x501716(0x734)),pokeIframeAPI('setVideoScale',_0x17864b[0x0],_0x17864b[0x1]),pokeIframeAPI(_0x501716(0x1c7),_0x17864b[0x0],_0x17864b[0x1]),_0x42c792[_0x501716(0x3c0)][_0x17864b[0x1]][_0x501716(0x546)][_0x501716(0x7f0)]=parseInt(_0x17864b[0x0])+'%';},[_0x5c55ac,_0x5b6365]);return;}},_0x42c792[_0x5b10c6(0x16a)]=function(_0x192362=null,_0x8cf0e9=null){var _0x54fe43=_0x5b10c6;_0x8cf0e9&&_0x8cf0e9[_0x54fe43(0x400)]();_0x42c792['chunkedRecorder']&&(_0x42c792['chunkedRecorder'][_0x54fe43(0x3c9)]=!![],log('FORCING\x20A\x20CHUNKED\x20KEY\x20FRAME:\x20'+_0x192362));if(iOS||iPad)return log('iOS\x20devices\x20do\x20not\x20support\x20dynamic\x20bitrates\x20correctly;\x20skipping'),![];else{if(_0x54fe43(0xa34)in window&&'setParameters'in window[_0x54fe43(0xa34)][_0x54fe43(0x57f)]){log(_0x54fe43(0xa39)+_0x192362);if(_0x192362==null){for(_0x192362 in _0x42c792[_0x54fe43(0x3c0)]){_0x42c792['forcePLI'](_0x192362);}return![];}if(!(_0x192362 in _0x42c792['pcs']))return![];_0x42c792[_0x54fe43(0x3c0)][_0x192362][_0x54fe43(0x9e6)]&&(_0x42c792[_0x54fe43(0x3c0)][_0x192362][_0x54fe43(0x85d)]&&(clearTimeout(_0x42c792['pcs'][_0x192362][_0x54fe43(0x85d)]),_0x42c792[_0x54fe43(0x3c0)][_0x192362][_0x54fe43(0x85d)]=null),_0x42c792[_0x54fe43(0x3c0)][_0x192362][_0x54fe43(0x85d)]=setTimeout(function(_0x481a38){var _0x1975df=_0x54fe43;!_0x42c792['pcs'][_0x481a38]?clearInterval(this):_0x42c792[_0x1975df(0x16a)](_0x481a38);},parseInt(_0x42c792['pcs'][_0x192362][_0x54fe43(0x9e6)]),_0x192362));try{var _0x3ebb76=getSenders2(_0x192362)[_0x54fe43(0x96c)](function(_0x4424d7){var _0xed88a4=_0x54fe43;return _0x4424d7[_0xed88a4(0x3ba)]&&_0x4424d7['track']['kind']=='video';});if(!_0x3ebb76)return warnlog('can\x27t\x20change\x20bitrate;\x20no\x20video\x20sender\x20found'),![];var _0x3ea0cf={};return _0x3ea0cf['scaleResolutionDownBy']=0xa,setEncodings(_0x3ebb76,_0x3ea0cf,function(_0x5c85f9){var _0x39a109=_0x54fe43;log(_0x39a109(0xa42)+_0x5c85f9[0x0]);var _0x1f849c=_0x42c792['calculateScale'](_0x5c85f9[0x0]),_0xfa998c={};if(_0x1f849c<=0x0||_0x1f849c==0x64){var _0x158126=getChromiumVersion();_0x158126>0x50?_0xfa998c[_0x39a109(0x5d2)]=null:_0xfa998c[_0x39a109(0x5d2)]=0x1;}else _0xfa998c[_0x39a109(0x5d2)]=0x64/_0x1f849c;setEncodings(_0x5c85f9[0x1],_0xfa998c,function(){log('scaleResolutionDownBy\x20set\x202b!');});},[_0x192362,_0x3ebb76]),!![];}catch(_0x240e70){errorlog(_0x240e70);}}}return![];},_0x42c792[_0x5b10c6(0x3b7)]=function(_0x48ab6b){var _0x3a9383=_0x5b10c6;log(_0x3a9383(0x4a0));var _0x3787e8=getSenders2(_0x48ab6b)[_0x3a9383(0x96c)](function(_0x150724){var _0x3308e8=_0x3a9383;return _0x150724[_0x3308e8(0x3ba)]&&_0x150724[_0x3308e8(0x3ba)][_0x3308e8(0x184)]=='audio';});if(!_0x3787e8)return log(_0x3a9383(0x903)),![];var _0x40cd0a={};try{_0x40cd0a[_0x3a9383(0x50a)]='high',_0x40cd0a[_0x3a9383(0x51c)]=_0x3a9383(0x4fc),_0x40cd0a['adaptivePtime']=!![],setEncodings(_0x3787e8,_0x40cd0a,function(_0x58b7d4){var _0x31f333=_0x3a9383;log(_0x31f333(0x84d)),pokeIframeAPI('prioritize-audio',!![],_0x58b7d4);},_0x48ab6b);}catch(_0x51f23e){errorlog(_0x51f23e);}},_0x42c792[_0x5b10c6(0x9a9)]=function(_0x14d63a,_0x59b69b='maintain-framerate'){var _0x5dc0a8=_0x5b10c6,_0x221c0e=getSenders2(_0x14d63a)[_0x5dc0a8(0x96c)](function(_0x2a29ab){var _0x1d62d3=_0x5dc0a8;return _0x2a29ab['track']&&_0x2a29ab['track']['kind']==_0x1d62d3(0x735);});if(!_0x221c0e)return log('no\x20video\x20track\x20to\x20control'),![];var _0x181bd5={};try{_0x59b69b===!![]?(_0x181bd5['degradationPreference']=_0x5dc0a8(0x2d0),log(_0x5dc0a8(0x955))):(_0x181bd5['degradationPreference']=_0x59b69b,log(_0x5dc0a8(0xa7c)+_0x59b69b)),setEncodings(_0x221c0e,_0x181bd5,(function(){log('done\x20setting\x20degrad');}()));}catch(_0x2d8022){errorlog(_0x2d8022);}},_0x42c792[_0x5b10c6(0xb0e)]=function(_0x434bbf,_0x203ae4,_0x3edf0c=![]){var _0x352f06=_0x5b10c6;log('session.limitMaxBandwidth\x20running:\x20'+_0x434bbf+_0x352f06(0x91f)+_0x3edf0c);if(_0x42c792['maxBandwidth']===![])return;_0x203ae4['maxBandwidth']=parseInt(_0x42c792['maxBandwidth']/0x64*_0x434bbf),_0x3edf0c?_0x42c792['limitMeshcastBitrate'](null):_0x42c792['limitBitrate'](_0x203ae4[_0x352f06(0xac6)],null);},_0x42c792[_0x5b10c6(0x55e)]=function(_0x54bae8,_0x2db039=0x7d00,_0xeb1db=0x3e8){var _0x137a4e=_0x5b10c6;log(_0x137a4e(0x6b6));var _0x1f1120=getSenders2(_0x54bae8)[_0x137a4e(0x96c)](function(_0x34cff5){var _0x427977=_0x137a4e;return _0x34cff5[_0x427977(0x3ba)]&&_0x34cff5[_0x427977(0x3ba)][_0x427977(0x184)]=='audio';});if(!_0x1f1120)return log(_0x137a4e(0x903)),![];var _0x4d88ad={};_0x4d88ad[_0x137a4e(0x94d)]=_0x2db039,setEncodings(_0x1f1120,_0x4d88ad,function(_0x290941){var _0x1d5671=_0x137a4e;pokeIframeAPI(_0x1d5671(0x60b),_0x290941[0x0],_0x290941[0x1]),pokeIframeAPI(_0x1d5671(0xa5e),_0x290941[0x0],_0x290941[0x1]),_0x290941[0x2]>0x0&&setTimeout(function(){try{if(_0x290941[0x1]in _0x42c792['pcs'])var _0x2bf90b=getSenders2(_0x290941[0x1])['find'](function(_0x41bf69){var _0x10d95e=_0x4b6a;return _0x41bf69[_0x10d95e(0x3ba)]&&_0x41bf69[_0x10d95e(0x3ba)][_0x10d95e(0x184)]==_0x10d95e(0x864);});else return![];if(!_0x2bf90b)return log('no\x20audio\x20track\x20to\x20poke'),![];var _0x28cd16={};_0x28cd16['maxBitrate']=null,setEncodings(_0x2bf90b,_0x28cd16,function(){log('done\x20clearing\x20audio');});}catch(_0x1050d5){errorlog(_0x1050d5);}},_0x290941[0x2],_0x290941[0x1]);},[_0x2db039,_0x54bae8,_0xeb1db]);},_0x42c792[_0x5b10c6(0x358)]=function(_0x332aeb,_0x5239af,_0x1655f0){var _0x3728e=_0x5b10c6;pokeIframeAPI(_0x3728e(0x5d3),_0x332aeb,_0x1655f0);if(_0x42c792[_0x3728e(0x3dd)])return generateHash(_0x332aeb+_0x42c792[_0x3728e(0x3dd)]+_0x42c792['salt'],0x10)[_0x3728e(0x272)](function(_0x1e595a){var _0x59dfa7=_0x3728e,_0x110ee4={};_0x5239af[_0x59dfa7(0xa28)]&&(_0x5239af[_0x59dfa7(0xaca)]=_0x1e595a);if(_0x42c792['director']&&_0x42c792[_0x59dfa7(0x95b)])_0x110ee4[_0x59dfa7(0x15a)]=_0x1655f0,_0x110ee4[_0x59dfa7(0x273)]=_0x1e595a,_0x110ee4[_0x59dfa7(0x6fa)]=_0x5239af,_0x42c792[_0x59dfa7(0x380)](_0x110ee4,_0x42c792[_0x59dfa7(0x95b)]),log(_0x110ee4);else{if(_0x5239af[_0x59dfa7(0xa28)])_0x110ee4['request']=_0x59dfa7(0x15a),_0x110ee4[_0x59dfa7(0x6fa)]=_0x5239af,log(_0x110ee4),_0x42c792[_0x59dfa7(0x380)](_0x110ee4,_0x1655f0,function(){var _0x6b28e9=_0x59dfa7,_0x351670={};_0x351670[_0x6b28e9(0x8e8)]=_0x6b28e9(0x15a),_0x351670['roomid']=_0x1e595a,_0x351670[_0x6b28e9(0x2e0)]=_0x1655f0,_0x42c792[_0x6b28e9(0x3b4)](_0x351670);}),log(_0x110ee4);else{if(_0x59dfa7(0x3ab)in _0x5239af)_0x110ee4[_0x59dfa7(0x8e8)]=_0x59dfa7(0x15a),_0x110ee4[_0x59dfa7(0x6fa)]=_0x5239af,delete _0x110ee4[_0x59dfa7(0x6fa)][_0x59dfa7(0x273)],delete _0x110ee4[_0x59dfa7(0x6fa)][_0x59dfa7(0xaca)],log(_0x110ee4),_0x42c792['sendRequest'](_0x110ee4,_0x1655f0,function(){var _0x5a2dd9=_0x59dfa7,_0x228c93={};_0x228c93[_0x5a2dd9(0x8e8)]=_0x5a2dd9(0x15a),_0x228c93[_0x5a2dd9(0x273)]=_0x1e595a,_0x228c93['target']=_0x1655f0,_0x42c792['sendMsg'](_0x228c93);}),log(_0x110ee4);else Object[_0x59dfa7(0x3fa)](_0x5239af)[_0x59dfa7(0x606)]?(_0x110ee4[_0x59dfa7(0x8e8)]=_0x59dfa7(0x15a),_0x110ee4['transferSettings']=_0x5239af,delete _0x110ee4[_0x59dfa7(0x6fa)]['roomid'],delete _0x110ee4[_0x59dfa7(0x6fa)][_0x59dfa7(0xaca)],log(_0x110ee4),_0x42c792[_0x59dfa7(0x380)](_0x110ee4,_0x1655f0,function(){var _0x2bf856=_0x59dfa7,_0x34c4dd={};_0x34c4dd[_0x2bf856(0x8e8)]=_0x2bf856(0x15a),_0x34c4dd[_0x2bf856(0x273)]=_0x1e595a,_0x34c4dd[_0x2bf856(0x2e0)]=_0x1655f0,_0x42c792[_0x2bf856(0x3b4)](_0x34c4dd);}),log(_0x110ee4)):(_0x110ee4[_0x59dfa7(0x8e8)]=_0x59dfa7(0x15a),_0x110ee4[_0x59dfa7(0x273)]=_0x1e595a,_0x110ee4[_0x59dfa7(0x2e0)]=_0x1655f0,_0x42c792[_0x59dfa7(0x3b4)](_0x110ee4));}}})[_0x3728e(0xaef)](errorlog);else{_0x5239af[_0x3728e(0xa28)]&&(_0x5239af[_0x3728e(0xaca)]=_0x332aeb);var _0x368c0e={};if(_0x42c792['director']&&_0x42c792[_0x3728e(0x95b)])_0x368c0e[_0x3728e(0x15a)]=_0x1655f0,_0x368c0e[_0x3728e(0x273)]=_0x332aeb,_0x368c0e[_0x3728e(0x6fa)]=_0x5239af,_0x42c792[_0x3728e(0x380)](_0x368c0e,_0x42c792[_0x3728e(0x95b)]),log(_0x368c0e);else{if(_0x5239af['updateurl'])_0x368c0e[_0x3728e(0x8e8)]='migrate',_0x368c0e[_0x3728e(0x6fa)]=_0x5239af,_0x42c792[_0x3728e(0x380)](_0x368c0e,_0x1655f0,function(){var _0x3a2bed=_0x3728e,_0x4545af={};_0x4545af[_0x3a2bed(0x8e8)]=_0x3a2bed(0x15a),_0x4545af[_0x3a2bed(0x273)]=_0x332aeb,_0x4545af['target']=_0x1655f0,_0x42c792[_0x3a2bed(0x3b4)](_0x4545af);});else{if(_0x3728e(0x3ab)in _0x5239af)_0x368c0e[_0x3728e(0x8e8)]=_0x3728e(0x15a),_0x368c0e[_0x3728e(0x6fa)]=_0x5239af,delete _0x368c0e['transferSettings'][_0x3728e(0x273)],delete _0x368c0e[_0x3728e(0x6fa)][_0x3728e(0xaca)],_0x42c792[_0x3728e(0x380)](_0x368c0e,_0x1655f0,function(){var _0x4669e9=_0x3728e,_0x60dcae={};_0x60dcae[_0x4669e9(0x8e8)]=_0x4669e9(0x15a),_0x60dcae[_0x4669e9(0x273)]=_0x332aeb,_0x60dcae[_0x4669e9(0x2e0)]=_0x1655f0,_0x42c792[_0x4669e9(0x3b4)](_0x60dcae);});else Object[_0x3728e(0x3fa)](_0x5239af)[_0x3728e(0x606)]?(_0x368c0e[_0x3728e(0x8e8)]=_0x3728e(0x15a),_0x368c0e[_0x3728e(0x6fa)]=_0x5239af,delete _0x368c0e[_0x3728e(0x6fa)]['roomid'],delete _0x368c0e[_0x3728e(0x6fa)][_0x3728e(0xaca)],log(_0x368c0e),_0x42c792[_0x3728e(0x380)](_0x368c0e,_0x1655f0,function(){var _0xd7ad27=_0x3728e,_0x2ed343={};_0x2ed343[_0xd7ad27(0x8e8)]=_0xd7ad27(0x15a),_0x2ed343[_0xd7ad27(0x273)]=_0x332aeb,_0x2ed343[_0xd7ad27(0x2e0)]=_0x1655f0,_0x42c792[_0xd7ad27(0x3b4)](_0x2ed343);}),log(_0x368c0e)):(_0x368c0e[_0x3728e(0x8e8)]=_0x3728e(0x15a),_0x368c0e['roomid']=_0x332aeb,_0x368c0e[_0x3728e(0x2e0)]=_0x1655f0,_0x42c792[_0x3728e(0x3b4)](_0x368c0e));}}}},_0x42c792[_0x5b10c6(0x4d8)]=async function(_0x300134,_0x1ae76f){var _0x1ca19f=_0x5b10c6;_0x1ae76f=parseInt(_0x1ae76f);try{var _0x3154dc=getSenders2(_0x300134)[_0x1ca19f(0x96c)](function(_0x5cccca){var _0x5c2904=_0x1ca19f;return _0x5cccca[_0x5c2904(0x3ba)]&&_0x5cccca[_0x5c2904(0x3ba)][_0x5c2904(0x184)]==_0x5c2904(0x864);});if(!_0x3154dc){log(_0x1ca19f(0xaf5));return;}var _0x4f094e={};if(_0x1ae76f<0x0){_0x4f094e[_0x1ca19f(0x829)]=!![];if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad)){_0x1ae76f=0x20;if(_0x42c792[_0x1ca19f(0x3c0)][_0x300134][_0x1ca19f(0x60b)]!==![])_0x1ae76f=_0x42c792[_0x1ca19f(0x3c0)][_0x300134]['setAudioBitrate'];else _0x42c792[_0x1ca19f(0x8bd)]&&(_0x1ae76f=_0x42c792[_0x1ca19f(0x8bd)]);_0x4f094e['maxBitrate']=_0x1ae76f*0x400;}else _0x42c792[_0x1ca19f(0x3c0)][_0x300134]['setAudioBitrate']!==![]?(_0x1ae76f=_0x42c792[_0x1ca19f(0x3c0)][_0x300134][_0x1ca19f(0x60b)],_0x4f094e[_0x1ca19f(0x94d)]=_0x1ae76f*0x400):_0x4f094e[_0x1ca19f(0x94d)]=null;}else _0x1ae76f===0x0?_0x4f094e[_0x1ca19f(0x829)]=![]:(_0x4f094e[_0x1ca19f(0x829)]=!![],_0x4f094e[_0x1ca19f(0x94d)]=_0x1ae76f*0x400);_0x42c792[_0x1ca19f(0x3c0)][_0x300134][_0x1ca19f(0x600)]&&(_0x4f094e[_0x1ca19f(0x829)]=![]),setEncodings(_0x3154dc,_0x4f094e,function(_0x2f65f9){var _0x2cd584=_0x1ca19f;pokeIframeAPI(_0x2cd584(0x60b),_0x2f65f9[0x0],_0x2f65f9[0x1]),pokeIframeAPI(_0x2cd584(0xa5e),_0x2f65f9[0x0],_0x2f65f9[0x1]),log('audio\x20bandwidth\x20set\x20f!');},[_0x1ae76f,_0x300134]);}catch(_0x581d16){errorlog(_0x581d16),log(_0x300134),log(_0x42c792[_0x1ca19f(0x3c0)][_0x300134]);}},_0x42c792[_0x5b10c6(0xa55)]=function(_0x4b539a){var _0x13387a=_0x5b10c6;if(_0x42c792[_0x13387a(0x343)]&&_0x42c792[_0x13387a(0x3c0)][_0x4b539a][_0x13387a(0x395)]===!![])_0x42c792[_0x13387a(0x6f3)](_0x4b539a,0x0),_0x42c792['pcs'][_0x4b539a][_0x13387a(0x978)]===0x0&&(_0x42c792['pcs'][_0x4b539a][_0x13387a(0x19a)][_0x13387a(0xb20)]===![]?_0x42c792[_0x13387a(0x4d8)](_0x4b539a,0x0):_0x42c792[_0x13387a(0x4d8)](_0x4b539a,-0x1));else{if(_0x42c792['pcs'][_0x4b539a]&&_0x42c792[_0x13387a(0x3c0)][_0x4b539a]['optimizedBitrate']!==![]){if(_0x42c792[_0x13387a(0x3c0)][_0x4b539a]['obsState'][_0x13387a(0xb20)]===![]){var _0x2c4e35=_0x42c792[_0x13387a(0x3c0)][_0x4b539a][_0x13387a(0x978)];_0x42c792[_0x13387a(0x3c0)][_0x4b539a][_0x13387a(0xaff)]&&_0x42c792[_0x13387a(0x3c0)][_0x4b539a][_0x13387a(0xaff)]>0x0&&(_0x42c792[_0x13387a(0x3c0)][_0x4b539a]['savedBitrate']<_0x42c792['pcs'][_0x4b539a][_0x13387a(0x978)]&&(_0x2c4e35=_0x42c792['pcs'][_0x4b539a]['savedBitrate'])),_0x42c792[_0x13387a(0x6f3)](_0x4b539a,_0x2c4e35),_0x42c792[_0x13387a(0x3c0)][_0x4b539a]['optimizedBitrate']===0x0&&_0x42c792[_0x13387a(0x4d8)](_0x4b539a,0x0);}else _0x42c792[_0x13387a(0x3c0)][_0x4b539a]['optimizedBitrate']===0x0&&(_0x42c792['limitAudioBitrate'](_0x4b539a,-0x1),_0x42c792[_0x13387a(0xa61)](),_0x42c792['maxvideobitrate']&&_0x42c792['limitBitrate'](_0x4b539a,null));}else _0x42c792[_0x13387a(0xa61)](),_0x42c792[_0x13387a(0x64b)]&&_0x42c792[_0x13387a(0x6f3)](_0x4b539a,null);}},_0x42c792['limitTotalBitrateGuests']=function(_0x3dd31c=0x0,_0x4c899f=![]){var _0x6d9654=_0x5b10c6;if(!_0x42c792['limitTotalBitrate'])return _0x3dd31c;if(!_0x42c792[_0x6d9654(0x273)]||_0x42c792[_0x6d9654(0x2ea)]!==![])return log(_0x6d9654(0x802)),_0x42c792[_0x6d9654(0xa82)](_0x3dd31c,_0x4c899f),_0x3dd31c;if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd)return _0x3dd31c;var _0x4e6c4a=_0x3dd31c;if(_0x4c899f===![])_0x4e6c4a=0x0;else _0x4e6c4a<0x0&&(_0x4e6c4a=_0x42c792[_0x6d9654(0x3c0)][_0x4c899f][_0x6d9654(0x210)]||Math[_0x6d9654(0x25d)](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792['pcs'][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4);var _0x5cd59f=0x0;for(var _0x38e382 in _0x42c792[_0x6d9654(0x3c0)]){if(_0x4c899f===_0x38e382)continue;if(!_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x639)])continue;try{var _0x51cd0f=getSenders2(_0x38e382)[_0x6d9654(0x96c)](function(_0x3cf001){var _0x1d8aed=_0x6d9654;return _0x3cf001[_0x1d8aed(0x3ba)]&&_0x3cf001[_0x1d8aed(0x3ba)]['kind']==_0x1d8aed(0x735);});if(!_0x51cd0f)continue;var _0x12e043=_0x51cd0f[_0x6d9654(0x3b6)]();if(!_0x12e043[_0x6d9654(0x20e)]||_0x12e043[_0x6d9654(0x20e)][_0x6d9654(0x606)]==0x0){_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]<0x0?_0x4e6c4a+=Math[_0x6d9654(0x25d)](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4:_0x4e6c4a+=_0x42c792[_0x6d9654(0x3c0)][_0x38e382]['setBitrate']||Math['min'](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4;warnlog(_0x4e6c4a),_0x5cd59f+=0x1;continue;}if(_0x12e043['encodings'][0x0][_0x6d9654(0x829)]==![])continue;if(_0x12e043[_0x6d9654(0x20e)][0x0][_0x6d9654(0x94d)])_0x6d9654(0x28c)in _0x42c792[_0x6d9654(0x3c0)][_0x38e382]?_0x4e6c4a+=parseInt(_0x42c792['pcs'][_0x38e382][_0x6d9654(0x28c)]):_0x4e6c4a+=parseInt(_0x12e043['encodings'][0x0][_0x6d9654(0x94d)])/0x400;else _0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]<0x0?_0x4e6c4a+=Math[_0x6d9654(0x25d)](_0x42c792['outboundVideoBitrate']||0x0||(_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4:(_0x4e6c4a+=_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]||Math[_0x6d9654(0x25d)](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792['pcs'][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4,warnlog(_0x4e6c4a));_0x5cd59f+=0x1;}catch(_0x58aef5){errorlog(_0x58aef5);}}if(!_0x4e6c4a)return _0x4e6c4a;warnlog(_0x6d9654(0x408)+_0x4e6c4a);var _0x8ca1fa=parseFloat(_0x4e6c4a/_0x42c792[_0x6d9654(0x710)]);_0x8ca1fa<0x1&&(_0x8ca1fa=0x1);for(var _0x38e382 in _0x42c792[_0x6d9654(0x3c0)]){if(_0x4c899f===_0x38e382)continue;if(!_0x42c792['pcs'][_0x38e382][_0x6d9654(0x639)])continue;try{var _0x51cd0f=getSenders2(_0x38e382)[_0x6d9654(0x96c)](function(_0x5460a3){var _0x3a77ae=_0x6d9654;return _0x5460a3['track']&&_0x5460a3[_0x3a77ae(0x3ba)]['kind']==_0x3a77ae(0x735);});if(!_0x51cd0f)continue;var _0x12e043=_0x51cd0f[_0x6d9654(0x3b6)]();if(!_0x12e043[_0x6d9654(0x20e)]||_0x12e043['encodings'][_0x6d9654(0x606)]==0x0){if(_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]<0x0)var _0x59b8a0=Math['min'](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792[_0x6d9654(0x3c0)][_0x38e382]['maxBandwidth']||0x0))||0x9c4;else var _0x59b8a0=_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]||Math[_0x6d9654(0x25d)](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792['pcs'][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4;var _0x19ef5b=parseInt(_0x59b8a0/_0x8ca1fa);_0x42c792[_0x6d9654(0x6f3)](_0x38e382,_0x19ef5b,!![]);continue;}if(_0x12e043[_0x6d9654(0x20e)][0x0][_0x6d9654(0x829)]==![])continue;if(_0x12e043[_0x6d9654(0x20e)][0x0][_0x6d9654(0x94d)]){if(_0x6d9654(0x28c)in _0x42c792[_0x6d9654(0x3c0)][_0x38e382])var _0x59b8a0=parseInt(_0x42c792[_0x6d9654(0x3c0)][_0x38e382]['preLimitedBitrate']);else var _0x59b8a0=parseInt(parseInt(_0x12e043['encodings'][0x0][_0x6d9654(0x94d)])/0x400);var _0x19ef5b=parseInt(_0x59b8a0/_0x8ca1fa);_0x42c792[_0x6d9654(0x6f3)](_0x38e382,_0x19ef5b,!![]);}else{if(_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]<0x0)var _0x59b8a0=Math[_0x6d9654(0x25d)](_0x42c792[_0x6d9654(0x9ad)]||0x0||(_0x42c792['pcs'][_0x38e382][_0x6d9654(0x7ec)]||0x0))||0x9c4;else var _0x59b8a0=_0x42c792[_0x6d9654(0x3c0)][_0x38e382][_0x6d9654(0x210)]||Math[_0x6d9654(0x25d)](_0x42c792['outboundVideoBitrate']||0x0||(_0x42c792[_0x6d9654(0x3c0)][_0x38e382]['maxBandwidth']||0x0))||0x9c4;var _0x19ef5b=parseInt(_0x59b8a0/_0x8ca1fa);_0x42c792[_0x6d9654(0x6f3)](_0x38e382,_0x19ef5b,!![]);}}catch(_0x320a75){errorlog(_0x320a75);}}return parseInt(_0x3dd31c/_0x8ca1fa);},_0x42c792['limitTotalBitrateAll']=function(_0x4c1ed1=0x0,_0x4f5d9d=![]){var _0x5cddef=_0x5b10c6;if(!_0x42c792[_0x5cddef(0x710)])return _0x4c1ed1;if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd)return _0x4c1ed1;var _0x409097=_0x4c1ed1;if(_0x4f5d9d===![])_0x409097=0x0;else _0x409097<0x0&&(_0x409097=_0x42c792[_0x5cddef(0x3c0)][_0x4f5d9d][_0x5cddef(0x210)]||Math['min'](_0x42c792[_0x5cddef(0x9ad)]||0x0||(_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4);var _0x494a81=0x0;for(var _0x529abe in _0x42c792['pcs']){if(_0x4f5d9d===_0x529abe)continue;try{var _0x2bee94=getSenders2(_0x529abe)[_0x5cddef(0x96c)](function(_0x4ae5b0){var _0x1d3f0e=_0x5cddef;return _0x4ae5b0['track']&&_0x4ae5b0['track'][_0x1d3f0e(0x184)]==_0x1d3f0e(0x735);});if(!_0x2bee94)continue;var _0xae7b81=_0x2bee94[_0x5cddef(0x3b6)]();if(!_0xae7b81['encodings']||_0xae7b81[_0x5cddef(0x20e)][_0x5cddef(0x606)]==0x0){_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x210)]<0x0?_0x409097+=Math['min'](_0x42c792[_0x5cddef(0x9ad)]||0x0||(_0x42c792['pcs'][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4:_0x409097+=_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x210)]||Math[_0x5cddef(0x25d)](_0x42c792[_0x5cddef(0x9ad)]||0x0||(_0x42c792['pcs'][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4;warnlog(_0x409097),_0x494a81+=0x1;continue;}if(_0xae7b81[_0x5cddef(0x20e)][0x0]['active']==![])continue;if(_0xae7b81['encodings'][0x0][_0x5cddef(0x94d)])_0x5cddef(0x28c)in _0x42c792['pcs'][_0x529abe]?_0x409097+=parseInt(_0x42c792[_0x5cddef(0x3c0)][_0x529abe]['preLimitedBitrate']):_0x409097+=parseInt(_0xae7b81['encodings'][0x0][_0x5cddef(0x94d)])/0x400;else _0x42c792[_0x5cddef(0x3c0)][_0x529abe]['setBitrate']<0x0?_0x409097+=Math[_0x5cddef(0x25d)](_0x42c792[_0x5cddef(0x9ad)]||0x0||(_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4:(_0x409097+=_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x210)]||Math[_0x5cddef(0x25d)](_0x42c792['outboundVideoBitrate']||0x0||(_0x42c792['pcs'][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4,warnlog(_0x409097));_0x494a81+=0x1;}catch(_0x4c9c9e){errorlog(_0x4c9c9e);}}if(!_0x409097)return _0x409097;warnlog(_0x5cddef(0x408)+_0x409097);var _0x3b3f9c=parseFloat(_0x409097/_0x42c792[_0x5cddef(0x710)]);_0x3b3f9c<0x1&&(_0x3b3f9c=0x1);for(var _0x529abe in _0x42c792['pcs']){if(_0x4f5d9d===_0x529abe)continue;try{var _0x2bee94=getSenders2(_0x529abe)['find'](function(_0xc13bbe){var _0x5c125a=_0x5cddef;return _0xc13bbe[_0x5c125a(0x3ba)]&&_0xc13bbe[_0x5c125a(0x3ba)]['kind']=='video';});if(!_0x2bee94)continue;var _0xae7b81=_0x2bee94[_0x5cddef(0x3b6)]();if(!_0xae7b81[_0x5cddef(0x20e)]||_0xae7b81[_0x5cddef(0x20e)][_0x5cddef(0x606)]==0x0){if(_0x42c792['pcs'][_0x529abe][_0x5cddef(0x210)]<0x0)var _0x37e565=Math['min'](_0x42c792[_0x5cddef(0x9ad)]||0x0||(_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4;else var _0x37e565=_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x210)]||Math[_0x5cddef(0x25d)](_0x42c792[_0x5cddef(0x9ad)]||0x0||(_0x42c792[_0x5cddef(0x3c0)][_0x529abe]['maxBandwidth']||0x0))||0x9c4;var _0xe1b0b8=parseInt(_0x37e565/_0x3b3f9c);_0x42c792[_0x5cddef(0x6f3)](_0x529abe,_0xe1b0b8,!![]);continue;}if(_0xae7b81['encodings'][0x0][_0x5cddef(0x829)]==![])continue;if(_0xae7b81['encodings'][0x0][_0x5cddef(0x94d)]){if(_0x5cddef(0x28c)in _0x42c792[_0x5cddef(0x3c0)][_0x529abe])var _0x37e565=parseInt(_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x28c)]);else var _0x37e565=parseInt(parseInt(_0xae7b81['encodings'][0x0]['maxBitrate'])/0x400);var _0xe1b0b8=parseInt(_0x37e565/_0x3b3f9c);_0x42c792[_0x5cddef(0x6f3)](_0x529abe,_0xe1b0b8,!![]);}else{if(_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x210)]<0x0)var _0x37e565=Math['min'](_0x42c792['outboundVideoBitrate']||0x0||(_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x7ec)]||0x0))||0x9c4;else var _0x37e565=_0x42c792[_0x5cddef(0x3c0)][_0x529abe][_0x5cddef(0x210)]||Math[_0x5cddef(0x25d)](_0x42c792['outboundVideoBitrate']||0x0||(_0x42c792[_0x5cddef(0x3c0)][_0x529abe]['maxBandwidth']||0x0))||0x9c4;var _0xe1b0b8=parseInt(_0x37e565/_0x3b3f9c);_0x42c792[_0x5cddef(0x6f3)](_0x529abe,_0xe1b0b8,!![]);}}catch(_0x215d27){errorlog(_0x215d27);}}return parseInt(_0x4c1ed1/_0x3b3f9c);},_0x42c792[_0x5b10c6(0xa86)]=function(_0x2da46c,_0x4aa22c=![]){var _0x6708e6=_0x5b10c6,_0xeb74dc={};_0xeb74dc[_0x6708e6(0x90a)]={},_0xeb74dc[_0x6708e6(0x90a)]['addCoDirector']=[_0x2da46c],_0x42c792['sendPeers'](_0xeb74dc,_0x4aa22c),pokeIframeAPI(_0x6708e6(0x677),_0x2da46c);},_0x42c792[_0x5b10c6(0x970)]=function(_0x41cf40=null){var _0x17288b=_0x5b10c6;if(!_0x42c792[_0x17288b(0x176)])return;_0x42c792['whipOut']['bitrateTimeout']&&(clearInterval(_0x42c792[_0x17288b(0x176)][_0x17288b(0x985)]),_0x42c792['whipOut'][_0x17288b(0x985)]=null);if(_0x41cf40===null){if(_0x42c792[_0x17288b(0x176)][_0x17288b(0xaff)]===![])return;_0x41cf40=_0x42c792[_0x17288b(0x176)]['savedBitrate'];}_0x41cf40=parseInt(_0x41cf40);if(_0x42c792['whipOut'][_0x17288b(0x210)]&&_0x41cf40>_0x42c792['whipOut']['setBitrate'])_0x41cf40=_0x42c792[_0x17288b(0x176)][_0x17288b(0x210)];else _0x42c792[_0x17288b(0x176)][_0x17288b(0x210)]===![]&&(_0x41cf40<0x0&&(_0x42c792[_0x17288b(0x9ad)]?_0x41cf40=_0x42c792['outboundVideoBitrate']:_0x41cf40=0x9c4));_0x42c792['maxvideobitrate']&&(_0x41cf40>_0x42c792[_0x17288b(0x64b)]&&(_0x41cf40=_0x42c792['maxvideobitrate']));_0x42c792[_0x17288b(0x176)][_0x17288b(0xaff)]=_0x41cf40;_0x42c792[_0x17288b(0x176)][_0x17288b(0x978)]!==![]&&(_0x42c792[_0x17288b(0x176)][_0x17288b(0x19a)][_0x17288b(0xb20)]===![]&&(_0x41cf40>_0x42c792[_0x17288b(0x176)]['optimizedBitrate']&&(_0x42c792[_0x17288b(0x176)]['savedBitrate']=_0x41cf40,_0x41cf40=parseInt(_0x42c792['whipOut'][_0x17288b(0x978)])||0x0)));if(_0x42c792[_0x17288b(0x176)]['maxBandwidth']!==null){if(_0x42c792[_0x17288b(0x176)][_0x17288b(0x7ec)]<_0x41cf40)_0x41cf40=_0x42c792[_0x17288b(0x176)][_0x17288b(0x7ec)],_0x42c792[_0x17288b(0x176)]['stats'][_0x17288b(0x7c6)]=_0x41cf40,warnlog(_0x17288b(0x671)+_0x41cf40+'-kbps');else _0x42c792[_0x17288b(0x176)][_0x17288b(0x546)]&&(_0x42c792['whipOut'][_0x17288b(0x546)]['max_bandwidth_capped_kbps']=![]);}else'max_bandwidth_capped_kbps'in _0x42c792['whipOut'][_0x17288b(0x546)]&&(_0x42c792[_0x17288b(0x176)][_0x17288b(0x546)][_0x17288b(0x7c6)]=![]);if(_0x41cf40===0x0){var _0x5d3191=Date[_0x17288b(0x5ee)]()-_0x42c792['whipOut'][_0x17288b(0x318)];_0x5d3191<_0x42c792['rampUpTime']&&(_0x41cf40=_0x42c792[_0x17288b(0x8a6)],log(_0x17288b(0x8a2)+(Date[_0x17288b(0x5ee)]()-_0x42c792[_0x17288b(0x176)][_0x17288b(0x318)])),_0x42c792['whipOut']['bitrateTimeout']=setTimeout(function(){var _0x5a6159=_0x17288b;try{warnlog('stopping\x20some\x20preload\x20bitrate\x20'+(Date[_0x5a6159(0x5ee)]()-_0x42c792[_0x5a6159(0x176)]['startTime'])),_0x42c792['limitMeshcastBitrate'](null);}catch(_0x398afd){}},_0x42c792[_0x17288b(0x4d7)]-_0x5d3191+0x5));}try{if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd){log(_0x17288b(0x6dd));var _0x167606=_0x42c792['whipOut'][_0x17288b(0xabe)]()[_0x17288b(0x96c)](function(_0x3dac41){var _0x458e59=_0x17288b;return _0x3dac41['track']&&_0x3dac41[_0x458e59(0x3ba)][_0x458e59(0x184)]==_0x458e59(0x735);});if(!_0x167606){warnlog(_0x17288b(0x64e));return;}var _0x7afdbc={};if(_0x41cf40<0x0)_0x7afdbc['active']=!![],_0x41cf40=0x9c4,_0x42c792['bitrate']&&(_0x41cf40=_0x42c792[_0x17288b(0x4bf)]),_0x42c792[_0x17288b(0x64b)]&&(_0x41cf40>_0x42c792[_0x17288b(0x64b)]&&(_0x41cf40=_0x42c792[_0x17288b(0x64b)])),_0x7afdbc['maxBitrate']=_0x41cf40*0x400;else _0x41cf40===0x0?_0x7afdbc[_0x17288b(0x829)]=![]:(_0x7afdbc['active']=!![],_0x7afdbc[_0x17288b(0x94d)]=_0x41cf40*0x400);setEncodings(_0x167606,_0x7afdbc,function(_0x1b447a){var _0x2a4ee6=_0x17288b;pokeIframeAPI(_0x2a4ee6(0xb2c),_0x1b447a),log(_0x2a4ee6(0x4e7)+_0x1b447a);},_0x41cf40);return;}else{if(_0x17288b(0xa34)in window&&_0x17288b(0x4dd)in window[_0x17288b(0xa34)][_0x17288b(0x57f)]){var _0x167606=_0x42c792['whipOut'][_0x17288b(0xabe)]()[_0x17288b(0x96c)](function(_0x1549bd){var _0x54adb7=_0x17288b;return _0x1549bd['track']&&_0x1549bd['track'][_0x54adb7(0x184)]==_0x54adb7(0x735);});if(!_0x167606){log(_0x17288b(0x64e));return;}var _0x7afdbc={};if(_0x41cf40<0x0)_0x7afdbc[_0x17288b(0x829)]==![]&&(_0x7afdbc['active']=!![]),_0x7afdbc[_0x17288b(0x94d)]=null;else _0x41cf40===0x0?(_0x7afdbc['active']=![],Firefox&&(_0x7afdbc['maxBitrate']=0x1)):(_0x7afdbc[_0x17288b(0x829)]=!![],_0x7afdbc['maxBitrate']=_0x41cf40*0x400);iPad||iOS||Firefox?_0x42c792[_0x17288b(0x176)][_0x17288b(0x89f)]?(clearInterval(_0x42c792[_0x17288b(0x176)][_0x17288b(0x89f)]),_0x42c792[_0x17288b(0x176)][_0x17288b(0x89f)]=setTimeout(function(){var _0x3bdbc8=_0x17288b;log('bitrate\x20timeout;\x20ios/firefox\x20specific:\x20'+_0x41cf40),_0x42c792[_0x3bdbc8(0x176)][_0x3bdbc8(0x89f)]=![],_0x42c792[_0x3bdbc8(0x970)](null);},0x1f4)):(_0x42c792['whipOut'][_0x17288b(0x89f)]=setTimeout(function(){var _0x16e8dc=_0x17288b;_0x42c792[_0x16e8dc(0x176)][_0x16e8dc(0x89f)]=![];},0x1f4),setEncodings(_0x167606,_0x7afdbc,function(_0x19fb66){var _0x2d5099=_0x17288b;log(_0x2d5099(0x368)+_0x19fb66),pokeIframeAPI(_0x2d5099(0xb2c),_0x19fb66);},_0x41cf40)):setEncodings(_0x167606,_0x7afdbc,function(_0x10480f){var _0x1ada5d=_0x17288b;log(_0x1ada5d(0x824)+_0x10480f),pokeIframeAPI(_0x1ada5d(0xb2c),_0x10480f);},_0x41cf40);return;}else warnlog('BROWER\x20DID\x20NOT\x20SUPPORT\x20LIMIT\x20BITRATE');}}catch(_0x7d24e7){errorlog(_0x7d24e7);}},_0x42c792[_0x5b10c6(0x74d)]=function(_0x20e6a0,_0x5f5983){var _0x3b0e71=_0x5b10c6;_0x5f5983===![]?(_0x42c792[_0x3b0e71(0x3c0)][_0x20e6a0][_0x3b0e71(0x210)]=![],_0x42c792[_0x3b0e71(0x6f3)](_0x20e6a0,-0x1)):(_0x5f5983=parseInt(_0x5f5983)||-0x1,_0x5f5983>=0x0&&(_0x42c792['pcs'][_0x20e6a0][_0x3b0e71(0x210)]=_0x5f5983,_0x42c792[_0x3b0e71(0x6f3)](_0x20e6a0,_0x5f5983)));},_0x42c792[_0x5b10c6(0x1f4)]=function(_0x1b62e7,_0x56f072){var _0x18100c=_0x5b10c6;_0x56f072===![]?(_0x42c792[_0x18100c(0x3c0)][_0x1b62e7][_0x18100c(0x60b)]=![],_0x42c792['limitAudioBitrate'](_0x1b62e7,-0x1)):(_0x56f072=parseInt(_0x56f072)||-0x1,_0x56f072>=0x0&&(_0x42c792[_0x18100c(0x3c0)][_0x1b62e7][_0x18100c(0x60b)]=_0x56f072,_0x42c792[_0x18100c(0x4d8)](_0x1b62e7,_0x56f072)));},_0x42c792['limitBitrate']=function(_0x4f6145,_0x10a63b=null,_0x526009=![]){var _0x2933e8=_0x5b10c6;log('Bitrate\x20request:\x20'+_0x10a63b);if(!(_0x4f6145 in _0x42c792[_0x2933e8(0x3c0)]))return;_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x985)]&&(clearInterval(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145]['bitrateTimeout']),_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x985)]=null);var _0x53986b=!![];if(_0x10a63b===null){if(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0xaff)]===![]){if(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x7ec)]===null)return;else _0x10a63b=_0x42c792['pcs'][_0x4f6145]['maxBandwidth'],_0x53986b=![];}else _0x10a63b=_0x42c792['pcs'][_0x4f6145][_0x2933e8(0xaff)];}_0x10a63b=parseInt(_0x10a63b);if(_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x210)]&&_0x10a63b>_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x210)])_0x10a63b=_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x210)];else _0x10a63b<0x0&&(_0x10a63b=_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x210)]||_0x42c792[_0x2933e8(0x9ad)]||0x9c4);let _0x2c9cf9=_0x42c792['maxvideobitrate'];_0x42c792[_0x2933e8(0x3c0)][_0x4f6145]['guest']==!![]&&(_0x2c9cf9!==![]?_0x42c792['roombitrate']!==![]&&(_0x42c792[_0x2933e8(0x2b2)]<_0x2c9cf9&&(_0x2c9cf9=_0x42c792[_0x2933e8(0x2b2)])):_0x2c9cf9=_0x42c792[_0x2933e8(0x2b2)]);_0x2c9cf9&&(_0x10a63b>_0x2c9cf9&&(_0x10a63b=_0x2c9cf9));_0x53986b&&!_0x526009&&(log(_0x2933e8(0x7f2)+_0x10a63b),_0x42c792[_0x2933e8(0x3c0)][_0x4f6145]['savedBitrate']=_0x10a63b);_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x978)]!==![]&&(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x19a)]['visibility']===![]&&(_0x10a63b>_0x42c792['pcs'][_0x4f6145]['optimizedBitrate']&&(_0x53986b&&(_0x42c792['pcs'][_0x4f6145][_0x2933e8(0xaff)]=_0x10a63b),_0x10a63b=parseInt(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145]['optimizedBitrate'])||0x0)));if(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x7ec)]!==null){if(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x7ec)]<_0x10a63b)_0x10a63b=_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x7ec)],_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x546)]['max_bandwidth_capped_kbps']=_0x10a63b,warnlog(_0x2933e8(0x671)+_0x10a63b+'-kbps');else _0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x7ec)]===_0x10a63b&&!_0x53986b?(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145]['stats'][_0x2933e8(0x7c6)]=_0x10a63b,warnlog('Max\x20bandwidth\x20controlling\x20bitrate:\x20'+_0x10a63b+_0x2933e8(0x6be))):(warnlog(_0x2933e8(0xafb)+_0x10a63b+_0x2933e8(0x6be)),_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x546)][_0x2933e8(0x7c6)]=![]);}else _0x2933e8(0x7c6)in _0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x546)]&&(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x546)][_0x2933e8(0x7c6)]=![]);_0x526009===![]&&(_0x42c792[_0x2933e8(0x710)]&&(_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x28c)]=_0x10a63b,_0x10a63b=_0x42c792[_0x2933e8(0xa61)](_0x10a63b,_0x4f6145)));if(_0x10a63b===0x0){var _0x1d2970=Date[_0x2933e8(0x5ee)]()-_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x318)];_0x1d2970<_0x42c792[_0x2933e8(0x4d7)]&&(_0x10a63b=_0x42c792[_0x2933e8(0x8a6)],log('starting\x20some\x20preload\x20bitrate\x20'+(Date[_0x2933e8(0x5ee)]()-_0x42c792['pcs'][_0x4f6145][_0x2933e8(0x318)])),_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x985)]=setTimeout(function(_0x53a7b4){var _0x5ae62a=_0x2933e8;try{warnlog('stopping\x20some\x20preload\x20bitrate\x20'+(Date[_0x5ae62a(0x5ee)]()-_0x42c792['pcs'][_0x53a7b4][_0x5ae62a(0x318)])),_0x42c792['limitBitrate'](_0x53a7b4,null);}catch(_0x4700d6){}},_0x42c792[_0x2933e8(0x4d7)]-_0x1d2970+0x5,_0x4f6145));}try{if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd){log('iOS\x20devices\x20do\x20not\x20support\x20dynamic\x20bitrates\x20correctly;\x20skipping');if(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x639)]==!![]&&_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0xb2e)]==![])return;var _0x118085=getSenders2(_0x4f6145)[_0x2933e8(0x96c)](function(_0x2bbb0c){var _0x31af73=_0x2933e8;return _0x2bbb0c[_0x31af73(0x3ba)]&&_0x2bbb0c[_0x31af73(0x3ba)][_0x31af73(0x184)]==_0x31af73(0x735);});if(!_0x118085){log(_0x2933e8(0x64e));return;}var _0xa47d09={};_0x10a63b===0x0?_0xa47d09['active']=![]:(_0xa47d09[_0x2933e8(0x829)]=!![],_0xa47d09[_0x2933e8(0x94d)]=_0x10a63b*0x400);setEncodings(_0x118085,_0xa47d09,function(_0x3c9b1b){var _0x33d795=_0x2933e8;pokeIframeAPI('setVideoBitrate',_0x3c9b1b[0x0],_0x3c9b1b[0x1]),pokeIframeAPI(_0x33d795(0x18c),_0x3c9b1b[0x0],_0x3c9b1b[0x1]),log('bandwidth\x20set\x20a!\x20'+_0x3c9b1b[0x0]);},[_0x10a63b,_0x4f6145]);return;}else{if(_0x2933e8(0xa34)in window&&'setParameters'in window[_0x2933e8(0xa34)]['prototype']){var _0x118085=getSenders2(_0x4f6145)[_0x2933e8(0x96c)](function(_0x3ad356){var _0x411fae=_0x2933e8;return _0x3ad356[_0x411fae(0x3ba)]&&_0x3ad356[_0x411fae(0x3ba)][_0x411fae(0x184)]==_0x411fae(0x735);});if(!_0x118085){log(_0x2933e8(0x64e));return;}var _0xa47d09={};_0x10a63b===0x0?(_0xa47d09[_0x2933e8(0x829)]=![],Firefox&&(_0xa47d09[_0x2933e8(0x94d)]=0x1,_0xa47d09['scaleResolutionDownBy']=0x3e8)):(_0xa47d09[_0x2933e8(0x829)]=!![],_0xa47d09[_0x2933e8(0x94d)]=_0x10a63b*0x400);if(_0x10a63b!==0x0){var _0x53e2c7=_0x42c792[_0x2933e8(0x44f)](_0x4f6145,_0x10a63b);if(_0x53e2c7<=0x0||_0x53e2c7==0x64){var _0xa6b995=getChromiumVersion();_0xa6b995>0x50?_0xa47d09[_0x2933e8(0x5d2)]=null:_0xa47d09[_0x2933e8(0x5d2)]=0x1;}else _0xa47d09[_0x2933e8(0x5d2)]=0x64/_0x53e2c7;iPad||iOS||Firefox?_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x89f)]?(clearInterval(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x89f)]),_0x42c792[_0x2933e8(0x3c0)][_0x4f6145]['bitrateTimeoutFirefox']=setTimeout(function(_0x283598,_0x92cf69){var _0x22bfee=_0x2933e8;log(_0x22bfee(0xa6e)+_0x10a63b),_0x42c792[_0x22bfee(0x3c0)][_0x283598][_0x22bfee(0x89f)]=![],_0x42c792[_0x22bfee(0x6f3)](_0x283598,null,_0x92cf69);},0x1f4,_0x4f6145,_0x526009)):(_0x42c792['pcs'][_0x4f6145]['bitrateTimeoutFirefox']=setTimeout(function(_0x4ca980){var _0x5df70c=_0x2933e8;_0x42c792[_0x5df70c(0x3c0)][_0x4ca980]['bitrateTimeoutFirefox']=![];},0x1f4,_0x4f6145),setEncodings(_0x118085,_0xa47d09,function(_0x14a77a){var _0x1a82ff=_0x2933e8;log('bandwidth\x20set\x20b!\x20'+_0x14a77a[0x0]),_0x42c792['pcs'][_0x14a77a[0x1]][_0x1a82ff(0x546)][_0x1a82ff(0x7f0)]=parseInt(_0x14a77a[0x2])+'%',pokeIframeAPI(_0x1a82ff(0x4ca),_0x14a77a[0x0],_0x14a77a[0x1]),pokeIframeAPI('setVideoScale',_0x14a77a[0x2],_0x14a77a[0x1]),pokeIframeAPI(_0x1a82ff(0x18c),_0x14a77a[0x0],_0x14a77a[0x1]),pokeIframeAPI('set-video-scale',_0x14a77a[0x2],_0x14a77a[0x1]);},[_0x10a63b,_0x4f6145,_0x53e2c7])):(warnlog(_0xa47d09),setEncodings(_0x118085,_0xa47d09,function(_0xf94ac1){var _0xebcc88=_0x2933e8;log('bandwidth\x20set\x20c!\x20'+_0xf94ac1[0x0]),_0x42c792[_0xebcc88(0x3c0)][_0xf94ac1[0x1]][_0xebcc88(0x546)]['scaleFactor']=parseInt(_0xf94ac1[0x2])+'%',pokeIframeAPI(_0xebcc88(0x4ca),_0xf94ac1[0x0],_0xf94ac1[0x1]),pokeIframeAPI(_0xebcc88(0x840),_0xf94ac1[0x2],_0xf94ac1[0x1]),pokeIframeAPI('set-video-bitrate',_0xf94ac1[0x0],_0xf94ac1[0x1]),pokeIframeAPI('set-video-scale',_0xf94ac1[0x2],_0xf94ac1[0x1]);},[_0x10a63b,_0x4f6145,_0x53e2c7]));}else iPad||iOS||Firefox?_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x89f)]?(clearInterval(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x89f)]),_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x89f)]=setTimeout(function(_0x297841,_0x5ac1ad){var _0x2a5dfc=_0x2933e8;log(_0x2a5dfc(0xa6e)+_0x10a63b),_0x42c792[_0x2a5dfc(0x3c0)][_0x297841][_0x2a5dfc(0x89f)]=![],_0x42c792['limitBitrate'](_0x297841,null,_0x5ac1ad);},0x1f4,_0x4f6145,_0x526009)):(_0x42c792[_0x2933e8(0x3c0)][_0x4f6145][_0x2933e8(0x89f)]=setTimeout(function(_0x45db27){var _0x5eb760=_0x2933e8;_0x42c792[_0x5eb760(0x3c0)][_0x45db27][_0x5eb760(0x89f)]=![];},0x1f4,_0x4f6145),setEncodings(_0x118085,_0xa47d09,function(_0x3c4821){var _0x583f7b=_0x2933e8;log('bandwidth\x20set\x20d!\x20'+_0x3c4821[0x0]),pokeIframeAPI('setVideoBitrate',_0x3c4821[0x0],_0x3c4821[0x1]),pokeIframeAPI(_0x583f7b(0x18c),_0x3c4821[0x0],_0x3c4821[0x1]);},[_0x10a63b,_0x4f6145])):setEncodings(_0x118085,_0xa47d09,function(_0x704c3f){var _0x10bfb9=_0x2933e8;log('bandwidth\x20set\x20e!\x20'+_0x704c3f[0x0]),pokeIframeAPI('setVideoBitrate',_0x704c3f[0x0],_0x704c3f[0x1]),pokeIframeAPI(_0x10bfb9(0x18c),_0x704c3f[0x0],_0x704c3f[0x1]);},[_0x10a63b,_0x4f6145]);}else warnlog('BROWER\x20DID\x20NOT\x20SUPPORT\x20LIMIT\x20BITRATE');}}catch(_0x5b7ede){errorlog(_0x5b7ede);}};function _0x533d9b(_0x368a76,_0x52aee5,_0x495338){var _0x4b28d5=_0x5b10c6;if(_0x42c792['noScaling'])return _0x52aee5;warnlog(_0x4b28d5(0xab6)+_0x52aee5+_0x4b28d5(0x6f5)+_0x495338);if(_0x495338<0x0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64;else{if(_0x495338>=0x259)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64;else{if('realUUID'in _0x42c792[_0x4b28d5(0x3c0)][_0x368a76])_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64;else{if(_0x42c792['screenShareState'])_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64;else{var _0x1b1432=getNativeOutputResolution();if(_0x1b1432)try{_0x1b1432=_0x1b1432[_0x4b28d5(0xb1b)]*_0x1b1432[_0x4b28d5(0x229)],_0x1b1432=Math[_0x4b28d5(0x54f)](_0x1b1432,0.5);}catch(_0x28069a){_0x1b1432=![];}warnlog('dimension:\x20'+_0x1b1432);if(_0x495338>=0x15e){if(_0x1b1432&&_0x1b1432<=0x1e0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64;else{if(_0x42c792['mobile']){if(_0x1b1432&&_0x1b1432>=0x5a0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x3;else _0x42c792[_0x4b28d5(0x51a)]?_0x1b1432&&_0x1b1432>=0x3c0?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x2:_0x42c792['pcs'][_0x368a76][_0x4b28d5(0xa41)]=0x64:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/0x2;}else{if(_0x1b1432&&_0x1b1432>=0x5a0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/2.5;else _0x1b1432&&_0x1b1432>=0x3c0?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x2:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64;}}}else{if(_0x495338>=0xc9){if(_0x1b1432&&_0x1b1432<0x1e0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64;else{if(_0x42c792[_0x4b28d5(0xb32)]){if(_0x1b1432&&_0x1b1432>=0x5a0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x4;else _0x42c792[_0x4b28d5(0x51a)]?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/0x2:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/2.5;}else _0x1b1432&&_0x1b1432>=0x5a0?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/0x3:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x2;}}else{if(_0x1b1432&&_0x1b1432<=0xf0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64;else{if(_0x495338>=0x51){if(_0x42c792[_0x4b28d5(0xb32)]){if(_0x1b1432&&_0x1b1432>=0x5a0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x6;else _0x42c792[_0x4b28d5(0x51a)]?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/0x3:_0x42c792['pcs'][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x4;}else _0x1b1432&&_0x1b1432>=0x5a0?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/0x4:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x3;}else{if(_0x42c792[_0x4b28d5(0xb32)]){if(_0x1b1432&&_0x1b1432>=0x3c0)_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x6;else _0x42c792[_0x4b28d5(0x51a)]?_0x42c792['pcs'][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x4:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76]['scaleDueToBitrate']=0x64/0x5;}else _0x1b1432&&_0x1b1432>=0x5a0?_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x5:_0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]=0x64/0x4;}}}}}}}}return _0x42c792[_0x4b28d5(0x3c0)][_0x368a76][_0x4b28d5(0xa41)]<_0x52aee5&&(_0x52aee5=_0x42c792['pcs'][_0x368a76][_0x4b28d5(0xa41)]),_0x52aee5;}function _0x35b480(_0x22458c,_0x5a195b=0x2710){var _0x49ca35=_0x5b10c6;_0x5a195b=parseInt(_0x5a195b);if(_0x42c792[_0x49ca35(0x8bd)])_0x5a195b+=_0x42c792[_0x49ca35(0x8bd)];else{if(_0x42c792['director']&&_0x42c792['stereo']==0x5)_0x5a195b+=0x20;else _0x42c792[_0x49ca35(0x3be)]&&_0x42c792[_0x49ca35(0x3be)]!=0x3?_0x42c792[_0x49ca35(0xb51)]&&_0x42c792[_0x49ca35(0xb51)]=='red'?_0x5a195b+=_0x42c792[_0x49ca35(0x23f)]*0x2:_0x5a195b+=_0x42c792['audiobitratePRO']:_0x5a195b+=0x20;}return log(_0x49ca35(0x438)+_0x5a195b),_0x5a195b<0x1&&(_0x5a195b=0x1),_0x22458c=CodecsHandler[_0x49ca35(0x242)](_0x22458c,{'min':parseInt(_0x5a195b/0xa)||0x1,'max':_0x5a195b||0x1},_0x42c792['codec']),_0x22458c;}_0x42c792[_0x5b10c6(0x397)]=function(_0x1d954d,_0x3f345d){var _0x203322=_0x5b10c6;log(_0x1d954d),!_0x42c792[_0x203322(0x3fe)][_0x203322(0x8e4)]&&warnlog(_0x203322(0x1b2)),window[_0x203322(0x458)][_0x203322(0x36d)][_0x203322(0x64f)]({'name':_0x203322(0x1bb)},_0x42c792['mykey'][_0x203322(0x8e4)],_0x42c792[_0x203322(0x2c4)][_0x203322(0x4ee)](_0x1d954d))[_0x203322(0x272)](function(_0x30017a){var _0x1a2205=_0x203322;_0x30017a=new Uint8Array(_0x30017a),_0x30017a=_0x30017a['reduce']((_0x59fc5c,_0x4478c0)=>_0x59fc5c+_0x4478c0[_0x1a2205(0x880)](0x10)[_0x1a2205(0x486)](0x2,'0'),''),_0x3f345d(_0x1d954d,_0x30017a),log(JSON['stringify'](_0x30017a));})['catch'](errorlog);},_0x42c792['verifyData']=function(_0x2bee98,_0x22028e){var _0x5654d8=_0x5b10c6;_0x2bee98[_0x5654d8(0xa27)]=new Uint8Array(_0x2bee98['signature'][_0x5654d8(0x322)](/.{1,2}/g)[_0x5654d8(0x329)](_0x45197e=>parseInt(_0x45197e,0x10)));if(_0x42c792[_0x5654d8(0x3fa)][_0x22028e][_0x5654d8(0x760)])return window[_0x5654d8(0x458)][_0x5654d8(0x36d)][_0x5654d8(0x5e8)]({'name':_0x5654d8(0x1bb)},_0x42c792[_0x5654d8(0x3fa)][_0x22028e][_0x5654d8(0x760)],_0x2bee98['signature'],_0x42c792['enc'][_0x5654d8(0x4ee)](_0x2bee98[_0x5654d8(0x461)]))['then'](function(_0x3f663e){return _0x3f663e;})[_0x5654d8(0xaef)](function(_0xb61483){return errorlog(_0xb61483),![];});},_0x42c792[_0x5b10c6(0x342)]=function(_0xe5a17e){var _0x42f326=_0x5b10c6;if(_0x42c792[_0x42f326(0x3dd)])return _0x42c792[_0x42f326(0x305)]!==![]?(_0xe5a17e=_0xe5a17e[_0x42f326(0x90c)](0x0,-0x1*_0x42c792[_0x42f326(0x305)]['length']),_0xe5a17e):generateHash(_0x42c792[_0x42f326(0x3dd)]+_0x42c792['salt'],0x6)['then'](function(_0x46522a){var _0x46870e=_0x42f326;return _0x42c792[_0x46870e(0x305)]=_0x46522a,_0xe5a17e=_0xe5a17e[_0x46870e(0x90c)](0x0,-0x1*_0x42c792['hash'][_0x46870e(0x606)]),_0xe5a17e;})[_0x42f326(0xaef)](errorlog);return _0xe5a17e;},_0x42c792[_0x5b10c6(0x68d)]=function(){var _0x1fb310=_0x5b10c6;if(_0x42c792[_0x1fb310(0x491)])return;clearTimeout(_0x42c792[_0x1fb310(0x62e)]);if(!_0x42c792['ws']||_0x42c792['ws'][_0x1fb310(0x1f7)]!==0x1)return;_0x42c792[_0x1fb310(0x62e)]=setTimeout(function(){var _0x2fe786=_0x1fb310;log(_0x2fe786(0x35b));var _0x3d3d46={};_0x3d3d46[_0x2fe786(0x8e8)]=_0x2fe786(0x68d),_0x42c792['sendMsg'](_0x3d3d46);},0xbb8);},_0x42c792[_0x5b10c6(0xa1f)]=async function(_0xda0116){var _0x2e983b=_0x5b10c6;await _0x42c792['connect']();if(_0xda0116[_0x2e983b(0x606)]>0x0){if(_0xda0116===_0x42c792['streamID']){warnlog(_0x2e983b(0x2a4));return;}var _0x1342cd={};_0x1342cd[_0x2e983b(0x8e8)]='play',_0x1342cd[_0x2e983b(0x476)]=_0xda0116,_0x42c792[_0x2e983b(0x3b4)](_0x1342cd),_0x42c792[_0x2e983b(0x659)][_0xda0116]=!![],pokeIframeAPI(_0x2e983b(0x80e),_0xda0116);}else log(_0x2e983b(0x877));},_0x42c792[_0x5b10c6(0x6ec)]=async function _0x5bf0c8(_0x7d3030){var _0x5ab464=_0x5b10c6;_0x42c792['joiningRoom']===![]&&(_0x42c792['joiningRoom']=!![]);await _0x42c792[_0x5ab464(0x8ca)]();var _0x4b9974={};_0x4b9974[_0x5ab464(0x8e8)]=_0x5ab464(0x976);_0x42c792[_0x5ab464(0x843)]&&!_0x42c792[_0x5ab464(0x3ed)]&&(_0x4b9974[_0x5ab464(0x24a)]=!![]);_0x42c792[_0x5ab464(0x491)]&&_0x42c792[_0x5ab464(0x2ea)]===![]&&(_0x4b9974[_0x5ab464(0x476)]=_0x42c792[_0x5ab464(0x476)]);var _0x4e01ba='';return _0x42c792['token']&&(_0x4e01ba=_0x42c792[_0x5ab464(0x4bc)]),_0x42c792['password']?_0x42c792[_0x5ab464(0x305)]?generateHash(_0x7d3030+_0x42c792[_0x5ab464(0x3dd)]+_0x42c792[_0x5ab464(0xb25)]+_0x4e01ba,0x10)[_0x5ab464(0x272)](function(_0x1c75e6){var _0x387755=_0x5ab464;return _0x42c792[_0x387755(0x491)]&&(_0x42c792[_0x387755(0xaca)]=_0x1c75e6),_0x4b9974[_0x387755(0x273)]=_0x1c75e6,_0x42c792[_0x387755(0x3b4)](_0x4b9974),_0x42c792[_0x387755(0x3f8)]=_0x3e5f1a(),log(_0x387755(0xa69)),pokeIframeAPI(_0x387755(0x9ea),_0x7d3030),_0x42c792[_0x387755(0x3f8)];})[_0x5ab464(0xaef)](errorlog):generateHash(_0x42c792['password']+_0x42c792[_0x5ab464(0xb25)],0x6)[_0x5ab464(0x272)](function(_0x59e8c4){var _0x5986b8=_0x5ab464;return _0x42c792[_0x5986b8(0x305)]=_0x59e8c4,log(_0x5986b8(0x538)+_0x59e8c4),log(_0x5986b8(0x470)),_0x42c792[_0x5986b8(0x6ec)](_0x7d3030);})[_0x5ab464(0xaef)](errorlog):(_0x42c792['customWSS']&&(_0x42c792[_0x5ab464(0xaca)]=_0x7d3030),_0x4b9974[_0x5ab464(0x273)]=_0x7d3030,_0x42c792[_0x5ab464(0x3b4)](_0x4b9974),_0x42c792[_0x5ab464(0x3f8)]=_0x3e5f1a(),log('deferring\x20with\x20a\x20promise'),pokeIframeAPI('joining-room',_0x7d3030),_0x42c792[_0x5ab464(0x3f8)]);},_0x42c792[_0x5b10c6(0x3b4)]=function(_0x163cc6,_0x1fc1e2=![]){var _0x4314c4=_0x5b10c6;_0x1fc1e2&&(_0x163cc6[_0x4314c4(0xac6)]=_0x1fc1e2);if(_0x42c792['customWSS']){_0x42c792[_0x4314c4(0xac6)]?_0x163cc6[_0x4314c4(0x9a4)]=_0x42c792[_0x4314c4(0xac6)]:(_0x42c792[_0x4314c4(0xac6)]=_0x42c792[_0x4314c4(0x963)](0x14),_0x163cc6[_0x4314c4(0x9a4)]=_0x42c792[_0x4314c4(0xac6)]);if(_0x163cc6[_0x4314c4(0xac6)]&&_0x163cc6[_0x4314c4(0x9a4)]===_0x163cc6[_0x4314c4(0xac6)])return;_0x42c792[_0x4314c4(0x843)]&&(_0x163cc6['director']=!![]),!('roomid'in _0x163cc6)&&(_0x42c792[_0x4314c4(0xaca)]&&(_0x163cc6['roomid']=_0x42c792[_0x4314c4(0xaca)]));}clearTimeout(_0x42c792[_0x4314c4(0x62e)]);try{if(_0x42c792[_0x4314c4(0x3dd)]){if(_0x163cc6['streamID']){if(_0x42c792[_0x4314c4(0x305)]!==![]){if(!_0x42c792['ws']||typeof _0x42c792['ws']!==_0x4314c4(0x698)||_0x42c792['ws'][_0x4314c4(0x1f7)]!==0x1)log(_0x163cc6,_0x4314c4(0x7a9)),_0x42c792[_0x4314c4(0x928)][_0x4314c4(0x3e0)](_0x163cc6);else{_0x163cc6[_0x4314c4(0x476)]=_0x163cc6[_0x4314c4(0x476)][_0x4314c4(0x5ae)](0x0,0x2c)+_0x42c792[_0x4314c4(0x305)]['substring'](0x0,0x6);var _0x1387cc=JSON[_0x4314c4(0x895)](_0x163cc6);if((_0x163cc6[_0x4314c4(0x5dd)]||_0x163cc6[_0x4314c4(0x243)])&&_0x1387cc[_0x4314c4(0x606)]<0x88b8){}else{if(_0x1387cc[_0x4314c4(0x606)]>0x2710){errorlog('msg\x20size\x20error'),errorlog(_0x163cc6),errorlog(_0x1387cc['length']);return;}}_0x42c792['ws']['send'](_0x1387cc);}}else return generateHash(_0x42c792[_0x4314c4(0x3dd)]+_0x42c792['salt'],0x6)[_0x4314c4(0x272)](function(_0x5a2b82){var _0x1c353f=_0x4314c4;_0x42c792['hash']=_0x5a2b82;if(typeof _0x42c792['ws']!=='object'||_0x42c792['ws'][_0x1c353f(0x1f7)]!==0x1)log(_0x163cc6,'could\x20not\x20be\x20sent;\x20queuing\x20it'),_0x42c792[_0x1c353f(0x928)][_0x1c353f(0x3e0)](_0x163cc6);else{_0x163cc6[_0x1c353f(0x476)]=_0x163cc6[_0x1c353f(0x476)]['substring'](0x0,0x2c)+_0x42c792[_0x1c353f(0x305)][_0x1c353f(0x5ae)](0x0,0x6);var _0x58f02c=JSON[_0x1c353f(0x895)](_0x163cc6);if((_0x163cc6[_0x1c353f(0x5dd)]||_0x163cc6[_0x1c353f(0x243)])&&_0x58f02c[_0x1c353f(0x606)]<0x88b8){}else{if(_0x58f02c[_0x1c353f(0x606)]>0x2710){errorlog('msg\x20size\x20error');return;}}_0x42c792['ws']['send'](_0x58f02c);}})[_0x4314c4(0xaef)](errorlog);}else{if(!_0x42c792['ws']||typeof _0x42c792['ws']!==_0x4314c4(0x698)||_0x42c792['ws']['readyState']!==0x1)log(_0x163cc6,_0x4314c4(0x7a9)),_0x42c792['msg'][_0x4314c4(0x3e0)](_0x163cc6);else{var _0x1387cc=JSON['stringify'](_0x163cc6);if((_0x163cc6[_0x4314c4(0x5dd)]||_0x163cc6[_0x4314c4(0x243)])&&_0x1387cc[_0x4314c4(0x606)]<0x88b8){}else{if(_0x1387cc['length']>0x2710){errorlog(_0x4314c4(0x158));return;}}_0x42c792['ws'][_0x4314c4(0x8c1)](_0x1387cc);}}}else{if(typeof _0x42c792['ws']!==_0x4314c4(0x698)||_0x42c792['ws'][_0x4314c4(0x1f7)]!==0x1)warnlog(_0x4314c4(0x222)),_0x42c792[_0x4314c4(0x928)]['push'](_0x163cc6);else{var _0x1387cc=JSON[_0x4314c4(0x895)](_0x163cc6);if(_0x1387cc[_0x4314c4(0x606)]>0x61a8){errorlog('msg\x20size\x20error');return;}_0x42c792['ws'][_0x4314c4(0x8c1)](_0x1387cc);}}}catch(_0x32cce3){errorlog(_0x32cce3);}},_0x42c792[_0x5b10c6(0x84f)]=function(_0x166607,_0x439bb5=![],_0x3e71df=![]){var _0x38e641=_0x5b10c6;if(_0x42c792[_0x38e641(0x4d0)]){log(_0x38e641(0xb1d)),_0x166607[_0x38e641(0x7e3)]=++_0x42c792[_0x38e641(0x7e3)];if(!_0x439bb5){}else _0x42c792['rpcs'][_0x439bb5]&&_0x38e641(0x18d)in _0x42c792[_0x38e641(0x9f2)][_0x439bb5]?_0x42c792[_0x38e641(0x3b4)]({..._0x166607,'altUUID':!![]},_0x42c792[_0x38e641(0x9f2)][_0x439bb5]['realUUID']):_0x42c792[_0x38e641(0x3b4)]({..._0x166607},_0x439bb5);}var _0x5ca5d6=[],_0x4d23d7=JSON[_0x38e641(0x895)](_0x166607);for(var _0xbfb272 in _0x42c792[_0x38e641(0x3c0)]){if(_0x3e71df&&_0x3e71df===_0xbfb272)continue;if(_0x439bb5&&_0x439bb5!==_0xbfb272)continue;_0x42c792[_0x38e641(0x4d0)]&&!_0x439bb5&&_0x42c792[_0x38e641(0x3b4)]({..._0x166607},_0xbfb272);try{_0x42c792['pcs'][_0xbfb272][_0x38e641(0x2b7)][_0x38e641(0x8c1)](_0x4d23d7),_0x5ca5d6['push'](_0xbfb272);}catch(_0xf4a83){_0x42c792[_0x38e641(0x3c0)][_0xbfb272][_0x38e641(0x318)]+0x186a0_0x1b35aa&&(_0x1b35aa=_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)][_0x141107(0x297)],_0x372c36=_0x453467)),_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)][_0x141107(0x297)]&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)][_0x141107(0x297)]>_0x1b35aa&&(_0x1b35aa=_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)][_0x141107(0x297)],_0x372c36=_0x453467)));}_0x372c36&&(_0x42c792[_0x141107(0x9f2)][_0x372c36]['mutedStateScene']=![],applyMuteState(_0x372c36),_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0xb58)]&&(_0x42c792['rpcs'][_0x372c36]['videoElement'][_0x141107(0x37e)]&&clearInterval(_0x42c792[_0x141107(0x9f2)][_0x372c36]['videoElement'][_0x141107(0x37e)]),_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0xb58)][_0x141107(0x4d1)]=![],_0x42c792[_0x141107(0x7e8)]&&(_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0xb58)][_0x141107(0x37e)]=setTimeout(showControlBar[_0x141107(0x6f1)](null,_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0xb58)]),0x3e8)),_0x42c792[_0x141107(0x9f2)][_0x372c36]['videoElement'][_0x141107(0x84c)]['display']&&_0x42c792[_0x141107(0x9f2)][_0x372c36]['videoElement']['style'][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0xb58)]['style'][_0x141107(0x745)]=_0x141107(0x91c),_0x42c792['rpcs'][_0x372c36][_0x141107(0xb58)]['sceneType2']=Date['now'](),_0x5dc547=!![])),_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]&&_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0x372c36][_0x141107(0x547)]['style']['display']=_0x141107(0x91c),_0x42c792['rpcs'][_0x372c36]['iframeEle'][_0x141107(0x297)]=Date[_0x141107(0x5ee)](),_0x5dc547=!![]));}else{for(var _0x453467 in _0x42c792[_0x141107(0x9f2)]){_0x453467!==_0xfed6bf&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x56e)]=!![],applyMuteState(_0x453467),_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)]&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)][_0x141107(0x84c)][_0x141107(0x745)]&&_0x42c792['rpcs'][_0x453467]['videoElement'][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x450)&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)][_0x141107(0x84c)]['display']='none',_0x5dc547=!![])),_0x42c792['rpcs'][_0x453467][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)][_0x141107(0x84c)]['display']&&_0x42c792['rpcs'][_0x453467][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]!=='none'&&(_0x42c792['rpcs'][_0x453467][_0x141107(0x547)]['style'][_0x141107(0x745)]='none',_0x5dc547=!![]));}_0x42c792['rpcs'][_0xfed6bf][_0x141107(0x56e)]=![],applyMuteState(_0xfed6bf),_0x42c792['rpcs'][_0xfed6bf][_0x141107(0xb58)]&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x37e)]&&clearInterval(_0x42c792['rpcs'][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x37e)]),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]['controls']=![],_0x42c792['showControls']&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x37e)]=setTimeout(showControlBar[_0x141107(0x6f1)](null,_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]),0x3e8)),_0x42c792['rpcs'][_0xfed6bf]['videoElement'][_0x141107(0x84c)][_0x141107(0x745)]&&_0x42c792['rpcs'][_0xfed6bf]['videoElement'][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x84c)][_0x141107(0x745)]=_0x141107(0x91c),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x297)]=Date[_0x141107(0x5ee)](),_0x5dc547=!![])),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]&&_0x42c792['rpcs'][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]['style']['display']=_0x141107(0x91c),_0x42c792['rpcs'][_0xfed6bf]['iframeEle'][_0x141107(0x297)]=Date[_0x141107(0x5ee)](),_0x5dc547=!![]);}}else{if(_0x42c792[_0x141107(0xaea)]==0x1){if(_0x4a3111['value']==0x0)_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]&&(_0x42c792['rpcs'][_0xfed6bf]['videoElement'][_0x141107(0x84c)]['display']&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']['style'][_0x141107(0x745)]!==_0x141107(0x450)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x84c)]['display']=_0x141107(0x450),_0x5dc547=!![])),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]&&_0x42c792['rpcs'][_0xfed6bf]['iframeEle']['style'][_0x141107(0x745)]!==_0x141107(0x450)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]='none',_0x5dc547=!![]);else{for(var _0x453467 in _0x42c792[_0x141107(0x9f2)]){_0x453467!==_0xfed6bf&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)]&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)]['style'][_0x141107(0x745)]&&_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x450)&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0xb58)]['style'][_0x141107(0x745)]=_0x141107(0x450),_0x5dc547=!![])),_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0x453467]['iframeEle'][_0x141107(0x84c)]['display']&&_0x42c792['rpcs'][_0x453467]['iframeEle'][_0x141107(0x84c)][_0x141107(0x745)]!=='none'&&(_0x42c792[_0x141107(0x9f2)][_0x453467][_0x141107(0x547)]['style'][_0x141107(0x745)]='none',_0x5dc547=!![]));}_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x37e)]&&clearInterval(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]['controlTimer']),_0x42c792['rpcs'][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x4d1)]=![],_0x42c792['showControls']&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x37e)]=setTimeout(showControlBar[_0x141107(0x6f1)](null,_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']),0x3e8)),_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']['style'][_0x141107(0x745)]&&_0x42c792['rpcs'][_0xfed6bf]['videoElement'][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]['style']['display']=_0x141107(0x91c),_0x5dc547=!![])),_0x42c792['rpcs'][_0xfed6bf][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]['style']['display']&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]['style'][_0x141107(0x745)]=_0x141107(0x91c),_0x5dc547=!![]);}}else _0x4a3111[_0x141107(0x76d)]==0x0?(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x56e)]=!![],applyMuteState(_0xfed6bf),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x84c)]['display']&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]['style']['display']!==_0x141107(0x450)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x84c)][_0x141107(0x745)]=_0x141107(0x450),_0x5dc547=!![])),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['iframeEle']['style'][_0x141107(0x745)]&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)][_0x141107(0x745)]!=='none'&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['iframeEle'][_0x141107(0x84c)][_0x141107(0x745)]=_0x141107(0x450),_0x5dc547=!![])):(_0x42c792['rpcs'][_0xfed6bf][_0x141107(0x56e)]=![],applyMuteState(_0xfed6bf),_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement'][_0x141107(0x37e)]&&clearInterval(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x37e)]),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x4d1)]=![],_0x42c792[_0x141107(0x7e8)]&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]['controlTimer']=setTimeout(showControlBar[_0x141107(0x6f1)](null,_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']),0x3e8)),_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['videoElement']['style'][_0x141107(0x745)]&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x84c)][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792['rpcs'][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x84c)][_0x141107(0x745)]=_0x141107(0x91c),_0x5dc547=!![])),_0x42c792[_0x141107(0x9f2)][_0xfed6bf]['iframeEle']&&_0x42c792['rpcs'][_0xfed6bf][_0x141107(0x547)][_0x141107(0x84c)]['display']&&_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]['style'][_0x141107(0x745)]!==_0x141107(0x91c)&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0x547)]['style'][_0x141107(0x745)]=_0x141107(0x91c),_0x5dc547=!![]));}}_0x42c792[_0x141107(0x83b)](_0xfed6bf);}else _0x4a3111['action']==_0x141107(0x5b9)&&(log(parseInt(_0x4a3111[_0x141107(0x76d)])/0x64),_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)]&&(_0x42c792[_0x141107(0x9f2)][_0xfed6bf][_0x141107(0xb58)][_0x141107(0x5b9)]=parseInt(_0x4a3111[_0x141107(0x76d)])/0x64,log('UN-MUTED')));}}}}_0x5dc547&&updateMixer();}}else{if(_0x4a3111['action']=='migrate'){}else{if(_0x4a3111[_0x141107(0x6cf)]==_0x141107(0x888)){}}}}else _0x4a3111['action']===_0x141107(0x185)&&(warnlog(_0x141107(0xa29)),log(_0x4a3111),_0x42c792[_0x141107(0x185)]=_0x4a3111['value'],pokeIframeAPI(_0x141107(0x9bd),_0x42c792[_0x141107(0x185)]),updateMixer());}},_0x42c792[_0x5b10c6(0xaae)]=function(){var _0x48bce2=_0x5b10c6;log(_0x48bce2(0x4b5)),_0x42c792['directorUUID']in _0x42c792[_0x48bce2(0x3c0)]&&(_0x42c792['pcs'][_0x42c792['directorUUID']][_0x48bce2(0x546)]&&_0x42c792[_0x48bce2(0x3c0)][_0x42c792[_0x48bce2(0x95b)]]['stats'][_0x48bce2(0x9aa)]&&(_0x42c792[_0x48bce2(0x3c0)][_0x42c792['directorUUID']]['stats'][_0x48bce2(0x9aa)]['director']=!![])),_0x42c792[_0x48bce2(0x95b)]in _0x42c792[_0x48bce2(0x9f2)]&&(_0x42c792[_0x48bce2(0x9f2)][_0x42c792[_0x48bce2(0x95b)]][_0x48bce2(0x546)]&&_0x42c792[_0x48bce2(0x9f2)][_0x42c792[_0x48bce2(0x95b)]][_0x48bce2(0x546)][_0x48bce2(0x9aa)]&&(_0x42c792['rpcs'][_0x42c792[_0x48bce2(0x95b)]][_0x48bce2(0x546)][_0x48bce2(0x9aa)][_0x48bce2(0x843)]=!![]),_0x42c792[_0x48bce2(0x843)]&&(getById(_0x48bce2(0x9e4)+_0x42c792[_0x48bce2(0x95b)])['classList'][_0x48bce2(0xb15)](_0x48bce2(0x78e)),_0x42c792[_0x48bce2(0x9f2)][_0x42c792[_0x48bce2(0x95b)]]['label']===![]&&miniTranslate(getById(_0x48bce2(0x50c)+_0x42c792[_0x48bce2(0x95b)]),_0x48bce2(0xafd)))),_0x42c792['requestCoDirector'](),updateUserList(),pokeIframeAPI('new-main-director',_0x42c792[_0x48bce2(0x95b)]);},_0x42c792[_0x5b10c6(0x8ca)]=async function _0x20380e(_0x580eb9=![]){var _0x44e3af=_0x5b10c6;if(_0x42c792[_0x44e3af(0x60e)]===!![]){log(_0x44e3af(0x72d));return;}if(_0x42c792['ws']!==null){log(_0x44e3af(0x675));return;}_0x42c792[_0x44e3af(0x86e)]==![]&&(_0x42c792[_0x44e3af(0x7a1)]!==![]?_0x42c792['wss']=_0x44e3af(0x276):_0x42c792['wss']=_0x44e3af(0x4fd));if(!RTCPeerConnection){console[_0x44e3af(0x8fd)](getTranslation('webrtc-is-blocked'));!_0x42c792[_0x44e3af(0xad1)]&&warnUser(getTranslation(_0x44e3af(0x8d8)),![],![]);return;}_0x42c792['ws']===null&&(_0x42c792['ws']=![],await chooseBestTURN());if(_0x42c792['customWSS']===![]){_0x42c792[_0x44e3af(0x9ff)]=_0x42c792[_0x44e3af(0x963)](0xc);for(var _0x436ef2 in _0x42c792['rpcs']){warnlog(_0x44e3af(0x99e)),_0x42c792['rpcs'][_0x436ef2][_0x44e3af(0x9e2)]===_0x44e3af(0x9c8)&&(warnlog(_0x44e3af(0x233)),_0x42c792['closeRPC'](_0x436ef2));}}_0x42c792[_0x44e3af(0x9d0)]?(_0x42c792['ws']={},_0x42c792['ws'][_0x44e3af(0x16f)]=function(_0x7215f3){},_0x42c792['ws'][_0x44e3af(0x1f7)]=0x1,_0x42c792['ws']['send']=function(_0xbf8a2a){var _0x1ddd49=_0x44e3af;parent[_0x1ddd49(0x1f9)]({'bypass':_0xbf8a2a},_0x42c792['iframetarget']);},setTimeout(function(){var _0x8c2368=_0x44e3af;_0x42c792['ws'][_0x8c2368(0xaf3)]();},0xa)):_0x42c792['ws']=new WebSocket(_0x42c792[_0x44e3af(0x86e)]),_0x580eb9==![]&&(_0x42c792['showTime']===!![]&&(_0x42c792['showTime']=null,toggleClock()),_0x42c792['timeout']=setTimeout(function(){var _0x38f2fd=_0x44e3af;pokeIframeAPI(_0x38f2fd(0x33c),_0x38f2fd(0xb27)),pokeIframeAPI(_0x38f2fd(0x48a),_0x38f2fd(0xb27)),errorlog(_0x38f2fd(0x807)),!_0x42c792[_0x38f2fd(0xad1)]&&(!_0x42c792['studioSoftware']&&(_0x42c792['warnUserTriggered']=!![],warnUser(getTranslation(_0x38f2fd(0x4a8)),0x493e0,![])));},0x7530)),_0x42c792['ws'][_0x44e3af(0xaf3)]=function _0x58b5ac(){var _0x2e76d2=_0x44e3af;if(_0x42c792[_0x2e76d2(0x71c)])try{_0x42c792['sendMsg']({'auth':_0x42c792[_0x2e76d2(0x71c)]});}catch(_0x2fbd93){errorlog(_0x2fbd93);}_0x42c792[_0x2e76d2(0x4c4)]&&closeModal();_0x42c792[_0x2e76d2(0x832)]=!![],clearTimeout(_0x42c792['pingTimeout']),clearTimeout(_0x42c792['timeout']),log('connected\x20to\x20video\x20server'),checkConnection();if(_0x42c792['transferred']){errorlog(_0x2e76d2(0x924));for(_0x1d453c in _0x42c792['rpcs']){try{_0x42c792[_0x2e76d2(0x9f2)][_0x1d453c][_0x2e76d2(0x476)]?!_0x42c792['include'][_0x2e76d2(0x401)](_0x42c792[_0x2e76d2(0x9f2)][_0x1d453c][_0x2e76d2(0x476)])&&_0x42c792[_0x2e76d2(0x9b8)](_0x1d453c):_0x42c792[_0x2e76d2(0x9b8)](_0x1d453c);}catch(_0x1339f0){}}for(_0x1d453c in _0x42c792[_0x2e76d2(0x3c0)]){try{_0x42c792[_0x2e76d2(0x83a)](_0x1d453c);}catch(_0xec6780){}}_0x42c792[_0x2e76d2(0x78a)]=![],_0x42c792[_0x2e76d2(0x726)]=![],_0x42c792[_0x2e76d2(0x529)]&&(!_0x42c792[_0x2e76d2(0x529)][_0x2e76d2(0x981)]&&(_0x42c792[_0x2e76d2(0x529)][_0x2e76d2(0x16f)](),_0x42c792[_0x2e76d2(0x529)]=null));}if(_0x42c792[_0x2e76d2(0x928)]&&_0x42c792[_0x2e76d2(0x928)][_0x2e76d2(0x606)]>0x0)try{var _0x2e645e=_0x42c792[_0x2e76d2(0x928)][_0x2e76d2(0x90c)](-0x1e);_0x42c792[_0x2e76d2(0x928)]=[],_0x2e645e[_0x2e76d2(0x6d2)](function(_0x1f3d77){log('resending\x20message'),_0x42c792['sendMsg'](_0x1f3d77);});}catch(_0x131481){errorlog(_0x131481);}if(_0x580eb9==!![]){pokeIframeAPI(_0x2e76d2(0x33c),'reconnected'),pokeIframeAPI(_0x2e76d2(0x48a),_0x2e76d2(0x338));_0x42c792[_0x2e76d2(0x704)]&&_0x42c792[_0x2e76d2(0xa85)]();if(_0x42c792[_0x2e76d2(0x273)]){log(_0x2e76d2(0x333)),log('Update\x20Mixer\x20Event\x20on\x20Resize\x20SET'),joinRoom(_0x42c792[_0x2e76d2(0x273)]);if(_0x42c792[_0x2e76d2(0x4da)]['length']){var _0x464e4a=Object[_0x2e76d2(0x3fa)](_0x42c792[_0x2e76d2(0x659)]);for(var _0x1d453c=0x0;_0x1d453c<_0x464e4a['length'];_0x1d453c++){_0x42c792[_0x2e76d2(0x4da)][_0x2e76d2(0x401)](_0x464e4a[_0x1d453c])&&(log(_0x2e76d2(0x564)+_0x464e4a[_0x1d453c]),_0x42c792['watchStream'](_0x464e4a[_0x1d453c]));}}}else{var _0x464e4a=Object['keys'](_0x42c792[_0x2e76d2(0x659)]);for(var _0x1d453c=0x0;_0x1d453c<_0x464e4a[_0x2e76d2(0x606)];_0x1d453c++){log(_0x2e76d2(0x564)+_0x464e4a[_0x1d453c]),_0x42c792[_0x2e76d2(0xa1f)](_0x464e4a[_0x1d453c]);}}}else pokeIframeAPI(_0x2e76d2(0x33c),_0x2e76d2(0x36f)),pokeIframeAPI('hss-connection',_0x2e76d2(0x36f));},_0x42c792[_0x44e3af(0x692)]=function(_0x217003){var _0x441713=_0x44e3af;for(var _0x427d7c in _0x42c792[_0x441713(0x9f2)]){if(_0x42c792[_0x441713(0x9f2)][_0x427d7c][_0x441713(0x476)]===_0x217003)return log(_0x441713(0x5cf)),![];}if(_0x42c792[_0x441713(0x659)][_0x217003])return log(_0x441713(0x99c)),![];return _0x42c792[_0x441713(0xa1f)](_0x217003),log(_0x441713(0x153)),!![];},_0x42c792['ws'][_0x44e3af(0x73b)]=async function(_0x115be4){var _0x57f3a8=_0x44e3af;clearTimeout(_0x42c792[_0x57f3a8(0x62e)]);try{var _0x2d89a0=JSON[_0x57f3a8(0x867)](_0x115be4[_0x57f3a8(0x461)]);}catch(_0x30eacd){try{var _0x2d89a0=JSON[_0x57f3a8(0x867)](_0x115be4[_0x57f3a8(0x461)][_0x57f3a8(0x880)]());}catch(_0xa6bd6){errorlog(_0xa6bd6);return;}}_0x2d89a0[_0x57f3a8(0x476)]&&(_0x2d89a0[_0x57f3a8(0x476)]=_0x42c792[_0x57f3a8(0x342)](_0x2d89a0[_0x57f3a8(0x476)]));if(_0x57f3a8(0x5e7)in _0x2d89a0){_0x2d89a0=await _0x42c792['decodeRemote'](_0x2d89a0);if(!_0x2d89a0)return;}if(_0x42c792[_0x57f3a8(0x491)]){if(_0x57f3a8(0x9a4)in _0x2d89a0&&_0x42c792[_0x57f3a8(0xac6)]&&_0x2d89a0[_0x57f3a8(0x9a4)]===_0x42c792['UUID'])return;else log(_0x2d89a0);if(_0x57f3a8(0xac6)in _0x2d89a0){if(_0x42c792['UUID']){if(_0x2d89a0[_0x57f3a8(0xac6)]!==_0x42c792[_0x57f3a8(0xac6)])return;}else return;delete _0x2d89a0[_0x57f3a8(0xac6)];}if('roomid'in _0x2d89a0){if(!_0x42c792[_0x57f3a8(0xaca)])return;if(_0x57f3a8(0x8e8)in _0x2d89a0){if(_0x2d89a0['request']===_0x57f3a8(0x15a)){if('roomid'in _0x2d89a0){if('target'in _0x2d89a0){if(_0x2d89a0['target']==_0x42c792[_0x57f3a8(0xac6)]){_0x2d89a0[_0x57f3a8(0x8e8)]=_0x57f3a8(0x78a),_0x42c792[_0x57f3a8(0xaca)]=_0x2d89a0['roomid'];var _0x523900={};_0x523900[_0x57f3a8(0x8e8)]='joinroom',_0x523900[_0x57f3a8(0x273)]=_0x42c792['roomenc'],_0x523900[_0x57f3a8(0x476)]=_0x42c792[_0x57f3a8(0x476)],_0x42c792[_0x57f3a8(0x3b4)](_0x523900);}else return;}else return;}else return;}else{if(_0x2d89a0[_0x57f3a8(0x273)]!==_0x42c792['roomenc'])return;}}else{if(_0x2d89a0[_0x57f3a8(0x273)]!==_0x42c792[_0x57f3a8(0xaca)])return;}delete _0x2d89a0[_0x57f3a8(0x273)];}if(_0x57f3a8(0x843)in _0x2d89a0){if(_0x42c792[_0x57f3a8(0x4bc)]||_0x42c792[_0x57f3a8(0x46d)])await checkToken();else _0x2d89a0[_0x57f3a8(0x9a4)]&&(_0x42c792[_0x57f3a8(0x95b)]=_0x2d89a0[_0x57f3a8(0x9a4)],_0x42c792[_0x57f3a8(0x5df)]=![],_0x42c792[_0x57f3a8(0x74b)]=[],_0x42c792['directorList'][_0x57f3a8(0x3e0)](_0x42c792[_0x57f3a8(0x95b)]),_0x42c792['newMainDirectorSetup']());delete _0x2d89a0['director'];}'from'in _0x2d89a0&&(_0x2d89a0[_0x57f3a8(0xac6)]=_0x2d89a0[_0x57f3a8(0x9a4)],delete _0x2d89a0[_0x57f3a8(0x9a4)]);if('request'in _0x2d89a0){if(_0x2d89a0[_0x57f3a8(0x8e8)]===_0x57f3a8(0x6c1)){if(_0x57f3a8(0x476)in _0x2d89a0){if(_0x2d89a0[_0x57f3a8(0x476)]===_0x42c792[_0x57f3a8(0x476)])_0x2d89a0[_0x57f3a8(0x8e8)]='offerSDP';else return;}}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]===_0x57f3a8(0x7a2)){if(_0x42c792['view_set']){if(_0x42c792[_0x57f3a8(0x3c8)][_0x57f3a8(0x401)](_0x2d89a0[_0x57f3a8(0x476)])){play(_0x2d89a0[_0x57f3a8(0x476)]);return;}else return;}}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]===_0x57f3a8(0x976)){if(_0x57f3a8(0x476)in _0x2d89a0){if(_0x42c792[_0x57f3a8(0x3c8)]){if(_0x42c792[_0x57f3a8(0x3c8)]['includes'](_0x2d89a0[_0x57f3a8(0x476)]))play(_0x2d89a0['streamID']);else{}}else play(_0x2d89a0['streamID']);}_0x2d89a0['request']=_0x57f3a8(0x31a);}}}}else{if(_0x57f3a8(0x476)in _0x2d89a0){if(_0x42c792['view_set']){if(_0x42c792[_0x57f3a8(0x3c8)][_0x57f3a8(0x401)](_0x2d89a0[_0x57f3a8(0x476)])){}else return;}else{if(_0x42c792[_0x57f3a8(0x1be)]){if(_0x42c792[_0x57f3a8(0x1be)]!==_0x2d89a0[_0x57f3a8(0x476)])return;else{}}}}}}if(_0x2d89a0[_0x57f3a8(0x618)]||_0x2d89a0[_0x57f3a8(0x7e3)]||_0x2d89a0[_0x57f3a8(0x574)]){let _0x5ae74a=_0x2d89a0[_0x57f3a8(0x618)]||_0x2d89a0['mid']||_0x2d89a0['rmid'];if(_0x42c792['mids'][_0x2d89a0[_0x57f3a8(0xac6)]]){if(_0x42c792['mids'][_0x2d89a0['UUID']]['includes'](_0x5ae74a))return;else _0x42c792[_0x57f3a8(0xa01)][_0x2d89a0[_0x57f3a8(0xac6)]][_0x57f3a8(0x3e0)](_0x5ae74a);}else _0x42c792[_0x57f3a8(0xa01)][_0x2d89a0[_0x57f3a8(0xac6)]]=[_0x5ae74a];}if(_0x2d89a0[_0x57f3a8(0x8e8)]){if(_0x2d89a0[_0x57f3a8(0x8e8)]==_0x57f3a8(0x31a)){if(_0x42c792[_0x57f3a8(0x750)]){if(_0x42c792[_0x57f3a8(0x74b)][_0x57f3a8(0x1de)](_0x2d89a0[_0x57f3a8(0xac6)])>=0x0)_0x42c792[_0x57f3a8(0x31a)](_0x2d89a0[_0x57f3a8(0xac6)]);else{if(_0x42c792['director'])_0x2d89a0[_0x57f3a8(0xac6)]in _0x42c792[_0x57f3a8(0x9f2)]&&_0x42c792[_0x57f3a8(0x31a)](_0x2d89a0['UUID']);else return;}}else _0x42c792[_0x57f3a8(0x31a)](_0x2d89a0[_0x57f3a8(0xac6)]);}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]=='listing'){log(_0x2d89a0);if(_0x42c792[_0x57f3a8(0x4bc)]||_0x42c792[_0x57f3a8(0x46d)])await checkToken();else'director'in _0x2d89a0?(_0x42c792[_0x57f3a8(0x95b)]=_0x2d89a0['director'],_0x42c792[_0x57f3a8(0x5df)]=![],_0x42c792[_0x57f3a8(0x448)](),_0x42c792[_0x57f3a8(0x74b)]['push'](_0x42c792[_0x57f3a8(0x95b)]),_0x42c792[_0x57f3a8(0xaae)]()):(_0x42c792[_0x57f3a8(0x95b)]=![],_0x42c792[_0x57f3a8(0x5df)]=![],_0x42c792[_0x57f3a8(0x448)]());if(_0x42c792[_0x57f3a8(0x46d)]){}else{if(_0x57f3a8(0x24a)in _0x2d89a0){if(_0x42c792[_0x57f3a8(0x4bc)]||_0x2d89a0[_0x57f3a8(0x24a)]==![]){if(!_0x42c792['cleanOutput']){miniTranslate(getById(_0x57f3a8(0x6fc)),_0x57f3a8(0x2e8));if(_0x42c792[_0x57f3a8(0xabb)])_0x42c792[_0x57f3a8(0xa4c)]===null&&warnUser(getTranslation(_0x57f3a8(0x794)),![],![]);else _0x42c792[_0x57f3a8(0x4bc)]?setTimeout(function(){var _0x5e8835=_0x57f3a8;warnUser(getTranslation(_0x5e8835(0x958)),![],![]);},0x1):setTimeout(function(){var _0x2a4fa8=_0x57f3a8;warnUser(getTranslation(_0x2a4fa8(0x346)),![],![]);},0x1);}_0x42c792[_0x57f3a8(0xa4c)]=![],pokeAPI('director',![]),pokeIframeAPI(_0x57f3a8(0x843),![]);}else _0x42c792[_0x57f3a8(0xa4c)]=!![],pokeAPI('director',!![]),pokeIframeAPI('director',!![]);}}_0x42c792[_0x57f3a8(0x2ff)]=_0x2d89a0[_0x57f3a8(0xb1c)],_0x42c792[_0x57f3a8(0x3f8)][_0x57f3a8(0x2b9)](_0x2d89a0[_0x57f3a8(0xb1c)]);}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]==_0x57f3a8(0x78a)){_0x42c792['queueList']=[],_0x42c792[_0x57f3a8(0x78a)]=!![],_0x42c792[_0x57f3a8(0x726)]=![],log(_0x57f3a8(0x53a)),pokeIframeAPI(_0x57f3a8(0x78a));let _0x4718f5=![];if(!_0x42c792[_0x57f3a8(0x843)]){if(_0x42c792[_0x57f3a8(0x750)]==0x2)_0x42c792['queue']=!![],_0x42c792[_0x57f3a8(0x78a)]=!![];else _0x42c792[_0x57f3a8(0x750)]==0x3?(_0x42c792[_0x57f3a8(0x750)]=![],_0x4718f5=!![]):(_0x42c792['queue']=![],_0x42c792[_0x57f3a8(0x78a)]=!![]);}else _0x42c792[_0x57f3a8(0x78a)]=!![];if(!_0x4718f5){for(_0x4caca0 in _0x42c792['rpcs']){try{!_0x42c792[_0x57f3a8(0x4da)][_0x57f3a8(0x401)](_0x42c792['rpcs'][_0x4caca0][_0x57f3a8(0x476)])&&(warnlog(_0x57f3a8(0x38f)),_0x42c792[_0x57f3a8(0x9b8)](_0x4caca0));}catch(_0x5193d4){}}for(_0x4caca0 in _0x42c792['pcs']){try{log('closing\x204'),_0x42c792[_0x57f3a8(0x83a)](_0x4caca0);}catch(_0x2bb313){}}_0x42c792[_0x57f3a8(0x529)]&&(!_0x42c792[_0x57f3a8(0x529)][_0x57f3a8(0x981)]&&(_0x42c792[_0x57f3a8(0x529)]['close'](),_0x42c792['popupChat']=null));}if(!_0x4718f5){if(_0x42c792[_0x57f3a8(0x4bc)]||_0x42c792[_0x57f3a8(0x46d)])await checkToken();else'director'in _0x2d89a0?(_0x42c792[_0x57f3a8(0x95b)]=_0x2d89a0['director'],_0x42c792[_0x57f3a8(0x5df)]=![],_0x42c792['directorList']=[],_0x42c792[_0x57f3a8(0x74b)][_0x57f3a8(0x3e0)](_0x42c792[_0x57f3a8(0x95b)]),_0x42c792[_0x57f3a8(0xaae)]()):(_0x42c792[_0x57f3a8(0x95b)]=![],_0x42c792[_0x57f3a8(0x5df)]=![],_0x42c792[_0x57f3a8(0x74b)]=[]);youveBeenTransferred(),_0x42c792['totalRoomBitrate']=_0x42c792[_0x57f3a8(0x742)],updateMixer();}else youveBeenActivated();log(_0x57f3a8(0x64d)),log(_0x2d89a0['list']);for(var _0x4caca0 in _0x2d89a0['list']){if(_0x57f3a8(0xac6)in _0x2d89a0['list'][_0x4caca0]){if(_0x2d89a0[_0x57f3a8(0xb1c)][_0x4caca0][_0x57f3a8(0x476)]){if(_0x2d89a0['list'][_0x4caca0][_0x57f3a8(0xac6)]in _0x42c792['rpcs'])log(_0x57f3a8(0x45f));else{var _0x381de3=_0x42c792[_0x57f3a8(0x342)](_0x2d89a0[_0x57f3a8(0xb1c)][_0x4caca0]['streamID']);log(_0x57f3a8(0x492)+_0x381de3);if(_0x42c792[_0x57f3a8(0x750)]){if(_0x42c792[_0x57f3a8(0x74b)][_0x57f3a8(0x1de)](_0x2d89a0['list'][_0x4caca0][_0x57f3a8(0xac6)])>=0x0)_0x42c792[_0x57f3a8(0xa49)]==0x2&&play(_0x381de3,_0x2d89a0[_0x57f3a8(0xb1c)][_0x4caca0][_0x57f3a8(0xac6)]);else{if(_0x42c792[_0x57f3a8(0x3c8)]&&_0x42c792[_0x57f3a8(0x3c8)][_0x57f3a8(0x401)](_0x381de3))play(_0x381de3,_0x2d89a0[_0x57f3a8(0xb1c)][_0x4caca0][_0x57f3a8(0xac6)]);else _0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x606)]<0x1388&&(!(_0x381de3 in _0x42c792[_0x57f3a8(0x3af)])&&!_0x42c792['queueList'][_0x57f3a8(0x401)](_0x381de3)&&_0x42c792['queueList'][_0x57f3a8(0x3e0)](_0x381de3));}}else play(_0x381de3,_0x2d89a0[_0x57f3a8(0xb1c)][_0x4caca0]['UUID']);}}}}updateQueue();}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]==_0x57f3a8(0x1ee)){log(_0x2d89a0);if(_0x42c792[_0x57f3a8(0x4bc)]||_0x42c792[_0x57f3a8(0x46d)])await checkToken();else _0x57f3a8(0x843)in _0x2d89a0?(_0x42c792['directorUUID']=_0x2d89a0['director'],_0x42c792['directorStreamID']=![],_0x42c792[_0x57f3a8(0x74b)]=[],_0x42c792[_0x57f3a8(0x74b)]['push'](_0x42c792[_0x57f3a8(0x95b)]),_0x42c792[_0x57f3a8(0xaae)]()):(_0x42c792['directorUUID']=![],_0x42c792[_0x57f3a8(0x74b)]=[],errorlog('This\x20shouldn\x27t\x20happen'));updateUserList();}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]==_0x57f3a8(0xa97)){if(_0x42c792[_0x57f3a8(0x4bc)]||_0x42c792[_0x57f3a8(0x46d)])await checkToken();else _0x2d89a0[_0x57f3a8(0x843)]&&(_0x42c792['directorUUID']=_0x2d89a0[_0x57f3a8(0xac6)],_0x42c792[_0x57f3a8(0x5df)]=![],_0x42c792[_0x57f3a8(0x448)](),_0x42c792[_0x57f3a8(0x74b)][_0x57f3a8(0x3e0)](_0x42c792[_0x57f3a8(0x95b)]),_0x42c792[_0x57f3a8(0xaae)]());if(_0x57f3a8(0x476)in _0x2d89a0){log('Someone\x20Joined\x20the\x20Room\x20with\x20a\x20video');if(_0x42c792['queue']){if(_0x42c792['directorList'][_0x57f3a8(0x1de)](_0x2d89a0[_0x57f3a8(0xac6)])>=0x0)_0x42c792[_0x57f3a8(0xa49)]==0x2&&play(_0x381de3,_0x2d89a0['UUID']);else{if(_0x42c792[_0x57f3a8(0x3c8)]&&_0x42c792[_0x57f3a8(0x3c8)][_0x57f3a8(0x401)](_0x381de3))play(_0x381de3,_0x2d89a0[_0x57f3a8(0xac6)]);else _0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x606)]<0x1388&&(!(_0x2d89a0[_0x57f3a8(0x476)]in _0x42c792['watchTimeoutList'])&&!_0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x401)](_0x2d89a0[_0x57f3a8(0x476)])&&(_0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x3e0)](_0x2d89a0[_0x57f3a8(0x476)]),updateQueue(!![])));}}else play(_0x2d89a0[_0x57f3a8(0x476)]);}else log(_0x57f3a8(0x616));}else{if(_0x2d89a0[_0x57f3a8(0x8e8)]=='videoaddedtoroom'){log('Someone\x20published\x20a\x20video\x20to\x20the\x20Room'),log(_0x2d89a0);if(_0x42c792[_0x57f3a8(0x750)]){if(_0x42c792[_0x57f3a8(0x74b)]['indexOf'](_0x2d89a0['UUID'])>=0x0)_0x42c792[_0x57f3a8(0xa49)]==0x2&&play(_0x381de3,_0x2d89a0[_0x57f3a8(0xac6)]);else{if(_0x42c792['view_set']&&_0x42c792['view_set'][_0x57f3a8(0x401)](_0x381de3))play(_0x381de3,_0x2d89a0[_0x57f3a8(0xac6)]);else _0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x606)]<0x1388&&(!(_0x2d89a0[_0x57f3a8(0x476)]in _0x42c792[_0x57f3a8(0x3af)])&&!_0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x401)](_0x2d89a0[_0x57f3a8(0x476)])&&(_0x42c792[_0x57f3a8(0x2b4)][_0x57f3a8(0x3e0)](_0x2d89a0[_0x57f3a8(0x476)]),updateQueue(!![])));}}else play(_0x2d89a0['streamID']);}else{if(_0x2d89a0['request']==_0x57f3a8(0x886)){errorlog(_0x2d89a0),pokeIframeAPI(_0x57f3a8(0x886),_0x2d89a0['message']);if(_0x42c792[_0x57f3a8(0x2ea)]===![]){if('message'in _0x2d89a0){if(_0x2d89a0[_0x57f3a8(0x937)]===_0x57f3a8(0x944))_0x42c792[_0x57f3a8(0xb1a)]<0x2?(_0x42c792['seedAttempts']=parseInt(_0x42c792[_0x57f3a8(0xb1a)])+0x1,setTimeout(function(){_0x42c792['seedStream']();},0x1388)):(hangup(),!_0x42c792[_0x57f3a8(0xad1)]?_0x42c792['permaid']&&(_0x42c792[_0x57f3a8(0x936)][_0x57f3a8(0x606)]<0x3||_0x42c792['permaid']===_0x57f3a8(0x972))&&_0x42c792[_0x57f3a8(0x3dd)]===_0x42c792['defaultPassword']?setTimeout(function(){var _0x4e3e5f=_0x57f3a8;warnUser(getTranslation(_0x4e3e5f(0x689)),![],![]);},0x1):setTimeout(function(){warnUser(getTranslation('streamid-already-published'),![],![]);},0x1):console[_0x57f3a8(0x16d)](getTranslation('streamid-already-published')));else{if(_0x2d89a0[_0x57f3a8(0x937)]==='Room\x20is\x20full')!_0x42c792[_0x57f3a8(0xad1)]&&setTimeout(()=>{var _0x32772f=_0x57f3a8;warnUser(_0x32772f(0x5db));},0x1);else{if(_0x42c792[_0x57f3a8(0x4bc)]||_0x42c792[_0x57f3a8(0x532)]){}else _0x2d89a0[_0x57f3a8(0x937)]===_0x57f3a8(0x8f3)?(!_0x42c792[_0x57f3a8(0xad1)]&&(miniTranslate(getById(_0x57f3a8(0x6fc)),_0x57f3a8(0x2e8)),_0x42c792[_0x57f3a8(0xabb)]?_0x42c792[_0x57f3a8(0xa4c)]===null&&warnUser(getTranslation(_0x57f3a8(0x794)),![],![]):setTimeout(function(){var _0x52790d=_0x57f3a8;warnUser(getTranslation(_0x52790d(0x346)),![],![]);},0x1)),_0x42c792[_0x57f3a8(0xa4c)]=![],pokeAPI(_0x57f3a8(0x843),![]),pokeIframeAPI(_0x57f3a8(0x843),![])):!_0x42c792[_0x57f3a8(0xad1)]&&setTimeout(()=>{warnUser(_0x2d89a0['message']);},0x1);}}}}}else _0x2d89a0[_0x57f3a8(0x8e8)]==_0x57f3a8(0x16d)?_0x57f3a8(0x937)in _0x2d89a0&&warnlog(_0x2d89a0['message']):log(_0x2d89a0);}}}}}}}else{if(_0x2d89a0[_0x57f3a8(0x5dd)])'streamID'in _0x2d89a0&&(_0x2d89a0['streamID']in _0x42c792[_0x57f3a8(0x3af)]&&(clearTimeout(_0x42c792['watchTimeoutList'][_0x2d89a0[_0x57f3a8(0x476)]]),delete _0x42c792[_0x57f3a8(0x3af)][_0x2d89a0['streamID']])),_0x42c792['processDescription'](_0x2d89a0);else{if(_0x2d89a0[_0x57f3a8(0x943)])log('GOT\x20ICE!!'),_0x42c792[_0x57f3a8(0x80b)](_0x2d89a0);else{if(_0x2d89a0[_0x57f3a8(0x243)])log(_0x57f3a8(0x861)),_0x42c792[_0x57f3a8(0x6d1)](_0x2d89a0);else{if(_0x2d89a0[_0x57f3a8(0xabc)]||_0x2d89a0[_0x57f3a8(0x8e8)]==_0x57f3a8(0x8c4))warnlog('Clean\x20up'),_0x2d89a0[_0x57f3a8(0xac6)]in _0x42c792[_0x57f3a8(0x3c0)]&&(log('closing\x204'),_0x42c792['closePC'](_0x2d89a0[_0x57f3a8(0xac6)])),_0x2d89a0[_0x57f3a8(0xac6)]in _0x42c792['rpcs']&&(warnlog(_0x57f3a8(0x73a)),_0x42c792['closeRPC'](_0x2d89a0['UUID']));else{if(_0x42c792[_0x57f3a8(0xb3d)]&&_0x2d89a0[_0x57f3a8(0x4bc)])_0x42c792['audienceToken']=_0x2d89a0[_0x57f3a8(0x4bc)],updateReshareLink();else{if(_0x2d89a0[_0x57f3a8(0x618)]&&_0x2d89a0['UUID'])try{_0x57f3a8(0x1e4)in _0x2d89a0?await _0x42c792[_0x57f3a8(0xb38)](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]+_0x57f3a8(0x4b7)):await _0x42c792[_0x57f3a8(0xb38)](_0x2d89a0,_0x2d89a0['UUID']);}catch(_0x5c954c){warnlog('mystery-message-recieved-2'),warnlog(_0x5c954c[_0x57f3a8(0x461)]);}else{if(_0x2d89a0[_0x57f3a8(0x574)]&&_0x2d89a0[_0x57f3a8(0xac6)])try{'altUUID'in _0x2d89a0?await _0x42c792['processPCSOnMessage'](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]+_0x57f3a8(0x4b7),_0x2d89a0[_0x57f3a8(0xac6)]):await _0x42c792[_0x57f3a8(0x8f0)](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]);}catch(_0xa68934){warnlog('mystery-message-recieved-2'),warnlog(_0xa68934['data']);}else{if(_0x2d89a0[_0x57f3a8(0x7e3)]&&_0x2d89a0[_0x57f3a8(0xac6)])try{if(_0x42c792[_0x57f3a8(0x3c0)][_0x2d89a0['UUID']])'altUUID'in _0x2d89a0?await _0x42c792[_0x57f3a8(0x8f0)](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]+_0x57f3a8(0x4b7),_0x2d89a0[_0x57f3a8(0xac6)]):await _0x42c792[_0x57f3a8(0x8f0)](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]);else _0x42c792[_0x57f3a8(0x9f2)][_0x2d89a0[_0x57f3a8(0xac6)]]?_0x57f3a8(0x1e4)in _0x2d89a0?await _0x42c792[_0x57f3a8(0xb38)](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]+_0x57f3a8(0x4b7)):await _0x42c792[_0x57f3a8(0xb38)](_0x2d89a0,_0x2d89a0[_0x57f3a8(0xac6)]):warnlog('couldn\x27t\x20find\x20matching\x20pc\x20for\x20incoming\x20\x20mid');}catch(_0x179ac6){warnlog(_0x57f3a8(0xa6d)),warnlog(_0x179ac6['data']);}else log(_0x57f3a8(0x41c));}}}}}}}}},_0x42c792['ws'][_0x44e3af(0x556)]=async function(_0x555719){warnlog(_0x555719);},_0x42c792['ws']['onclose']=async function(_0x159b47){var _0x3fbf6d=_0x44e3af;clearTimeout(_0x42c792[_0x3fbf6d(0x62e)]),pokeIframeAPI(_0x3fbf6d(0x33c),_0x3fbf6d(0x981)),pokeIframeAPI(_0x3fbf6d(0x48a),_0x3fbf6d(0x981));try{_0x3fbf6d(0xafa)in _0x159b47&&(_0x159b47['code']==0x1f7&&(_0x580eb9==![]&&(clearTimeout(_0x42c792[_0x3fbf6d(0xb27)]),!_0x42c792[_0x3fbf6d(0xad1)]&&warnUser(_0x3fbf6d(0x795),0x7530,![]))));}catch(_0x4e9b76){errorlog(_0x4e9b76);}warnlog(_0x3fbf6d(0x6ed));if(_0x42c792['security']==![])try{_0x42c792['ws']['readyState']===WebSocket[_0x3fbf6d(0x212)]&&(_0x42c792['ws']=null,setTimeout(()=>{var _0x539872=_0x3fbf6d;try{_0x42c792[_0x539872(0x8ca)](!![]);}catch(_0x14c24f){}},0x1388));}catch(_0x35b5aa){errorlog(_0x35b5aa);}};},_0x42c792[_0x5b10c6(0x8ae)]=function(_0x352a21,_0x183612=null){var _0x19577e=_0x5b10c6;_0x42c792[_0x19577e(0x4d0)]&&(log('requesting\x20via\x20relaywss'),_0x352a21['smid']=++_0x42c792[_0x19577e(0x7e3)],!_0x183612?_0x42c792[_0x19577e(0x3b4)](_0x352a21):(_0x352a21[_0x19577e(0xac6)]=_0x183612,_0x42c792[_0x19577e(0x3b4)](_0x352a21,_0x183612)));if(_0x183612==null){_0x352a21=JSON['stringify'](_0x352a21);for(var _0xe93929 in _0x42c792['pcs']){try{if(!_0x42c792[_0x19577e(0x3c0)][_0xe93929][_0x19577e(0x2b7)])continue;_0x42c792[_0x19577e(0x3c0)][_0xe93929][_0x19577e(0x2b7)][_0x19577e(0x8c1)](_0x352a21);}catch(_0xd2b66){_0x42c792[_0x19577e(0x3c0)][_0xe93929][_0x19577e(0x318)]+0x186a0{var _0x265e81=_0x2ddbbf;_0xfe5e7f[_0x265e81(0x3ba)]&&(_0xfe5e7f[_0x265e81(0x3ba)][_0x265e81(0x8c6)]=![]);});}try{document[_0x2ddbbf(0x83d)](_0x2ddbbf(0xa02))&&(!_0x42c792[_0x2ddbbf(0x7fb)]&&(_0x42c792[_0x2ddbbf(0x7fb)]={}),_0x42c792[_0x2ddbbf(0x476)]&&(_0x42c792[_0x2ddbbf(0x7fb)][_0x42c792[_0x2ddbbf(0x476)]]=getDetailedState(_0x42c792[_0x2ddbbf(0x476)])),getById(_0x2ddbbf(0xa02))[_0x2ddbbf(0xa98)][_0x2ddbbf(0xa64)](getById(_0x2ddbbf(0xa02))),updateLockedElements());}catch(_0x5d3bd6){warnlog(_0x5d3bd6);}var _0x3b69ee={};_0x3b69ee[_0x2ddbbf(0x71f)]=!![],_0x3b69ee[_0x2ddbbf(0x611)]=!![],_0x42c792[_0x2ddbbf(0x8ae)](_0x3b69ee),getById(_0x2ddbbf(0x55c))['remove'](),_0x42c792[_0x2ddbbf(0x176)]&&_0x42c792[_0x2ddbbf(0x176)][_0x2ddbbf(0x594)]&&warnlog('I\x27m\x20not\x20sure\x20if\x20I\x20should\x20hang\x20up\x20the\x20whip\x20Output\x20or\x20not');}catch(_0xbb0ac3){errorlog(_0x2ddbbf(0xb07));}log('HANG\x20UP\x202\x20COMPLETE');},_0x42c792[_0x5b10c6(0x390)]=function(_0x5855b5,_0x1887b0=![]){var _0x48d3e3=_0x5b10c6;_0x42c792[_0x48d3e3(0x3c0)][_0x5855b5][_0x48d3e3(0x390)]({'iceRestart':_0x1887b0})['then'](_0x23af27=>{var _0x30808a=_0x48d3e3;log('create\x20offer\x20worked');if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad)){}else{if(_0x42c792[_0x30808a(0x3be)]==0x3||_0x42c792[_0x30808a(0x3be)]==0x5||_0x42c792['stereo']==0x1)_0x23af27['sdp']=CodecsHandler['setOpusAttributes'](_0x23af27[_0x30808a(0x451)],{'stereo':0x1}),log(_0x30808a(0x582));else{if(iOS||iPad){}else _0x42c792['stereo']==0x4&&(_0x23af27[_0x30808a(0x451)]=CodecsHandler[_0x30808a(0x561)](_0x23af27['sdp'],{'stereo':0x2}),log(_0x30808a(0x582)));}}(iOS||iPad)&&(_0x42c792['removeOrientationFlag']&&_0x23af27[_0x30808a(0x451)][_0x30808a(0x401)](_0x30808a(0x656))&&(_0x23af27[_0x30808a(0x451)]=_0x23af27['sdp'][_0x30808a(0x71b)](_0x30808a(0x656),'')));if(_0x42c792[_0x30808a(0x3c0)][_0x5855b5][_0x30808a(0x6c0)])try{_0x23af27[_0x30808a(0x451)]=CodecsHandler['preferCodec'](_0x23af27[_0x30808a(0x451)],_0x42c792[_0x30808a(0x3c0)][_0x5855b5][_0x30808a(0x6c0)],_0x42c792[_0x30808a(0x5bf)]),log('Trying\x20to\x20set\x20'+_0x42c792[_0x30808a(0x3c0)][_0x5855b5]['preferVideoCodec']+_0x30808a(0x7ab));}catch(_0x6c410d){errorlog(_0x6c410d),warnlog(_0x30808a(0x441));}if(_0x42c792['pcs'][_0x5855b5][_0x30808a(0xb1e)])try{if(_0x42c792[_0x30808a(0x3c0)][_0x5855b5][_0x30808a(0xb1e)]===_0x30808a(0x425))_0x23af27[_0x30808a(0x451)]=CodecsHandler['modifyDescLyra'](_0x23af27[_0x30808a(0x451)]);else{if(_0x42c792[_0x30808a(0x3c0)][_0x5855b5][_0x30808a(0xb1e)]===_0x30808a(0x3f7)){if(_0x42c792[_0x30808a(0x192)]&&_0x42c792[_0x30808a(0x192)]==0x1)_0x23af27['sdp']=CodecsHandler[_0x30808a(0x5bc)](_0x23af27[_0x30808a(0x451)],_0x42c792[_0x30808a(0x5f6)]||0xbb80,![]);else _0x42c792[_0x30808a(0x3be)]?_0x23af27[_0x30808a(0x451)]=CodecsHandler[_0x30808a(0x5bc)](_0x23af27[_0x30808a(0x451)],_0x42c792[_0x30808a(0x5f6)]||0xbb80,!![]):_0x23af27[_0x30808a(0x451)]=CodecsHandler[_0x30808a(0x5bc)](_0x23af27[_0x30808a(0x451)],_0x42c792[_0x30808a(0x5f6)]||0xbb80,![]);}else _0x23af27[_0x30808a(0x451)]=CodecsHandler[_0x30808a(0xb1e)](_0x23af27[_0x30808a(0x451)],_0x42c792[_0x30808a(0x3c0)][_0x5855b5]['preferAudioCodec'],_0x42c792[_0x30808a(0x6fe)],_0x42c792[_0x30808a(0x682)]);}log(_0x30808a(0x966)+_0x42c792[_0x30808a(0x3c0)][_0x5855b5][_0x30808a(0xb1e)]+_0x30808a(0x714));}catch(_0xa1dd7d){errorlog(_0xa1dd7d),warnlog(_0x30808a(0x4b9));}Android&&_0x42c792[_0x30808a(0xb30)]!==![]&&_0x42c792[_0x30808a(0xa18)]&&(_0x23af27[_0x30808a(0x451)]=_0x23af27[_0x30808a(0x451)]['replace'](/42e01f/gi,_0x30808a(0x1ca))),_0x42c792[_0x30808a(0x724)]&&(_0x23af27[_0x30808a(0x451)]=filterSDPLAN(_0x23af27[_0x30808a(0x451)])),_0x42c792['stunOnly']&&(_0x23af27[_0x30808a(0x451)]=filterStunOnly(_0x23af27[_0x30808a(0x451)])),_0x42c792[_0x30808a(0x3c0)][_0x5855b5][_0x30808a(0xb47)](_0x23af27)[_0x30808a(0x272)](function(){var _0x452871=_0x30808a;log(_0x452871(0x1a6)+_0x5855b5),_0x42c792[_0x452871(0x768)](_0x5855b5);var _0x1bd2b8={};_0x1bd2b8['UUID']=_0x5855b5,_0x1bd2b8[_0x452871(0x476)]=_0x42c792['streamID'],_0x1bd2b8[_0x452871(0x5dd)]=_0x42c792['pcs'][_0x5855b5]['localDescription'],_0x1bd2b8[_0x452871(0x610)]=_0x42c792[_0x452871(0x3c0)][_0x5855b5][_0x452871(0x610)];_0x42c792['customWSS']&&(_0x1bd2b8[_0x452871(0x246)]=_0x42c792['scene']);_0x42c792['slot']!==![]&&(_0x1bd2b8[_0x452871(0x8a0)]=_0x42c792[_0x452871(0x8a0)]);if(_0x42c792[_0x452871(0x442)]!==![]){var _0x32a2ec=_0x42c792[_0x452871(0x442)][_0x452871(0x234)](),_0x4a425f=_0x42c792['pcs'][_0x5855b5][_0x452871(0xabe)](),_0x1baf6e=[];for(var _0x2f8465=0x0;_0x2f8465<_0x4a425f[_0x452871(0x606)];_0x2f8465++){for(var _0xe0323a=0x0;_0xe0323a<_0x32a2ec[_0x452871(0x606)];_0xe0323a++){_0x4a425f[_0x2f8465]['track']&&_0x4a425f[_0x2f8465]['track']['id']==_0x32a2ec[_0xe0323a]['id']&&_0x4a425f[_0x2f8465]['track'][_0x452871(0x184)]==_0x32a2ec[_0xe0323a][_0x452871(0x184)]&&_0x1baf6e['push'](_0x2f8465);}}_0x1baf6e[_0x452871(0x606)]&&(_0x1bd2b8[_0x452871(0x3e2)]=_0x1baf6e);}_0x42c792['password']?_0x42c792[_0x452871(0x712)](JSON[_0x452871(0x895)](_0x1bd2b8[_0x452871(0x5dd)]))[_0x452871(0x272)](function(_0x1a4bb7){var _0x4516cf=_0x452871;_0x1bd2b8[_0x4516cf(0x5dd)]=_0x1a4bb7[0x0],_0x1bd2b8[_0x4516cf(0x97b)]=_0x1a4bb7[0x1],_0x42c792[_0x4516cf(0x3b9)](_0x1bd2b8);})[_0x452871(0xaef)](errorlog):_0x42c792[_0x452871(0x3b9)](_0x1bd2b8);})[_0x30808a(0xaef)](errorlog);})['catch'](errorlog);},_0x42c792['sendKeyFrameScenes']=function(){var _0x409603=_0x5b10c6;for(var _0x40f9fc in _0x42c792[_0x409603(0x3c0)]){_0x42c792['pcs'][_0x40f9fc]['scene']!==![]?(_0x42c792['forcePLI'](_0x40f9fc),log(_0x409603(0x227))):log('Not\x20a\x20scene');}},_0x42c792['closePC']=function(_0x55a519,_0x551ca5=!![]){var _0x410011=_0x5b10c6;log('closePC');if(!(_0x55a519 in _0x42c792[_0x410011(0x3c0)]))return;clearTimeout(_0x42c792[_0x410011(0x3c0)][_0x55a519][_0x410011(0x989)]),clearTimeout(_0x42c792[_0x410011(0x3c0)][_0x55a519][_0x410011(0x7c0)]),clearInterval(_0x42c792[_0x410011(0x3c0)][_0x55a519][_0x410011(0x6d7)]),pokeIframeAPI(_0x410011(0x175),![],_0x55a519);try{_0x42c792[_0x410011(0x3c0)][_0x55a519][_0x410011(0x423)]&&_0x42c792['pcs'][_0x55a519][_0x410011(0x423)][_0x410011(0x8c4)]&&_0x42c792[_0x410011(0x3c0)][_0x55a519]['canvasOverlay'][_0x410011(0x8c4)]();}catch(_0x44d7ca){errorlor(_0x44d7ca);}if(_0x410011(0x18d)in _0x42c792[_0x410011(0x3c0)][_0x55a519]){delete _0x42c792[_0x410011(0x3c0)][_0x55a519],applySceneState();return;}if(_0x55a519+_0x410011(0x4b7)in _0x42c792[_0x410011(0x3c0)]&&_0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)]['realUUID']&&_0x42c792['pcs'][_0x55a519+_0x410011(0x4b7)][_0x410011(0x18d)]===_0x55a519){clearTimeout(_0x42c792['pcs'][_0x55a519+_0x410011(0x4b7)]['iceTimer']),clearTimeout(_0x42c792[_0x410011(0x3c0)][_0x55a519+'_screen'][_0x410011(0x7c0)]),clearInterval(_0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)][_0x410011(0x6d7)]);try{_0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)][_0x410011(0x423)]&&_0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)][_0x410011(0x423)][_0x410011(0x8c4)]&&_0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)]['canvasOverlay'][_0x410011(0x8c4)]();}catch(_0x28dbbd){errorlor(_0x28dbbd);}_0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)]=null,delete _0x42c792[_0x410011(0x3c0)][_0x55a519+_0x410011(0x4b7)];}try{_0x42c792['sendMessage']({'bye':!![]},_0x55a519);}catch(_0x50c30d){}try{_0x42c792['pcs'][_0x55a519][_0x410011(0x16f)]();}catch(_0x4e79b5){}_0x42c792[_0x410011(0x3c0)][_0x55a519]['guest']&&(_0x42c792[_0x410011(0x6ad)]&&(_0x551ca5&&(warnlog(_0x410011(0x884)),playtone(![],_0x410011(0x730))))),_0x42c792[_0x410011(0x3c0)][_0x55a519]=null,_0x42c792[_0x410011(0x183)]&&(!_0x42c792['cleanOutput']&&setTimeout(function _0x624eda(){var _0x65fe47=_0x410011;warnUser(_0x65fe47(0x86f));},0x1)),delete _0x42c792[_0x410011(0x3c0)][_0x55a519],_0x42c792[_0x410011(0x3a7)](),applySceneState();},_0x42c792[_0x5b10c6(0x996)]={},_0x42c792['closeRPC']=function(_0x142b99,_0x3feac7=![],_0x2f8e72=![]){var _0x52e296=_0x5b10c6;if(!(_0x142b99 in _0x42c792[_0x52e296(0x9f2)]))return log(_0x52e296(0x6bc)),![];warnlog(_0x52e296(0x9b8)),clearInterval(_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x7c0)]);if(_0x42c792[_0x52e296(0x4d0)]&&_0x2f8e72)_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x8a7)]=!![];else{if(_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x8a7)]&&!_0x3feac7)return!![];else{_0x42c792[_0x52e296(0x9f2)][_0x142b99]['stashed']=![];try{_0x42c792['sendRequest']({'bye':!![]},_0x142b99),warnlog(_0x52e296(0xb02));}catch(_0x5f3b7a){}}}try{var _0x3447f7=_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x476)];}catch(_0x96a348){}try{_0x42c792['rpcs'][_0x142b99][_0x52e296(0x16f)]();}catch(_0x1123db){warnlog(_0x52e296(0x9f5));}if(_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x8a7)])return!![];_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x360)]&&clearInterval(_0x42c792['rpcs'][_0x142b99][_0x52e296(0x360)]);try{_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x5f5)]&&_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x5f5)]['getTracks']()[_0x52e296(0x6d2)](function(_0x6fd535){var _0x2093b8=_0x52e296;_0x6fd535['stop'](),log(_0x2093b8(0x7b2));});}catch(_0x4148e3){}if(_0x42c792[_0x52e296(0x843)])try{_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0xb58)]&&_0x52e296(0x73d)in _0x42c792['rpcs'][_0x142b99][_0x52e296(0xb58)]&&_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0xb58)]['recorder'][_0x52e296(0x77f)]();}catch(_0x506188){warnlog(_0x506188);}else!_0x42c792[_0x52e296(0x273)]&&(_0x42c792[_0x52e296(0x6ad)]&&playtone(![],_0x52e296(0x730)));try{document[_0x52e296(0x83d)](_0x52e296(0x9e4)+_0x142b99)&&(!_0x42c792['syncState']&&(_0x42c792['syncState']={}),_0x3447f7&&(_0x42c792[_0x52e296(0x7fb)][_0x3447f7]=getDetailedState(_0x3447f7)),getById(_0x52e296(0x9e4)+_0x142b99)[_0x52e296(0xa98)][_0x52e296(0xa64)](getById(_0x52e296(0x9e4)+_0x142b99)),updateLockedElements());}catch(_0x2d61f6){warnlog(_0x2d61f6);}try{_0x42c792[_0x52e296(0x9f2)][_0x142b99]['videoElement']&&_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0xb58)][_0x52e296(0x881)]();}catch(_0x183bd7){}try{if(_0x42c792[_0x52e296(0x3ab)]!==![]){if(_0x42c792[_0x52e296(0x9f2)][_0x142b99]['iframeEle']){try{_0x42c792[_0x52e296(0x9f2)][_0x142b99]['iframeEle'][_0x52e296(0x881)]();}catch(_0x24d557){errorlog(_0x24d557);}_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x547)][_0x52e296(0x881)]();}}}catch(_0x1d54ed){}try{_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x4a6)]&&_0x42c792['rpcs'][_0x142b99][_0x52e296(0x4a6)][_0x52e296(0x881)]();}catch(_0x30c842){}try{_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x25f)]&&_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x25f)]['remove']();}catch(_0x33d34a){}_0x52e296(0x918)in _0x42c792[_0x52e296(0x9f2)][_0x142b99]&&clearInterval(_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x918)]);pokeIframeAPI('view-connection',![],_0x142b99),pokeAPI(_0x52e296(0x80a),_0x42c792['rpcs'][_0x142b99][_0x52e296(0x476)]);if(_0x42c792[_0x52e296(0x9c4)])try{pokeDiscord('endViewConnection',{'streamID':_0x42c792['rpcs'][_0x142b99][_0x52e296(0x476)],'label':_0x42c792['rpcs'][_0x142b99][_0x52e296(0x625)],'session':_0x42c792[_0x52e296(0x9f2)][_0x142b99][_0x52e296(0x610)],'startTime':_0x42c792['rpcs'][_0x142b99][_0x52e296(0x318)],'hangup':_0x3feac7});}catch(_0x56e459){console[_0x52e296(0x16d)](_0x56e459);}_0x42c792['rpcs'][_0x142b99][_0x52e296(0x5f7)]&&(_0x3447f7=![]);try{_0x42c792['rpcs'][_0x142b99]=null,delete _0x42c792[_0x52e296(0x9f2)][_0x142b99];}catch(_0x35a55d){}try{_0x42c792['closeRPC'](_0x142b99+_0x52e296(0x4b7));}catch(_0x40cd4b){}(!_0x42c792[_0x52e296(0x843)]||_0x42c792[_0x52e296(0x49e)])&&setTimeout(function(){updateMixer();},0x1);if(typeof _0x3447f7==_0x52e296(0x587))return![];try{warnlog(_0x52e296(0x637)),_0x3447f7&&(_0x3447f7 in _0x42c792[_0x52e296(0x3af)]&&(log('watchTimeoutList:'+_0x3447f7),clearTimeout(_0x42c792[_0x52e296(0x3af)][_0x3447f7]),delete _0x42c792[_0x52e296(0x3af)][_0x3447f7]),_0x42c792[_0x52e296(0x3af)][_0x3447f7]=setTimeout(function(_0x4a31ab){var _0x5397ac=_0x52e296;try{delete _0x42c792[_0x5397ac(0x3af)][_0x4a31ab];}catch(_0x54ba74){return warnlog(_0x5397ac(0x3a4)),![];}log('watchTimeoutList2:'+_0x4a31ab);try{for(var _0x3dbee9 in _0x42c792[_0x5397ac(0x9f2)]){if(_0x42c792['rpcs'][_0x3dbee9][_0x5397ac(0x476)]===_0x4a31ab){if(_0x42c792['rpcs'][_0x3dbee9][_0x5397ac(0x9e2)]==='connected')return warnlog('\x20---\x20we\x20will\x20not\x20ask\x20again;\x20we\x27re\x20already\x20connected'),![];}}}catch(_0x3d7f74){errorlog(_0x3d7f74);}warnlog(_0x5397ac(0xb4f)),_0x42c792['watchStream'](_0x4a31ab);},_0x42c792[_0x52e296(0x7d8)],_0x3447f7));}catch(_0xf39b16){errorlog(_0xf39b16);}return pokeIframeAPI(_0x52e296(0x86b),![],_0x142b99),_0x3447f7!==null?pokeIframeAPI(_0x52e296(0x497),_0x3447f7,_0x142b99):pokeIframeAPI(_0x52e296(0x497),!![],_0x142b99),updateUserList(),![];},_0x42c792[_0x5b10c6(0x7ee)]=null,_0x42c792[_0x5b10c6(0xa79)]=function(){var _0x459d6e=_0x5b10c6,_0x50526a=![];if(_0x42c792[_0x459d6e(0x1be)]){_0x42c792['forceRetry']&&clearTimeout(_0x42c792[_0x459d6e(0x7ee)]);if(_0x42c792['ws']===null||typeof _0x42c792['ws']!==_0x459d6e(0x698)||_0x42c792['ws']['readyState']!==0x1){}else{var _0x4e5663=_0x42c792[_0x459d6e(0x1be)][_0x459d6e(0x1e2)](',');for(var _0x373a2b in _0x4e5663){if(_0x4e5663[_0x373a2b]){var _0x2461f1=![];for(var _0x570300 in _0x42c792[_0x459d6e(0x9f2)]){if(_0x42c792[_0x459d6e(0x9f2)][_0x570300][_0x459d6e(0x476)]&&_0x42c792['rpcs'][_0x570300][_0x459d6e(0x476)]===_0x4e5663[_0x373a2b]){_0x2461f1=!![];break;}}_0x4e5663[_0x373a2b]in _0x42c792['watchTimeoutList']&&(_0x2461f1=!![]);if(_0x2461f1)continue;_0x42c792[_0x459d6e(0xa1f)](_0x4e5663[_0x373a2b]),_0x50526a=!![];}}}_0x42c792[_0x459d6e(0xacd)]&&_0x42c792['forceRetry']<0xa&&(_0x42c792[_0x459d6e(0xacd)]=0xa),_0x42c792[_0x459d6e(0xacd)]&&(_0x42c792['forceRetryTimeout']=setTimeout(function(){var _0xaf575e=_0x459d6e;log(_0xaf575e(0x33a)),_0x42c792[_0xaf575e(0xa79)]();},_0x42c792['forceRetry']*0x3e8));}return _0x50526a;},_0x42c792['offerSDP']=async function(_0x10544c){var _0x4a08cd=_0x5b10c6;if(_0x10544c in _0x42c792['pcs']){if(_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x9e2)]==='failed'||_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x9e2)]===_0x4a08cd(0x981))log(_0x4a08cd(0x23a)),_0x42c792[_0x4a08cd(0x83a)](_0x10544c),warnlog(_0x4a08cd(0x233));else{if(iPad||iOS)log(_0x4a08cd(0x77d)),_0x42c792[_0x4a08cd(0x83a)](_0x10544c),warnlog(_0x4a08cd(0x339));else{if(_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['connectionState']!==_0x4a08cd(0x36f)){await sleep(0xbb8);if(_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['connectionState']!==_0x4a08cd(0x36f))log('closing\x206'),_0x42c792['closePC'](_0x10544c),warnlog(_0x4a08cd(0x233));else{warnlog('The\x20other\x20end\x20is\x20just\x20being\x20a\x20keener.\x20Ignore\x20it:\x20'+_0x42c792['pcs'][_0x10544c]['connectionState']);return;}}else{warnlog('The\x20other\x20end\x20is\x20just\x20being\x20a\x20keener.\x20Ignore\x20it:\x20'+_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x9e2)]);return;}}}}else log(_0x4a08cd(0x3c5));if(_0x42c792[_0x4a08cd(0x173)]!==![]){if(Object['keys'](_0x42c792[_0x4a08cd(0x3c0)])[_0x4a08cd(0x606)]>_0x42c792[_0x4a08cd(0x173)]){log(_0x4a08cd(0x38e)),log(_0x4a08cd(0xaec)),_0x42c792[_0x4a08cd(0x83a)](_0x10544c);return;}}else{if(_0x42c792[_0x4a08cd(0x575)]!==![]){if(Object[_0x4a08cd(0x3fa)](_0x42c792['rpcs'])[_0x4a08cd(0x606)]+Object['keys'](_0x42c792[_0x4a08cd(0x3c0)])[_0x4a08cd(0x606)]>_0x42c792[_0x4a08cd(0x575)]){log(_0x4a08cd(0x4f4)),log('closing\x209'),_0x42c792[_0x4a08cd(0x83a)](_0x10544c);return;}}}!_0x42c792[_0x4a08cd(0xb26)]&&await chooseBestTURN();_0x42c792[_0x4a08cd(0xb37)]&&(_0x42c792[_0x4a08cd(0xb26)][_0x4a08cd(0xb37)]=!![]);_0x42c792[_0x4a08cd(0x1cb)]&&(_0x42c792[_0x4a08cd(0xb26)]['bundlePolicy']=_0x42c792['bundlePolicy']);try{_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]=new RTCPeerConnection(_0x42c792[_0x4a08cd(0xb26)]);}catch(_0x34043f){!_0x42c792[_0x4a08cd(0xad1)]&&warnUser(_0x4a08cd(0x551));errorlog(_0x34043f);return;}if(_0x42c792[_0x4a08cd(0x183)]){if(Object[_0x4a08cd(0x3fa)](_0x42c792[_0x4a08cd(0x3c0)])[_0x4a08cd(0x606)]>0x1){log('closing\x203'),log('closing\x2010'),_0x42c792['closePC'](_0x10544c);return;}}_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x546)]={},_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['session']=_0x42c792[_0x4a08cd(0x32f)]+_0x42c792[_0x4a08cd(0x963)](0x5),_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xa03)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xb0f)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x19a)]={},_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x19a)]['visibility']=null,_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x19a)][_0x4a08cd(0x63b)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x19a)][_0x4a08cd(0x5b8)]=null,_0x42c792['pcs'][_0x10544c]['obsState'][_0x4a08cd(0x9f4)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x19a)][_0x4a08cd(0xad9)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x978)]=![],_0x42c792['pcs'][_0x10544c][_0x4a08cd(0xaff)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x76b)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['layout']=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x985)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x7ec)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x600)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x89f)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x47d)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['setBitrate']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x60b)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x639)]=![],_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x66f)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x453)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x9a9)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['encoder']=null,_0x42c792['pcs'][_0x10544c]['forceios']=![],_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x3d7)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x555)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x628)]=![],_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x395)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xa09)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['allowChunked']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x49b)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x5c4)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x50e)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['allowBroadcast']=![],_0x42c792['pcs'][_0x10544c]['allowResources']=![],_0x42c792['pcs'][_0x10544c]['allowScreenVideo']=![],_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x559)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xaee)]=null,_0x42c792['pcs'][_0x10544c][_0x4a08cd(0xac6)]=_0x10544c,_0x42c792['pcs'][_0x10544c]['scale']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['rotation']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xa41)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['scaleWidth']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['scaleHeight']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x5ba)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x5b7)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['scaleResolution']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xa33)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x2ea)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x9e6)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['keyframeTimeout']=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['label']=![],_0x42c792['pcs'][_0x10544c]['order']=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x6c0)]=![],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xb1e)]=![],_0x42c792['pcs'][_0x10544c]['closeTimeout']=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x9ff)]=_0x42c792[_0x4a08cd(0x9ff)],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x5e7)]=![],_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x318)]=Date[_0x4a08cd(0x5ee)](),_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x1e5)]=null;function _0x58d7a8(_0x4b319=![]){var _0x455a14=_0x4a08cd;if(_0x4b319)return;_0x42c792[_0x455a14(0x3c0)][_0x10544c][_0x455a14(0x2b7)]=_0x42c792['pcs'][_0x10544c][_0x455a14(0x74a)]('sendChannel'),_0x42c792[_0x455a14(0x3c0)][_0x10544c][_0x455a14(0x2b7)][_0x455a14(0xac6)]=_0x10544c,_0x42c792[_0x455a14(0x3c0)][_0x10544c]['sendChannel'][_0x455a14(0x556)]=_0x1bd0ee=>{var _0xbc7006=_0x455a14;_0x1bd0ee[_0xbc7006(0x8fd)]&&_0x1bd0ee[_0xbc7006(0x8fd)][_0xbc7006(0x690)]&&_0x1bd0ee[_0xbc7006(0x8fd)][_0xbc7006(0x690)]!==0xc&&warnlog(_0x1bd0ee),log(_0xbc7006(0x70d)+_0x10544c);},_0x42c792['pcs'][_0x10544c]['sendChannel'][_0x455a14(0xaf3)]=()=>{var _0x74111d=_0x455a14;if(_0x4b319)return;_0x42c792[_0x74111d(0x3c0)][_0x10544c][_0x74111d(0x268)]=0x0,log('send\x20channel\x20open\x20pcs'),msg={},msg['info']={},msg['info'][_0x74111d(0x625)]=_0x42c792['label'],msg[_0x74111d(0x9aa)][_0x74111d(0x452)]=_0x42c792[_0x74111d(0x452)],msg[_0x74111d(0x9aa)]['order']=_0x42c792[_0x74111d(0x4a5)],msg[_0x74111d(0x9aa)][_0x74111d(0x920)]=_0x42c792['muted'],msg[_0x74111d(0x9aa)][_0x74111d(0x1c5)]=_0x42c792['queue'];try{(_0x42c792[_0x74111d(0x81d)][_0x74111d(0x606)]||_0x42c792[_0x74111d(0x5af)])&&(msg[_0x74111d(0x9aa)][_0x74111d(0x52c)]=_0x42c792[_0x74111d(0x81d)][_0x74111d(0x8eb)](','));}catch(_0x2e14d9){}msg[_0x74111d(0x9aa)][_0x74111d(0x218)]=_0x42c792[_0x74111d(0x218)],msg['info'][_0x74111d(0xa4a)]=_0x42c792[_0x74111d(0xa4a)],msg[_0x74111d(0x9aa)][_0x74111d(0xb4d)]=_0x42c792[_0x74111d(0xb4d)],msg['info'][_0x74111d(0xa7f)]=_0x42c792['permaMirrored'],msg['info'][_0x74111d(0xa54)]=_0x42c792[_0x74111d(0x71f)];_0x42c792[_0x74111d(0x273)]?msg[_0x74111d(0x9aa)][_0x74111d(0x30f)]=!![]:msg[_0x74111d(0x9aa)][_0x74111d(0x30f)]=![];if(_0x42c792[_0x74111d(0x843)]){if(!_0x42c792[_0x74111d(0x46d)]&&_0x42c792[_0x74111d(0x95b)]&&_0x42c792[_0x74111d(0x95b)]===_0x10544c)_0x42c792['newMainDirectorSetup']();else{msg['directorSettings']={};_0x42c792[_0x74111d(0x46d)]&&(msg[_0x74111d(0x90a)][_0x74111d(0x8d4)]=!![]);msg[_0x74111d(0x90a)][_0x74111d(0x65f)]=_0x42c792[_0x74111d(0x65f)];_0x42c792['soloChatUUID'][_0x74111d(0x606)]&&!_0x42c792[_0x74111d(0xb46)][_0x74111d(0x401)](_0x10544c)&&(msg[_0x74111d(0x9aa)][_0x74111d(0x920)]=!![]);var _0x2bd20a=[];for(var _0x17c0de in _0x42c792[_0x74111d(0x3c0)]){_0x42c792[_0x74111d(0x3c0)][_0x17c0de][_0x74111d(0x47d)]===!![]&&_0x2bd20a[_0x74111d(0x3e0)](_0x17c0de);}_0x42c792[_0x74111d(0x5f2)]&&(msg[_0x74111d(0x90a)][_0x74111d(0x307)]=!![]),_0x2bd20a[_0x74111d(0x606)]&&(msg['directorSettings'][_0x74111d(0x4b6)]=_0x2bd20a);}_0x42c792[_0x74111d(0x24d)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x4df)]=_0x42c792[_0x74111d(0x24d)]);}_0x42c792[_0x74111d(0x3ab)]!==![]?msg[_0x74111d(0x9aa)]['broadcast_mode']=!![]:msg[_0x74111d(0x9aa)][_0x74111d(0x60c)]=![];_0x42c792[_0x74111d(0x5e7)]?msg[_0x74111d(0x9aa)]['remote']=!![]:msg[_0x74111d(0x9aa)]['remote']=![];_0x42c792[_0x74111d(0x628)]?msg[_0x74111d(0x9aa)][_0x74111d(0x7d6)]=!![]:msg[_0x74111d(0x9aa)][_0x74111d(0x7d6)]=![];if(_0x42c792[_0x74111d(0x8ce)])msg['info'][_0x74111d(0xb23)]=_0x42c792[_0x74111d(0x8ce)];else{if(_0x42c792[_0x74111d(0x8ce)]===![])msg[_0x74111d(0x9aa)][_0x74111d(0xb23)]=![];else _0x42c792['roomid']&&!_0x42c792[_0x74111d(0x843)]?msg[_0x74111d(0x9aa)][_0x74111d(0xb23)]=![]:msg[_0x74111d(0x9aa)][_0x74111d(0xb23)]=null;}_0x42c792[_0x74111d(0x157)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x157)]=!![]);msg[_0x74111d(0x9aa)][_0x74111d(0x608)]=_0x42c792['screenshare'];!_0x42c792[_0x74111d(0x89d)]&&(msg[_0x74111d(0x9aa)]['smallScreen']=!![]);_0x42c792['notifyScreenShare']&&!_0x42c792[_0x74111d(0x442)]?msg[_0x74111d(0x9aa)][_0x74111d(0x33f)]=_0x42c792[_0x74111d(0x33f)]:msg['info'][_0x74111d(0x33f)]=![];msg[_0x74111d(0x9aa)]['width_url']=_0x42c792[_0x74111d(0xb1b)],msg[_0x74111d(0x9aa)][_0x74111d(0xaa5)]=_0x42c792[_0x74111d(0x229)];try{if(_0x42c792[_0x74111d(0x5f5)]){let _0xa19607=_0x42c792[_0x74111d(0x5f5)][_0x74111d(0x40c)]();if(_0xa19607[_0x74111d(0x606)]){let _0x3aa192=_0xa19607[0x0][_0x74111d(0x435)]();msg['info'][_0x74111d(0xa4d)]=_0x3aa192[_0x74111d(0xb1b)]||![],msg['info'][_0x74111d(0x868)]=_0x3aa192[_0x74111d(0x229)]||![],msg[_0x74111d(0x9aa)][_0x74111d(0x89a)]=parseInt(_0x3aa192[_0x74111d(0x4a9)])||![];}}if(_0x42c792[_0x74111d(0x442)]&&_0x42c792[_0x74111d(0x442)][_0x74111d(0x3b0)]){let _0xe89d98=_0x42c792[_0x74111d(0x442)][_0x74111d(0x3b0)][_0x74111d(0x40c)]();if(_0xe89d98['length']){let _0x1903c6=_0xe89d98[0x0]['getSettings']();msg[_0x74111d(0x9aa)]['video_2_init_width']=_0x1903c6[_0x74111d(0xb1b)]||![],msg['info']['video_2_init_height']=_0x1903c6[_0x74111d(0x229)]||![],msg['info'][_0x74111d(0x315)]=parseInt(_0x1903c6['frameRate'])||![];}}}catch(_0x3c32d3){errorlog(_0x3c32d3);}msg[_0x74111d(0x9aa)][_0x74111d(0x2bb)]=_0x42c792['quality'],msg[_0x74111d(0x9aa)][_0x74111d(0x5c6)]=_0x42c792[_0x74111d(0x64b)],msg[_0x74111d(0x9aa)]['maxviewers_url']=_0x42c792[_0x74111d(0x173)],msg[_0x74111d(0x9aa)]['stereo_url']=_0x42c792['stereo'],msg[_0x74111d(0x9aa)][_0x74111d(0x186)]=_0x42c792['echoCancellation'],msg[_0x74111d(0x9aa)]['agc_url']=_0x42c792['autoGainControl'],msg[_0x74111d(0x9aa)][_0x74111d(0x3d0)]=_0x42c792[_0x74111d(0x279)],msg[_0x74111d(0x9aa)]['isolation_url']=_0x42c792['voiceIsolation'],msg['info'][_0x74111d(0x41f)]=_0x42c792[_0x74111d(0x41f)],msg[_0x74111d(0x9aa)][_0x74111d(0x24b)]=_0x42c792['audioGain'],msg[_0x74111d(0x9aa)][_0x74111d(0x1b5)]=_0x42c792[_0x74111d(0x4e8)],msg[_0x74111d(0x9aa)][_0x74111d(0x4aa)]=_0x42c792['micDelay'],msg[_0x74111d(0x9aa)]['recording_audio_ctx_latency']=_0x42c792[_0x74111d(0x53f)],msg[_0x74111d(0x9aa)][_0x74111d(0xa10)]=!_0x42c792[_0x74111d(0x221)],msg[_0x74111d(0x9aa)][_0x74111d(0x6cc)]=_0x42c792[_0x74111d(0x42a)],msg[_0x74111d(0x9aa)][_0x74111d(0x66a)]=_0x42c792[_0x74111d(0x7ef)],msg[_0x74111d(0x9aa)]['playback_audio_volume_meter']=_0x42c792[_0x74111d(0x6b1)];_0x42c792[_0x74111d(0x5a4)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x5a4)]=_0x42c792[_0x74111d(0x5a4)]);_0x42c792[_0x74111d(0x546)][_0x74111d(0x54a)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x7b0)]=_0x42c792[_0x74111d(0x546)][_0x74111d(0x54a)]);_0x42c792[_0x74111d(0x475)]!==![]?_0x42c792['rotate']?msg['info'][_0x74111d(0x19c)]=_0x42c792[_0x74111d(0x475)]+parseInt(_0x42c792[_0x74111d(0x7b4)]):msg[_0x74111d(0x9aa)][_0x74111d(0x19c)]=_0x42c792[_0x74111d(0x475)]:msg['info'][_0x74111d(0x19c)]=_0x42c792['rotate'];msg[_0x74111d(0x9aa)][_0x74111d(0x19c)]&&msg[_0x74111d(0x9aa)][_0x74111d(0x19c)]>=0x168&&(msg['info'][_0x74111d(0x19c)]-=0x168);try{navigator&&navigator[_0x74111d(0x63e)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x410)]=navigator[_0x74111d(0x63e)]);navigator&&navigator['platform']&&(msg[_0x74111d(0x9aa)]['platform']=navigator[_0x74111d(0x72f)]);gpgpuSupport&&(msg['info'][_0x74111d(0x544)]=gpgpuSupport);cpuSupport&&(msg['info'][_0x74111d(0x6aa)]=cpuSupport);iOS&&(msg[_0x74111d(0x9aa)][_0x74111d(0x5ac)]=iPhone12Up);if(SafariVersion)msg[_0x74111d(0x9aa)]['Browser']='Safari\x20'+SafariVersion;else{if(getChromiumVersion()>0x3c)msg[_0x74111d(0x9aa)][_0x74111d(0x477)]='Chromium-based\x20v'+getChromiumVersion();else{if(Firefox)msg[_0x74111d(0x9aa)][_0x74111d(0x477)]=_0x74111d(0x354);else navigator[_0x74111d(0x63e)]['indexOf']('CriOS')>=0x0?msg[_0x74111d(0x9aa)][_0x74111d(0x477)]='Chrome\x20for\x20iOS':msg[_0x74111d(0x9aa)][_0x74111d(0x477)]='Unknown';}}}catch(_0x34019b){}_0x42c792[_0x74111d(0xa76)]&&(_0x74111d(0x7d7)in _0x42c792[_0x74111d(0xa76)]&&(typeof _0x42c792[_0x74111d(0xa76)][_0x74111d(0x7d7)]=='number'?msg[_0x74111d(0x9aa)]['power_level']=parseInt(_0x42c792[_0x74111d(0xa76)]['level']*0x64):msg['info'][_0x74111d(0x9d5)]=_0x42c792[_0x74111d(0xa76)][_0x74111d(0x7d7)]),_0x74111d(0x860)in _0x42c792[_0x74111d(0xa76)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x4e6)]=_0x42c792[_0x74111d(0xa76)]['charging']));_0x42c792[_0x74111d(0x762)]&&(msg[_0x74111d(0x9aa)][_0x74111d(0x762)]=_0x42c792['cpuLimited']);try{_0x42c792[_0x74111d(0x9aa)]['out']&&(msg['miniInfo']={},msg['miniInfo'][_0x74111d(0x808)]={},msg[_0x74111d(0x182)]['out']['c']=_0x42c792['info'][_0x74111d(0x808)]['c']);}catch(_0x597bf9){}_0x42c792[_0x74111d(0x8ae)](msg,_0x10544c),pokeIframeAPI(_0x74111d(0x593),!![],_0x10544c),pokeIframeAPI(_0x74111d(0x175),!![],_0x10544c),updateUserList();},_0x42c792[_0x455a14(0x3c0)][_0x10544c]['sendChannel']['onclose']=()=>{var _0x4339e7=_0x455a14;pokeIframeAPI('new-push-connection',![],_0x10544c),_0x42c792[_0x4339e7(0x68d)](),warnlog(_0x4339e7(0x8e1));return;},_0x42c792[_0x455a14(0x3c0)][_0x10544c]['sendChannel'][_0x455a14(0x73b)]=async _0x3e2278=>{var _0x4aa36b=_0x455a14;log('received\x20data\x20from\x20viewer');try{var _0x244b25=JSON[_0x4aa36b(0x867)](_0x3e2278['data']);}catch(_0x565041){warnlog('Couldn\x27t\x20parse\x20JSON;\x20will\x20attempt\x20as\x20ArrayBuffer\x20UINT8ARRAY'),log(_0x3e2278[_0x4aa36b(0x461)]);try{var _0x508552=new TextDecoder()['decode'](_0x3e2278[_0x4aa36b(0x461)]),_0x244b25=JSON['parse'](_0x508552);}catch(_0x55ce61){try{var _0x244b25=await new Response(_0x3e2278[_0x4aa36b(0x461)])[_0x4aa36b(0x641)]();_0x244b25=JSON[_0x4aa36b(0x867)](_0x244b25);}catch(_0x4f0647){return;}}}log(_0x244b25);if('remote'in _0x244b25)try{_0x244b25=await _0x42c792[_0x4aa36b(0x732)](_0x244b25);if(!_0x244b25)return;}catch(_0x5a82b2){errorlog(_0x5a82b2);}if(_0x244b25['rmid']||_0x244b25['mid']){let _0x188a07=_0x244b25['rmid']||_0x244b25[_0x4aa36b(0x7e3)];if(_0x42c792[_0x4aa36b(0xa01)][_0x10544c]){if(_0x42c792[_0x4aa36b(0xa01)][_0x10544c][_0x4aa36b(0x401)](_0x188a07))return;else _0x42c792[_0x4aa36b(0xa01)][_0x10544c][_0x4aa36b(0x3e0)](_0x188a07);}else _0x42c792[_0x4aa36b(0xa01)][_0x10544c]=[_0x188a07];}'altUUID'in _0x244b25?await _0x42c792[_0x4aa36b(0x8f0)](_0x244b25,_0x10544c+_0x4aa36b(0x4b7),_0x10544c):await _0x42c792[_0x4aa36b(0x8f0)](_0x244b25,_0x10544c);};}!_0x42c792[_0x4a08cd(0x941)]&&_0x58d7a8(![]),_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x8f1)]=_0x522292=>{var _0x47f3e5=_0x4a08cd;warnlog(_0x47f3e5(0x8f8)),warnlog(_0x522292);if(_0x522292[_0x47f3e5(0x536)][_0x47f3e5(0x625)]&&_0x522292[_0x47f3e5(0x536)][_0x47f3e5(0x625)]!==_0x47f3e5(0x2b7)){_0x42c792[_0x47f3e5(0x62b)](_0x42c792['rpcs'],_0x10544c,_0x522292[_0x47f3e5(0x536)]);return;}},_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xa50)]=_0x454329=>{var _0x4034a9=_0x4a08cd;log(_0x4034a9(0xa44)),_0x42c792['createOffer'](_0x10544c);},_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x304)]=_0x145a7b=>{var _0x2a5afe=_0x4a08cd;errorlog(_0x2a5afe(0x9ed));},_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x989)]=null,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x54e)]=[],_0x42c792[_0x4a08cd(0x3c0)][_0x10544c]['delayIceSend']=0xa,_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x195)]=_0x45f735=>{var _0x27ba0e=_0x4a08cd;if(_0x45f735['candidate']==null){log(_0x27ba0e(0x43f));return;}log(_0x45f735);try{if(_0x42c792[_0x27ba0e(0x757)]){if(_0x45f735[_0x27ba0e(0x943)]['candidate']['indexOf'](_0x42c792[_0x27ba0e(0x757)])===-0x1){log(_0x27ba0e(0x196));return;}else log(_0x45f735['candidate']);}}catch(_0x3ccdc2){errorlog(_0x3ccdc2);}try{if(_0x42c792['localNetworkOnly']){if(!filterIceLAN(_0x45f735[_0x27ba0e(0x943)]))return;}if(_0x42c792[_0x27ba0e(0x835)]){if(!filterStunOnly(_0x45f735[_0x27ba0e(0x943)]))return;}}catch(_0x43acf6){errorlog(_0x43acf6);}if(_0x42c792[_0x27ba0e(0x3c0)][_0x10544c][_0x27ba0e(0x989)]!==null){_0x42c792[_0x27ba0e(0x3c0)][_0x10544c][_0x27ba0e(0x54e)][_0x27ba0e(0x3e0)](_0x45f735[_0x27ba0e(0x943)]);return;}_0x42c792[_0x27ba0e(0x3c0)][_0x10544c][_0x27ba0e(0x54e)]['push'](_0x45f735['candidate']),_0x42c792[_0x27ba0e(0x3c0)][_0x10544c][_0x27ba0e(0x989)]=setTimeout(function(_0x1e7afe){var _0x17bb2e=_0x27ba0e;try{_0x42c792[_0x17bb2e(0x3c0)][_0x1e7afe][_0x17bb2e(0x989)]=null;}catch(_0x43d6b5){warnlog(_0x17bb2e(0x3da));return;}var _0x57a6ec={};_0x57a6ec['UUID']=_0x1e7afe,_0x57a6ec[_0x17bb2e(0x94c)]=_0x17bb2e(0x4ad),_0x57a6ec['candidates']=_0x42c792[_0x17bb2e(0x3c0)][_0x1e7afe]['iceBundle'],_0x57a6ec[_0x17bb2e(0x610)]=_0x42c792[_0x17bb2e(0x3c0)][_0x1e7afe][_0x17bb2e(0x610)],_0x42c792[_0x17bb2e(0x3c0)][_0x1e7afe][_0x17bb2e(0x54e)]=[],_0x42c792['pcs'][_0x10544c][_0x17bb2e(0x268)]=0x3e8,_0x42c792['password']?_0x42c792[_0x17bb2e(0x712)](JSON['stringify'](_0x57a6ec[_0x17bb2e(0x243)]))[_0x17bb2e(0x272)](function(_0x3de482){var _0xe31ff1=_0x17bb2e;_0x57a6ec[_0xe31ff1(0x243)]=_0x3de482[0x0],_0x57a6ec[_0xe31ff1(0x97b)]=_0x3de482[0x1],_0x42c792[_0xe31ff1(0x3b9)](_0x57a6ec);})['catch'](errorlog):_0x42c792[_0x17bb2e(0x3b9)](_0x57a6ec);},_0x42c792['pcs'][_0x10544c][_0x27ba0e(0x268)],_0x10544c);},_0x42c792[_0x4a08cd(0x8f0)]=async function(_0x32fc7e,_0x2e3933,_0x512c48=![]){var _0x19125c=_0x4a08cd;_0x32fc7e[_0x19125c(0xac6)]=_0x2e3933;if(_0x32fc7e[_0x19125c(0x5dd)]){_0x42c792[_0x19125c(0x211)](_0x32fc7e);return;}else{if(_0x32fc7e[_0x19125c(0x943)]){log('GOT\x20ICE!!'),_0x42c792['processIce'](_0x32fc7e);return;}else{if(_0x32fc7e[_0x19125c(0x243)]){log(_0x19125c(0xae3)),_0x42c792[_0x19125c(0x6d1)](_0x32fc7e);return;}else{if(_0x19125c(0x68d)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x2df)]=_0x32fc7e[_0x19125c(0x68d)],_0x42c792['sendMessage'](_0x2e2206,_0x2e3933),warnlog(_0x19125c(0x74c));return;}else{if(_0x19125c(0x2df)in _0x32fc7e){warnlog(_0x19125c(0x215));return;}else{if('bye'in _0x32fc7e){warnlog('BYE'),log('closing\x2012'),_0x42c792[_0x19125c(0x83a)](_0x2e3933);return;}}}}}}if(_0x42c792[_0x19125c(0x843)]){if(_0x19125c(0x51d)in _0x32fc7e&&_0x19125c(0x97b)in _0x32fc7e){if(_0x42c792[_0x19125c(0xabb)])_0x42c792[_0x19125c(0x57a)]?_0x42c792[_0x19125c(0xaeb)](_0x32fc7e[_0x19125c(0x51d)],_0x32fc7e[_0x19125c(0x97b)],_0x42c792[_0x19125c(0x57a)])['then'](function(_0x5d44ff){var _0x4cc826=_0x19125c;if(_0x5d44ff===_0x42c792[_0x4cc826(0x57a)]){_0x42c792[_0x4cc826(0x3c0)][_0x2e3933][_0x4cc826(0x47d)]=!![],_0x42c792[_0x4cc826(0x74b)][_0x4cc826(0x3e0)](_0x2e3933),getById(_0x4cc826(0x9e4)+_0x2e3933)['classList'][_0x4cc826(0xb15)](_0x4cc826(0x95c)),_0x42c792[_0x4cc826(0xa86)](_0x2e3933);var _0x5ef0ce={};_0x5ef0ce[_0x4cc826(0x88d)]='requestCoDirector',_0x42c792[_0x4cc826(0x8ae)](_0x5ef0ce,_0x2e3933);}else{warnlog('codirector\x20request\x20hash\x20failed');var _0x5ef0ce={};_0x5ef0ce['rejected']=_0x4cc826(0x51d),_0x42c792[_0x4cc826(0x8ae)](_0x5ef0ce,_0x2e3933);}})[_0x19125c(0xaef)](function(){var _0x315572=_0x19125c;warnlog('Failed\x20attempt\x20to\x20connect\x20as\x20co-director');var _0x46f2c4={};_0x46f2c4[_0x315572(0x696)]=_0x315572(0x51d),_0x42c792[_0x315572(0x8ae)](_0x46f2c4,_0x2e3933);}):generateHash(_0x42c792[_0x19125c(0xabb)]+_0x42c792[_0x19125c(0xb25)]+_0x19125c(0x295),0xc)[_0x19125c(0x272)](function(_0x47e199){var _0x25c812=_0x19125c;_0x42c792[_0x25c812(0x57a)]=_0x47e199,_0x42c792[_0x25c812(0xaeb)](_0x32fc7e[_0x25c812(0x51d)],_0x32fc7e[_0x25c812(0x97b)],_0x42c792['directorHash'])[_0x25c812(0x272)](function(_0x3adb68){var _0x15d850=_0x25c812;if(_0x3adb68===_0x42c792[_0x15d850(0x57a)]){_0x42c792[_0x15d850(0x3c0)][_0x2e3933][_0x15d850(0x47d)]=!![],_0x42c792['directorList']['push'](_0x2e3933),getById(_0x15d850(0x9e4)+_0x2e3933)[_0x15d850(0x33d)][_0x15d850(0xb15)](_0x15d850(0x95c)),_0x42c792['announceCoDirector'](_0x2e3933);var _0x5083bd={};_0x5083bd[_0x15d850(0x88d)]=_0x15d850(0x51d),_0x42c792[_0x15d850(0x380)](_0x5083bd,_0x2e3933);}else{warnlog(_0x15d850(0x2e7));var _0x5083bd={};_0x5083bd[_0x15d850(0x696)]='requestCoDirector',_0x42c792['sendRequest'](_0x5083bd,_0x2e3933);}})[_0x25c812(0xaef)](function(){var _0x36d6cf=_0x25c812;warnlog(_0x36d6cf(0x4ff));var _0x5767ca={};_0x5767ca[_0x36d6cf(0x696)]=_0x36d6cf(0x51d),_0x42c792[_0x36d6cf(0x380)](_0x5767ca,_0x2e3933);});return;})[_0x19125c(0xaef)](errorlog);else{warnlog(_0x19125c(0xb57));var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x51d),_0x42c792[_0x19125c(0x380)](_0x2e2206,_0x2e3933);}}if(_0x19125c(0x15a)in _0x32fc7e&&_0x19125c(0x273)in _0x32fc7e){log('Someone\x20is\x20trying\x20to\x20transfer\x20a\x20guest');if(_0x42c792[_0x19125c(0xa1c)]){if(_0x2e3933 in _0x42c792['pcs']&&_0x42c792['pcs'][_0x2e3933]['coDirector']===!![]){log(_0x19125c(0xacb));var _0x2e2206={};if(_0x32fc7e[_0x19125c(0x6fa)]&&_0x32fc7e[_0x19125c(0x6fa)][_0x19125c(0xa28)])_0x2e2206[_0x19125c(0x8e8)]=_0x19125c(0x15a),_0x2e2206['transferSettings']=_0x32fc7e[_0x19125c(0x6fa)],log(_0x2e2206),_0x42c792['sendRequest'](_0x2e2206,_0x32fc7e[_0x19125c(0x15a)][_0x19125c(0x880)](),function(){var _0x891360=_0x19125c,_0x46e00e={};_0x46e00e[_0x891360(0x8e8)]='migrate',_0x46e00e[_0x891360(0x273)]=_0x32fc7e[_0x891360(0x273)],_0x46e00e[_0x891360(0x2e0)]=_0x32fc7e[_0x891360(0x15a)][_0x891360(0x880)](),_0x42c792['sendMsg'](_0x46e00e);}),log(_0x2e2206);else{if(_0x32fc7e['transferSettings']&&_0x19125c(0x3ab)in _0x32fc7e[_0x19125c(0x6fa)])_0x2e2206[_0x19125c(0x8e8)]=_0x19125c(0x15a),_0x2e2206[_0x19125c(0x6fa)]=_0x32fc7e['transferSettings'],delete _0x2e2206[_0x19125c(0x6fa)]['roomid'],delete _0x2e2206[_0x19125c(0x6fa)][_0x19125c(0xaca)],log(_0x2e2206),_0x42c792[_0x19125c(0x380)](_0x2e2206,_0x32fc7e[_0x19125c(0x15a)][_0x19125c(0x880)](),function(){var _0x15ce50=_0x19125c,_0x13168b={};_0x13168b[_0x15ce50(0x8e8)]=_0x15ce50(0x15a),_0x13168b[_0x15ce50(0x273)]=_0x32fc7e[_0x15ce50(0x273)],_0x13168b[_0x15ce50(0x2e0)]=_0x32fc7e[_0x15ce50(0x15a)]['toString'](),_0x42c792[_0x15ce50(0x3b4)](_0x13168b);}),log(_0x2e2206);else Object[_0x19125c(0x3fa)](_0x32fc7e[_0x19125c(0x6fa)])[_0x19125c(0x606)]?(_0x2e2206[_0x19125c(0x8e8)]='migrate',_0x2e2206[_0x19125c(0x6fa)]=_0x32fc7e[_0x19125c(0x6fa)],delete _0x2e2206[_0x19125c(0x6fa)][_0x19125c(0x273)],delete _0x2e2206[_0x19125c(0x6fa)][_0x19125c(0xaca)],log(_0x2e2206),_0x42c792['sendRequest'](_0x2e2206,_0x32fc7e[_0x19125c(0x15a)][_0x19125c(0x880)](),function(){var _0x299f15=_0x19125c,_0x15ad92={};_0x15ad92[_0x299f15(0x8e8)]=_0x299f15(0x15a),_0x15ad92[_0x299f15(0x273)]=_0x32fc7e[_0x299f15(0x273)],_0x15ad92[_0x299f15(0x2e0)]=_0x32fc7e[_0x299f15(0x15a)][_0x299f15(0x880)](),_0x42c792[_0x299f15(0x3b4)](_0x15ad92);}),log(_0x2e2206)):(_0x2e2206[_0x19125c(0x8e8)]=_0x19125c(0x15a),_0x2e2206[_0x19125c(0x273)]=_0x32fc7e[_0x19125c(0x273)],_0x2e2206[_0x19125c(0x2e0)]=_0x32fc7e[_0x19125c(0x15a)]['toString'](),_0x42c792[_0x19125c(0x3b4)](_0x2e2206));}pokeIframeAPI('transfer',_0x32fc7e['roomid'],_0x32fc7e['migrate']['toString']());}}else{var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x1b6),_0x42c792[_0x19125c(0x380)](_0x2e2206,_0x2e3933);}}}if('requestAs'in _0x32fc7e){if(!_0x32fc7e['UUID']){log(_0x19125c(0x27b));return;}var _0x36c9b2=_0x32fc7e['requestAs'];if(!_0x42c792['pcs'][_0x36c9b2]){log(_0x19125c(0x6f0));return;}if(_0x42c792['directorList']['indexOf'](_0x36c9b2)>=0x0){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='requestAs',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x32fc7e[_0x19125c(0xac6)]),warnlog(_0x19125c(0x59c));return;}if(_0x42c792[_0x19125c(0x5e7)]){if(_0x19125c(0x5e7)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792[_0x19125c(0x5e7)]&&_0x42c792[_0x19125c(0x5e7)]){}else{if(_0x42c792[_0x19125c(0x5e7)]===!![]){}}}else{if(_0x42c792[_0x19125c(0x74b)]['indexOf'](_0x32fc7e[_0x19125c(0xac6)])>=0x0){}else return;}_0x19125c(0x74d)in _0x32fc7e&&_0x42c792['targetBitrate'](_0x36c9b2,_0x32fc7e[_0x19125c(0x74d)]);_0x19125c(0x1f4)in _0x32fc7e&&_0x42c792[_0x19125c(0x1f4)](_0x36c9b2,_0x32fc7e['targetAudioBitrate']);if('requestResolution'in _0x32fc7e)try{_0x42c792[_0x19125c(0x8ef)](_0x36c9b2,_0x32fc7e[_0x19125c(0xa4f)]['w'],_0x32fc7e['requestResolution']['h'],_0x32fc7e[_0x19125c(0xa4f)]['s'],_0x32fc7e[_0x19125c(0xa4f)]['c']);}catch(_0x1423c6){errorlog(_0x1423c6);}return;}manageSceneState(_0x32fc7e,_0x2e3933);try{if(_0x19125c(0x9aa)in _0x32fc7e){_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['stats'][_0x19125c(0x9aa)]=_0x32fc7e[_0x19125c(0x9aa)];_0x19125c(0x625)in _0x32fc7e['info']&&(typeof _0x32fc7e[_0x19125c(0x9aa)][_0x19125c(0x625)]==_0x19125c(0x974)?_0x42c792['pcs'][_0x2e3933][_0x19125c(0x625)]=sanitizeLabel(_0x32fc7e[_0x19125c(0x9aa)][_0x19125c(0x625)]):_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x625)]=![]);if(_0x512c48){if(_0x512c48===_0x42c792['directorUUID'])try{_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x546)][_0x19125c(0x9aa)]['director']=!![];}catch(_0x1e61fb){}else{if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48)>=0x0)try{_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x546)]['info']['coDirector']=!![];}catch(_0x1ddfe3){}}}else{if(_0x2e3933===_0x42c792[_0x19125c(0x95b)])try{_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x546)][_0x19125c(0x9aa)]['director']=!![];}catch(_0x26620e){}else{if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x2e3933)>=0x0)try{_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x546)][_0x19125c(0x9aa)][_0x19125c(0x47d)]=!![];}catch(_0x478303){}}}_0x42c792[_0x19125c(0x40a)]&&_0x42c792[_0x19125c(0x843)]&&'obs'in _0x32fc7e[_0x19125c(0x9aa)]&&_0x32fc7e['info'][_0x19125c(0x4f3)]&&(createSlotUpdate(_0x2e3933),_0x42c792[_0x19125c(0x2d2)]?_0x42c792[_0x19125c(0x8ae)]({'obsSceneTriggers':_0x42c792[_0x19125c(0x2d2)],'layouts':_0x42c792[_0x19125c(0x40a)]},_0x2e3933):_0x42c792[_0x19125c(0x8ae)]({'layouts':_0x42c792[_0x19125c(0x40a)]},_0x2e3933));if(Firefox||_0x32fc7e[_0x19125c(0x9aa)]['firefox'])try{'vb_url'in _0x32fc7e['info']&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaff)]===![]&&(_0x32fc7e[_0x19125c(0x9aa)][_0x19125c(0xacf)]&&parseInt(_0x32fc7e['info'][_0x19125c(0xacf)])>0x0&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaff)]=parseInt(_0x32fc7e[_0x19125c(0x9aa)][_0x19125c(0xacf)]),_0x42c792['pcs'][_0x2e3933][_0x19125c(0x985)]&&clearTimeout(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x985)]),_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x985)]=setTimeout(function(_0x1a166d){var _0x303404=_0x19125c;_0x42c792[_0x303404(0x6f3)](_0x1a166d,null);},0x3e8,_0x2e3933))));}catch(_0x3a37fd){errorlog(_0x3a37fd);}pokeIframeAPI('push-connection-info',_0x32fc7e['info'],_0x2e3933);}if(_0x19125c(0x3ce)in _0x32fc7e){if(_0x42c792['iframeSrc'])try{_0x42c792[_0x19125c(0x343)][_0x19125c(0x52f)]('https://www.youtube.com/')&&processIframeSyncFeedback(_0x32fc7e[_0x19125c(0x3ce)],_0x2e3933);}catch(_0x48185f){errorlog(_0x48185f);}}_0x19125c(0xa4e)in _0x32fc7e&&_0x42c792[_0x19125c(0x21a)](_0x32fc7e[_0x19125c(0xa4e)],_0x2e3933);if(_0x19125c(0xac5)in _0x32fc7e){if(_0x42c792[_0x19125c(0x628)]){!_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['realUUID']?_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)]=receiveDrawingOnVideo(_0x42c792[_0x19125c(0x9c7)],_0x2e3933):_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)]=receiveDrawingOnVideo(_0x42c792[_0x19125c(0xb58)],_0x2e3933));if(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)]){if(typeof _0x32fc7e[_0x19125c(0xac5)]==_0x19125c(0x974)){if(_0x32fc7e['draw']==_0x19125c(0x3e7))_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)]['clearDrawing']();else{if(_0x32fc7e[_0x19125c(0xac5)]==_0x19125c(0x8c4))_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)][_0x19125c(0x8c4)]();else _0x32fc7e[_0x19125c(0xac5)]==_0x19125c(0x82b)&&_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x423)][_0x19125c(0xa3c)]('undo');}}else _0x42c792['pcs'][_0x2e3933][_0x19125c(0x423)][_0x19125c(0xa3c)](_0x32fc7e[_0x19125c(0xac5)]);}}return;}'autoSync'in _0x32fc7e&&(_0x42c792[_0x19125c(0x24d)]=_0x32fc7e[_0x19125c(0x4df)],_0x42c792[_0x19125c(0x6f4)](_0x2e3933));'optimizedBitrate'in _0x32fc7e&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['optimizedBitrate']=parseInt(_0x32fc7e[_0x19125c(0x978)]));'audioBitrate'in _0x32fc7e&&_0x42c792[_0x19125c(0x4d8)](_0x2e3933,_0x32fc7e[_0x19125c(0xb52)]);_0x19125c(0x4bf)in _0x32fc7e&&_0x42c792['limitBitrate'](_0x2e3933,_0x32fc7e['bitrate']);'targetBitrate'in _0x32fc7e&&_0x42c792[_0x19125c(0x74d)](_0x2e3933,_0x32fc7e[_0x19125c(0x74d)]);_0x19125c(0x1f4)in _0x32fc7e&&_0x42c792[_0x19125c(0x1f4)](_0x2e3933,_0x32fc7e[_0x19125c(0x1f4)]);if(_0x19125c(0x888)in _0x32fc7e){if('remote'in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792[_0x19125c(0x5e7)]&&_0x42c792[_0x19125c(0x5e7)]||_0x42c792[_0x19125c(0x5e7)]===!![]){_0x42c792[_0x19125c(0x888)]();return;}}}if(_0x19125c(0x274)in _0x32fc7e){if(_0x19125c(0x5e7)in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792[_0x19125c(0x5e7)]&&_0x42c792[_0x19125c(0x5e7)]||_0x42c792[_0x19125c(0x5e7)]===!![]){_0x42c792['hangup'](!![]);return;}}}if(_0x19125c(0x34d)in _0x32fc7e){if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0){var _0x41c791={};if(_0x42c792[_0x19125c(0x176)]['stats'])_0x41c791[_0x19125c(0x176)]=_0x42c792[_0x19125c(0x176)]['stats'];else for(var _0x57b40d in _0x42c792[_0x19125c(0x3c0)]){if(_0x57b40d===_0x2e3933)continue;_0x41c791[_0x57b40d]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)];}var _0x2e2206={};_0x2e2206['remoteStats']=_0x41c791,_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x5e7)in _0x32fc7e){if(_0x32fc7e['remote']===_0x42c792[_0x19125c(0x5e7)]&&_0x42c792[_0x19125c(0x5e7)]||_0x42c792[_0x19125c(0x5e7)]===!![]){var _0x41c791={};if(_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)])_0x41c791[_0x19125c(0x176)]=_0x42c792['whipOut'][_0x19125c(0x546)];else for(var _0x57b40d in _0x42c792[_0x19125c(0x3c0)]){if(_0x57b40d===_0x2e3933)continue;_0x41c791[_0x57b40d]=_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)];}var _0x2e2206={};_0x2e2206[_0x19125c(0x4cd)]=_0x41c791,_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}}else{var _0x41c791={};if(_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)])_0x41c791[_0x19125c(0x176)]=_0x42c792['whipOut']['stats'];else for(var _0x57b40d in _0x42c792[_0x19125c(0x3c0)]){if(_0x57b40d===_0x2e3933)continue;if(!_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)])continue;if(_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x639)])continue;if(_0x42c792[_0x19125c(0x273)]){if('scene'in _0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]){if(_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x2ea)]===![])continue;}else continue;}_0x41c791[_0x57b40d]={},_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x284)]&&(_0x41c791[_0x57b40d]['video_bitrate_kbps']=_0x42c792['pcs'][_0x57b40d]['stats'][_0x19125c(0x284)]),_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]['nacks_per_second']&&(_0x41c791[_0x57b40d]['nacks_per_second']=_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x72c)]),_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)]['available_outgoing_bitrate_kbps']&&(_0x41c791[_0x57b40d][_0x19125c(0x91a)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x91a)]),_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x2ea)]&&(_0x41c791[_0x57b40d][_0x19125c(0x2ea)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x2ea)]),_0x42c792['pcs'][_0x57b40d][_0x19125c(0x625)]&&(_0x41c791[_0x57b40d][_0x19125c(0x625)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['label']),_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x590)]&&(_0x41c791[_0x57b40d]['resolution']=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x590)]),_0x42c792['pcs'][_0x57b40d]['stats']['video_encoder']&&(_0x41c791[_0x57b40d][_0x19125c(0x1d1)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]['video_encoder']);}var _0x2e2206={};_0x2e2206[_0x19125c(0x4cd)]=_0x41c791,_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}}}if(_0x19125c(0x5a9)in _0x32fc7e){clearInterval(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x6d7)]);if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0){if(_0x32fc7e['requestStatsContinuous']){_0x42c792['pcs'][_0x2e3933]['requestedStatsInterval']=setInterval(function(_0x5878f9){var _0x3cfd99=_0x19125c,_0x4cbc6b={};if(_0x42c792[_0x3cfd99(0x176)][_0x3cfd99(0x546)])_0x4cbc6b[_0x3cfd99(0x176)]=_0x42c792[_0x3cfd99(0x176)][_0x3cfd99(0x546)];else for(var _0x234c78 in _0x42c792[_0x3cfd99(0x3c0)]){if(_0x234c78===_0x5878f9)continue;if(!_0x42c792[_0x3cfd99(0x3c0)][_0x234c78][_0x3cfd99(0x546)])continue;if(_0x42c792[_0x3cfd99(0x3c0)][_0x234c78][_0x3cfd99(0x639)])continue;_0x4cbc6b[_0x234c78]=_0x42c792['pcs'][_0x234c78][_0x3cfd99(0x546)];}var _0x45b9cf={};_0x45b9cf['remoteStats']=_0x4cbc6b,_0x42c792[_0x3cfd99(0x8ae)](_0x45b9cf,_0x5878f9);},0xbb8,_0x2e3933);var _0x41c791={};if(_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)])_0x41c791['whipOut']=_0x42c792[_0x19125c(0x176)]['stats'];else for(var _0x57b40d in _0x42c792[_0x19125c(0x3c0)]){if(_0x57b40d===_0x2e3933)continue;if(!_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)])continue;if(_0x42c792['pcs'][_0x57b40d]['guest'])continue;_0x41c791[_0x57b40d]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'];}var _0x2e2206={};_0x2e2206[_0x19125c(0x4cd)]=_0x41c791,_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}}else{if(_0x19125c(0x5e7)in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792[_0x19125c(0x5e7)]&&_0x42c792[_0x19125c(0x5e7)]||_0x42c792[_0x19125c(0x5e7)]===!![]){if(_0x32fc7e[_0x19125c(0x5a9)]){_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x6d7)]=setInterval(function(_0xe4bf9c){var _0x53e5fa=_0x19125c,_0x2fe939={};if(_0x42c792['whipOut']['stats'])_0x2fe939[_0x53e5fa(0x176)]=_0x42c792['whipOut']['stats'];else for(var _0x2931ad in _0x42c792[_0x53e5fa(0x3c0)]){if(_0x2931ad===_0xe4bf9c)continue;if(!_0x42c792[_0x53e5fa(0x3c0)][_0x2931ad][_0x53e5fa(0x546)])continue;if(_0x42c792[_0x53e5fa(0x3c0)][_0x2931ad]['guest'])continue;_0x2fe939[_0x2931ad]=_0x42c792[_0x53e5fa(0x3c0)][_0x2931ad][_0x53e5fa(0x546)];}var _0x4bb1ca={};_0x4bb1ca[_0x53e5fa(0x4cd)]=_0x2fe939,_0x42c792[_0x53e5fa(0x8ae)](_0x4bb1ca,_0xe4bf9c);},0xbb8,_0x2e3933);var _0x41c791={};if(_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)])_0x41c791['whipOut']=_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)];else for(var _0x57b40d in _0x42c792[_0x19125c(0x3c0)]){if(_0x57b40d===_0x2e3933)continue;if(!_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)])continue;if(_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x639)])continue;_0x41c791[_0x57b40d]=_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)];}var _0x2e2206={};_0x2e2206[_0x19125c(0x4cd)]=_0x41c791,_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}}}else{if(_0x32fc7e['requestStatsContinuous']){_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x6d7)]=setInterval(function(_0x35ae6f){var _0xbd8f01=_0x19125c,_0x4b5d36={};if(_0x42c792[_0xbd8f01(0x176)]['stats'])_0x4b5d36[_0xbd8f01(0x176)]=_0x42c792[_0xbd8f01(0x176)][_0xbd8f01(0x546)];else for(var _0x6de28f in _0x42c792[_0xbd8f01(0x3c0)]){if(_0x6de28f===_0x35ae6f)continue;if(!_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)])continue;if(_0x42c792['pcs'][_0x6de28f][_0xbd8f01(0x639)])continue;if(_0x42c792[_0xbd8f01(0x273)]){if(_0xbd8f01(0x2ea)in _0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)]){if(_0x42c792['pcs'][_0x6de28f]['stats']['scene']===![])continue;}else continue;}_0x4b5d36[_0x6de28f]={},_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)]['video_bitrate_kbps']&&(_0x4b5d36[_0x6de28f][_0xbd8f01(0x284)]=_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)]['video_bitrate_kbps']),_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x72c)]&&(_0x4b5d36[_0x6de28f][_0xbd8f01(0x72c)]=_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x72c)]),_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x91a)]&&(_0x4b5d36[_0x6de28f][_0xbd8f01(0x91a)]=_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)]['available_outgoing_bitrate_kbps']),_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x2ea)]&&(_0x4b5d36[_0x6de28f][_0xbd8f01(0x2ea)]=_0x42c792['pcs'][_0x6de28f]['stats'][_0xbd8f01(0x2ea)]),_0x42c792['pcs'][_0x6de28f][_0xbd8f01(0x625)]&&(_0x4b5d36[_0x6de28f][_0xbd8f01(0x625)]=_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x625)]),_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x590)]&&(_0x4b5d36[_0x6de28f]['resolution']=_0x42c792['pcs'][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x590)]),_0x42c792['pcs'][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x1d1)]&&(_0x4b5d36[_0x6de28f]['video_encoder']=_0x42c792[_0xbd8f01(0x3c0)][_0x6de28f][_0xbd8f01(0x546)][_0xbd8f01(0x1d1)]);}var _0x5b86ac={};_0x5b86ac['remoteStats']=_0x4b5d36,_0x42c792[_0xbd8f01(0x8ae)](_0x5b86ac,_0x35ae6f);},0xbb8,_0x2e3933);var _0x41c791={};if(_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)])_0x41c791[_0x19125c(0x176)]=_0x42c792[_0x19125c(0x176)][_0x19125c(0x546)];else for(var _0x57b40d in _0x42c792[_0x19125c(0x3c0)]){if(_0x57b40d===_0x2e3933)continue;if(!_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)])continue;if(_0x42c792['pcs'][_0x57b40d][_0x19125c(0x639)])continue;if(_0x42c792[_0x19125c(0x273)]){if(_0x19125c(0x2ea)in _0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]){if(_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x2ea)]===![])continue;}else continue;}_0x41c791[_0x57b40d]={},_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x284)]&&(_0x41c791[_0x57b40d][_0x19125c(0x284)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x284)]),_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats'][_0x19125c(0x72c)]&&(_0x41c791[_0x57b40d][_0x19125c(0x72c)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x72c)]),_0x42c792[_0x19125c(0x3c0)][_0x57b40d]['stats']['available_outgoing_bitrate_kbps']&&(_0x41c791[_0x57b40d][_0x19125c(0x91a)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]['available_outgoing_bitrate_kbps']),_0x42c792['pcs'][_0x57b40d][_0x19125c(0x546)]['scene']&&(_0x41c791[_0x57b40d]['scene']=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x2ea)]),_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x625)]&&(_0x41c791[_0x57b40d][_0x19125c(0x625)]=_0x42c792['pcs'][_0x57b40d]['label']),_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x590)]&&(_0x41c791[_0x57b40d][_0x19125c(0x590)]=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]['resolution']),_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)]['video_encoder']&&(_0x41c791[_0x57b40d]['video_encoder']=_0x42c792[_0x19125c(0x3c0)][_0x57b40d][_0x19125c(0x546)][_0x19125c(0x1d1)]);}var _0x2e2206={};_0x2e2206[_0x19125c(0x4cd)]=_0x41c791,_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}}}}if(_0x19125c(0xa4f)in _0x32fc7e)try{_0x42c792[_0x19125c(0x8ef)](_0x2e3933,_0x32fc7e[_0x19125c(0xa4f)]['w'],_0x32fc7e[_0x19125c(0xa4f)]['h'],_0x32fc7e[_0x19125c(0xa4f)]['s'],_0x32fc7e['requestResolution']['c']);}catch(_0x51a739){errorlog(_0x51a739);}_0x19125c(0x1ce)in _0x32fc7e&&(_0x32fc7e[_0x19125c(0x2ea)]?_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0?_0x42c792[_0x19125c(0x428)]():errorlog(_0x19125c(0x5ad)):_0x42c792[_0x19125c(0x16a)](_0x2e3933));if(_0x19125c(0x8e0)in _0x32fc7e){var _0x48bda1=![],_0x491d45=![];_0x42c792[_0x19125c(0x74b)]['indexOf'](_0x512c48||_0x2e3933)>=0x0&&(_0x48bda1=!![],'overlay'in _0x32fc7e&&(_0x32fc7e['overlay']==!![]&&(_0x491d45=!![]))),log(_0x19125c(0x87d)+_0x48bda1),getChatMessage(_0x32fc7e['chat'],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['label'],_0x48bda1,_0x491d45);}if(_0x19125c(0x4a5)in _0x32fc7e){_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x4a5)]=parseInt(_0x32fc7e[_0x19125c(0x4a5)])||0x0;_0x2e3933 in _0x42c792[_0x19125c(0x9f2)]&&(_0x42c792[_0x19125c(0x9f2)][_0x2e3933]['order']=_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x4a5)]);if(_0x42c792[_0x19125c(0x843)]){var _0x2db510=document[_0x19125c(0x901)](_0x19125c(0x1fc)+_0x2e3933+'\x22]');log(_0x2db510),_0x2db510[0x0]&&(_0x2db510[0x0][_0x19125c(0x787)]=parseInt(_0x32fc7e[_0x19125c(0x4a5)])||0x0);}updateMixer();}_0x19125c(0x330)in _0x32fc7e&&_0x42c792['setScale'](_0x2e3933,_0x32fc7e['scale']);if(_0x42c792[_0x19125c(0x843)]&&_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x47d)]&&_0x19125c(0xa4c)in _0x32fc7e){log(_0x32fc7e),_0x42c792[_0x19125c(0x7fb)]=_0x32fc7e[_0x19125c(0xa4c)];for(var _0x37bd5b in _0x42c792['syncState']){syncSceneState(_0x37bd5b),syncOtherState(_0x37bd5b);}pokeAPI(_0x19125c(0x781),_0x32fc7e[_0x19125c(0xa4c)]);}if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)==-0x1){if(_0x19125c(0x6bf)in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']='requestAudioHack',_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x2ed)in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']='requestVideoRecord',_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x9af)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x9af),_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if('changeURL'in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x5be),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x9c1)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x9c1),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x8c2)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='requestChangeEQ',_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if('requestChangeGating'in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x9a3),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x26e)in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x26e),_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x811)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x811),_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0xabd)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0xabd),_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x984)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='requestChangeMicDelay',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x386)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='lowerhand',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if('hangup'in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x888),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if('displayMute'in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x51f),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if('speakerMute'in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x49f),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x5b9)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x5b9),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x355)in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']='micIsolated',_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x189)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='requestUpload',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x155)in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x155),_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if('resumeClock'in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='resumeClock',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x75a)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x75a),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x8a3)in _0x32fc7e){var _0x2e2206={};_0x2e2206['rejected']=_0x19125c(0x8a3),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x9de)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x9de),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0xa9e)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0xa9e),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x567)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='pauseClock',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x783)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='showTime',_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x81d)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]=_0x19125c(0x81d),_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x7b4)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='rotate',_0x42c792['sendMessage'](_0x2e2206,_0x2e3933);}else{if('refreshMicrophone'in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='refreshMicrophone',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}else{if(_0x19125c(0x97a)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0x696)]='changeMicrophone',_0x42c792[_0x19125c(0x8ae)](_0x2e2206,_0x2e3933);}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}else{if(_0x19125c(0x6bf)in _0x32fc7e){var _0x3176cf=_0x42c792[_0x19125c(0x5f5)][_0x19125c(0x55a)]();_0x3176cf[_0x19125c(0x606)]&&('deviceId'in _0x32fc7e?applyAudioHack(_0x32fc7e[_0x19125c(0x9bf)],_0x32fc7e['value'],_0x32fc7e[_0x19125c(0x602)]):applyAudioHack(_0x32fc7e[_0x19125c(0x9bf)],_0x32fc7e[_0x19125c(0x76d)]));}if('requestVideoRecord'in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x2ed)]){_0x32fc7e[_0x19125c(0x45e)]&&(_0x42c792[_0x19125c(0x481)]={},_0x42c792[_0x19125c(0x481)][_0x19125c(0xae7)]=_0x32fc7e[_0x19125c(0x45e)]);if(_0x42c792['videoElement']){var _0x3509e9=0x1770;if(_0x32fc7e[_0x19125c(0x281)])_0x3509e9=_0x32fc7e[_0x19125c(0x281)];else _0x32fc7e[_0x19125c(0x76d)]&&(_0x3509e9=parseInt(_0x32fc7e[_0x19125c(0x76d)]));recordLocalVideo(_0x19125c(0x5c5),_0x3509e9,![],_0x32fc7e[_0x19125c(0x1e4)]||![]);}}else _0x42c792[_0x19125c(0xb58)]&&recordLocalVideo(_0x19125c(0x77f),![],![],_0x32fc7e[_0x19125c(0x1e4)]||![]);}if(_0x19125c(0x9af)in _0x32fc7e){_0x42c792[_0x19125c(0x4a5)]==![]&&(_0x42c792['order']=0x0);_0x42c792['order']+=parseInt(_0x32fc7e[_0x19125c(0x9af)])||0x0;var _0x2e2206={};_0x2e2206={},_0x2e2206['order']=_0x42c792[_0x19125c(0x4a5)],_0x42c792[_0x19125c(0x84f)](_0x2e2206),updateMixer();}_0x19125c(0x5be)in _0x32fc7e&&changeURL(_0x32fc7e[_0x19125c(0x5be)]);if(_0x19125c(0x7b4)in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x7b4)]===!![])_0x42c792[_0x19125c(0x7b4)]===![]?_0x42c792[_0x19125c(0x7b4)]=0x5a:_0x42c792[_0x19125c(0x7b4)]+=0x5a,_0x42c792['rotate']>=0x168&&(_0x42c792[_0x19125c(0x7b4)]-=0x168),_0x42c792[_0x19125c(0x7b4)]===0x0&&(_0x42c792[_0x19125c(0x7b4)]=![]);else _0x32fc7e['rotate']===!![]?_0x42c792['rotate']=![]:_0x42c792['rotate']=parseInt(_0x32fc7e[_0x19125c(0x7b4)])||![];updateForceRotate(),updateMixer();}'stopClock'in _0x32fc7e&&stopClock();_0x19125c(0x86a)in _0x32fc7e&&resumeClock();_0x19125c(0x75a)in _0x32fc7e&&setClock(_0x32fc7e[_0x19125c(0x75a)]);_0x19125c(0x8a3)in _0x32fc7e&&hideClock();_0x19125c(0x9de)in _0x32fc7e&&showClock();'startClock'in _0x32fc7e&&startClock();_0x19125c(0x567)in _0x32fc7e&&pauseClock();if(_0x19125c(0x783)in _0x32fc7e){if(_0x42c792[_0x19125c(0x783)]!==![]){if(_0x32fc7e[_0x19125c(0x783)]&&!_0x42c792[_0x19125c(0x783)])toggleClock(_0x32fc7e[_0x19125c(0xa1a)]||![]);else!_0x32fc7e[_0x19125c(0x783)]&&_0x42c792[_0x19125c(0x783)]&&toggleClock(_0x32fc7e[_0x19125c(0xa1a)]||![]);}}_0x19125c(0x189)in _0x32fc7e&&toggleFileshare(_0x2e3933);if('group'in _0x32fc7e)try{_0x512c48?(_0x32fc7e['group']?_0x42c792[_0x19125c(0x747)]=_0x32fc7e[_0x19125c(0x81d)]['split'](','):_0x42c792[_0x19125c(0x747)]=[],_0x42c792[_0x19125c(0x8ae)]({'group':_0x32fc7e[_0x19125c(0x81d)],'altUUID':!![]})):(_0x32fc7e[_0x19125c(0x81d)]?_0x42c792[_0x19125c(0x81d)]=_0x32fc7e[_0x19125c(0x81d)][_0x19125c(0x1e2)](','):_0x42c792['group']=[],_0x42c792[_0x19125c(0x8ae)]({'group':_0x32fc7e['group']})),updateMixer(),pokeIframeAPI(_0x19125c(0x6ff),_0x42c792[_0x19125c(0x81d)]);}catch(_0x5f0104){}if(_0x19125c(0x9c1)in _0x32fc7e){if(_0x19125c(0x76d)in _0x32fc7e){if(typeof _0x32fc7e[_0x19125c(0x76d)]=='string'){_0x42c792[_0x19125c(0x625)]=sanitizeLabel(_0x32fc7e[_0x19125c(0x76d)]),log(_0x19125c(0x2ca)+_0x42c792[_0x19125c(0x625)]);if(_0x42c792[_0x19125c(0x843)]){var _0x2db510=getById(_0x19125c(0x50c)+_0x2e3933);if(_0x42c792[_0x19125c(0x625)])_0x2db510[_0x19125c(0x787)]=_0x42c792[_0x19125c(0x625)],_0x2db510[_0x19125c(0x33d)][_0x19125c(0x881)](_0x19125c(0x9a5));else _0x42c792[_0x19125c(0x95b)]===(_0x512c48||_0x2e3933)?(miniTranslate(_0x2db510[_0x19125c(0x15f)],_0x19125c(0xafd)),_0x2db510[_0x19125c(0x33d)]['remove']('addALabel')):(miniTranslate(_0x2db510[_0x19125c(0x15f)],_0x19125c(0x47b)),_0x2db510[_0x19125c(0x33d)][_0x19125c(0xb15)](_0x19125c(0x9a5)));}else _0x42c792['showlabels']&&updateMixer();!_0x42c792['director']&&(_0x42c792[_0x19125c(0x625)]?document[_0x19125c(0x7a4)]=_0x42c792['label']:document[_0x19125c(0x7a4)]=location[_0x19125c(0x4b1)]);var _0x36ff99=encodeURIComponent(_0x42c792[_0x19125c(0x625)]);urlParams[_0x19125c(0x326)]('l')?updateURL('l='+_0x36ff99,!![],![]):updateURL(_0x19125c(0x55d)+_0x36ff99,!![],![]);var _0x2e2206={};_0x2e2206[_0x19125c(0x9c1)]=!![],_0x2e2206[_0x19125c(0x76d)]=_0x42c792['label'],_0x42c792[_0x19125c(0x8ae)](_0x2e2206);}else{_0x42c792['label']=![];var _0x2e2206={};_0x2e2206[_0x19125c(0x9c1)]=!![],_0x2e2206['value']=_0x42c792['label'],_0x42c792[_0x19125c(0x8ae)](_0x2e2206);if(_0x42c792['director']){var _0x2db510=getById(_0x19125c(0x50c)+_0x2e3933);_0x42c792[_0x19125c(0x95b)]===(_0x512c48||_0x2e3933)?(miniTranslate(_0x2db510[_0x19125c(0x15f)],_0x19125c(0xafd)),_0x2db510['classList'][_0x19125c(0x881)](_0x19125c(0x9a5))):(miniTranslate(_0x2db510['innerHTML'],_0x19125c(0x47b)),_0x2db510[_0x19125c(0x33d)][_0x19125c(0xb15)](_0x19125c(0x9a5)));}else _0x42c792[_0x19125c(0x6ee)]?(document[_0x19125c(0x7a4)]=location[_0x19125c(0x4b1)],updateMixer()):document[_0x19125c(0x7a4)]=location[_0x19125c(0x4b1)];}}}if(_0x19125c(0x8c2)in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x9bf)]==_0x19125c(0x7da))changeLowEQ(parseFloat(_0x32fc7e[_0x19125c(0x76d)]),_0x32fc7e[_0x19125c(0x3ba)]);else{if(_0x32fc7e[_0x19125c(0x9bf)]=='mid')changeMidEQ(parseFloat(_0x32fc7e[_0x19125c(0x76d)]),_0x32fc7e[_0x19125c(0x3ba)]);else _0x32fc7e[_0x19125c(0x9bf)]==_0x19125c(0x4fc)&&changeHighEQ(parseFloat(_0x32fc7e[_0x19125c(0x76d)]),_0x32fc7e[_0x19125c(0x3ba)]);}}if(_0x19125c(0x9a3)in _0x32fc7e){var _0xd8251f=_0x42c792['noisegate'];if(_0x32fc7e['value']===_0x19125c(0x61c))_0x42c792[_0x19125c(0x429)]=![],log(_0x19125c(0x4f6));else _0x32fc7e[_0x19125c(0x76d)]===_0x19125c(0x375)?(_0x42c792['noisegate']=!![],log(_0x19125c(0xa63))):_0x42c792[_0x19125c(0x429)]=_0x32fc7e[_0x19125c(0x76d)];_0x42c792[_0x19125c(0x429)]!==_0xd8251f&&senderAudioUpdate();}if(_0x19125c(0x26e)in _0x32fc7e){var _0xd8251f=_0x42c792[_0x19125c(0x4e8)];if(_0x32fc7e['value']==='false')_0x42c792['compressor']=![],log(_0x19125c(0x4f6));else{if(_0x32fc7e['value']==='1')_0x42c792[_0x19125c(0x4e8)]=0x1,log(_0x19125c(0xa63));else _0x32fc7e[_0x19125c(0x76d)]==='2'?(_0x42c792[_0x19125c(0x4e8)]=0x2,log(_0x19125c(0xa63))):_0x42c792[_0x19125c(0x4e8)]=parseInt(_0x32fc7e['value'])||![];}_0x42c792[_0x19125c(0x4e8)]!==_0xd8251f&&senderAudioUpdate();}'requestChangeMicDelay'in _0x32fc7e&&(_0x42c792['micDelay']===![]?(_0x42c792[_0x19125c(0x2d9)]=parseInt(_0x32fc7e[_0x19125c(0x76d)])||0x0,senderAudioUpdate()):(_0x42c792['micDelay']=parseInt(_0x32fc7e[_0x19125c(0x76d)])||0x0,changeMicDelay(_0x42c792['micDelay'],_0x32fc7e[_0x19125c(0x602)])));_0x19125c(0x811)in _0x32fc7e&&changeSubGain(parseFloat(_0x32fc7e[_0x19125c(0x76d)]),_0x32fc7e[_0x19125c(0x602)]);_0x19125c(0x386)in _0x32fc7e&&(_0x42c792[_0x19125c(0x584)]&&lowerhand());if(_0x19125c(0x975)in _0x32fc7e&&_0x19125c(0x2e1)in _0x32fc7e){if(_0x32fc7e['mirrorGuestTarget']&&_0x32fc7e['mirrorGuestTarget']===!![])_0x42c792[_0x19125c(0x999)]=_0x32fc7e[_0x19125c(0x975)],applyMirror(_0x42c792[_0x19125c(0x5c3)]);else _0x32fc7e['mirrorGuestTarget']&&_0x32fc7e['mirrorGuestTarget']in _0x42c792['rpcs']&&(_0x42c792[_0x19125c(0x9f2)][_0x32fc7e[_0x19125c(0x2e1)]][_0x19125c(0x238)]=_0x32fc7e[_0x19125c(0x975)],_0x42c792[_0x19125c(0x9f2)][_0x32fc7e[_0x19125c(0x2e1)]]['videoElement']&&applyMirrorGuest(_0x32fc7e[_0x19125c(0x975)],_0x42c792[_0x19125c(0x9f2)][_0x32fc7e[_0x19125c(0x2e1)]][_0x19125c(0xb58)]));}if(_0x19125c(0xa59)in _0x32fc7e){var _0x2e2206={};_0x2e2206[_0x19125c(0xac6)]=_0x2e3933,_0x2e2206['audioOptions']=listAudioSettingsPrep(),sendMediaDevices(_0x2e2206[_0x19125c(0xac6)]),_0x42c792['sendMessage'](_0x2e2206,_0x2e2206[_0x19125c(0xac6)]);}if(_0x19125c(0x58a)in _0x32fc7e){var _0x2e2206={};_0x2e2206['UUID']=_0x2e3933,_0x2e2206[_0x19125c(0xa8d)]=listVideoSettingsPrep(),sendMediaDevices(_0x2e2206[_0x19125c(0xac6)]),_0x42c792['sendMessage'](_0x2e2206,_0x2e2206[_0x19125c(0xac6)]);}'changeSpeaker'in _0x32fc7e&&changeAudioOutputDeviceById(_0x32fc7e['changeSpeaker'],_0x2e3933);_0x19125c(0x97a)in _0x32fc7e&&changeAudioDeviceById(_0x32fc7e['changeMicrophone'],_0x2e3933);_0x19125c(0x694)in _0x32fc7e&&refreshMicrophoneDevice(_0x2e3933);'changeCamera'in _0x32fc7e&&changeVideoDeviceById(_0x32fc7e[_0x19125c(0x6b5)],_0x2e3933);_0x19125c(0x8e9)in _0x32fc7e&&changeLowCut(parseFloat(_0x32fc7e['value']),_0x32fc7e[_0x19125c(0x3ba)]);_0x19125c(0x8e9)in _0x32fc7e&&changeLowCut(parseFloat(_0x32fc7e['value']),_0x32fc7e[_0x19125c(0x3ba)]);_0x19125c(0x888)in _0x32fc7e&&(_0x42c792[_0x19125c(0x95b)]&&_0x42c792[_0x19125c(0x888)]());if('mute'in _0x32fc7e){}if(_0x19125c(0x5b9)in _0x32fc7e){var _0x49d40e=parseInt(_0x32fc7e[_0x19125c(0x5b9)])/0x64||0x0;_0x42c792['audioGain']=parseInt(_0x32fc7e[_0x19125c(0x5b9)])||0x0;try{for(var _0x2ebda3 in _0x42c792[_0x19125c(0x77a)]){log(_0x19125c(0x9d3)),_0x42c792['webAudios'][_0x2ebda3][_0x19125c(0x815)]['gain'][_0x19125c(0x848)](_0x49d40e,_0x42c792[_0x19125c(0x77a)][_0x2ebda3]['audioContext'][_0x19125c(0x9ef)]);}}catch(_0x1db4d1){}updateVolume(!![]);}if(_0x19125c(0x33b)in _0x32fc7e){if(_0x32fc7e['micIsolate'])_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0&&(_0x42c792['micIsolated'][_0x19125c(0x3e0)](_0x2e3933),_0x42c792[_0x19125c(0x768)]());else{var _0x94852a=_0x42c792['micIsolated'][_0x19125c(0x1de)](_0x2e3933);_0x94852a>-0x1&&(_0x42c792[_0x19125c(0x355)][_0x19125c(0x334)](_0x94852a,0x1),_0x42c792[_0x19125c(0x768)]());}}if(_0x19125c(0x929)in _0x32fc7e){if(_0x32fc7e['lowerVolume'])_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0&&(_0x42c792[_0x19125c(0x929)]['push'](_0x2e3933),_0x42c792[_0x19125c(0x685)]());else{var _0x94852a=_0x42c792[_0x19125c(0x929)][_0x19125c(0x1de)](_0x2e3933);_0x94852a>-0x1&&(_0x42c792['lowerVolume']['splice'](_0x94852a,0x1),_0x42c792['applyIsolatedVolume']());}}_0x19125c(0x49f)in _0x32fc7e&&(_0x32fc7e[_0x19125c(0x49f)]?(_0x42c792[_0x19125c(0x218)]=!![],_0x42c792[_0x19125c(0x962)]()):(_0x42c792[_0x19125c(0x218)]=![],_0x42c792['directorSpeakerMute']()));'displayMute'in _0x32fc7e&&(_0x32fc7e[_0x19125c(0x51f)]?(_0x42c792['directorDisplayMuted']=!![],_0x42c792[_0x19125c(0x4ce)]()):(_0x42c792['directorDisplayMuted']=![],_0x42c792[_0x19125c(0x4ce)]()));if(_0x19125c(0xabd)in _0x32fc7e){_0x42c792[_0x19125c(0xabd)]=_0x32fc7e[_0x19125c(0xabd)],toggleVideoMute(!![]);if(!_0x42c792[_0x19125c(0x71f)]){var _0x2e2206={};_0x2e2206['videoMuted']=_0x42c792['remoteVideoMuted'],_0x42c792[_0x19125c(0x8ae)](_0x2e2206);}}'changeParams'in _0x32fc7e&&applyNewParams(_0x32fc7e['changeParams']);}if(_0x42c792[_0x19125c(0x95b)]===(_0x512c48||_0x2e3933)){_0x32fc7e['request']===_0x19125c(0x15a)&&(warnlog(_0x19125c(0x42e)),'transferSettings'in _0x32fc7e&&(_0x19125c(0xaca)in _0x32fc7e[_0x19125c(0x6fa)]&&(_0x42c792['roomenc']=_0x32fc7e['roomenc']),_0x19125c(0x3ab)in _0x32fc7e[_0x19125c(0x6fa)]&&(_0x32fc7e['transferSettings'][_0x19125c(0x3ab)]===!![]||_0x32fc7e[_0x19125c(0x6fa)][_0x19125c(0x3ab)]===null?(_0x42c792['broadcast']=null,_0x42c792[_0x19125c(0x6ca)]===![]&&(_0x42c792[_0x19125c(0x6ca)]=0x2),_0x42c792[_0x19125c(0x84c)]===![]&&(_0x42c792[_0x19125c(0x84c)]=0x1),_0x42c792[_0x19125c(0x7c4)]===null&&(_0x42c792[_0x19125c(0x7c4)]=!![])):_0x42c792[_0x19125c(0x3ab)]=_0x32fc7e[_0x19125c(0x6fa)][_0x19125c(0x3ab)],_0x32fc7e['transferSettings'][_0x19125c(0xa28)]&&(_0x42c792[_0x19125c(0x3ab)]!==![]?_0x42c792['broadcast']===null?updateURL(_0x19125c(0x3ab),!![]):updateURL('broadcast='+_0x42c792[_0x19125c(0x3ab)],!![]):updateURL('broadcast=false',!![]))),'roomid'in _0x32fc7e[_0x19125c(0x6fa)]&&(_0x42c792['roomid']=_0x32fc7e[_0x19125c(0x6fa)]['roomid'],_0x32fc7e[_0x19125c(0x6fa)]['updateurl']&&updateURL(_0x19125c(0xade)+_0x42c792[_0x19125c(0x273)],!![])),_0x19125c(0x750)in _0x32fc7e[_0x19125c(0x6fa)]&&(_0x42c792[_0x19125c(0x750)]=_0x32fc7e['transferSettings'][_0x19125c(0x750)],_0x42c792[_0x19125c(0x750)]&&(_0x42c792['queue']=0x2),_0x32fc7e['transferSettings'][_0x19125c(0xa28)]&&(_0x42c792['queue']?updateURL(_0x19125c(0x750),!![]):updateURL(_0x19125c(0x47f),!![]))),_0x19125c(0x88f)in _0x32fc7e['transferSettings']&&(_0x42c792[_0x19125c(0x750)]&&(_0x42c792['queue']=0x3,_0x32fc7e[_0x19125c(0x6fa)][_0x19125c(0xa28)]&&updateURL(_0x19125c(0x47f),!![])))),_0x42c792['waitPage']&&_0x42c792[_0x19125c(0x185)]&&(_0x42c792['layout']=![],_0x42c792[_0x19125c(0x8f9)]=![],updateMixer()));try{if(_0x19125c(0x90a)in _0x32fc7e&&'addCoDirector'in _0x32fc7e[_0x19125c(0x90a)])for(var _0x3626a6=0x0;_0x3626a6<_0x32fc7e[_0x19125c(0x90a)][_0x19125c(0x4b6)][_0x19125c(0x606)];_0x3626a6++){if(!_0x42c792[_0x19125c(0x74b)][_0x19125c(0x401)](_0x32fc7e[_0x19125c(0x90a)][_0x19125c(0x4b6)][_0x3626a6][_0x19125c(0x880)])){_0x42c792['directorList'][_0x19125c(0x3e0)](_0x32fc7e[_0x19125c(0x90a)][_0x19125c(0x4b6)][_0x3626a6][_0x19125c(0x880)]());var _0x21111d=getById(_0x19125c(0x9e4)+_0x32fc7e[_0x19125c(0x90a)][_0x19125c(0x4b6)][_0x3626a6][_0x19125c(0x880)]());_0x21111d&&_0x21111d[_0x19125c(0x33d)]['add']('directorBlue');}}}catch(_0x13a052){errorlog(_0x13a052);}if(_0x19125c(0x9be)in _0x32fc7e)try{_0x42c792['sendMessage']({'cbid':_0x32fc7e['cbid']},_0x2e3933);}catch(_0x52b094){errorlog(_0x52b094);}}if(_0x19125c(0x81f)in _0x32fc7e){if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0||_0x42c792['remote']===!![]||_0x42c792['remote']&&_0x19125c(0x5e7)in _0x32fc7e&&_0x32fc7e['remote']===_0x42c792[_0x19125c(0x5e7)])'ctrl'in _0x32fc7e&&_0x32fc7e[_0x19125c(0x6e6)]?updateCameraConstraints(_0x32fc7e[_0x19125c(0x9bf)],_0x32fc7e[_0x19125c(0x76d)],!![],_0x2e3933):updateCameraConstraints(_0x32fc7e['keyname'],_0x32fc7e['value'],![],![]);else return;}if('zoom'in _0x32fc7e){if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0||_0x42c792[_0x19125c(0x5e7)]===!![]||_0x42c792[_0x19125c(0x5e7)]&&_0x19125c(0x5e7)in _0x32fc7e&&_0x32fc7e['remote']===_0x42c792[_0x19125c(0x5e7)])_0x42c792[_0x19125c(0x65a)](parseFloat(_0x32fc7e[_0x19125c(0x945)]),_0x32fc7e['abs']||![]);else return;}if(_0x19125c(0x6c7)in _0x32fc7e){if(_0x42c792['directorList']['indexOf'](_0x512c48||_0x2e3933)>=0x0||_0x42c792['remote']===!![]||_0x42c792[_0x19125c(0x5e7)]&&_0x19125c(0x5e7)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792[_0x19125c(0x5e7)])_0x42c792[_0x19125c(0xa2a)](parseFloat(_0x32fc7e['focus']));else return;}if(_0x19125c(0x363)in _0x32fc7e){if(_0x42c792[_0x19125c(0x74b)]['indexOf'](_0x512c48||_0x2e3933)>=0x0||_0x42c792[_0x19125c(0x5e7)]===!![]||_0x42c792[_0x19125c(0x5e7)]&&'remote'in _0x32fc7e&&_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792['remote'])_0x42c792[_0x19125c(0xb0c)](parseFloat(_0x32fc7e[_0x19125c(0x363)]));else return;}if('tilt'in _0x32fc7e){if(_0x42c792['directorList'][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0||_0x42c792[_0x19125c(0x5e7)]===!![]||_0x42c792[_0x19125c(0x5e7)]&&_0x19125c(0x5e7)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x5e7)]===_0x42c792[_0x19125c(0x5e7)])_0x42c792[_0x19125c(0x9f3)](parseFloat(_0x32fc7e[_0x19125c(0x977)]));else return;}if(_0x19125c(0x1eb)in _0x32fc7e){if(_0x42c792[_0x19125c(0x74b)][_0x19125c(0x1de)](_0x512c48||_0x2e3933)>=0x0||_0x42c792[_0x19125c(0x5e7)]===!![]||_0x42c792[_0x19125c(0x5e7)]&&_0x19125c(0x5e7)in _0x32fc7e&&_0x32fc7e['remote']===_0x42c792[_0x19125c(0x5e7)])_0x42c792[_0x19125c(0x65c)](parseFloat(_0x32fc7e[_0x19125c(0x1eb)]));else return;}if(_0x19125c(0x17f)in _0x32fc7e){log(_0x19125c(0x17f));try{_0x42c792[_0x19125c(0x39a)](_0x2e3933,_0x32fc7e['requestFile']);}catch(_0x4f5885){errorlog(_0x4f5885);}}_0x19125c(0x426)in _0x32fc7e&&playbackMIDI(_0x32fc7e[_0x19125c(0x426)],!![],_0x2e3933);}catch(_0x470b12){errorlog(_0x470b12);}if(_0x19125c(0x696)in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x696)]==_0x19125c(0x460)){if(_0x42c792[_0x19125c(0x5e7)])warnUser(getTranslation('invalid-remote-code'),0xbb8);else document[_0x19125c(0x66b)](_0x19125c(0x2a9))&&document['querySelector'](_0x19125c(0x2a9))['value']?warnUser(getTranslation(_0x19125c(0x2cc)),0x1b58):warnUser(getTranslation(_0x19125c(0x780)),0x2710);getById(_0x19125c(0x1b7))[_0x19125c(0x33d)][_0x19125c(0x881)](_0x19125c(0x4d2));}else{if(_0x42c792[_0x19125c(0x843)])!_0x42c792[_0x19125c(0xad1)]&&warnUser(_0x19125c(0x2fc)+_0x32fc7e['rejected']+')\x20failed\x20due\x20to\x20permissions\x20or\x20it\x20was\x20rejected\x20by\x20the\x20user',0x1388);else!_0x42c792[_0x19125c(0xad1)]&&(_0x42c792[_0x19125c(0x5e7)]?warnUser('remote-token-rejected',0x1388):warnUser('remote-control-failed',0x1388));}errorlog('ACTION\x20REJECTED:\x20'+_0x32fc7e[_0x19125c(0x696)]+_0x19125c(0x930)+_0x42c792['director']),pokeIframeAPI(_0x19125c(0x696),_0x32fc7e['rejected'],_0x2e3933);return;}else{if('approved'in _0x32fc7e){log(_0x19125c(0x3b8)+_0x32fc7e[_0x19125c(0x88d)]),pokeIframeAPI('approved',_0x32fc7e[_0x19125c(0x88d)],_0x2e3933);return;}}if(_0x19125c(0x864)in _0x32fc7e||_0x19125c(0x735)in _0x32fc7e){log('ASKING\x20FOR\x20AUDIO\x20AND\x20VIDEO?');_0x32fc7e['audio']&&(_0x42c792['pcs'][_0x2e3933][_0x19125c(0x555)]=_0x32fc7e[_0x19125c(0x864)]);if(_0x42c792[_0x19125c(0xb21)]&&_0x19125c(0xa5f)in _0x32fc7e&&_0x32fc7e[_0x19125c(0xa5f)]!==![])_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x49b)]=_0x32fc7e['allowwebp'],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x3d7)]=![],setTimeout(function(){makeImages(!![]);},0x3e8);else _0x32fc7e[_0x19125c(0x735)]&&(_0x42c792['pcs'][_0x2e3933][_0x19125c(0x3d7)]=_0x32fc7e[_0x19125c(0x735)]);_0x19125c(0x3ab)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x3ab)]!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x9eb)]=_0x32fc7e[_0x19125c(0x3ab)]);_0x19125c(0x1f2)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x1f2)]!==![]&&(_0x42c792['pcs'][_0x2e3933][_0x19125c(0x349)]=_0x32fc7e[_0x19125c(0x1f2)]);if(_0x19125c(0x7d6)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x7d6)]){_0x42c792['pcs'][_0x2e3933]['allowDrawing']=_0x32fc7e['allowdrawing'];try{_0x42c792[_0x19125c(0xb58)]&&_0x42c792[_0x19125c(0xb58)][_0x19125c(0x8bb)]&&_0x42c792[_0x19125c(0xb58)]['syncDrawOnVideo']();}catch(_0x3a418b){errorlog(_0x3a418b);}}_0x19125c(0x927)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x927)]!==![]&&(_0x42c792['pcs'][_0x2e3933]['allowIframe']=_0x32fc7e[_0x19125c(0x927)]);_0x19125c(0x99f)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x99f)]!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa09)]=_0x32fc7e[_0x19125c(0x99f)]);_0x19125c(0x566)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x566)]!==![]&&(_0x42c792['pcs'][_0x2e3933]['allowMIDI']=_0x32fc7e[_0x19125c(0x566)]);_0x19125c(0x8c3)in _0x32fc7e&&_0x32fc7e['allowresources']!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x6ea)]=_0x32fc7e[_0x19125c(0x8c3)]);'downloads'in _0x32fc7e&&_0x32fc7e[_0x19125c(0x99b)]!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x5c4)]=_0x32fc7e['downloads']);_0x19125c(0x6ce)in _0x32fc7e&&_0x32fc7e[_0x19125c(0x6ce)]!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowScreenAudio']=!![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x79e)]=!![]);'allowscreenvideo'in _0x32fc7e&&_0x32fc7e['allowscreenvideo']!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x79e)]=!![]);'allowscreenaudio'in _0x32fc7e&&_0x32fc7e[_0x19125c(0x6de)]!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x559)]=!![]);'preferVideoCodec'in _0x32fc7e&&_0x32fc7e['preferVideoCodec']!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x6c0)]=_0x32fc7e[_0x19125c(0x6c0)][_0x19125c(0xaf6)]());if(_0x42c792[_0x19125c(0xb1e)])_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xb1e)]=_0x42c792['preferAudioCodec'];else'preferAudioCodec'in _0x32fc7e&&_0x32fc7e[_0x19125c(0xb1e)]!==![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['preferAudioCodec']=_0x32fc7e[_0x19125c(0xb1e)]['toLowerCase']());if('allowmeshcast'in _0x32fc7e&&_0x32fc7e[_0x19125c(0x9bc)]===![])_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaee)]=![];else{if('allowwhipout'in _0x32fc7e&&_0x32fc7e[_0x19125c(0x5e2)]===![])_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['whipout']=![];else{if(_0x42c792['meshcast']){if(_0x42c792[_0x19125c(0x980)]==_0x19125c(0x735))_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x3d7)]=![];else{if(_0x42c792[_0x19125c(0x980)]==_0x19125c(0x864))_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x555)]=![];else _0x42c792['pcs'][_0x2e3933][_0x19125c(0x3d7)]==![]?_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaee)]=![]:(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowAudio']=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x3d7)]=![]);}}else _0x42c792[_0x19125c(0x5bb)]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowAudio']=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x3d7)]=![]);}}if(_0x42c792['promptAccess']){window[_0x19125c(0x6c7)]();_0x42c792[_0x19125c(0x6ad)]&&playtone();var _0x455855=![];_0x2e3933 in _0x42c792[_0x19125c(0x9f2)]&&_0x42c792['rpcs'][_0x2e3933][_0x19125c(0x625)]&&(_0x455855=_0x42c792['rpcs'][_0x2e3933][_0x19125c(0x625)]||_0x42c792['rpcs'][_0x2e3933][_0x19125c(0x476)]||![]);_0x455855=_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['label']||_0x455855||_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x476)]||_0x2e3933||_0x19125c(0x3ec);var _0x5471f4=await confirmAlt(_0x455855+getTranslation('prompt-access-request'),!![]);if(!_0x5471f4){try{log(_0x19125c(0x92e)),_0x42c792['closePC'](_0x2e3933);}catch(_0x39933b){}return;}}'guest'in _0x32fc7e&&(_0x32fc7e[_0x19125c(0x639)]==!![]&&(_0x42c792['pcs'][_0x2e3933]['guest']=!![],_0x42c792[_0x19125c(0x6ad)]&&(playtone(![],_0x19125c(0xa19)),showNotification(_0x19125c(0x68e),'')),pokeIframeAPI(_0x19125c(0x2d7),_0x32fc7e[_0x19125c(0x843)],_0x2e3933)));_0x19125c(0xb2e)in _0x32fc7e&&(_0x32fc7e[_0x19125c(0xb2e)]===!![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xb2e)]=!![]));'remote'in _0x32fc7e&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x5e7)]=_0x32fc7e[_0x19125c(0x5e7)]);_0x19125c(0x6bd)in _0x32fc7e&&(_0x32fc7e[_0x19125c(0x6bd)]==!![]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x66f)]=!![]));_0x19125c(0x8b9)in _0x32fc7e&&(_0x32fc7e[_0x19125c(0x8b9)]==!![]&&(_0x42c792['pcs'][_0x2e3933][_0x19125c(0x453)]=!![]));_0x32fc7e[_0x19125c(0x846)]&&(_0x42c792['pcs'][_0x2e3933][_0x19125c(0x9a9)]=_0x32fc7e[_0x19125c(0x846)]);if(_0x19125c(0x9e6)in _0x32fc7e)try{_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x9e6)]=_0x32fc7e['keyframeRate'],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['keyframeRate']&&setTimeout(function(_0x3ace5c){var _0x48fb98=_0x19125c;_0x42c792[_0x48fb98(0x16a)](_0x3ace5c);},0x1388,_0x2e3933);}catch(_0x285d7b){warnlog(_0x285d7b);}_0x19125c(0x76b)in _0x32fc7e&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['solo']=_0x32fc7e[_0x19125c(0x76b)]);_0x19125c(0x185)in _0x32fc7e&&(!_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x185)]&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['layout']=_0x32fc7e[_0x19125c(0x185)],_0x42c792[_0x19125c(0xa75)]&&_0x42c792[_0x19125c(0x843)]&&_0x42c792[_0x19125c(0x3c0)][_0x2e3933]&&_0x42c792['pcs'][_0x2e3933][_0x19125c(0x185)]&&createSlotUpdate(_0x2e3933)));if(_0x19125c(0x2ea)in _0x32fc7e){if(_0x32fc7e[_0x19125c(0x2ea)]!==![]){try{typeof _0x32fc7e['scene']==='string'?_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x2ea)]=_0x32fc7e['scene']['replace'](/[\W]+/g,'_'):_0x42c792['pcs'][_0x2e3933][_0x19125c(0x2ea)]=(parseInt(_0x32fc7e[_0x19125c(0x2ea)])||0x0)+'',_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x546)][_0x19125c(0x2ea)]=_0x42c792['pcs'][_0x2e3933]['scene'],updateSceneList(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x2ea)]);}catch(_0x39a672){errorlog(_0x39a672);}_0x19125c(0xa33)in _0x32fc7e?_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa33)]=_0x32fc7e['showDirector']:_0x42c792['pcs'][_0x2e3933]['showDirector']=_0x42c792[_0x19125c(0xa33)];if(_0x42c792[_0x19125c(0x843)]){if(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa33)]==![])_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x555)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowVideo']=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x395)]=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x628)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowWidget']=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaee)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowWebp']=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x559)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowScreenVideo']=![];else{if(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa33)]==0x1)_0x42c792['pcs'][_0x2e3933][_0x19125c(0x395)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowWidget']=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowDrawing']=![];else{if(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa33)]==0x2)_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x555)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowScreenAudio']=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x395)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa09)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowDrawing']=![];else{if(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa33)]==0x3)_0x42c792['pcs'][_0x2e3933][_0x19125c(0x555)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x3d7)]=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x395)]=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0xa09)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaee)]=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x49b)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['allowDrawing']=![];else{if(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa33)]==0x4){}}}}}}_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['solo']?pokeIframeAPI(_0x19125c(0x756),_0x32fc7e['scene'],_0x2e3933):pokeIframeAPI(_0x19125c(0x858),_0x32fc7e[_0x19125c(0x2ea)],_0x2e3933);}_0x42c792[_0x19125c(0x5ce)](_0x2e3933);}else _0x32fc7e[_0x19125c(0x843)]&&((iOS||iPad)&&(_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xb2e)]==!![]&&(_0x42c792['pcs'][_0x2e3933]['guest']=!![])),_0x42c792[_0x19125c(0x6ad)]&&(playtone(![],'jointone'),showNotification(_0x19125c(0x3d8),'Trying\x20to\x20join\x20at\x20least')),_0x42c792[_0x19125c(0x5ce)](_0x2e3933),pokeIframeAPI(_0x19125c(0x729),_0x32fc7e[_0x19125c(0x843)],_0x2e3933));if(_0x42c792[_0x19125c(0x843)])_0x19125c(0x311)in _0x32fc7e&&(_0x32fc7e['hidedirector']==!![]&&(_0x42c792['pcs'][_0x2e3933][_0x19125c(0x555)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x3d7)]=![],_0x42c792['pcs'][_0x2e3933]['allowIframe']=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xa09)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0xaee)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x49b)]=![],_0x42c792['pcs'][_0x2e3933][_0x19125c(0x559)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x79e)]=![],_0x42c792[_0x19125c(0x3c0)][_0x2e3933][_0x19125c(0x628)]=![])),_0x42c792['initialPublish'](_0x2e3933);else _0x42c792[_0x19125c(0x750)]&&_0x42c792['queueType']==0x3&&!_0x42c792[_0x19125c(0x843)]?_0x42c792[_0x19125c(0x3c0)][_0x2e3933]['needsPublishing']=!![]:_0x42c792[_0x19125c(0x28b)](_0x2e3933);}},_0x42c792[_0x4a08cd(0x5ce)]=function(_0x426ea3){var _0xa86861=_0x4a08cd;if(!(_0x42c792[_0xa86861(0xa4c)]||_0x42c792[_0xa86861(0x2ea)]))return;try{var _0x4c1d16={};_0x42c792[_0xa86861(0x3c0)][_0x426ea3]&&(_0x4c1d16[_0xa86861(0x90a)]=getDirectorSettings(_0x42c792[_0xa86861(0x3c0)][_0x426ea3][_0xa86861(0x2ea)]));log('TRYING\x20TO\x20SYNC\x20WITH\x20SENDING:\x20'+_0x426ea3);var _0x43a2a0=![];_0x42c792[_0xa86861(0x2ff)]&&_0x42c792[_0xa86861(0x2ff)][_0xa86861(0x6d2)](_0x5a5ee1=>{var _0xb2f2f2=_0xa86861;_0x5a5ee1[_0xb2f2f2(0xac6)]===_0x426ea3&&(_0x43a2a0=!![]);}),!_0x43a2a0?_0x4c1d16[_0xa86861(0xa4c)]=getDetailedState():warnlog('this\x20unverified\x20director\x20was\x20already\x20connected;\x20not\x20going\x20to\x20send\x20my\x20director\x20state\x20to\x20them'),Object[_0xa86861(0x3fa)](_0x4c1d16)[_0xa86861(0x606)]&&_0x42c792['sendPeers'](_0x4c1d16,_0x426ea3);}catch(_0x5e84f2){}},_0x42c792[_0x4a08cd(0xa90)]=function(_0x4199ae){var _0x3f55fe=_0x4a08cd;log(_0x3f55fe(0x3bf));if(!_0x42c792['hostedFiles']||!_0x42c792[_0x3f55fe(0x527)][_0x3f55fe(0x606)])return;var _0x4ebc5b={},_0xbb0f7f=[];for(var _0x11ed5d=0x0;_0x11ed5d<_0x42c792[_0x3f55fe(0x527)][_0x3f55fe(0x606)];_0x11ed5d++){(_0x42c792[_0x3f55fe(0x527)][_0x11ed5d][_0x3f55fe(0x41d)]===![]||_0x42c792[_0x3f55fe(0x527)][_0x11ed5d][_0x3f55fe(0x41d)]===_0x4199ae)&&_0xbb0f7f[_0x3f55fe(0x3e0)]({'id':_0x42c792[_0x3f55fe(0x527)][_0x11ed5d]['id'],'name':_0x42c792[_0x3f55fe(0x527)][_0x11ed5d][_0x3f55fe(0x357)],'size':_0x42c792[_0x3f55fe(0x527)][_0x11ed5d][_0x3f55fe(0x353)]});}_0x4ebc5b['fileList']=_0xbb0f7f;if(_0x4199ae in _0x42c792[_0x3f55fe(0x3c0)])_0x42c792['sendMessage'](_0x4ebc5b,_0x4199ae);else _0x4199ae in _0x42c792[_0x3f55fe(0x9f2)]&&_0x42c792[_0x3f55fe(0x380)](_0x4ebc5b,_0x4199ae);log(_0x4ebc5b);},_0x42c792[_0x4a08cd(0x28b)]=function(_0x3e7e4d){var _0xdda7b9=_0x4a08cd;log('INITIAL\x20PUBLISH\x20START:\x20'+_0x3e7e4d);if(_0x3e7e4d in _0x42c792['pcs'])_0x42c792['pcs'][_0x3e7e4d]['needsPublishing']=![];else{errorlog('UUID\x20not\x20found\x20in\x20pcs');return;}getSenders2(_0x3e7e4d)[_0xdda7b9(0x606)]&&errorlog(_0xdda7b9(0x336)+getSenders2(_0x3e7e4d)['length']);if(_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d]['allowIframe']===!![]){if(_0x42c792['iframeSrc']){var _0x2283fd={};_0x2283fd[_0xdda7b9(0x343)]=_0x42c792['iframeSrc'],_0x42c792[_0xdda7b9(0x547)]&&_0x42c792['iframeEle'][_0xdda7b9(0x9f8)]&&(_0x42c792[_0xdda7b9(0x343)][_0xdda7b9(0x52f)](_0xdda7b9(0x9bb))&&(_0x2283fd[_0xdda7b9(0x343)]+=_0xdda7b9(0x954)+parseInt(Math['ceil'](_0x42c792[_0xdda7b9(0x547)]['sendOnNewConnect'][_0xdda7b9(0x3ce)]['t']))+'')),_0x42c792[_0xdda7b9(0x8ae)](_0x2283fd,_0x3e7e4d);}}if(_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0xa09)]===!![]){if(_0x42c792[_0xdda7b9(0x99f)]&&_0x42c792[_0xdda7b9(0x843)]){var _0x2283fd={};_0x2283fd[_0xdda7b9(0xad7)]=_0x42c792[_0xdda7b9(0x99f)],_0x42c792['sendMessage'](_0x2283fd,_0x3e7e4d);}}_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x5c4)]===!![]&&_0x42c792[_0xdda7b9(0xa90)](_0x3e7e4d);_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x6ea)]===!![]&&_0x42c792[_0xdda7b9(0x28e)](_0x3e7e4d);let _0x3817f1=![];if(_0x42c792[_0xdda7b9(0x4b8)]&&_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x349)]){_0x42c792[_0xdda7b9(0x4d4)](_0x3e7e4d);if(_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x349)]!==0x2)return;_0x3817f1=!![];}var _0x129dc3=_0x42c792[_0xdda7b9(0xaa1)]();log(_0xdda7b9(0x57c)),log(_0x129dc3[_0xdda7b9(0x234)]());if(_0x42c792[_0xdda7b9(0x9cf)]&&_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d]['whipout']===null){_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d]['whipout']=!![];var _0x2283fd={};_0x2283fd[_0xdda7b9(0x4f0)]=_0x42c792[_0xdda7b9(0x9cf)],_0x42c792[_0xdda7b9(0x8ae)](_0x2283fd,_0x3e7e4d),warnlog(_0x2283fd);}!_0x3817f1&&(_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x79e)]||_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x559)])&&createSecondStream2(_0x3e7e4d);var _0x57eea5=![];!_0x3817f1&&_0x129dc3[_0xdda7b9(0x40c)]()[_0xdda7b9(0x6d2)](async _0x1021b0=>{var _0x2c5192=_0xdda7b9;try{if(_0x42c792[_0x2c5192(0x3c0)][_0x3e7e4d][_0x2c5192(0x3d7)]===!![]){if(_0x1021b0['kind']==_0x2c5192(0x735)){if(_0x42c792['pcs'][_0x3e7e4d]['guest']===!![]&&_0x42c792['roombitrate']===0x0)log(_0x2c5192(0x3db));else{let _0x4e738a=_0x42c792['pcs'][_0x3e7e4d][_0x2c5192(0x971)](_0x1021b0,_0x129dc3);if(_0x4e738a&&_0x42c792['encodedInsertableStreams'])try{setupSenderTransform(_0x4e738a,_0x3e7e4d);}catch(_0x2369be){errorlog(_0x2369be);}warnlog(_0x2c5192(0xa23)),_0x57eea5=!![],setTimeout(function(_0x35d9cb){var _0x39e363=_0x2c5192;try{_0x42c792[_0x39e363(0xa55)](_0x35d9cb);}catch(_0x5c4ea5){warnlog(_0x5c4ea5);}},_0x42c792[_0x2c5192(0x4d7)],_0x3e7e4d);}}}}catch(_0x47bed8){errorlog(_0x47bed8);}});_0x42c792['mixMinus']&&(_0x129dc3=mixMinusAudio(_0x3e7e4d));_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d]['allowAudio']&&(_0x129dc3[_0xdda7b9(0x55a)]()['forEach'](_0x48ee88=>{var _0x5c018e=_0xdda7b9;try{_0x48ee88[_0x5c018e(0x184)]=='audio'&&(_0x42c792[_0x5c018e(0x3c0)][_0x3e7e4d]['addTrack'](_0x48ee88,_0x129dc3),warnlog('added\x20audio\x20track'));}catch(_0x1c8c90){errorlog(_0x1c8c90);}}),log('does\x20any\x20audio\x20exist?'),_0x129dc3[_0xdda7b9(0x55a)]()[_0xdda7b9(0x606)]&&(_0x42c792['director']!==![]&&_0x42c792[_0xdda7b9(0x3a7)](),log(_0xdda7b9(0x804)),_0x42c792[_0xdda7b9(0x3c0)][_0x3e7e4d][_0xdda7b9(0x66f)]===!![]&&(warnlog(_0xdda7b9(0xb2a)),setTimeout(_0x42c792[_0xdda7b9(0x55e)],0x3e8,_0x3e7e4d,0x7d00,0x0)),_0x42c792['pcs'][_0x3e7e4d][_0xdda7b9(0x453)]===!![]&&setTimeout(_0x42c792['enhanceAudioEncoder'],0x3e8,_0x3e7e4d)));if(_0x42c792['pcs'][_0x3e7e4d][_0xdda7b9(0x9a9)])setTimeout(_0x42c792[_0xdda7b9(0x9a9)],0x3e8,_0x3e7e4d,_0x42c792['pcs'][_0x3e7e4d][_0xdda7b9(0x9a9)]);else{if(_0x42c792['contentHint']&&SafariVersion){if(_0x42c792['contentHint']==_0xdda7b9(0x7d4))setTimeout(_0x42c792[_0xdda7b9(0x9a9)],0x3e8,_0x3e7e4d,_0xdda7b9(0x53b));else _0x42c792[_0xdda7b9(0x8da)]==_0xdda7b9(0x1cd)&&setTimeout(_0x42c792[_0xdda7b9(0x9a9)],0x3e8,_0x3e7e4d,_0xdda7b9(0x2d0));}}if(iOS||iPad){if(SafariVersion&&SafariVersion<=0xd){}else _0x57eea5&&(setTimeout(function(_0x1edf2c){var _0x3703a4=_0xdda7b9;_0x42c792[_0x3703a4(0x1a8)](_0x1edf2c,null,!![]);},0x7d0,_0x3e7e4d),setTimeout(function(_0x5437e3){var _0x1c5ba7=_0xdda7b9,_0x5e4e56=_0x42c792[_0x1c5ba7(0x9db)](_0x5437e3);!_0x5e4e56&&_0x42c792[_0x1c5ba7(0x1a8)](_0x5437e3,0x64,!![]);},0x1388,_0x3e7e4d));}else setTimeout(function(_0x97af4){_0x42c792['refreshScale'](_0x97af4);},0x3e8,_0x3e7e4d);},_0x42c792['pcs'][_0x10544c][_0x4a08cd(0x5c0)]=function(_0x12a7bc){var _0x278739=_0x4a08cd;if(!(_0x10544c in _0x42c792['pcs']))return;try{if(this[_0x278739(0x910)]===_0x278739(0x981))log('ICE\x20closed?');else{if(this[_0x278739(0x910)]===_0x278739(0x6d0))log('PCS:\x20ICE\x20Disconnected;\x20wait\x20for\x20retry?\x20pcs');else{if(this[_0x278739(0x910)]==='failed')log('ICE\x20FAILed.\x20bad?');else this[_0x278739(0x910)]===_0x278739(0x36f)?log(_0x278739(0x156)):log(this[_0x278739(0x910)]);}}}catch(_0x395e8b){errorlog(_0x395e8b);}},_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x19f)]=function(_0x19b180){var _0x5c6f4d=_0x4a08cd;switch(_0x42c792['pcs'][_0x10544c][_0x5c6f4d(0x9e2)]){case _0x5c6f4d(0x36f):log(_0x5c6f4d(0xad2)),clearTimeout(_0x42c792['pcs'][_0x10544c][_0x5c6f4d(0x7c0)]);if(_0x42c792['security']){if(_0x42c792['ws'][_0x5c6f4d(0x1f7)]!==0x1){_0x42c792['ws']['close']();break;}_0x42c792['ws'][_0x5c6f4d(0x16f)](),setTimeout(function(){var _0xecda6d=_0x5c6f4d;_0x42c792[_0xecda6d(0xad1)]!=!![]&&warnUser(getTranslation('remote-peer-connected'));},0x1);}break;case _0x5c6f4d(0x6d0):log(_0x5c6f4d(0x4a1)),clearTimeout(_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c][_0x5c6f4d(0x7c0)]),_0x42c792['pcs'][_0x10544c][_0x5c6f4d(0x7c0)]=setTimeout(function(_0xe8e709){var _0x10f433=_0x5c6f4d;_0xe8e709 in _0x42c792[_0x10f433(0x3c0)]?(warnlog(_0x10f433(0x5fb)),_0x42c792['closePC'](_0xe8e709)):errorlog(_0x10f433(0xb3b));},0x2710,_0x10544c);break;case _0x5c6f4d(0x9c8):warnlog(_0x5c6f4d(0x8bf));_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c]&&(_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c][_0x5c6f4d(0x268)]=0x0,_0x42c792['pcs'][_0x10544c][_0x5c6f4d(0x7c0)]&&(log(_0x5c6f4d(0xaa6)),clearTimeout(_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c][_0x5c6f4d(0x7c0)])),_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c][_0x5c6f4d(0x862)]?(log(_0x5c6f4d(0xaf7)),_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c]['restartIce']()):(log('fake\x20ice\x20restart\x20faked'),_0x42c792[_0x5c6f4d(0x390)](_0x10544c,!![])));break;case'closed':warnlog(_0x5c6f4d(0x161)),log('closing\x2018'),_0x42c792['closePC'](_0x10544c);break;default:log('rtc\x20state:\x20'+_0x42c792['pcs'][_0x10544c]['connectionState']),clearTimeout(_0x42c792[_0x5c6f4d(0x3c0)][_0x10544c][_0x5c6f4d(0x7c0)]);break;}},_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0x8c7)]=function(_0x5907b6){var _0x149356=_0x4a08cd;warnlog(_0x149356(0x3ae)),log(_0x149356(0x7c8)),_0x42c792[_0x149356(0x83a)](_0x10544c);},_0x42c792[_0x4a08cd(0x3c0)][_0x10544c][_0x4a08cd(0xaf3)]=function _0x244bac(){log('WEBRTC\x20CONNECTION\x20OPEN');};},_0x42c792['processDescription2']=function(_0x3733f4){var _0x165c0d=_0x5b10c6,_0x13c994=_0x3733f4[_0x165c0d(0xac6)];if(_0x3733f4[_0x165c0d(0x5dd)]['type']=='offer')_0x42c792['setupIncoming'](_0x3733f4),_0x42c792[_0x165c0d(0x495)](_0x3733f4);else try{if(!(_0x3733f4[_0x165c0d(0xac6)]in _0x42c792['pcs']))return;var _0xae9ae0=_0x42c792[_0x165c0d(0x64b)];if(_0x42c792[_0x165c0d(0xb32)]&&_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x639)]==!![]&&_0x42c792['pcs'][_0x3733f4[_0x165c0d(0xac6)]]['forceios']==![]){if(_0xae9ae0===![]||_0xae9ae0>_0x42c792[_0x165c0d(0x56f)]){var _0x305916=Object[_0x165c0d(0x3fa)](_0x42c792[_0x165c0d(0x3c0)])[_0x165c0d(0x606)];if(_0x42c792['flagship'])_0xae9ae0=_0x42c792[_0x165c0d(0x56f)];else{if(_0x305916>0x4)_0xae9ae0=_0x42c792['lowMobileBitrate'];else(iOS||iPad)&&SafariVersion&&SafariVersion<=0xd?_0xae9ae0=_0x42c792[_0x165c0d(0x7aa)]:_0xae9ae0=_0x42c792[_0x165c0d(0x56f)];}}if(iOS||iPad){if(_0xae9ae0!==![]){if(_0x42c792['pcs'][_0x3733f4['UUID']][_0x165c0d(0xaff)]===![])_0x42c792['pcs'][_0x3733f4['UUID']][_0x165c0d(0x210)]=_0xae9ae0,_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler[_0x165c0d(0x1b8)](_0x3733f4['description']['sdp'],_0x165c0d(0x830),_0x42c792['preferredVideoErrorCorrection']),_0x3733f4[_0x165c0d(0x5dd)]['sdp']=CodecsHandler[_0x165c0d(0x242)](_0x3733f4['description'][_0x165c0d(0x451)],{'min':parseInt(_0xae9ae0/0xa)||0x1,'max':_0xae9ae0});else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']]['savedBitrate']>_0xae9ae0&&(_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x210)]=_0xae9ae0,_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler[_0x165c0d(0x1b8)](_0x3733f4['description'][_0x165c0d(0x451)],_0x165c0d(0x830),_0x42c792['preferredVideoErrorCorrection']),_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler[_0x165c0d(0x242)](_0x3733f4['description'][_0x165c0d(0x451)],{'min':parseInt(_0xae9ae0/0xa)||0x1,'max':_0xae9ae0}));_0xae9ae0=![];}}}else{if(_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x639)]==!![])_0xae9ae0!==![]?_0x42c792[_0x165c0d(0x2b2)]!==![]&&(_0x42c792[_0x165c0d(0x2b2)]<_0xae9ae0&&(_0xae9ae0=_0x42c792[_0x165c0d(0x2b2)])):_0xae9ae0=_0x42c792[_0x165c0d(0x2b2)],(iOS||iPad)&&_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0xb2e)]&&(_0x42c792['pcs'][_0x3733f4['UUID']]['encoder']=!![]);else{if(iOS||iPad){var _0x937998=0x0;for(var _0x5d4e78 in _0x42c792[_0x165c0d(0x3c0)]){_0x3733f4[_0x165c0d(0xac6)]!==_0x5d4e78&&(_0x42c792[_0x165c0d(0x3c0)][_0x5d4e78][_0x165c0d(0x79a)]===!![]&&(_0x937998+=0x1));}if(_0x937998>=0x3){if(_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0xb2e)])_0x42c792['pcs'][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x79a)]=!![],_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]&&_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]===_0x165c0d(0x456)&&(_0x3733f4[_0x165c0d(0x5dd)]['sdp']=CodecsHandler[_0x165c0d(0x1b8)](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)],_0x165c0d(0x456),_0x42c792[_0x165c0d(0x5bf)]),log(_0x165c0d(0x966)+_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']]['preferVideoCodec']+'\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API'));else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]&&_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x6c0)]===_0x165c0d(0x398)?(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler[_0x165c0d(0x1b8)](_0x3733f4['description'][_0x165c0d(0x451)],_0x165c0d(0x398),_0x42c792[_0x165c0d(0x5bf)]),log(_0x165c0d(0x966)+_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]+_0x165c0d(0x4e1)),_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]]['encoder']=![]):(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler[_0x165c0d(0x1b8)](_0x3733f4[_0x165c0d(0x5dd)]['sdp'],_0x165c0d(0x830),_0x42c792[_0x165c0d(0x5bf)]),log(_0x165c0d(0x43b)),_0x42c792['pcs'][_0x3733f4['UUID']][_0x165c0d(0x79a)]=![]);}else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]&&_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x6c0)]!==_0x165c0d(0x456)?_0x42c792['pcs'][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]===_0x165c0d(0x398)||_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]==='vp8'?(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler['preferCodec'](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)],_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']]['preferVideoCodec'],_0x42c792[_0x165c0d(0x5bf)]),log(_0x165c0d(0x966)+_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]+'\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API'),_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x79a)]=![]):_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x79a)]=!![]:(_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x79a)]=!![],_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]&&_0x42c792['pcs'][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]===_0x165c0d(0x456)&&(_0x3733f4[_0x165c0d(0x5dd)]['sdp']=CodecsHandler[_0x165c0d(0x1b8)](_0x3733f4['description'][_0x165c0d(0x451)],_0x165c0d(0x456),_0x42c792[_0x165c0d(0x5bf)]),log(_0x165c0d(0x966)+_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)]+_0x165c0d(0x4e1))));}else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x6c0)]&&(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler['preferCodec'](_0x3733f4['description'][_0x165c0d(0x451)],_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x6c0)],_0x42c792[_0x165c0d(0x5bf)]),log(_0x165c0d(0x966)+_0x42c792['pcs'][_0x3733f4['UUID']][_0x165c0d(0x6c0)]+'\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API'));}}if(_0xae9ae0){var _0x19a943=CodecsHandler['getVideoBitrates'](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]);log(_0x165c0d(0x16b)+_0x19a943);_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0xaff)]!==![]&&(_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0xaff)]<_0xae9ae0&&(_0xae9ae0=![]));if(_0xae9ae0===![])_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x210)]=_0x19a943;else{if(_0x19a943!==![]&&_0x19a943>_0xae9ae0){var _0x64a3ba=CodecsHandler[_0x165c0d(0x6ba)](_0x3733f4['description'][_0x165c0d(0x451)])||0x0;_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler[_0x165c0d(0x242)](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)],{'min':parseInt(_0xae9ae0/0xa)||0x1,'max':parseInt(_0xae9ae0+_0x64a3ba/0x400)}),_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]][_0x165c0d(0x210)]=_0xae9ae0;}else{if(_0x19a943===![]){var _0x64a3ba=CodecsHandler['getOpusBitrate'](_0x3733f4['description']['sdp'])||0x0;_0x3733f4[_0x165c0d(0x5dd)]['sdp']=CodecsHandler[_0x165c0d(0x242)](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)],{'min':parseInt(_0xae9ae0/0xa)||0x1,'max':parseInt(_0xae9ae0+_0x64a3ba/0x400)});if(_0x42c792[_0x165c0d(0x9ad)]&&_0x42c792[_0x165c0d(0x9ad)]>_0xae9ae0)_0x42c792['pcs'][_0x3733f4['UUID']][_0x165c0d(0x210)]=_0xae9ae0;else _0x42c792[_0x165c0d(0x9ad)]?_0x42c792['pcs'][_0x3733f4[_0x165c0d(0xac6)]]['setBitrate']=_0x42c792[_0x165c0d(0x9ad)]:_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']]['savedBitrate']=0x9c4;}else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x210)]=_0x19a943;}}}else{if(_0x42c792['outboundVideoBitrate']!==![]){var _0x19a943=CodecsHandler['getVideoBitrates'](_0x3733f4['description'][_0x165c0d(0x451)]);log(_0x165c0d(0x80d)+_0x19a943);if(_0x19a943===![]){var _0x64a3ba=CodecsHandler[_0x165c0d(0x6ba)](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)])||0x0;_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=CodecsHandler['setVideoBitrates'](_0x3733f4[_0x165c0d(0x5dd)]['sdp'],{'min':parseInt(_0x42c792[_0x165c0d(0x9ad)]/0xa)||0x1,'max':parseInt(_0x42c792[_0x165c0d(0x9ad)]+_0x64a3ba/0x400)});}else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x210)]===![]&&(_0x42c792['pcs'][_0x3733f4['UUID']][_0x165c0d(0x210)]=_0x19a943);}else _0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x210)]===![]&&(_0x42c792['pcs'][_0x3733f4['UUID']]['setBitrate']=CodecsHandler[_0x165c0d(0xa5a)](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]),log(_0x165c0d(0xaed)+_0x42c792[_0x165c0d(0x3c0)][_0x3733f4[_0x165c0d(0xac6)]]['setBitrate']));}_0x42c792['outboundAudioBitrate']&&(_0x3733f4['description']['sdp']=CodecsHandler['setOpusAttributes'](_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)],{'maxaveragebitrate':_0x42c792[_0x165c0d(0x8ec)]*0x400,'cbr':_0x42c792[_0x165c0d(0x30c)]}));if(_0x165c0d(0x610)in _0x3733f4&&_0x3733f4[_0x165c0d(0x610)]!=_0x42c792['pcs'][_0x3733f4['UUID']]['session']){errorlog(_0x165c0d(0x5b0));return;}_0x42c792[_0x165c0d(0x724)]&&(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=filterSDPLAN(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)])),_0x42c792[_0x165c0d(0x835)]&&(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)]=filterStunOnly(_0x3733f4[_0x165c0d(0x5dd)][_0x165c0d(0x451)])),_0x42c792[_0x165c0d(0x3c0)][_0x3733f4['UUID']][_0x165c0d(0x71a)](_0x3733f4[_0x165c0d(0x5dd)])[_0x165c0d(0x272)]()['catch'](errorlog);}catch(_0x374b39){errorlog(_0x374b39);}},_0x42c792['processDescription']=function(_0x3092fe){var _0x369499=_0x5b10c6;_0x42c792[_0x369499(0x3dd)]&&_0x3092fe['vector']?_0x42c792[_0x369499(0xaeb)](_0x3092fe[_0x369499(0x5dd)],_0x3092fe[_0x369499(0x97b)])['then'](function(_0xc70405){var _0x29790c=_0x369499;try{_0x3092fe[_0x29790c(0x5dd)]=JSON[_0x29790c(0x867)](_0xc70405),_0x42c792[_0x29790c(0x249)](_0x3092fe);}catch(_0x4293ce){errorlog(_0x4293ce);}})[_0x369499(0xaef)](function(_0x5353cf){var _0x519135=_0x369499;errorlog(_0x519135(0x190),_0x5353cf);}):_0x42c792[_0x369499(0x249)](_0x3092fe);},_0x42c792[_0x5b10c6(0x80b)]=function(_0x1a52e6){var _0x173a67=_0x5b10c6;_0x42c792[_0x173a67(0x3dd)]&&_0x1a52e6[_0x173a67(0x97b)]?_0x42c792[_0x173a67(0xaeb)](_0x1a52e6[_0x173a67(0x943)],_0x1a52e6[_0x173a67(0x97b)])[_0x173a67(0x272)](function(_0x593b48){var _0x15a077=_0x173a67;try{_0x1a52e6[_0x15a077(0x943)]=JSON[_0x15a077(0x867)](_0x593b48),_0x42c792[_0x15a077(0x4e2)](_0x1a52e6);}catch(_0xd391d){errorlog(_0xd391d);}})[_0x173a67(0xaef)](function(_0x5c4e8a){errorlog('Decryption\x20error:',_0x5c4e8a);}):_0x42c792['processIce2'](_0x1a52e6);},_0x42c792['processIce2']=function(_0x4b722d){var _0x3190a9=_0x5b10c6;try{if(_0x42c792[_0x3190a9(0x757)]){if(_0x4b722d['candidate'][_0x3190a9(0x943)]['indexOf'](_0x42c792[_0x3190a9(0x757)])===-0x1){log(_0x3190a9(0x196)),log(_0x4b722d[_0x3190a9(0x943)]);return;}else log(_0x3190a9(0x7e0)),log(_0x4b722d[_0x3190a9(0x943)]);}}catch(_0x44b50e){errorlog(_0x44b50e);}if(_0x4b722d[_0x3190a9(0x943)]&&'candidate'in _0x4b722d[_0x3190a9(0x943)]&&_0x4b722d[_0x3190a9(0x943)][_0x3190a9(0x943)]=='')return;try{if(_0x42c792[_0x3190a9(0x724)]){if(!filterIceLAN(_0x4b722d[_0x3190a9(0x943)]))return;}if(_0x42c792[_0x3190a9(0x835)]){if(!filterStunOnly(event[_0x3190a9(0x943)]))return;}}catch(_0x1ef185){errorlog(_0x1ef185);}if(_0x4b722d[_0x3190a9(0xac6)]in _0x42c792[_0x3190a9(0x3c0)]&&_0x4b722d['type']=='remote'){log(_0x3190a9(0x419));if(_0x3190a9(0x610)in _0x4b722d&&_0x42c792[_0x3190a9(0x3c0)][_0x4b722d['UUID']][_0x3190a9(0x610)]!=_0x4b722d[_0x3190a9(0x610)]){errorlog(_0x3190a9(0x591));return;}_0x42c792[_0x3190a9(0x3c0)][_0x4b722d[_0x3190a9(0xac6)]]['addIceCandidate'](_0x4b722d['candidate'])[_0x3190a9(0x272)]()[_0x3190a9(0xaef)](function(_0xf0cc48){});}else{if(_0x4b722d['UUID']in _0x42c792[_0x3190a9(0x9f2)]&&_0x4b722d[_0x3190a9(0x94c)]==_0x3190a9(0x4ad)){log(_0x3190a9(0xb5f));if(_0x3190a9(0x610)in _0x4b722d&&_0x42c792[_0x3190a9(0x9f2)][_0x4b722d[_0x3190a9(0xac6)]]['session']!=_0x4b722d[_0x3190a9(0x610)]){errorlog(_0x3190a9(0x591));return;}if(_0x42c792[_0x3190a9(0x9f2)][_0x4b722d[_0x3190a9(0xac6)]]===null)return;_0x42c792[_0x3190a9(0x9f2)][_0x4b722d[_0x3190a9(0xac6)]][_0x3190a9(0x8cb)](_0x4b722d[_0x3190a9(0x943)])[_0x3190a9(0x272)]()['catch'](function(_0x3d377f){});}else warnlog(_0x4b722d),errorlog(_0x3190a9(0x758));}},_0x42c792['processIceBundle']=function(_0x302a02){var _0x2df5e4=_0x5b10c6;if(_0x42c792['password']&&_0x302a02[_0x2df5e4(0x97b)])_0x42c792[_0x2df5e4(0xaeb)](_0x302a02['candidates'],_0x302a02[_0x2df5e4(0x97b)])[_0x2df5e4(0x272)](function(_0x355307){var _0x376484=_0x2df5e4;_0x302a02[_0x376484(0x243)]=JSON[_0x376484(0x867)](_0x355307);var _0x49cc84={};_0x49cc84[_0x376484(0xac6)]=_0x302a02[_0x376484(0xac6)],_0x49cc84[_0x376484(0x94c)]=_0x302a02['type'];for(var _0x2b6b1d=0x0;_0x2b6b1d<_0x302a02['candidates'][_0x376484(0x606)];_0x2b6b1d++){_0x49cc84['candidate']=_0x302a02['candidates'][_0x2b6b1d],_0x42c792[_0x376484(0x4e2)](_0x49cc84);}});else{var _0x3fd519={};_0x3fd519[_0x2df5e4(0xac6)]=_0x302a02[_0x2df5e4(0xac6)],_0x3fd519[_0x2df5e4(0x94c)]=_0x302a02['type'];for(var _0x439023=0x0;_0x439023<_0x302a02[_0x2df5e4(0x243)][_0x2df5e4(0x606)];_0x439023++){_0x3fd519['candidate']=_0x302a02[_0x2df5e4(0x243)][_0x439023],_0x42c792[_0x2df5e4(0x4e2)](_0x3fd519);}}},_0x42c792[_0x5b10c6(0x495)]=async function(_0x59c714){var _0x1ad4c4=_0x5b10c6;_0x1ad4c4(0x3e2)in _0x59c714&&(_0x42c792[_0x1ad4c4(0x9f2)][_0x59c714[_0x1ad4c4(0xac6)]][_0x1ad4c4(0x820)]=_0x59c714[_0x1ad4c4(0x3e2)],log(_0x1ad4c4(0x583)),log(_0x59c714[_0x1ad4c4(0x3e2)])),log(_0x59c714),_0x42c792['removeOrientationFlag']&&_0x59c714[_0x1ad4c4(0x5dd)]&&_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]&&_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]['includes'](_0x1ad4c4(0x656))&&(_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]=_0x59c714['description'][_0x1ad4c4(0x451)][_0x1ad4c4(0x71b)]('a=extmap:3\x20urn:3gpp:video-orientation\x0d\x0a',''),warnlog(_0x1ad4c4(0xb10))),_0x42c792['noPLIs']&&(_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]=CodecsHandler['disablePLI'](_0x59c714['description'][_0x1ad4c4(0x451)])),_0x42c792[_0x1ad4c4(0x705)]&&(_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]=CodecsHandler['disableREMB'](_0x59c714['description'][_0x1ad4c4(0x451)])),_0x42c792[_0x1ad4c4(0x35c)]&&(log(_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]),_0x59c714[_0x1ad4c4(0x5dd)]['sdp']=CodecsHandler[_0x1ad4c4(0x235)](_0x59c714[_0x1ad4c4(0x5dd)]['sdp'])),_0x42c792['localNetworkOnly']&&(_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)]=filterSDPLAN(_0x59c714[_0x1ad4c4(0x5dd)]['sdp'])),_0x42c792[_0x1ad4c4(0x835)]&&(_0x59c714['description'][_0x1ad4c4(0x451)]=filterStunOnly(_0x59c714[_0x1ad4c4(0x5dd)][_0x1ad4c4(0x451)])),_0x42c792[_0x1ad4c4(0x9f2)][_0x59c714[_0x1ad4c4(0xac6)]][_0x1ad4c4(0x71a)](_0x59c714[_0x1ad4c4(0x5dd)])[_0x1ad4c4(0x272)](async function(){var _0x5cd750=_0x1ad4c4;if(_0x42c792[_0x5cd750(0x9f2)][_0x59c714[_0x5cd750(0xac6)]]['remoteDescription'][_0x5cd750(0x94c)]===_0x5cd750(0x87a))_0x42c792[_0x5cd750(0x9f2)][_0x59c714[_0x5cd750(0xac6)]][_0x5cd750(0x9ae)]()[_0x5cd750(0x272)](function(_0x49b4cb){var _0x1943bd=_0x5cd750;log(_0x1943bd(0x98e));if(_0x42c792[_0x1943bd(0x9f2)][_0x59c714[_0x1943bd(0xac6)]][_0x1943bd(0x5f7)]){if(_0x42c792['stereo']&&_0x42c792[_0x1943bd(0x3be)]==0x4)_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler['setOpusAttributes'](_0x49b4cb[_0x1943bd(0x451)],{'stereo':0x2},!![]);else _0x42c792[_0x1943bd(0x3be)]&&!_0x42c792[_0x1943bd(0x29c)]&&_0x42c792[_0x1943bd(0x3be)]!=0x3&&(_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler[_0x1943bd(0x561)](_0x49b4cb[_0x1943bd(0x451)],{'stereo':0x1},!![]));return _0x42c792[_0x1943bd(0x9f2)][_0x59c714['UUID']][_0x1943bd(0xb47)](_0x49b4cb);}var _0x94b444=![];if(!_0x42c792[_0x1943bd(0x843)]&&_0x42c792['stereo']==0x5)_0x94b444={'stereo':0x1,'maxaveragebitrate':(_0x42c792[_0x1943bd(0x8bd)]||_0x42c792[_0x1943bd(0x23f)])*0x400,'cbr':_0x42c792[_0x1943bd(0x30c)],'useinbandfec':_0x42c792[_0x1943bd(0x8d9)]?0x0:0x1,'maxptime':_0x42c792[_0x1943bd(0x356)],'minptime':_0x42c792['minptime'],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792[_0x1943bd(0x4f9)]},log('stereo\x20inbound\x20enabled');else{if(_0x42c792[_0x1943bd(0x29c)]&&Firefox)_0x42c792[_0x1943bd(0x8bd)]?_0x94b444={'stereo':0x0,'maxaveragebitrate':_0x42c792[_0x1943bd(0x8bd)]*0x400,'cbr':_0x42c792['cbr'],'useinbandfec':_0x42c792['noFEC']?0x0:0x1,'maxptime':_0x42c792[_0x1943bd(0x356)],'minptime':_0x42c792[_0x1943bd(0x7a3)],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792[_0x1943bd(0x4f9)]}:_0x94b444={'stereo':0x0,'useinbandfec':_0x42c792[_0x1943bd(0x8d9)]?0x0:0x1,'maxptime':_0x42c792['maxptime'],'minptime':_0x42c792[_0x1943bd(0x7a3)],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792[_0x1943bd(0x4f9)]};else{if(_0x42c792['stereo']==0x1||_0x42c792['stereo']==0x2||_0x42c792['stereo']==0x5)_0x94b444={'stereo':0x1,'maxaveragebitrate':(_0x42c792[_0x1943bd(0x8bd)]||_0x42c792[_0x1943bd(0x23f)])*0x400,'cbr':_0x42c792[_0x1943bd(0x30c)],'useinbandfec':_0x42c792[_0x1943bd(0x8d9)]?0x0:0x1,'maxptime':_0x42c792['maxptime'],'minptime':_0x42c792['minptime'],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792[_0x1943bd(0x4f9)]},log(_0x1943bd(0x2e6));else{if(_0x42c792[_0x1943bd(0x3be)]==0x4)_0x94b444={'stereo':0x2,'maxaveragebitrate':(_0x42c792[_0x1943bd(0x8bd)]||_0x42c792[_0x1943bd(0x23f)])*0x400,'cbr':_0x42c792[_0x1943bd(0x30c)],'useinbandfec':_0x42c792[_0x1943bd(0x8d9)]?0x0:0x1,'maxptime':_0x42c792['maxptime'],'minptime':_0x42c792[_0x1943bd(0x7a3)],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792[_0x1943bd(0x4f9)]};else{if(_0x42c792['audiobitrate'])_0x94b444={'maxaveragebitrate':_0x42c792[_0x1943bd(0x8bd)]*0x400,'cbr':_0x42c792[_0x1943bd(0x30c)],'useinbandfec':_0x42c792['noFEC']?0x0:0x1,'maxptime':_0x42c792['maxptime'],'minptime':_0x42c792[_0x1943bd(0x7a3)],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792[_0x1943bd(0x4f9)]};else{if(_0x42c792[_0x1943bd(0x8d9)])_0x94b444={'useinbandfec':0x0,'maxptime':_0x42c792[_0x1943bd(0x356)],'minptime':_0x42c792[_0x1943bd(0x7a3)],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792['dtx']};else _0x42c792[_0x1943bd(0x4f9)]&&(_0x94b444={'maxptime':_0x42c792['maxptime'],'minptime':_0x42c792[_0x1943bd(0x7a3)],'ptime':_0x42c792[_0x1943bd(0x737)],'dtx':_0x42c792['dtx']});}}}}}_0x42c792[_0x1943bd(0x3be)]===0x6&&(!_0x94b444?_0x94b444={'stereo':0x1}:_0x94b444[_0x1943bd(0x3be)]=0x1);_0x94b444&&(_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler[_0x1943bd(0x561)](_0x49b4cb[_0x1943bd(0x451)],_0x94b444));if(_0x42c792[_0x1943bd(0xb51)])try{if(_0x42c792['audioCodec']===_0x1943bd(0x425))_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler['modifyDescLyra'](_0x49b4cb[_0x1943bd(0x451)]);else{if(_0x42c792[_0x1943bd(0xb51)]==='pcm'){if(_0x42c792[_0x1943bd(0x29c)])_0x49b4cb['sdp']=CodecsHandler[_0x1943bd(0x5bc)](_0x49b4cb[_0x1943bd(0x451)],_0x42c792[_0x1943bd(0x7ef)]||0xbb80,![],_0x42c792[_0x1943bd(0x737)]);else _0x42c792['stereo']?_0x49b4cb['sdp']=CodecsHandler[_0x1943bd(0x5bc)](_0x49b4cb[_0x1943bd(0x451)],_0x42c792[_0x1943bd(0x7ef)]||0x7d00,!![],_0x42c792[_0x1943bd(0x737)]):_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler[_0x1943bd(0x5bc)](_0x49b4cb[_0x1943bd(0x451)],_0x42c792[_0x1943bd(0x7ef)]||0xbb80,![],_0x42c792[_0x1943bd(0x737)]);}else _0x49b4cb['sdp']=CodecsHandler[_0x1943bd(0xb1e)](_0x49b4cb['sdp'],_0x42c792[_0x1943bd(0xb51)],_0x42c792['redAudio'],_0x42c792[_0x1943bd(0x3d5)]);}}catch(_0x17af7b){errorlog(_0x17af7b),warnlog('couldn\x27t\x20set\x20preferred\x20audio\x20codec');}if(_0x42c792[_0x1943bd(0x6b0)]&&_0x42c792[_0x1943bd(0x6b0)][_0x1943bd(0x606)])for(var _0x4276ff=_0x42c792[_0x1943bd(0x6b0)][_0x1943bd(0x606)]-0x1;_0x4276ff>=0x0;_0x4276ff--){try{_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler[_0x1943bd(0x1b8)](_0x49b4cb[_0x1943bd(0x451)],_0x42c792[_0x1943bd(0x6b0)][_0x4276ff],_0x42c792[_0x1943bd(0x96f)]);}catch(_0x500d14){errorlog(_0x500d14);break;}}_0x42c792[_0x1943bd(0x565)]&&(_0x49b4cb['sdp']=CodecsHandler['preferCodec'](_0x49b4cb['sdp'],_0x42c792[_0x1943bd(0x565)],_0x42c792[_0x1943bd(0x96f)]));_0x42c792[_0x1943bd(0xb30)]&&(log(_0x1943bd(0x604)),_0x49b4cb[_0x1943bd(0x451)]=_0x49b4cb[_0x1943bd(0x451)][_0x1943bd(0x71b)](/42e01f/gi,_0x42c792['h264profile']),_0x49b4cb[_0x1943bd(0x451)]=_0x49b4cb[_0x1943bd(0x451)][_0x1943bd(0x71b)](/42001f/gi,_0x42c792[_0x1943bd(0xb30)]),_0x49b4cb[_0x1943bd(0x451)]=_0x49b4cb['sdp'][_0x1943bd(0x71b)](/420029/gi,_0x42c792[_0x1943bd(0xb30)]),_0x49b4cb[_0x1943bd(0x451)]=_0x49b4cb['sdp'][_0x1943bd(0x71b)](/42a01e/gi,_0x42c792['h264profile']),_0x49b4cb[_0x1943bd(0x451)]=_0x49b4cb[_0x1943bd(0x451)][_0x1943bd(0x71b)](/42a014/gi,_0x42c792[_0x1943bd(0xb30)]),_0x49b4cb['sdp']=_0x49b4cb['sdp'][_0x1943bd(0x71b)](/42a00b/gi,_0x42c792['h264profile']),_0x49b4cb[_0x1943bd(0x451)]=_0x49b4cb[_0x1943bd(0x451)][_0x1943bd(0x71b)](/640c1f/gi,_0x42c792[_0x1943bd(0xb30)]));_0x42c792[_0x1943bd(0x198)]&&(_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler[_0x1943bd(0xaf9)](_0x49b4cb['sdp']));_0x42c792[_0x1943bd(0x705)]&&(_0x49b4cb['sdp']=CodecsHandler['disableREMB'](_0x49b4cb[_0x1943bd(0x451)]));_0x42c792[_0x1943bd(0x35c)]&&(log(_0x49b4cb[_0x1943bd(0x451)]),_0x49b4cb[_0x1943bd(0x451)]=CodecsHandler[_0x1943bd(0x235)](_0x49b4cb[_0x1943bd(0x451)]));if(_0x42c792[_0x1943bd(0x9f2)][_0x59c714[_0x1943bd(0xac6)]][_0x1943bd(0x59e)])log(_0x1943bd(0x474)),_0x49b4cb[_0x1943bd(0x451)]=_0x35b480(_0x49b4cb[_0x1943bd(0x451)],_0x42c792[_0x1943bd(0x9f2)][_0x59c714['UUID']][_0x1943bd(0x59e)]);else _0x42c792[_0x1943bd(0x4bf)]&&(log(_0x1943bd(0x474)),_0x49b4cb['sdp']=_0x35b480(_0x49b4cb[_0x1943bd(0x451)],_0x42c792['bitrate']));return _0x42c792[_0x1943bd(0x724)]&&(_0x49b4cb['sdp']=filterSDPLAN(_0x49b4cb[_0x1943bd(0x451)])),_0x42c792['stunOnly']&&(_0x49b4cb[_0x1943bd(0x451)]=filterStunOnly(_0x49b4cb['sdp'])),log(_0x49b4cb),_0x42c792['rpcs'][_0x59c714['UUID']]['setLocalDescription'](_0x49b4cb);})[_0x5cd750(0x272)](function _0x5ce04f(){var _0x267985=_0x5cd750;log(_0x267985(0x872));if(_0x42c792['rpcs'][_0x59c714[_0x267985(0xac6)]][_0x267985(0x5f7)]){_0x42c792['rpcs'][_0x59c714[_0x267985(0xac6)]][_0x267985(0x70a)]&&_0x42c792[_0x267985(0x9f2)][_0x59c714[_0x267985(0xac6)]][_0x267985(0x70a)]();return;}var _0x43874f={};_0x43874f['UUID']=_0x59c714[_0x267985(0xac6)],_0x43874f[_0x267985(0x5dd)]=_0x42c792[_0x267985(0x9f2)][_0x59c714[_0x267985(0xac6)]][_0x267985(0x48e)],_0x43874f[_0x267985(0x610)]=_0x42c792[_0x267985(0x9f2)][_0x59c714[_0x267985(0xac6)]]['session'],_0x42c792[_0x267985(0x3dd)]&&_0x42c792['rpcs'][_0x59c714[_0x267985(0xac6)]]['vector']?_0x42c792[_0x267985(0x712)](JSON[_0x267985(0x895)](_0x43874f[_0x267985(0x5dd)]))[_0x267985(0x272)](function(_0x51cf8d){var _0x3ce28c=_0x267985;_0x43874f[_0x3ce28c(0x5dd)]=_0x51cf8d[0x0],_0x43874f['vector']=_0x51cf8d[0x1],_0x42c792[_0x3ce28c(0x52b)](_0x43874f);})['catch'](errorlog):_0x42c792[_0x267985(0x52b)](_0x43874f);})['catch'](errorlog);else _0x42c792[_0x5cd750(0x9f2)][_0x59c714[_0x5cd750(0xac6)]][_0x5cd750(0x3a1)][_0x5cd750(0x94c)]===_0x5cd750(0x89e)&&errorlog(_0x5cd750(0x9a8));})[_0x1ad4c4(0xaef)](function(_0x5d45dc){var _0x444d62=_0x1ad4c4;errorlog(_0x5d45dc),_0x59c714[_0x444d62(0x5dd)]&&errorlog(_0x59c714[_0x444d62(0x5dd)][_0x444d62(0x451)]);});},_0x42c792[_0x5b10c6(0xb5c)]=function(_0x486b65){var _0x6f70a5=_0x5b10c6;const _0x3e0434=_0x42c792[_0x6f70a5(0x9f2)][_0x486b65];if(!_0x3e0434||!_0x3e0434['stats'])return 0xc8;const _0x5cf4b9=_0x3e0434[_0x6f70a5(0x546)]['packetLoss']||0x0,_0xe7a8d0=_0x3e0434[_0x6f70a5(0x546)][_0x6f70a5(0x67b)]||0x0,_0x2b98df=_0x3e0434['stats']['jitter']||0x0;let _0x475f63=0xc8+_0x5cf4b9*0x1f4+_0xe7a8d0*0x2+_0x2b98df*0x64;return Math[_0x6f70a5(0x2ac)](0xc8,Math[_0x6f70a5(0x25d)](_0x475f63,0x7d0));},_0x42c792[_0x5b10c6(0x798)]=async function(_0x2e7903){var _0x38637e=_0x5b10c6;errorlog(_0x38637e(0x306)),await new Promise(_0x46d49a=>setTimeout(_0x46d49a,0x7d0));try{_0x42c792[_0x38637e(0x325)]=null,await _0x42c792['webCodec'](_0x2e7903),log(_0x38637e(0x1c8));}catch(_0x35b02f){errorlog(_0x38637e(0x4f1),_0x35b02f),!_0x42c792[_0x38637e(0xad1)]&&warnUser('Video\x20encoding\x20failed.\x20Please\x20try\x20refreshing\x20your\x20browser.');}},_0x42c792[_0x5b10c6(0xaa1)]=function(){var _0x28d727=_0x5b10c6;if(_0x42c792[_0x28d727(0xb58)]&&_0x42c792[_0x28d727(0xb58)][_0x28d727(0x3b0)])return _0x42c792['videoElement'][_0x28d727(0x3b0)];else return _0x42c792[_0x28d727(0xb58)]&&_0x42c792[_0x28d727(0xb58)][_0x28d727(0x340)]&&_0x42c792['streamSrc']?_0x42c792['streamSrc']:(log('checkBasicStreamsExist'),checkBasicStreamsExist(),_0x42c792[_0x28d727(0xb58)][_0x28d727(0x3b0)]);};var _0x366ad8=0x0,_0x395e22=0x0;_0x42c792[_0x5b10c6(0x766)]=async function(_0x26b0fe=null){var _0x13f659=_0x5b10c6;if(_0x42c792[_0x13f659(0x325)]!==null)return;else _0x42c792['chunkedVideoEnabled']=![];!_0x26b0fe&&_0x42c792[_0x13f659(0x546)][_0x13f659(0x3ee)]&&(_0x26b0fe=_0x42c792[_0x13f659(0x546)][_0x13f659(0x3ee)]);let _0x392dbb=0x0;var _0x41d452=_0x42c792['getLocalStream']()[_0x13f659(0x40c)]();if(!_0x41d452||!_0x41d452['length']){warnlog(_0x13f659(0x277)),_0x42c792[_0x13f659(0x325)]=null;return;}_0x41d452=_0x41d452[0x0];var _0x154ac0=new MediaStreamTrackProcessor(_0x41d452),_0x562efa=_0x154ac0[_0x13f659(0x6d5)];const _0x432a4e=_0x562efa[_0x13f659(0x473)]();_0x395e22+=0x1,_0x432a4e[_0x13f659(0x5ef)]=_0x395e22;var _0x4a0ba8=![],_0x1c4614=-0x1,_0x4215da=-0x1;const _0x1855bc={'output':async _0x3d3a66=>{var _0xafcbd3=_0x13f659;if(!_0x42c792[_0xafcbd3(0x17d)]||!_0x42c792['chunkedRecorder'][_0xafcbd3(0x72b)]){}else{if(_0x3d3a66['constructor'][_0xafcbd3(0x357)]==_0xafcbd3(0x673)){let _0x406247=new Uint8Array(_0x3d3a66[_0xafcbd3(0x98c)]);_0x3d3a66[_0xafcbd3(0x2f6)](_0x406247),_0x42c792[_0xafcbd3(0x335)]['push']([_0x3d3a66[_0xafcbd3(0xab0)]-_0x4215da,_0x3d3a66['type']]),_0x42c792[_0xafcbd3(0x335)][_0xafcbd3(0x3e0)](_0x406247);_0x42c792[_0xafcbd3(0x9d2)]&&pokeIframeAPI('chunked-outbound',{'type':_0x3d3a66[_0xafcbd3(0x94c)],'ts':_0x3d3a66[_0xafcbd3(0xab0)]-_0x4215da});try{await _0x42c792[_0xafcbd3(0x17d)][_0xafcbd3(0x72b)](_0xafcbd3(0x735));}catch(_0x57836d){errorlog(_0x57836d);if(!_0x42c792[_0xafcbd3(0x17d)]){}}}}},'error':_0x123d9e=>{var _0x169adb=_0x13f659;errorlog(_0x123d9e),_0x42c792[_0x169adb(0x798)](_0x26b0fe);}};let _0x3057fb=new VideoEncoder(_0x1855bc);_0x3057fb[_0x13f659(0xa2d)]=_0x26b0fe,_0x3057fb[_0x13f659(0x640)](_0x26b0fe),_0x42c792['stats'][_0x13f659(0x3ee)]=_0x26b0fe,_0x42c792[_0x13f659(0x17d)][_0x13f659(0x626)]=_0x3057fb;var _0x3c1ca5,_0x3b0e2d=new Promise((_0x317ca7,_0x1779f6)=>{_0x3c1ca5=_0x317ca7;});return _0x3b0e2d[_0x13f659(0x2b9)]=_0x3c1ca5,_0x432a4e[_0x13f659(0x2de)]()['then'](function _0x36f79d({done:_0x53d3b7,value:_0x57043a}){var _0x20db7a=_0x13f659;if(_0x53d3b7||_0x4a0ba8){_0x3057fb[_0x20db7a(0x16f)]();_0x57043a&&_0x57043a[_0x20db7a(0x16f)]();warnlog('frameReader.read().then(function');return;}else{if(_0x3057fb[_0x20db7a(0x213)]=='closed'){_0x57043a&&_0x57043a[_0x20db7a(0x16f)]();warnlog(_0x20db7a(0x7e9));return;}}_0x4215da==-0x1&&(_0x4215da=_0x57043a[_0x20db7a(0xab0)],_0x42c792['stats'][_0x20db7a(0x3ee)][_0x20db7a(0x9c6)]=Date[_0x20db7a(0x5ee)](),_0x3b0e2d[_0x20db7a(0x2b9)]());_0x1c4614==_0x57043a[_0x20db7a(0xab0)]&&(_0x57043a[_0x20db7a(0xab0)]+=0x1,warnlog(_0x20db7a(0xab9)));if(!_0x4a0ba8){_0x1c4614=_0x57043a[_0x20db7a(0xab0)],_0x392dbb++;if(_0x42c792[_0x20db7a(0x17d)][_0x20db7a(0x3c9)]){const _0x39fe2d=_0x392dbb>=0x3c;_0x39fe2d&&(_0x392dbb=0x0,_0x42c792['chunkedRecorder'][_0x20db7a(0x3c9)]=![],warnlog('Keyframe\x20inserted'));try{_0x3057fb[_0x20db7a(0x4ee)](_0x57043a,{'keyFrame':_0x39fe2d});}catch(_0x32e816){errorlog(_0x32e816);}}else try{_0x3057fb[_0x20db7a(0x4ee)](_0x57043a,{'keyFrame':![]});}catch(_0x1f7a27){errorlog(_0x1f7a27);}}_0x57043a['close'](),_0x432a4e['read']()[_0x20db7a(0x272)](_0x36f79d);}),_0x42c792[_0x13f659(0x325)]=!![],_0x3b0e2d;},_0x42c792[_0x5b10c6(0x2d8)]=async function(_0x1100ad){var _0x487be6=_0x5b10c6;if(_0x42c792[_0x487be6(0xac9)]!==null)return;else _0x42c792[_0x487be6(0xac9)]=![];!_0x1100ad&&_0x42c792[_0x487be6(0x546)][_0x487be6(0x77e)]&&(_0x1100ad=_0x42c792[_0x487be6(0x546)]['Chunked_audio']);var _0x356f78=_0x42c792[_0x487be6(0xaa1)](),_0x2bbb1a=_0x356f78['getAudioTracks']();if(!_0x2bbb1a||!_0x2bbb1a[_0x487be6(0x606)]){_0x42c792['chunkedAudioEnabled']=null;return;}_0x2bbb1a=_0x2bbb1a[0x0];var _0x11797e=_0x2bbb1a['getSettings']();_0x1100ad['numberOfChannels']>_0x11797e['channelCount']&&(_0x1100ad[_0x487be6(0xb4c)]=_0x11797e[_0x487be6(0x75c)],_0x1100ad['channels']=_0x11797e[_0x487be6(0x75c)]);if(_0x1100ad[_0x487be6(0x7ef)]!=_0x11797e['sampleRate'])try{_0x356f78=outboundAudioPipeline();}catch(_0xaef5c3){errorlog(_0xaef5c3);}var _0x43f31d=new MediaStreamTrackProcessor(_0x356f78[_0x487be6(0x55a)]()[0x0]),_0x1dc712=_0x43f31d[_0x487be6(0x6d5)];const _0x2c532a=_0x1dc712[_0x487be6(0x473)]();var _0x17fd9e=![],_0x48747a=-0x1,_0x57f83f=-0x1;const _0x222f66={'output':async _0xaf4321=>{var _0x1ef6b6=_0x487be6;if(!_0x42c792['chunkedRecorder']||!_0x42c792[_0x1ef6b6(0x17d)][_0x1ef6b6(0x72b)]){}else{if(_0xaf4321['constructor'][_0x1ef6b6(0x357)]=='EncodedAudioChunk'){let _0x2b01f9=new Uint8Array(_0xaf4321[_0x1ef6b6(0x98c)]);_0xaf4321[_0x1ef6b6(0x2f6)](_0x2b01f9),_0x42c792[_0x1ef6b6(0x335)][_0x1ef6b6(0x3e0)]([_0xaf4321[_0x1ef6b6(0xab0)]-_0x57f83f,'audio']),_0x42c792['chunksQueue'][_0x1ef6b6(0x3e0)](_0x2b01f9);_0x42c792[_0x1ef6b6(0x9d2)]&&pokeIframeAPI(_0x1ef6b6(0x790),{'type':_0x1ef6b6(0x864),'ts':_0xaf4321['timestamp']-_0x57f83f});try{await _0x42c792['chunkedRecorder'][_0x1ef6b6(0x72b)](_0x1ef6b6(0x864));}catch(_0x47d11e){errorlog(_0x47d11e);if(!_0x42c792[_0x1ef6b6(0x17d)]){}}}}},'error':_0x1fec5b=>{errorlog(_0x1fec5b);}};let _0x243495=new AudioEncoder(_0x222f66);_0x243495[_0x487be6(0xa2d)]=_0x1100ad,_0x243495[_0x487be6(0x640)](_0x1100ad),_0x42c792[_0x487be6(0x546)][_0x487be6(0x77e)]={},_0x42c792[_0x487be6(0x546)]['Chunked_audio']['codec']=_0x1100ad[_0x487be6(0x565)],_0x42c792[_0x487be6(0x546)][_0x487be6(0x77e)][_0x487be6(0xb4c)]=_0x1100ad['numberOfChannels'],_0x42c792['stats'][_0x487be6(0x77e)][_0x487be6(0x7ef)]=_0x1100ad[_0x487be6(0x7ef)],_0x42c792[_0x487be6(0x546)][_0x487be6(0x77e)][_0x487be6(0x4bf)]=_0x1100ad[_0x487be6(0x647)][_0x487be6(0x4bf)];var _0x8c018f,_0x396937=new Promise((_0x59b237,_0x1ea304)=>{_0x8c018f=_0x59b237;});return _0x396937[_0x487be6(0x2b9)]=_0x8c018f,_0x2c532a[_0x487be6(0x2de)]()[_0x487be6(0x272)](function _0x4abac9({done:_0x29ee3e,value:_0x2a4260}){var _0x38f4eb=_0x487be6;if(_0x29ee3e||_0x17fd9e){_0x243495[_0x38f4eb(0x16f)]();_0x2a4260&&_0x2a4260[_0x38f4eb(0x16f)]();_0x42c792[_0x38f4eb(0xac9)]=null;return;}else{if(_0x243495[_0x38f4eb(0x213)]==_0x38f4eb(0x981)){_0x2a4260&&_0x2a4260[_0x38f4eb(0x16f)]();_0x42c792[_0x38f4eb(0xac9)]=null;return;}}try{_0x57f83f==-0x1&&(_0x57f83f=_0x2a4260[_0x38f4eb(0xab0)],_0x42c792[_0x38f4eb(0x546)]['Chunked_audio'][_0x38f4eb(0x9c6)]=Date[_0x38f4eb(0x5ee)](),_0x396937[_0x38f4eb(0x2b9)]());_0x48747a==_0x2a4260[_0x38f4eb(0xab0)]&&(_0x2a4260['timestamp']+=0x1);if(!_0x17fd9e){_0x48747a=_0x2a4260[_0x38f4eb(0xab0)];try{_0x243495['encode'](_0x2a4260);}catch(_0x16f454){errorlog(_0x16f454);}}_0x2a4260[_0x38f4eb(0x16f)](),_0x2c532a['read']()[_0x38f4eb(0x272)](_0x4abac9);}catch(_0x414884){errorlog(_0x414884),errorlog(_0x2a4260),errorlog(_0x29ee3e);}}),_0x42c792['chunkedAudioEnabled']=!![],_0x396937;},_0x42c792[_0x5b10c6(0x98f)]=function(_0x3bccad,_0x5f20da={}){var _0x2e01f3=_0x5b10c6;warnlog(_0x2e01f3(0x931));const _0x321bfb=new window['AudioContext']({'sampleRate':_0x5f20da['sampleRate']||0xbb80}),_0x4dc694=_0x321bfb[_0x2e01f3(0x5a5)](_0x3bccad),_0xaa86a9=0x800,_0x21038f=(_0x321bfb[_0x2e01f3(0x317)]||_0x321bfb[_0x2e01f3(0x1c0)])[_0x2e01f3(0x2a0)](_0x321bfb,_0xaa86a9,0x1,0x1);return _0x21038f[_0x2e01f3(0x8be)]=async function(_0xf4ede1){var _0x209514=_0x2e01f3,_0xe34bd9=new Uint8Array(_0xf4ede1['inputBuffer']['getChannelData'](0x0)['buffer']);_0x42c792[_0x209514(0x335)][_0x209514(0x3e0)]([0x0,_0x209514(0x3f7)]),_0x42c792[_0x209514(0x335)][_0x209514(0x3e0)](_0xe34bd9);try{await _0x42c792['chunkedRecorder'][_0x209514(0x72b)](_0x209514(0x3f7));}catch(_0x21808e){errorlog(_0x21808e),!_0x42c792['chunkedRecorder']&&encoder['close']();}},_0x4dc694['connect'](_0x21038f),_0x21038f['connect'](_0x321bfb['destination']),_0x42c792[_0x2e01f3(0x546)][_0x2e01f3(0x77e)]={},_0x42c792['chunkedAudioEnabled']=!![],_0x21038f;},_0x42c792['retransmitChunkedStream']=async function(_0xf8e030=![],_0x202b49=![]){var _0x53b13b=_0x5b10c6;if(!_0x42c792['chunkedRecorder']){warnlog('RE\x20TRANSMISSIONS\x20STARTED');var _0x3d9837=null;_0x42c792['chunkedRecorder']={},_0x42c792[_0x53b13b(0x805)]=_0xf8e030||![],_0x42c792[_0x53b13b(0x805)]&&(_0x42c792['chunkedRecorder'][_0x53b13b(0x351)]=_0x202b49),_0x42c792['chunkedRecorder'][_0x53b13b(0x72b)]=async function(_0x199d3b=_0x53b13b(0x900)){var _0x5376ed=_0x53b13b;if(_0x3d9837)return;_0x3d9837=!![];var _0x1cf737=_0x199d3b;log(_0x5376ed(0xb48)+_0x42c792[_0x5376ed(0x335)][_0x5376ed(0x606)]);while(_0x42c792[_0x5376ed(0x335)]['length']){if(!Object[_0x5376ed(0x3fa)](_0x42c792[_0x5376ed(0x1e6)])['length']){_0x42c792[_0x5376ed(0x335)]=[],_0x3d9837=null,_0x42c792[_0x5376ed(0x546)]['chunkedInQueue']=0x0;return;}_0x42c792[_0x5376ed(0x546)][_0x5376ed(0x7d3)]=_0x42c792[_0x5376ed(0x335)][_0x5376ed(0x606)];var _0x4842e2=0x0,_0x39f138=_0x42c792[_0x5376ed(0x335)]['shift']();if(_0x39f138[_0x5376ed(0x606)]===0x2){_0x1cf737=_0x39f138[0x1],_0x39f138[_0x5376ed(0x3e0)](_0x42c792['chunksQueue']['length']);var _0xd96d53=JSON[_0x5376ed(0x895)](_0x39f138);for(var _0x4428e1 in _0x42c792['chunkedTransferChannels']){if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1])continue;if((_0x1cf737==_0x5376ed(0xb44)||_0x1cf737==_0x5376ed(0x863)||_0x1cf737=='video')&&!_0x42c792[_0x5376ed(0x3c0)][_0x4428e1][_0x5376ed(0x3d7)])continue;if((_0x1cf737==_0x5376ed(0x864)||_0x1cf737==_0x5376ed(0x3f7))&&!_0x42c792[_0x5376ed(0x3c0)][_0x4428e1]['allowAudio'])continue;if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1]['keyframeSent']&&_0x1cf737=='delta'){warnlog(_0x5376ed(0x162));continue;}try{if(_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x1f7)]===_0x5376ed(0x722)){if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0xadb)]){if(_0x42c792[_0x5376ed(0x805)]){var _0xed43e2={..._0x42c792[_0x5376ed(0x805)]};_0xed43e2['timestamp']=Date['now'](),_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x8c1)](JSON[_0x5376ed(0x895)](_0xed43e2)),_0x42c792['chunkedTransferChannels'][_0x4428e1][_0x5376ed(0xadb)]=!![];}else continue;}_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x8c1)](_0xd96d53);if(_0x1cf737==_0x5376ed(0xb44)||_0x1cf737==_0x5376ed(0x735))_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x852)]=!![];else(_0x1cf737==_0x5376ed(0x864)||_0x1cf737==_0x5376ed(0x3f7))&&(_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0xb40)]=!![]);_0x42c792[_0x5376ed(0x3c0)][_0x4428e1][_0x5376ed(0x546)]['bufferedAmount']=_0x42c792['chunkedTransferChannels'][_0x4428e1][_0x5376ed(0x36e)],_0x4842e2<_0x42c792['pcs'][_0x4428e1]['stats']['bufferedAmount']&&(_0x4842e2=_0x42c792['pcs'][_0x4428e1][_0x5376ed(0x546)][_0x5376ed(0x36e)]);}}catch(_0x32d344){}}}else{if(_0x39f138['byteLength']>0x40000){for(var _0x4428e1 in _0x42c792['chunkedTransferChannels']){if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1])continue;if((_0x1cf737==_0x5376ed(0xb44)||_0x1cf737==_0x5376ed(0x863)||_0x1cf737==_0x5376ed(0x735))&&!_0x42c792[_0x5376ed(0x3c0)][_0x4428e1]['allowVideo'])continue;if((_0x1cf737==_0x5376ed(0x864)||_0x1cf737==_0x5376ed(0x3f7))&&!_0x42c792[_0x5376ed(0x3c0)][_0x4428e1]['allowAudio'])continue;if((_0x1cf737=='key'||_0x1cf737==_0x5376ed(0x863)||_0x1cf737==_0x5376ed(0x735))&&!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x852)]){warnlog(_0x5376ed(0x162));continue;}else{if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0xb40)]&&(_0x1cf737=='audio'||_0x1cf737=='pcm')){warnlog(_0x5376ed(0x890));continue;}}try{if(_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x1f7)]==='open'){if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0xadb)]){if(_0x42c792[_0x5376ed(0x805)]){var _0xed43e2={..._0x42c792['chunkedDetails']};_0xed43e2['timestamp']=Date['now'](),_0x42c792[_0x5376ed(0x1e6)][_0x4428e1]['send'](JSON['stringify'](_0xed43e2)),_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0xadb)]=!![];}else continue;}_0x42c792[_0x5376ed(0x1e6)][_0x4428e1]['send'](_0x39f138[_0x5376ed(0x90c)](0x0,0x40000)),_0x42c792[_0x5376ed(0x3c0)][_0x4428e1][_0x5376ed(0x546)][_0x5376ed(0x36e)]=_0x42c792['chunkedTransferChannels'][_0x4428e1][_0x5376ed(0x36e)],_0x4842e2<_0x42c792[_0x5376ed(0x3c0)][_0x4428e1]['stats'][_0x5376ed(0x36e)]&&(_0x4842e2=_0x42c792['pcs'][_0x4428e1][_0x5376ed(0x546)][_0x5376ed(0x36e)]);}}catch(_0x496f12){}}_0x42c792[_0x5376ed(0x335)][_0x5376ed(0x61e)](_0x39f138[_0x5376ed(0x90c)](0x40000));}else for(var _0x4428e1 in _0x42c792[_0x5376ed(0x1e6)]){if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1])continue;if((_0x1cf737==_0x5376ed(0xb44)||_0x1cf737==_0x5376ed(0x863)||_0x1cf737==_0x5376ed(0x735))&&!_0x42c792[_0x5376ed(0x3c0)][_0x4428e1]['allowVideo'])continue;if((_0x1cf737==_0x5376ed(0x864)||_0x1cf737=='pcm')&&!_0x42c792['pcs'][_0x4428e1][_0x5376ed(0x555)])continue;try{if(_0x42c792[_0x5376ed(0x1e6)][_0x4428e1]['readyState']==='open'){if(!_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0xadb)]){if(_0x42c792[_0x5376ed(0x805)]){var _0xed43e2={..._0x42c792[_0x5376ed(0x805)]};_0xed43e2['timestamp']=Date[_0x5376ed(0x5ee)](),_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x8c1)](JSON[_0x5376ed(0x895)](_0xed43e2)),_0x42c792['chunkedTransferChannels'][_0x4428e1][_0x5376ed(0xadb)]=!![];}else continue;}_0x42c792[_0x5376ed(0x1e6)][_0x4428e1][_0x5376ed(0x8c1)](_0x39f138);}_0x42c792[_0x5376ed(0x3c0)][_0x4428e1][_0x5376ed(0x546)]['bufferedAmount']=_0x42c792[_0x5376ed(0x1e6)][_0x4428e1]['bufferedAmount'],_0x4842e2<_0x42c792['pcs'][_0x4428e1][_0x5376ed(0x546)][_0x5376ed(0x36e)]&&(_0x4842e2=_0x42c792[_0x5376ed(0x3c0)][_0x4428e1]['stats'][_0x5376ed(0x36e)]);}catch(_0x461938){}}}_0x42c792[_0x5376ed(0x546)]['maxBufferSize']=_0x4842e2;}_0x3d9837=null,_0x42c792[_0x5376ed(0x546)][_0x5376ed(0x7d3)]=0x0;};}for(var _0x13ac7a in _0x42c792[_0x53b13b(0x3c0)]){if(_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a]){if(_0x42c792[_0x53b13b(0x805)]){var _0x116051={..._0x42c792[_0x53b13b(0x805)]};_0x116051['timestamp']=Date['now']();if(_0xf8e030)try{_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0x8c1)](JSON['stringify'](_0x116051)),_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0xadb)]=!![];}catch(_0x5061a6){}else{if(!_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0xadb)])try{_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a]['send'](JSON[_0x53b13b(0x895)](_0x116051)),_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0xadb)]=!![];}catch(_0x355e03){}}}}else{var _0x2d28e9=_0x53b13b(0x4b8);_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a]=_0x42c792['pcs'][_0x13ac7a][_0x53b13b(0x74a)](_0x2d28e9,{'ordered':!![]}),_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0x3d9)]='chunks',_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0x2ef)]='arraybuffer',_0x42c792['chunkedTransferChannels'][_0x13ac7a][_0x53b13b(0x686)]=![],_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0xadb)]=![],_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0x887)]=null,_0x42c792['chunkedTransferChannels'][_0x13ac7a][_0x53b13b(0x852)]=![],_0x42c792['chunkedTransferChannels'][_0x13ac7a]['audioHeaderSent']=![],_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0xaf3)]=()=>{var _0x2eee11=_0x53b13b;log(_0x2eee11(0x384));if(_0x42c792[_0x2eee11(0x805)]){var _0x59272b={..._0x42c792[_0x2eee11(0x805)]};_0x59272b[_0x2eee11(0xab0)]=Date[_0x2eee11(0x5ee)](),_0x42c792['chunkedTransferChannels'][_0x13ac7a][_0x2eee11(0x8c1)](JSON[_0x2eee11(0x895)](_0x59272b)),_0x42c792[_0x2eee11(0x1e6)][_0x13ac7a]['detailsSent']=!![];}},_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0x8c7)]=()=>{var _0x387fec=_0x53b13b;try{var _0xbd9a01=_0x42c792[_0x387fec(0x57d)][_0x387fec(0x1de)](_0x42c792['chunkedTransferChannels'][_0x13ac7a]);_0xbd9a01>-0x1&&_0x42c792[_0x387fec(0x57d)]['splice'](_0xbd9a01,0x1);}catch(_0x19f647){errorlog(_0x19f647);}log(_0x387fec(0x643)),_0x42c792[_0x387fec(0x1e6)][_0x13ac7a]=null,delete _0x42c792['chunkedTransferChannels'][_0x13ac7a];var _0x5b265b=![];for(var _0xd4511=0x0;_0xd4511<_0x42c792['hostedTransfers'][_0x387fec(0x606)];_0xd4511++){if(_0x387fec(0x3d9)in _0x42c792['hostedTransfers'][_0xd4511]&&_0x42c792[_0x387fec(0x57d)][_0xd4511][_0x387fec(0x3d9)]==_0x387fec(0xaa7)){_0x5b265b=!![];break;}}},_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a][_0x53b13b(0x73b)]=_0x3df205=>{var _0x499f8a=_0x53b13b;if(_0x3df205[_0x499f8a(0x461)])try{var _0x4e2ac9=JSON[_0x499f8a(0x867)](_0x3df205[_0x499f8a(0x461)]);_0x4e2ac9['kf']&&(_0x42c792[_0x499f8a(0x17d)][_0x499f8a(0x351)]?(_0x42c792['chunkedRecorder'][_0x499f8a(0x351)][_0x499f8a(0x8c1)](JSON[_0x499f8a(0x895)]({'kf':!![]})),warnlog(_0x499f8a(0x31e))):errorlog(_0x499f8a(0xa05)));}catch(_0x388425){}},_0x42c792[_0x53b13b(0x57d)][_0x53b13b(0x3e0)](_0x42c792[_0x53b13b(0x1e6)][_0x13ac7a]);}}await _0x42c792[_0x53b13b(0x17d)][_0x53b13b(0x72b)]();};async function _0x1d85ca(_0x3dda30=0x500,_0x58bd38=0x2d0,_0x282eef=0x1e){var _0x120480=_0x5b10c6,_0xf6949e=[_0x120480(0x809),_0x120480(0x52d),_0x120480(0x830),'avc1.42001E'],_0x1faae1=[_0x120480(0xa89),_0x120480(0x1a7)],_0x4153d5=[];if(_0x42c792[_0x120480(0x723)]){var _0x6462b3=[],_0x330fb0=_0x120480(0x89b);for(var _0x120c98 of _0xf6949e){for(var _0x38f2e8 of _0x1faae1){_0x6462b3[_0x120480(0x3e0)]({'codec':_0x120c98,'alpha':_0x330fb0,'hardwareAcceleration':_0x38f2e8,'width':_0x3dda30,'height':_0x58bd38,'bitrate':0x1e8480,'bitrateMode':_0x120480(0x9cc),'framerate':_0x282eef,'latencyMode':'realtime'});}}for(var _0x5b4d1d=0x0;_0x5b4d1d<_0x6462b3[_0x120480(0x606)];_0x5b4d1d++){var _0x1c4971=await VideoEncoder['isConfigSupported'](_0x6462b3[_0x5b4d1d]);_0x1c4971&&_0x1c4971[_0x120480(0x818)]&&_0x4153d5[_0x120480(0x3e0)](_0x1c4971);}!_0x4153d5['length']&&(!_0x42c792[_0x120480(0xad1)]&&warnUser(_0x120480(0x683),0x1770));}if(!_0x4153d5[_0x120480(0x606)]){var _0x6462b3=[],_0x330fb0='discard';for(var _0x120c98 of _0xf6949e){for(var _0x38f2e8 of _0x1faae1){_0x6462b3[_0x120480(0x3e0)]({'codec':_0x120c98,'alpha':_0x330fb0,'hardwareAcceleration':_0x38f2e8,'width':_0x3dda30,'height':_0x58bd38,'bitrate':0x1e8480,'bitrateMode':_0x120480(0x9cc),'framerate':_0x282eef,'latencyMode':_0x120480(0x152)});}}for(var _0x5b4d1d=0x0;_0x5b4d1d<_0x6462b3[_0x120480(0x606)];_0x5b4d1d++){var _0x1c4971=await VideoEncoder[_0x120480(0x701)](_0x6462b3[_0x5b4d1d]);_0x1c4971&&_0x1c4971[_0x120480(0x818)]&&_0x4153d5['push'](_0x1c4971);}}return _0x4153d5;}_0x42c792[_0x5b10c6(0x4d4)]=async function(_0x397406=null){var _0x13cb56=_0x5b10c6;if(_0x397406&&!_0x42c792[_0x13cb56(0x3c0)][_0x397406]['allowChunked'])return;!_0x42c792['chunkedVideoEnabled']&&_0x42c792[_0x13cb56(0x17d)]&&_0x42c792[_0x13cb56(0x17d)]['configVideo']&&await _0x42c792[_0x13cb56(0x766)](_0x42c792['stats'][_0x13cb56(0x3ee)]);!_0x42c792[_0x13cb56(0xac9)]&&_0x42c792['chunkedRecorder']&&_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x2c5)]&&await _0x42c792[_0x13cb56(0x2d8)](_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x2c5)]);if(_0x397406){if(_0x397406 in _0x42c792['chunkedTransferChannels']){warnlog(_0x13cb56(0x447));return;}else _0x42c792[_0x13cb56(0x1e6)][_0x397406]=null;}if(!_0x42c792[_0x13cb56(0x17d)]){var _0x4a4184=_0x42c792[_0x13cb56(0xaa1)](),_0x332de3=_0x42c792[_0x13cb56(0x4b8)],_0x1f9835=null;_0x42c792[_0x13cb56(0x64b)]&&_0x42c792[_0x13cb56(0x64b)]<_0x332de3&&(_0x332de3=_0x42c792[_0x13cb56(0x64b)]);var _0x25dbef={'codec':'vp09.00.10.08','width':0x780,'height':0x438,'bitrate':parseInt(_0x332de3*0x3e8),'frameRate':0x1e,'latencyMode':_0x13cb56(0x152)},_0x356fee=_0x4a4184[_0x13cb56(0x40c)]();if(_0x356fee[_0x13cb56(0x606)]){var _0x312577=_0x356fee[0x0]['getSettings']();_0x312577[_0x13cb56(0xb1b)]&&(_0x25dbef[_0x13cb56(0xb1b)]=_0x312577[_0x13cb56(0xb1b)]),_0x312577['height']&&(_0x25dbef['height']=_0x312577[_0x13cb56(0x229)]),_0x312577[_0x13cb56(0x4a9)]&&(_0x25dbef[_0x13cb56(0x4a9)]=_0x312577[_0x13cb56(0x4a9)]);}else _0x25dbef=![];if(_0x332de3<0x259){var _0x3aba39=_0x25dbef[_0x13cb56(0xb1b)]*_0x25dbef['height']/(0x280*0x168);if(_0x3aba39>=0x2)_0x25dbef[_0x13cb56(0xb1b)]=parseInt(_0x25dbef['width']/0x2),_0x25dbef[_0x13cb56(0x229)]=parseInt(_0x25dbef['height']/0x2);else _0x3aba39>=1.5&&(_0x25dbef[_0x13cb56(0xb1b)]=parseInt(_0x25dbef[_0x13cb56(0xb1b)]/1.5),_0x25dbef[_0x13cb56(0x229)]=parseInt(_0x25dbef[_0x13cb56(0x229)]/1.5));}try{var _0x1e4d80=await _0x1d85ca(_0x25dbef[_0x13cb56(0xb1b)],_0x25dbef[_0x13cb56(0x229)],_0x25dbef[_0x13cb56(0x4a9)]);_0x1e4d80&&_0x1e4d80[_0x13cb56(0x606)]&&(_0x25dbef[_0x13cb56(0x565)]=_0x1e4d80[0x0]['config']['codec'],_0x25dbef[_0x13cb56(0x723)]=_0x1e4d80[0x0]['config']['alpha']),console['log'](_0x1e4d80);}catch(_0x18e843){errorlog(_0x18e843);}warnlog(_0x25dbef);_0x25dbef['width']==_0x25dbef[_0x13cb56(0x229)]&&(_0x25dbef[_0x13cb56(0xb1b)]=0x280,_0x25dbef[_0x13cb56(0x229)]=0x280);var _0x52c28b={'codec':'opus','numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80,'bitrate':0xfa00,'tuning':{'bitrate':0xfa00}};if(_0x332de3>0xbb8)_0x52c28b={'codec':_0x13cb56(0x788),'numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80,'tuning':{'bitrate':0x1f400}};else _0x332de3<0x259&&(_0x52c28b={'codec':_0x13cb56(0x788),'numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80,'tuning':{'bitrate':0x7d00}});_0x42c792[_0x13cb56(0x3f7)]&&(_0x52c28b={'codec':_0x13cb56(0x3f7),'numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80});!_0x4a4184[_0x13cb56(0x55a)]()[_0x13cb56(0x606)]&&(_0x52c28b=![]);if(!_0x52c28b&&!_0x25dbef){warnlog(_0x13cb56(0x4b3));return;}warnlog(_0x13cb56(0x2f8)),_0x42c792[_0x13cb56(0x17d)]={},_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x3c9)]=!![],_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x15c)]=_0x25dbef||![],_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x2c5)]=_0x52c28b||![],_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x557)]=[],_0x42c792[_0x13cb56(0x546)][_0x13cb56(0x520)]=_0x42c792[_0x13cb56(0x4b8)];function _0x31298a(){var _0x524021=_0x13cb56;const _0x3e458a=_0x524021(0x5f0);let _0x26d84b=![];var _0x4ba483=new WebSocket('wss://pipe.vdo.ninja:9001/'+_0x3e458a+_0x524021(0x271));_0x4ba483['timer']=null,_0x4ba483[_0x524021(0x2ef)]=_0x524021(0x988),_0x4ba483[_0x524021(0xaf3)]=()=>{var _0x311374=_0x524021;console[_0x311374(0x282)]('Connected\x20to\x20Chunkcast');if(_0x42c792['chunkedAudioEnabled']&&_0x42c792[_0x311374(0x325)]){let _0x5bc863={'timestamp':Date['now'](),'type':_0x311374(0x45d),'realTimeVideo':_0x42c792[_0x311374(0x546)]['Chunked_video'][_0x311374(0x9c6)]||0x0,'realTimeAudio':_0x42c792[_0x311374(0x546)][_0x311374(0x77e)][_0x311374(0x9c6)]||0x0,'size':0x5af3107a3fff,'configVideo':_0x42c792[_0x311374(0x17d)][_0x311374(0x15c)],'configAudio':_0x42c792[_0x311374(0x17d)][_0x311374(0x2c5)],'recordType':_0x42c792[_0x311374(0x4b8)],'filename':_0x16e771+_0x311374(0x819),'id':_0x16e771};log(_0x5bc863),_0x4ba483[_0x311374(0x8db)](_0x5bc863),_0x26d84b=!![];}else{if(_0x42c792['chunkedAudioEnabled']){let _0x274d3d={'timestamp':Date[_0x311374(0x5ee)](),'type':'chunkedtransfer','realTimeAudio':_0x42c792['stats'][_0x311374(0x77e)][_0x311374(0x9c6)]||0x0,'size':0x5af3107a3fff,'configAudio':_0x42c792[_0x311374(0x17d)][_0x311374(0x2c5)],'recordType':_0x42c792[_0x311374(0x4b8)],'filename':_0x16e771+'.webm','id':_0x16e771};log(_0x274d3d),_0x4ba483[_0x311374(0x8db)](_0x274d3d),_0x26d84b=!![];}else{if(_0x42c792[_0x311374(0x325)]){let _0x5dfce0={'timestamp':Date[_0x311374(0x5ee)](),'type':_0x311374(0x45d),'realTimeVideo':_0x42c792['stats'][_0x311374(0x3ee)][_0x311374(0x9c6)]||0x0,'size':0x5af3107a3fff,'configVideo':_0x42c792[_0x311374(0x17d)][_0x311374(0x15c)],'recordType':_0x42c792['chunked'],'filename':_0x16e771+_0x311374(0x819),'id':_0x16e771};log(_0x5dfce0),_0x4ba483[_0x311374(0x8db)](_0x5dfce0),_0x26d84b=!![];}}}console['log'](_0x311374(0x8e7)),_0x42c792[_0x311374(0x17d)]&&_0x42c792['chunkedRecorder'][_0x311374(0x72b)]&&_0x42c792['chunkedRecorder'][_0x311374(0x72b)](),_0x935562();},_0x4ba483[_0x524021(0x786)]=function(_0x4a4281){var _0xad1c09=_0x524021;if(!_0x26d84b)return;if(Array['isArray'](_0x4a4281))_0x4ba483['sendHeader'](_0x4a4281);else{if(typeof _0x4a4281===_0xad1c09(0x698))_0x4ba483['sendVideoChunk'](_0x4a4281);else return'not\x20an\x20object\x20or\x20array';}},_0x4ba483[_0x524021(0x8db)]=function(_0x1ffa5b){var _0x51c12c=_0x524021;try{const _0x1fb5c8=JSON[_0x51c12c(0x895)](_0x1ffa5b),_0x1eb46e=new TextEncoder()['encode'](_0x1fb5c8),_0x8eefa5=new Uint8Array([0x0]),_0x3ab7e8=new Uint8Array(_0x8eefa5[_0x51c12c(0x606)]+_0x1eb46e['length']);_0x3ab7e8[_0x51c12c(0xac0)](_0x8eefa5,0x0),_0x3ab7e8['set'](_0x1eb46e,_0x8eefa5[_0x51c12c(0x606)]),this[_0x51c12c(0x8c1)](_0x3ab7e8);}catch(_0x5ac6f2){errorlog(_0x5ac6f2);}},_0x4ba483[_0x524021(0x5e6)]=function(_0x286e97){var _0x384660=_0x524021;try{const _0x48b77b=new Uint8Array([0x1]),_0x5c8574=new Uint8Array(_0x48b77b[_0x384660(0x606)]+_0x286e97[_0x384660(0x98c)]);_0x5c8574['set'](_0x48b77b,0x0),_0x5c8574['set'](new Uint8Array(_0x286e97),_0x48b77b['length']),this[_0x384660(0x8c1)](_0x5c8574);}catch(_0x5e3c52){errorlog(_0x5e3c52);}},_0x4ba483[_0x524021(0x73b)]=function(_0x3c4f3c){var _0x5b745a=_0x524021;const _0x4c60ef=new Uint8Array(_0x3c4f3c[_0x5b745a(0x461)]),_0x128ad7=_0x4c60ef[0x0];if(_0x128ad7===0x3){const _0x262892=new DataView(_0x4c60ef[_0x5b745a(0xa38)])['getUint32'](0x1,!![]),_0x506d39=new DataView(_0x4c60ef['buffer'])[_0x5b745a(0x8ee)](0x5,!![]),_0x42e93d=_0x4c60ef[0x9]===0x1;console['log'](_0x5b745a(0x244)+_0x262892),console[_0x5b745a(0x282)]('New\x20viewers:\x20'+_0x506d39),_0x42e93d&&(console[_0x5b745a(0x282)](_0x5b745a(0x8d3)),_0x42c792['chunkedRecorder']['needKeyFrame']=!![]);}},_0x4ba483[_0x524021(0x8b3)]=function(){var _0x38996a=_0x524021;const _0x1f4fff=new Uint8Array([0x2]);this[_0x38996a(0x8c1)](_0x1f4fff);};function _0x935562(){var _0xcb07ef=_0x524021;_0x42c792['ws'][_0xcb07ef(0x1f7)]===0x1&&(_0x4ba483[_0xcb07ef(0x8b3)](),clearTimeout(_0x4ba483[_0xcb07ef(0x253)]),_0x4ba483['timer']=setTimeout(_0x935562,0x1388));}return _0x4ba483[_0x524021(0x8c7)]=()=>{var _0x328ff2=_0x524021;console['log'](_0x328ff2(0x8e3));},_0x4ba483[_0x524021(0x556)]=_0x196ab8=>{var _0x5bd650=_0x524021;console[_0x5bd650(0x8fd)](_0x5bd650(0x821),_0x196ab8);},_0x4ba483;}_0x42c792['chunkedRecorder'][_0x13cb56(0x86e)]=![],_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x72b)]=async function(_0x5df5e0='null'){var _0x276035=_0x13cb56;if(_0x1f9835)return;_0x1f9835=!![];if(_0x42c792[_0x276035(0x5f9)]){!_0x42c792[_0x276035(0x17d)][_0x276035(0x86e)]&&(_0x42c792[_0x276035(0x17d)][_0x276035(0x86e)]=_0x31298a());if(_0x42c792['chunkedRecorder'][_0x276035(0x86e)]){if(_0x42c792[_0x276035(0x17d)][_0x276035(0x86e)]['readyState']===0x1)while(_0x42c792[_0x276035(0x335)][_0x276035(0x606)]){try{_0x42c792[_0x276035(0x17d)]['wss'][_0x276035(0x786)](_0x42c792[_0x276035(0x335)][_0x276035(0x20b)]());}catch(_0x4e2de5){break;}}else _0x42c792['chunksQueue']=[];_0x1f9835=null;return;}}var _0x22c7c6=_0x5df5e0;while(_0x42c792[_0x276035(0x335)]['length']){if(!Object[_0x276035(0x3fa)](_0x42c792['chunkedTransferChannels'])[_0x276035(0x606)]){_0x42c792[_0x276035(0x335)]=[],_0x1f9835=null,_0x42c792['stats'][_0x276035(0x7d3)]=0x0,_0x42c792[_0x276035(0x17d)][_0x276035(0x557)]=[];return;}_0x42c792[_0x276035(0x546)]['chunkedInQueue']=_0x42c792[_0x276035(0x335)][_0x276035(0x606)];var _0x58ea37=0x0,_0x1c7842=_0x42c792['chunksQueue'][_0x276035(0x20b)]();if(_0x1c7842[_0x276035(0x606)]===0x2){_0x22c7c6=_0x1c7842[0x1],_0x1c7842[_0x276035(0x3e0)](_0x42c792[_0x276035(0x335)][_0x276035(0x606)]);var _0x5ad67c=JSON[_0x276035(0x895)](_0x1c7842);for(var _0xbd07e9 in _0x42c792[_0x276035(0x1e6)]){if(!_0x42c792[_0x276035(0x1e6)][_0xbd07e9])continue;if((_0x22c7c6==_0x276035(0xb44)||_0x22c7c6=='delta'||_0x22c7c6==_0x276035(0x735))&&!_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x3d7)])continue;if(!_0x42c792[_0x276035(0x3c0)][_0xbd07e9])continue;if((_0x22c7c6==_0x276035(0x864)||_0x22c7c6==_0x276035(0x3f7))&&(!_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x555)]||_0x42c792['pcs'][_0xbd07e9][_0x276035(0x349)]==0x2))continue;try{_0x42c792['chunkedTransferChannels'][_0xbd07e9][_0x276035(0x1f7)]===_0x276035(0x722)&&_0x42c792[_0x276035(0x1e6)][_0xbd07e9][_0x276035(0x8c1)](_0x5ad67c),_0x42c792['pcs'][_0xbd07e9][_0x276035(0x546)]['bufferedAmount']=_0x42c792['chunkedTransferChannels'][_0xbd07e9]['bufferedAmount'],_0x58ea37<_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x546)][_0x276035(0x36e)]&&(_0x58ea37=_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x546)][_0x276035(0x36e)]);}catch(_0x31b84f){}}}else{if(_0x1c7842[_0x276035(0x98c)]>0x40000){for(var _0xbd07e9 in _0x42c792['chunkedTransferChannels']){if(!_0x42c792[_0x276035(0x1e6)][_0xbd07e9])continue;if((_0x22c7c6==_0x276035(0xb44)||_0x22c7c6==_0x276035(0x863)||_0x22c7c6==_0x276035(0x735))&&!_0x42c792[_0x276035(0x3c0)][_0xbd07e9]['allowVideo'])continue;if(!_0x42c792['pcs'][_0xbd07e9])continue;if((_0x22c7c6==_0x276035(0x864)||_0x22c7c6==_0x276035(0x3f7))&&(!_0x42c792['pcs'][_0xbd07e9][_0x276035(0x555)]||_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x349)]==0x2))continue;try{_0x42c792['chunkedTransferChannels'][_0xbd07e9][_0x276035(0x1f7)]===_0x276035(0x722)&&_0x42c792['chunkedTransferChannels'][_0xbd07e9][_0x276035(0x8c1)](_0x1c7842['slice'](0x0,0x40000)),_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x546)][_0x276035(0x36e)]=_0x42c792[_0x276035(0x1e6)][_0xbd07e9][_0x276035(0x36e)],_0x58ea37<_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x546)]['bufferedAmount']&&(_0x58ea37=_0x42c792[_0x276035(0x3c0)][_0xbd07e9]['stats']['bufferedAmount']);}catch(_0x339a5a){}}_0x42c792[_0x276035(0x335)][_0x276035(0x61e)](_0x1c7842[_0x276035(0x90c)](0x40000)),_0x42c792['chunkedRecorder'][_0x276035(0x557)][_0x276035(0x3e0)]({'bufferSize':_0x58ea37,'byteLength':0x40000,'timestamp':Date['now']()});}else{for(var _0xbd07e9 in _0x42c792[_0x276035(0x1e6)]){if(!_0x42c792[_0x276035(0x1e6)][_0xbd07e9])continue;if((_0x22c7c6==_0x276035(0xb44)||_0x22c7c6=='delta'||_0x22c7c6==_0x276035(0x735))&&!_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x3d7)])continue;if(!_0x42c792['pcs'][_0xbd07e9])continue;if((_0x22c7c6==_0x276035(0x864)||_0x22c7c6==_0x276035(0x3f7))&&(!_0x42c792[_0x276035(0x3c0)][_0xbd07e9]['allowAudio']||_0x42c792['pcs'][_0xbd07e9][_0x276035(0x349)]==0x2))continue;try{_0x42c792[_0x276035(0x1e6)][_0xbd07e9][_0x276035(0x1f7)]===_0x276035(0x722)&&_0x42c792[_0x276035(0x1e6)][_0xbd07e9][_0x276035(0x8c1)](_0x1c7842),_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x546)]['bufferedAmount']=_0x42c792[_0x276035(0x1e6)][_0xbd07e9]['bufferedAmount'],_0x58ea37<_0x42c792[_0x276035(0x3c0)][_0xbd07e9][_0x276035(0x546)]['bufferedAmount']&&(_0x58ea37=_0x42c792[_0x276035(0x3c0)][_0xbd07e9]['stats']['bufferedAmount']);}catch(_0x36420a){}}_0x42c792[_0x276035(0x17d)]['chunkRates'][_0x276035(0x3e0)]({'bufferSize':_0x58ea37,'byteLength':_0x1c7842['byteLength'],'timestamp':Date[_0x276035(0x5ee)]()});}}_0x42c792['chunkedRecorder'][_0x276035(0x557)]=_0x42c792[_0x276035(0x17d)]['chunkRates'][_0x276035(0x90c)](-0x3e8);let _0x372609=_0x42c792[_0x276035(0x546)][_0x276035(0x520)]||_0x42c792[_0x276035(0x4b8)],_0x1ebed5=0x0,_0x19d266=0x0,_0xdf13b=0x0;for(let _0x512925=_0x42c792[_0x276035(0x17d)][_0x276035(0x557)]['length']-0x1;_0x512925>0x0;_0x512925--){if(_0xdf13b>_0x42c792['sendingBuffer']*0x2){_0x42c792[_0x276035(0x17d)][_0x276035(0x557)]['splice'](_0x512925-0x1,0x1);continue;}const _0x52f775=_0x42c792[_0x276035(0x17d)][_0x276035(0x557)][_0x512925-0x1],_0x52c48b=_0x42c792[_0x276035(0x17d)][_0x276035(0x557)][_0x512925];_0x19d266+=_0x52c48b[_0x276035(0x31b)]-_0x52f775[_0x276035(0x31b)],_0x1ebed5+=_0x52c48b[_0x276035(0x98c)],_0xdf13b+=_0x52c48b['timestamp']-_0x52f775[_0x276035(0xab0)];}let _0x202a5f=_0x1ebed5-_0x19d266;const _0x323a6c=_0x1ebed5/(_0xdf13b/0x3e8)*0x8/0x3e8,_0x49bd51=_0x202a5f/(_0xdf13b/0x3e8)*0x8/0x3e8;_0x42c792['stats']['chunkedBuffer']=parseInt(0x8*_0x58ea37/_0x49bd51)+_0x276035(0x393)+_0x42c792[_0x276035(0x801)];let _0x30bc81=0x8*_0x58ea37/_0x49bd51/_0x42c792['sendingBuffer'];_0x42c792['stats'][_0x276035(0x717)]=_0x30bc81,_0x42c792[_0x276035(0x546)][_0x276035(0xa87)]=parseInt(_0x323a6c)+_0x276035(0x6f5)+parseInt(_0x49bd51),_0x42c792['stats'][_0x276035(0x82e)]=parseInt(_0x372609);if(_0x323a6c>_0x49bd51){if(_0x30bc81>0.2)_0x42c792[_0x276035(0x546)][_0x276035(0x520)]=_0x372609*0.95;else{if(_0x30bc81>0.5)_0x42c792[_0x276035(0x546)][_0x276035(0x520)]=_0x372609*0.9;else _0x30bc81>0x1&&(_0x42c792[_0x276035(0x546)][_0x276035(0x520)]=_0x372609*0.2);}}else _0x42c792[_0x276035(0x546)]['adjustBitrate']=_0x372609*1.1;_0x42c792[_0x276035(0x546)][_0x276035(0x520)]<0xa&&(_0x42c792[_0x276035(0x546)][_0x276035(0x520)]=0xa);_0x42c792[_0x276035(0x546)][_0x276035(0x520)]>_0x42c792['chunked']&&(_0x42c792['stats'][_0x276035(0x520)]=_0x42c792[_0x276035(0x4b8)]);try{_0x42c792[_0x276035(0x17d)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x626)]&&(_0x42c792['chunkedRecorder'][_0x276035(0x626)][_0x276035(0x213)]=='closed'&&(console['log'](_0x276035(0x70b)),delete _0x42c792[_0x276035(0x17d)][_0x276035(0x626)],_0x42c792[_0x276035(0x325)]=null,await _0x42c792[_0x276035(0x766)]()),_0x42c792[_0x276035(0x17d)]&&_0x42c792['chunkedRecorder'][_0x276035(0x626)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x626)][_0x276035(0x640)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x626)][_0x276035(0xa2d)]&&(_0x42c792[_0x276035(0x17d)][_0x276035(0x626)][_0x276035(0xa2d)]['bitrate']&&_0x42c792['stats'][_0x276035(0x520)]&&(_0x42c792[_0x276035(0x17d)][_0x276035(0x626)]['config'][_0x276035(0x4bf)]=_0x42c792[_0x276035(0x546)][_0x276035(0x520)]*0x3e8),_0x42c792[_0x276035(0x17d)][_0x276035(0x626)]['config'][_0x276035(0x647)]&&_0x42c792[_0x276035(0x546)][_0x276035(0x520)]&&(_0x42c792[_0x276035(0x17d)]['videoEncoder'][_0x276035(0xa2d)][_0x276035(0x647)][_0x276035(0x4bf)]=_0x42c792[_0x276035(0x546)][_0x276035(0x520)]*0x3e8),_0x42c792[_0x276035(0x17d)][_0x276035(0x626)][_0x276035(0x640)](_0x42c792['chunkedRecorder']['videoEncoder'][_0x276035(0xa2d)])),_0x42c792[_0x276035(0x546)]['adjustBitrate']=parseInt(_0x42c792[_0x276035(0x546)][_0x276035(0x520)])),_0x42c792[_0x276035(0x17d)]&&_0x42c792[_0x276035(0x17d)]['audioEncoder']&&(_0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)]['state']==_0x276035(0x981)&&(console['log']('Video\x20encdoder\x20closed'),delete _0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)],_0x42c792[_0x276035(0xac9)]=null,await _0x42c792[_0x276035(0x2d8)]()),_0x42c792['chunkedRecorder']&&_0x42c792[_0x276035(0x17d)]['audioEncoder']&&_0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)][_0x276035(0x640)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)][_0x276035(0xa2d)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)][_0x276035(0x640)](_0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)][_0x276035(0xa2d)]));}catch(_0x93f569){errorlog(_0x93f569);if(_0x42c792[_0x276035(0x1e6)])for(var _0xbd07e9 in _0x42c792[_0x276035(0x1e6)]){_0x42c792[_0x276035(0x1e6)][_0xbd07e9][_0x276035(0x16f)]();_0xbd07e9 in _0x42c792['chunkedTransferChannels']&&delete _0x42c792[_0x276035(0x1e6)][_0xbd07e9];_0x42c792[_0x276035(0x325)]=null,_0x42c792[_0x276035(0xac9)]=null;if(_0x42c792[_0x276035(0x17d)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x626)]){try{_0x42c792[_0x276035(0x17d)][_0x276035(0x626)][_0x276035(0x16f)]();}catch(_0x4ce199){}delete _0x42c792[_0x276035(0x17d)]['videoEncoder'],await _0x42c792['webCodec']();}if(_0x42c792[_0x276035(0x17d)]&&_0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)])try{_0x42c792['chunkedRecorder']['audioEncoder'][_0x276035(0x16f)](),delete _0x42c792[_0x276035(0x17d)][_0x276035(0x4c1)];}catch(_0xa818c5){}setTimeout(function(_0x3c1331){_0x42c792['chunkedStream'](_0x3c1331);},0x3e8,_0xbd07e9);}return;}}_0x1f9835=null,_0x42c792[_0x276035(0x546)]['chunkedInQueue']=0x0;},_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x15c)]&&(_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x959)]=_0x42c792[_0x13cb56(0x766)](_0x42c792[_0x13cb56(0x17d)]['configVideo'])),_0x42c792[_0x13cb56(0x17d)]['configAudio']&&(_0x42c792[_0x13cb56(0x17d)]['configAudio'][_0x13cb56(0x565)]==_0x13cb56(0x3f7)?_0x42c792['getPCM'](_0x4a4184,_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x2c5)]):_0x42c792['chunkedRecorder']['audioPromise']=_0x42c792[_0x13cb56(0x2d8)](_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x2c5)])),_0x4a4184['ended']=function(_0x3338db){var _0x1192ac=_0x13cb56;warnlog(_0x1192ac(0x834)),log(_0x3338db);};}else warnlog(_0x13cb56(0x69d));_0x42c792['chunkedRecorder'][_0x13cb56(0x959)]&&(await _0x42c792['chunkedRecorder'][_0x13cb56(0x959)],delete _0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x959)]);_0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x74e)]&&(await _0x42c792[_0x13cb56(0x17d)][_0x13cb56(0x74e)],delete _0x42c792[_0x13cb56(0x17d)]['audioPromise']);if(!_0x397406)return;var _0x16e771=_0x13cb56(0x4b8);if(_0x397406 in _0x42c792[_0x13cb56(0x3c0)]){if(!_0x42c792[_0x13cb56(0x1e6)][_0x397406])_0x42c792['chunkedTransferChannels'][_0x397406]=_0x42c792[_0x13cb56(0x3c0)][_0x397406]['createDataChannel'](_0x16e771,{'ordered':!![]});else{errorlog(_0x13cb56(0x39d));return;}}else{warnlog('UUID\x20does\x20not\x20exist');return;}_0x42c792[_0x13cb56(0x1e6)][_0x397406][_0x13cb56(0x3d9)]=_0x13cb56(0xaa7),_0x42c792[_0x13cb56(0x1e6)][_0x397406][_0x13cb56(0x2ef)]=_0x13cb56(0x988),_0x42c792[_0x13cb56(0x1e6)][_0x397406]['header']=![],_0x42c792['chunkedTransferChannels'][_0x397406][_0x13cb56(0xaf3)]=()=>{var _0x4d13a7=_0x13cb56;log('chunkedtransfer\x20OPEN');if(_0x42c792[_0x4d13a7(0xac9)]&&_0x42c792['chunkedVideoEnabled']&&_0x42c792[_0x4d13a7(0x3c0)][_0x397406][_0x4d13a7(0x555)]&&!(_0x42c792[_0x4d13a7(0x3c0)][_0x397406][_0x4d13a7(0x349)]==0x2)&&_0x42c792['pcs'][_0x397406]['allowVideo']){let _0x33c487={'timestamp':Date['now'](),'type':_0x4d13a7(0x45d),'realTimeVideo':_0x42c792[_0x4d13a7(0x546)]['Chunked_video'][_0x4d13a7(0x9c6)]||0x0,'realTimeAudio':_0x42c792[_0x4d13a7(0x546)][_0x4d13a7(0x77e)]['realTime']||0x0,'size':0x5af3107a3fff,'configVideo':_0x42c792[_0x4d13a7(0x17d)][_0x4d13a7(0x15c)],'configAudio':_0x42c792[_0x4d13a7(0x17d)][_0x4d13a7(0x2c5)],'recordType':_0x42c792[_0x4d13a7(0x4b8)],'filename':_0x16e771+_0x4d13a7(0x819),'id':_0x16e771};log(_0x33c487),_0x42c792[_0x4d13a7(0x1e6)][_0x397406][_0x4d13a7(0x8c1)](JSON['stringify'](_0x33c487));}else{if(_0x42c792[_0x4d13a7(0xac9)]&&_0x42c792[_0x4d13a7(0x3c0)][_0x397406][_0x4d13a7(0x555)]&&!(_0x42c792['pcs'][_0x397406][_0x4d13a7(0x349)]==0x2)){let _0x49e84a={'timestamp':Date[_0x4d13a7(0x5ee)](),'type':'chunkedtransfer','realTimeAudio':_0x42c792[_0x4d13a7(0x546)][_0x4d13a7(0x77e)][_0x4d13a7(0x9c6)]||0x0,'size':0x5af3107a3fff,'configAudio':_0x42c792[_0x4d13a7(0x17d)][_0x4d13a7(0x2c5)],'recordType':_0x42c792['chunked'],'filename':_0x16e771+'.webm','id':_0x16e771};log(_0x49e84a),_0x42c792[_0x4d13a7(0x1e6)][_0x397406][_0x4d13a7(0x8c1)](JSON[_0x4d13a7(0x895)](_0x49e84a));}else{if(_0x42c792[_0x4d13a7(0x325)]&&_0x42c792[_0x4d13a7(0x3c0)][_0x397406][_0x4d13a7(0x3d7)]){let _0x3b5a8b={'timestamp':Date[_0x4d13a7(0x5ee)](),'type':_0x4d13a7(0x45d),'realTimeVideo':_0x42c792[_0x4d13a7(0x546)][_0x4d13a7(0x3ee)][_0x4d13a7(0x9c6)]||0x0,'size':0x5af3107a3fff,'configVideo':_0x42c792[_0x4d13a7(0x17d)][_0x4d13a7(0x15c)],'recordType':_0x42c792[_0x4d13a7(0x4b8)],'filename':_0x16e771+_0x4d13a7(0x819),'id':_0x16e771};log(_0x3b5a8b),_0x42c792['chunkedTransferChannels'][_0x397406]['send'](JSON[_0x4d13a7(0x895)](_0x3b5a8b));}}}},_0x42c792[_0x13cb56(0x1e6)][_0x397406]['onclose']=()=>{var _0x1c9784=_0x13cb56;try{var _0x59761e=_0x42c792[_0x1c9784(0x57d)][_0x1c9784(0x1de)](_0x42c792[_0x1c9784(0x1e6)][_0x397406]);_0x59761e>-0x1&&_0x42c792['hostedTransfers'][_0x1c9784(0x334)](_0x59761e,0x1);}catch(_0x453478){errorlog(_0x453478);}log('Transfer\x20ended'),_0x42c792['chunkedTransferChannels'][_0x397406]=null,delete _0x42c792['chunkedTransferChannels'][_0x397406];var _0x25c78b=!![];for(var _0x276b4d=0x0;_0x276b4d<_0x42c792[_0x1c9784(0x57d)][_0x1c9784(0x606)];_0x276b4d++){if(_0x1c9784(0x3d9)in _0x42c792[_0x1c9784(0x57d)][_0x276b4d]&&_0x42c792[_0x1c9784(0x57d)][_0x276b4d][_0x1c9784(0x3d9)]==_0x1c9784(0xaa7)){_0x25c78b=![];break;}}if(_0x25c78b){warnlog('Cancelling?\x20no\x20more\x20chunked\x20connections.\x20I\x20probalby\x20shouldn\x27t\x20be\x20stopping\x20if\x20recording\x20also.');try{_0x42c792[_0x1c9784(0x17d)]['stop']();}catch(_0x15c066){}_0x42c792['chunkedRecorder']=![];}},_0x42c792['chunkedTransferChannels'][_0x397406][_0x13cb56(0x73b)]=_0x325fa7=>{var _0x5203fb=_0x13cb56;if(_0x325fa7['data'])try{var _0x2675d9=JSON[_0x5203fb(0x867)](_0x325fa7['data']);_0x2675d9['kf']&&(warnlog(_0x5203fb(0x82a)),_0x42c792[_0x5203fb(0x17d)][_0x5203fb(0x3c9)]=!![]);}catch(_0x5679a8){}},_0x42c792['hostedTransfers'][_0x13cb56(0x3e0)](_0x42c792['chunkedTransferChannels'][_0x397406]);},_0x42c792[_0x5b10c6(0x62b)]=async function(_0xd290eb,_0xa8c35a,_0x3f78db){var _0x177382=_0x5b10c6;log(_0x177382(0x93a));var _0x12f219=_0x3f78db;_0x12f219['binaryType']='arraybuffer';var _0x292c9a='',_0x496ae4=0x0,_0x3b69e9=![],_0xfc5dbc=![],_0x3f85c3=0x0,_0x31757e={};_0x12f219[_0x177382(0xaf3)]=_0x4cff05=>{var _0x16bb3c=_0x177382;log(_0x16bb3c(0xabf));},_0x12f219[_0x177382(0x73b)]=_0x325d59=>{var _0x2e1751=_0x177382;if(!_0x3b69e9)try{_0x3b69e9=JSON[_0x2e1751(0x867)](_0x325d59[_0x2e1751(0x461)]);if(_0x3b69e9[_0x2e1751(0x94c)]==_0x2e1751(0x69c)){var {readable:_0xaa122a,writable:_0x8c9260}=new TransformStream({'transform':(_0x3f66d4,_0x4be827)=>_0x3f66d4[_0x2e1751(0x76a)]()[_0x2e1751(0x272)](_0x368398=>_0x4be827[_0x2e1751(0x939)](new Uint8Array(_0x368398)))});_0x31757e[_0x2e1751(0x457)]=_0x8c9260[_0x2e1751(0x443)](),_0xaa122a[_0x2e1751(0x993)](streamSaver[_0x2e1751(0x52a)](_0x3b69e9['filename']));for(var _0x55edb5=0x0;_0x55edb5{var _0x52a798=_0x177382;_0x3f85c3<=0x0&&(_0x31757e[_0x52a798(0x457)]&&setTimeout(function(_0x744ebd,_0x6a3b87){var _0x52ff97=_0x52a798;_0x6a3b87<=0x0?(_0x744ebd[_0x52ff97(0x16f)](),_0x744ebd=null):setTimeout(function(_0x44d31c,_0x13c485){var _0x5df313=_0x52ff97;_0x44d31c[_0x5df313(0x16f)](),_0x44d31c=null;},0x1388,_0x744ebd);},0x3e8,_0x31757e['writer'],_0x3f85c3));_0x12f219=null;return;};return;};async function _0x1544ee(_0x1cf741,_0x28490c=![]){var _0x415619=_0x5b10c6;try{_0x1cf741[_0x415619(0x42f)][_0x415619(0x406)](_0x1cf741[_0x415619(0x750)]['shift']());}catch(_0x24e764){errorlog(_0x24e764);}if(_0x1cf741[_0x415619(0x5c7)]===null&&!_0x28490c)return;_0x1cf741['nextQueue']=setTimeout(function(_0x5e2805){_0x1544ee(_0x5e2805);},0x21,_0x1cf741);}return _0x42c792[_0x5b10c6(0x26d)]=async function(_0x5de385,_0x1bf908){var _0x2cfa5e=_0x5b10c6;log(_0x2cfa5e(0x93a));if(!_0x42c792['rpcs'][_0x5de385]){errorlog(_0x2cfa5e(0x241));return;}!_0x42c792['rpcs'][_0x5de385]['chunkedChannels']?_0x42c792['rpcs'][_0x5de385][_0x2cfa5e(0xa16)]=[]:_0x42c792[_0x2cfa5e(0x9f2)][_0x5de385][_0x2cfa5e(0xa16)][_0x2cfa5e(0x6d2)](_0x3c71b8=>{var _0x57c032=_0x2cfa5e;_0x3c71b8[_0x57c032(0x536)]&&_0x3c71b8[_0x57c032(0x536)][_0x57c032(0x16f)]();});var _0x94d763='',_0x549fba=0x0,_0x64924c=![],_0x3ff45b=![],_0x40908e={};_0x40908e[_0x2cfa5e(0x536)]=_0x1bf908,_0x42c792[_0x2cfa5e(0x9f2)][_0x5de385][_0x2cfa5e(0xa16)][_0x2cfa5e(0x3e0)](_0x40908e),_0x40908e[_0x2cfa5e(0x536)][_0x2cfa5e(0x2ef)]=_0x2cfa5e(0x988),_0x40908e[_0x2cfa5e(0x536)]['onopen']=_0x9a4a74=>{log('Opened\x20transfer\x20channel');},_0x40908e[_0x2cfa5e(0x536)]['onclose']=async function(_0x3db751){var _0x36b7b0=_0x2cfa5e;if(_0x40908e&&_0x40908e[_0x36b7b0(0x347)]){if(_0x40908e&&_0x40908e['videoElement'][_0x36b7b0(0x822)]){await delay(0x3e8);try{await _0x40908e[_0x36b7b0(0xb58)][_0x36b7b0(0x822)]();}catch(_0x36a488){}}}_0x42c792[_0x36b7b0(0x9f2)][_0x5de385]&&(delete _0x42c792[_0x36b7b0(0x9f2)][_0x5de385]['stats'][_0x36b7b0(0xae2)],delete _0x42c792[_0x36b7b0(0x9f2)][_0x5de385][_0x36b7b0(0x546)][_0x36b7b0(0x7ff)]);return;};async function _0x8ef9c3(){var _0x233d91=_0x2cfa5e,_0x1ef58a=await window['showSaveFilePicker']({'startIn':'videos','suggestedName':_0x233d91(0x5b1),'types':[{'description':'Video\x20File','accept':{'video/webm':[_0x233d91(0x819)]}}]}),_0x34e6e4=await _0x1ef58a[_0x233d91(0x22d)]();return _0x40908e[_0x233d91(0xa0f)][_0x233d91(0xac7)]=_0x34e6e4,_0x40908e[_0x233d91(0x347)]=new WebMWriter(_0x40908e[_0x233d91(0xa0f)]),_0x40908e[_0x233d91(0xb58)][_0x233d91(0x822)]=async function(_0x363447=![]){var _0x401a5c=_0x233d91;_0x363447?(_0x40908e[_0x401a5c(0xa0f)][_0x401a5c(0xac7)][_0x401a5c(0x16f)](),_0x40908e['videoElement'][_0x401a5c(0x822)]=![],clearInterval(_0x40908e['updateTime']),_0x40908e[_0x401a5c(0x7b5)]=null,await _0x40908e['videoWriter'][_0x401a5c(0x2af)]()):(_0x40908e[_0x401a5c(0xb58)][_0x401a5c(0x822)]=![],clearInterval(_0x40908e['updateTime']),_0x40908e['updateTime']=null,await _0x40908e[_0x401a5c(0x347)][_0x401a5c(0x2af)](),_0x40908e[_0x401a5c(0xa0f)][_0x401a5c(0xac7)][_0x401a5c(0x16f)]());},_0x40908e['videoWriter'];}_0x40908e[_0x2cfa5e(0x536)][_0x2cfa5e(0x73b)]=async function(_0x340384){var _0x374939=_0x2cfa5e;if(!_0x64924c)try{let _0x679a02=JSON[_0x374939(0x867)](_0x340384['data']);if(_0x679a02[_0x374939(0x94c)]=='chunkedtransfer'){log(_0x374939(0x7f1)),_0x64924c=_0x679a02;_0x42c792[_0x374939(0x62a)]&&_0x42c792['retransmitChunkedStream'](_0x64924c,_0x40908e['channel']);log('CHUNKED\x20DETAILS'),log(_0x64924c),_0x40908e[_0x374939(0x781)]=_0x64924c,_0x40908e['UUID']=_0x5de385,_0x40908e[_0x374939(0x9e8)]=0x0,_0x40908e[_0x374939(0x8c8)]=0x2,_0x40908e[_0x374939(0x6a3)]=Date[_0x374939(0x5ee)](),_0x40908e[_0x374939(0x431)]=_0x64924c['timestamp'],_0x40908e[_0x374939(0x30d)]=_0x40908e[_0x374939(0x6a3)]-_0x64924c[_0x374939(0xab0)],_0x40908e['dc']=_0x40908e[_0x374939(0x536)],_0x40908e['id']=_0x64924c['id'],_0x40908e[_0x374939(0x7b5)]=null,_0x40908e[_0x374939(0xa38)]=![];!_0x42c792[_0x374939(0x9f2)][_0x5de385]['videoElement']&&(_0x42c792['rpcs'][_0x5de385][_0x374939(0xb58)]=createVideoElement());_0x40908e[_0x374939(0xb58)]=_0x42c792[_0x374939(0x9f2)][_0x5de385]['videoElement'];!_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0xb58)]['srcObject']&&(_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0xb58)][_0x374939(0x3b0)]=createMediaStream());!_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0x5f5)]&&(_0x42c792['rpcs'][_0x5de385][_0x374939(0x5f5)]=createMediaStream());_0x40908e[_0x374939(0x5f5)]=_0x42c792[_0x374939(0x9f2)][_0x5de385]['streamSrc'],_0x40908e[_0x374939(0xb58)][_0x374939(0x1ba)]=!![],_0x40908e[_0x374939(0xb58)][_0x374939(0x920)]=![],_0x40908e[_0x374939(0xb58)][_0x374939(0x18b)](_0x374939(0x8ba),''),_0x40908e[_0x374939(0xb58)][_0x374939(0x5d0)]['sid']=_0x42c792['rpcs'][_0x5de385][_0x374939(0x476)],_0x40908e[_0x374939(0xb58)]['id']=_0x374939(0x7fd)+_0x5de385,_0x40908e[_0x374939(0xb58)][_0x374939(0x5d0)]['UUID']=_0x5de385,_0x40908e[_0x374939(0xb58)]['chunkedtransfer']=!![];_0x42c792[_0x374939(0x9f2)][_0x5de385]['mirrorState']&&applyMirrorGuest(_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0x238)],_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0xb58)]);_0x42c792['rpcs'][_0x5de385][_0x374939(0x7b4)]!==![]&&(_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0xb58)][_0x374939(0x50b)]=_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0x7b4)],_0x42c792['rpcs'][_0x5de385][_0x374939(0xb58)][_0x374939(0x5d0)][_0x374939(0x50b)]=_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0x7b4)]);_0x40908e[_0x374939(0xb58)]['addEventListener'](_0x374939(0x8f4),_0x300e0f=>{var _0x39ece1=_0x374939;try{var _0x187f4c=document['getElementById']('bigPlayButton');_0x187f4c&&_0x187f4c[_0x39ece1(0xa98)][_0x39ece1(0xa64)](_0x187f4c);}catch(_0xadcbc8){}_0x40908e[_0x39ece1(0x8f4)]=!![];if(_0x40908e[_0x39ece1(0x409)])_0x40908e[_0x39ece1(0x409)][_0x39ece1(0x771)]();else _0x42c792[_0x39ece1(0x31f)]&&_0x42c792[_0x39ece1(0x31f)]['resume']();try{_0x42c792[_0x39ece1(0x5a0)]&&(v['readyState']>=0x3&&(!v[_0x39ece1(0x5a0)]&&(v[_0x39ece1(0x5a0)]=!![],toggleSystemPip(v,!![]))));}catch(_0x5313ce){}},{'once':!![]}),_0x40908e[_0x374939(0xb58)][_0x374939(0x839)]('error',function(_0xf19d47){errorlog(_0xf19d47);}),_0x40908e['videoElement']['startWriter']=_0x8ef9c3,_0x40908e[_0x374939(0xb58)][_0x374939(0x82c)]=function(){updateMixer();},_0x40908e[_0x374939(0x347)]=![],_0x40908e['frameMeta']=![],_0x40908e[_0x374939(0xa0f)]={},_0x40908e[_0x374939(0xa0f)][_0x374939(0x735)]=![],_0x40908e[_0x374939(0xa0f)]['audio']=![],_0x40908e['stream_configVideo']=![],_0x40908e[_0x374939(0x6b3)]=![],_0x40908e[_0x374939(0xb06)]=![],_0x40908e[_0x374939(0x8d7)]=![],_0x40908e[_0x374939(0x735)]=![],_0x40908e[_0x374939(0x864)]=![],_0x40908e[_0x374939(0x65e)]=![],_0x40908e[_0x374939(0x8f4)]=![],_0x40908e[_0x374939(0x1ab)]=0x1;if(_0x64924c[_0x374939(0x15c)]){_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0x546)][_0x374939(0xae2)]=_0x64924c['configVideo'],_0x40908e[_0x374939(0x19b)]={},_0x40908e[_0x374939(0x19b)][_0x374939(0xb1b)]=_0x64924c[_0x374939(0x15c)][_0x374939(0xb1b)]+''||_0x374939(0x1ae),_0x40908e['stream_configVideo']['height']=_0x64924c['configVideo'][_0x374939(0x229)]+''||'720',_0x40908e[_0x374939(0x19b)]['codec']=_0x64924c[_0x374939(0x15c)][_0x374939(0x565)]||_0x374939(0x52d),_0x40908e[_0x374939(0xa0f)][_0x374939(0x735)]=!![],_0x40908e[_0x374939(0xa0f)][_0x374939(0xb1b)]=parseInt(_0x40908e[_0x374939(0x19b)][_0x374939(0xb1b)]),_0x40908e[_0x374939(0xa0f)][_0x374939(0x229)]=parseInt(_0x40908e[_0x374939(0x19b)]['height']);if(_0x64924c[_0x374939(0x15c)]['codec']==_0x374939(0x52d))_0x40908e[_0x374939(0xa0f)]['codec']=_0x374939(0x817);else{if(_0x64924c['configVideo']['codec']==_0x374939(0x809))_0x40908e['writer_config'][_0x374939(0x565)]='AV1';else{if(_0x64924c[_0x374939(0x15c)][_0x374939(0x565)]=='av1')_0x40908e[_0x374939(0xa0f)][_0x374939(0x565)]=_0x374939(0x4fe);else{if(_0x64924c[_0x374939(0x15c)][_0x374939(0x565)]==_0x374939(0x398))_0x40908e[_0x374939(0xa0f)]['codec']=_0x374939(0x58e);else _0x64924c['configVideo'][_0x374939(0x565)]=='h264'?_0x40908e[_0x374939(0xa0f)][_0x374939(0x565)]=_0x374939(0x3dc):_0x40908e[_0x374939(0xa0f)][_0x374939(0x565)]='VP9';}}}_0x40908e[_0x374939(0xb06)]={'output':_0x1f090f=>{var _0x9c0eb1=_0x374939;try{_0x40908e['video'][_0x9c0eb1(0xb28)][_0x9c0eb1(0x942)](_0x1f090f)['catch'](_0x426f32=>{});}catch(_0x12ef61){}},'error':_0x9d41cb=>{var _0x48fcc5=_0x374939;_0x40908e[_0x48fcc5(0x735)]['decoder'][_0x48fcc5(0x213)]==_0x48fcc5(0x981)?(errorlog(_0x9d41cb[_0x48fcc5(0x937)]),warnlog(_0x48fcc5(0x212))):errorlog(_0x9d41cb[_0x48fcc5(0x937)]);}},_0x40908e[_0x374939(0x735)]={},_0x40908e[_0x374939(0x735)][_0x374939(0x23b)]=new MediaStreamTrackGenerator({'kind':_0x374939(0x735)}),_0x40908e[_0x374939(0x735)][_0x374939(0x6f8)]=new MediaStream([_0x40908e[_0x374939(0x735)][_0x374939(0x23b)]]),_0x40908e[_0x374939(0x735)][_0x374939(0xb28)]=_0x40908e[_0x374939(0x735)][_0x374939(0x23b)][_0x374939(0x75b)][_0x374939(0x443)](),_0x40908e['video'][_0x374939(0x42f)]=new VideoDecoder(_0x40908e[_0x374939(0xb06)]),_0x40908e[_0x374939(0x735)][_0x374939(0x42f)][_0x374939(0x640)](_0x40908e[_0x374939(0x19b)]),_0x40908e[_0x374939(0x735)]['queue']=[],_0x40908e[_0x374939(0x735)][_0x374939(0x5c7)]=null,_0x40908e[_0x374939(0x735)]['playbackheader']=![],_0x40908e[_0x374939(0x735)][_0x374939(0x686)]=![],_0x374939(0xb08)in _0x64924c&&(_0x40908e[_0x374939(0x735)][_0x374939(0x9c6)]=_0x64924c['realTimeVideo']),_0x40908e[_0x374939(0x5f5)]['addTrack'](_0x40908e[_0x374939(0x735)][_0x374939(0x6f8)][_0x374939(0x40c)]()[0x0]);}_0x64924c[_0x374939(0x2c5)]&&(_0x42c792[_0x374939(0x9f2)][_0x5de385]['stats'][_0x374939(0x7ff)]=_0x64924c[_0x374939(0x2c5)],_0x40908e[_0x374939(0x6b3)]=_0x64924c['configAudio'],_0x40908e['writer_config'][_0x374939(0x864)]=!![],_0x40908e[_0x374939(0xa0f)][_0x374939(0x530)]=_0x64924c[_0x374939(0x2c5)]['sampleRate']||0xbb80,_0x40908e['writer_config'][_0x374939(0xa26)]=_0x64924c[_0x374939(0x2c5)][_0x374939(0xb4c)]||0x1,_0x40908e[_0x374939(0x6b3)][_0x374939(0x565)]&&_0x40908e[_0x374939(0x6b3)][_0x374939(0x565)]==_0x374939(0x3f7)?(!_0x40908e[_0x374939(0x2a3)]?_0x40908e[_0x374939(0x2a3)]=_0x42c792[_0x374939(0x31f)][_0x374939(0x53e)]():_0x40908e['streamSrc'][_0x374939(0x55a)]()[_0x374939(0x6d2)](_0x3059b6=>{var _0x19eca0=_0x374939;_0x40908e[_0x19eca0(0x5f5)][_0x19eca0(0x539)](_0x3059b6);}),_0x40908e[_0x374939(0x2a3)]['stream'][_0x374939(0x55a)]()[_0x374939(0x6d2)](_0x2bb55a=>{var _0xe3e6e2=_0x374939;_0x40908e[_0xe3e6e2(0x5f5)]['addTrack'](_0x2bb55a);}),_0x40908e[_0x374939(0x64a)]=!![]):(!_0x40908e[_0x374939(0x864)]&&(_0x40908e[_0x374939(0x864)]={}),_0x40908e['audio'][_0x374939(0x750)]=[],_0x40908e['audio'][_0x374939(0x5c7)]=null,_0x374939(0x201)in _0x64924c?_0x40908e['audio']['realTime']=_0x64924c['realTimeAudio']:errorlog('No\x20realtime'),_0x40908e[_0x374939(0x8d7)]={'output':_0x488058=>{var _0x5bc0b2=_0x374939;_0x40908e['audio']['frameWriter'][_0x5bc0b2(0x942)](_0x488058);if(_0x40908e[_0x5bc0b2(0xb4b)])return;if(!_0x488058[_0x5bc0b2(0xab0)])warnlog(_0x488058);else(!_0x40908e['timedelta']||!_0x40908e[_0x5bc0b2(0x864)][_0x5bc0b2(0x9c6)])&&warnlog(_0x40908e);var _0x16436c=(_0x488058[_0x5bc0b2(0xab0)]||0x0)/0x3e8-(Date[_0x5bc0b2(0x5ee)]()-(_0x40908e[_0x5bc0b2(0x30d)]||0x0)-(_0x40908e[_0x5bc0b2(0x864)][_0x5bc0b2(0x9c6)]||0x0));_0x16436c=_0x16436c-(_0x42c792[_0x5bc0b2(0x31f)][_0x5bc0b2(0x5c1)]||0x0)*0x3e8-(_0x42c792[_0x5bc0b2(0x31f)][_0x5bc0b2(0x483)]||0x0)*0x3e8;var _0x19d9f9=0xc8;if(!_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]])return;else{if(_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e['UUID']][_0x5bc0b2(0xa38)]!==![])_0x19d9f9=_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]][_0x5bc0b2(0xa38)];else{if(_0x42c792['audioBuffer']!==![])_0x19d9f9=_0x42c792[_0x5bc0b2(0x96a)];else _0x42c792[_0x5bc0b2(0xa38)]!==![]?_0x19d9f9=_0x42c792[_0x5bc0b2(0xa38)]:_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]]['buffer']=_0x19d9f9;}}_0x16436c+=_0x19d9f9-0x78,_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]][_0x5bc0b2(0x546)][_0x5bc0b2(0x7ff)][_0x5bc0b2(0x9df)]=Date[_0x5bc0b2(0x5ee)](),_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]]['stats']['chunked_mode_audio'][_0x5bc0b2(0x328)]=_0x40908e[_0x5bc0b2(0x30d)],_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]][_0x5bc0b2(0x546)][_0x5bc0b2(0x7ff)]['buffer_realTime']=_0x40908e[_0x5bc0b2(0x864)][_0x5bc0b2(0x9c6)],_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]][_0x5bc0b2(0x546)][_0x5bc0b2(0x7ff)]['buffer_timestamp']=_0x488058[_0x5bc0b2(0xab0)],_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]]['stats']['chunked_mode_audio'][_0x5bc0b2(0x681)]=_0x16436c,_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]][_0x5bc0b2(0x546)][_0x5bc0b2(0x7ff)][_0x5bc0b2(0x7c1)]=_0x19d9f9,_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]]['stats']['chunked_mode_audio'][_0x5bc0b2(0x4f5)]=(_0x42c792[_0x5bc0b2(0x31f)][_0x5bc0b2(0x5c1)]||0x0)*0x3e8,_0x42c792[_0x5bc0b2(0x9f2)][_0x40908e[_0x5bc0b2(0xac6)]]['stats'][_0x5bc0b2(0x7ff)]['buffer_outputLatency']=(_0x42c792[_0x5bc0b2(0x31f)][_0x5bc0b2(0x483)]||0x0)*0x3e8;_0x16436c<=0x0&&(_0x16436c=0x0);try{_0x40908e[_0x5bc0b2(0x633)][_0x5bc0b2(0x2fb)][_0x5bc0b2(0x848)](parseFloat(_0x16436c/0x3e8),_0x42c792[_0x5bc0b2(0x31f)]['currentTime']);}catch(_0x503618){log(_0x16436c),errorlog(_0x503618);}_0x40908e['audioTime']=setTimeout(function(){var _0x418728=_0x5bc0b2;_0x40908e[_0x418728(0xb4b)]=null;},_0x16436c);},'error':_0x521d74=>{var _0x17f503=_0x374939;_0x40908e['audio']['decoder'][_0x17f503(0x213)]=='closed'?(errorlog(_0x521d74['message']),warnlog('CLOSED')):errorlog(_0x521d74[_0x17f503(0x937)]);}},_0x40908e[_0x374939(0x864)][_0x374939(0x42f)]=new AudioDecoder(_0x40908e[_0x374939(0x8d7)]),_0x40908e[_0x374939(0x864)][_0x374939(0x42f)][_0x374939(0x640)](_0x40908e[_0x374939(0x6b3)]),_0x40908e['audio'][_0x374939(0x23b)]=new MediaStreamTrackGenerator({'kind':'audio'}),_0x40908e[_0x374939(0x864)][_0x374939(0xb28)]=_0x40908e[_0x374939(0x864)][_0x374939(0x23b)][_0x374939(0x75b)][_0x374939(0x443)](),_0x40908e[_0x374939(0x864)][_0x374939(0x6f8)]=new MediaStream([_0x40908e[_0x374939(0x864)][_0x374939(0x23b)]]),_0x40908e[_0x374939(0x864)][_0x374939(0x216)]=_0x42c792[_0x374939(0x31f)][_0x374939(0x5a5)](_0x40908e[_0x374939(0x864)][_0x374939(0x6f8)]),_0x40908e['delayNode']=_0x42c792[_0x374939(0x31f)][_0x374939(0x22c)](0x1e),_0x40908e[_0x374939(0x633)]['delayTime']['value']=0x0,_0x40908e[_0x374939(0x864)]['audioNode']['connect'](_0x40908e[_0x374939(0x633)]),_0x40908e[_0x374939(0x2a3)]=_0x42c792[_0x374939(0x31f)][_0x374939(0x53e)](),_0x40908e[_0x374939(0x633)]['connect'](_0x40908e['destination']),_0x40908e[_0x374939(0x2a3)][_0x374939(0x6f8)]['getAudioTracks']()['forEach'](_0x278bcc=>{var _0x3faa29=_0x374939;_0x40908e[_0x3faa29(0x5f5)][_0x3faa29(0x971)](_0x278bcc);})));warnlog(_0x64924c),setupIncomingVideoTracking(_0x42c792[_0x374939(0x9f2)][_0x5de385][_0x374939(0xb58)],_0x5de385);if(_0x40908e[_0x374939(0x864)]&&_0x40908e['video'])updateIncomingVideoElement(_0x5de385);else{if(_0x40908e['video'])updateIncomingVideoElement(_0x5de385,!![],![]);else _0x40908e['audio']&&updateIncomingVideoElement(_0x5de385,![],!![]);}_0x40908e[_0x374939(0xa0d)]=async function(_0x28a3aa){var _0x1d9e2a=_0x374939;_0x42c792[_0x1d9e2a(0x9d2)]&&_0x1d9e2a(0xab0)in _0x28a3aa&&_0x42c792[_0x1d9e2a(0x9f2)][_0x5de385]&&pokeIframeAPI('chunked-inbound',{'UUID':_0x5de385,'streamID':_0x42c792[_0x1d9e2a(0x9f2)][_0x5de385][_0x1d9e2a(0x476)],'type':_0x28a3aa['type'],'ts':_0x28a3aa['timestamp']});if(_0x28a3aa[_0x1d9e2a(0x94c)]=='audio'){try{_0x42c792[_0x1d9e2a(0x9f2)][_0x40908e['UUID']][_0x1d9e2a(0x546)]['chunked_mode_audio'][_0x1d9e2a(0x3e8)]=parseInt(_0x28a3aa['timestamp']/0x2710)/0x64;}catch(_0x5a3df7){console[_0x1d9e2a(0x8fd)](_0x1d9e2a(0x494),_0x5a3df7);return;}_0x40908e[_0x1d9e2a(0x2e4)](_0x28a3aa);}else{if(_0x28a3aa['type']=='pcm'){var _0x1f34a4=_0x42c792['audioCtx'][_0x1d9e2a(0x4eb)]();_0x1f34a4[_0x1d9e2a(0x8ca)](_0x40908e[_0x1d9e2a(0x2a3)]),_0x1f34a4[_0x1d9e2a(0x6ef)]=function(){var _0x452a05=_0x1d9e2a;this[_0x452a05(0x83c)]();};var _0x1eec75=_0x42c792[_0x1d9e2a(0x31f)][_0x1d9e2a(0x3f3)](0x2,_0x28a3aa['data'][_0x1d9e2a(0x606)],_0x42c792[_0x1d9e2a(0x31f)]['sampleRate']/0x2);_0x1f34a4[_0x1d9e2a(0xa38)]=_0x1eec75;var _0x1e516e=_0x1eec75[_0x1d9e2a(0x2db)](0x0)[_0x1d9e2a(0xac0)](_0x28a3aa['data']);_0x1f34a4['start'](0x0);}else _0x42c792[_0x1d9e2a(0x9f2)][_0x40908e[_0x1d9e2a(0xac6)]][_0x1d9e2a(0x546)]['chunked_mode_video']['time_seconds']=parseInt(_0x28a3aa[_0x1d9e2a(0xab0)]/0x2710)/0x64,_0x40908e['processFrameVideo'](_0x28a3aa);}},_0x40908e[_0x374939(0x629)]=async function(_0x4b3ea0){var _0x396959=_0x374939;try{_0x4b3ea0[_0x396959(0x94c)]?_0x4b3ea0=new EncodedVideoChunk(_0x4b3ea0):errorlog(_0x396959(0x9a1));}catch(_0x27f126){errorlog(_0x27f126),errorlog(_0x4b3ea0);return;}if(_0x40908e[_0x396959(0x347)]&&_0x40908e[_0x396959(0xb58)][_0x396959(0x822)]){if(!_0x40908e[_0x396959(0x735)][_0x396959(0x686)]&&_0x4b3ea0[_0x396959(0x94c)]!==_0x396959(0xb44))log(_0x396959(0x8b8)),log(_0x4b3ea0),!_0x40908e[_0x396959(0x4a4)]&&(_0x40908e['dc']['send'](JSON['stringify']({'kf':!![]})),_0x40908e[_0x396959(0x4a4)]=setTimeout(function(){var _0x120978=_0x396959;clearTimeout(_0x40908e[_0x120978(0x4a4)]),_0x40908e[_0x120978(0x4a4)]=null;},0x3e8));else!_0x40908e[_0x396959(0x735)]['header']?(_0x40908e[_0x396959(0x735)][_0x396959(0x686)]=Date[_0x396959(0x5ee)](),_0x40908e['videoWriter']['addFrame'](_0x4b3ea0),log(_0x396959(0x32a)),_0x42c792['director']&&!_0x40908e[_0x396959(0x7b5)]&&(_0x40908e['updateTime']=setInterval(function(_0x13dfd4){var _0xf0d1fa=_0x396959,_0xe94564=(Date[_0xf0d1fa(0x5ee)]()-_0x40908e[_0xf0d1fa(0x735)][_0xf0d1fa(0x686)])/0x3e8,_0x4127c3=Math['floor'](_0xe94564/0x3c),_0x3957ac=Math[_0xf0d1fa(0x838)](_0xe94564-_0x4127c3*0x3c);try{document[_0xf0d1fa(0x66b)](_0xf0d1fa(0x30b)+_0x13dfd4+'\x27]')['innerHTML']=_0xf0d1fa(0x894)+_0x4127c3+'m\x20:\x20'+zpadTime(_0x3957ac)+'s';}catch(_0x2a2ebe){log(_0xf0d1fa(0x879));}},0x3e8,_0x40908e[_0x396959(0xac6)]))):_0x40908e[_0x396959(0x347)][_0x396959(0x6e9)](_0x4b3ea0);}_0x40908e['video']['playbackheader']&&_0x40908e[_0x396959(0x735)]&&_0x40908e['video'][_0x396959(0x42f)][_0x396959(0x213)]===_0x396959(0x981)&&(_0x40908e[_0x396959(0x1ab)]+=0x1,warnlog(_0x396959(0x568)),_0x40908e['video'][_0x396959(0x214)]=![],_0x40908e['video'][_0x396959(0x42f)]=new VideoDecoder(_0x40908e['init_video']),await _0x40908e[_0x396959(0x735)][_0x396959(0x42f)][_0x396959(0x640)](_0x40908e[_0x396959(0x19b)]),_0x40908e[_0x396959(0x735)][_0x396959(0x214)]=![]);if(_0x40908e[_0x396959(0x735)]['playbackheader']||_0x4b3ea0[_0x396959(0x94c)]==='key'){_0x40908e[_0x396959(0x735)][_0x396959(0x214)]=!![];try{if(_0x40908e['video'][_0x396959(0x5c7)])_0x40908e['video'][_0x396959(0x750)][_0x396959(0x3e0)](_0x4b3ea0);else{if(_0x40908e[_0x396959(0x735)][_0x396959(0x750)][_0x396959(0x606)])_0x40908e[_0x396959(0x735)]['queue'][_0x396959(0x3e0)](_0x4b3ea0);else{if(_0x40908e[_0x396959(0x735)][_0x396959(0x9c6)]){_0x40908e[_0x396959(0x735)]['nextQueue']=!![];function _0x184aed(_0x58d7eb){var _0x419637=_0x396959,_0x459e33=_0x40908e['video_session'],_0x2f7055=_0x58d7eb[_0x419637(0xab0)]/0x3e8-(Date[_0x419637(0x5ee)]()-_0x40908e[_0x419637(0x30d)]-_0x40908e[_0x419637(0x735)][_0x419637(0x9c6)]),_0x429dc2=0xc8;if(!_0x42c792['rpcs'][_0x40908e[_0x419637(0xac6)]]){clearTimeout(_0x40908e['video'][_0x419637(0x5c7)]),_0x40908e[_0x419637(0x735)][_0x419637(0x5c7)]=null,_0x40908e[_0x419637(0x735)][_0x419637(0x750)]=[];return;}else{if(_0x42c792['rpcs'][_0x40908e['UUID']]['buffer']!==![])_0x429dc2=_0x42c792[_0x419637(0x9f2)][_0x40908e['UUID']][_0x419637(0xa38)];else _0x42c792[_0x419637(0xa38)]!==![]?_0x429dc2=_0x42c792[_0x419637(0xa38)]:_0x42c792['rpcs'][_0x40908e[_0x419637(0xac6)]][_0x419637(0xa38)]=_0x429dc2;}_0x2f7055+=_0x429dc2,!_0x42c792[_0x419637(0x9f2)][_0x40908e[_0x419637(0xac6)]][_0x419637(0x546)]['chunked_mode_video']&&(_0x42c792[_0x419637(0x9f2)][_0x40908e['UUID']][_0x419637(0x546)][_0x419637(0xae2)]={}),_0x42c792['rpcs'][_0x40908e[_0x419637(0xac6)]][_0x419637(0x546)][_0x419637(0xae2)][_0x419637(0x681)]=parseInt(_0x2f7055),_0x42c792['rpcs'][_0x40908e[_0x419637(0xac6)]][_0x419637(0x546)][_0x419637(0xae2)][_0x419637(0x7c1)]=parseInt(_0x429dc2),_0x42c792[_0x419637(0x9f2)][_0x40908e[_0x419637(0xac6)]][_0x419637(0x546)][_0x419637(0xae2)]['buffer_vals']=_0x58d7eb['timestamp']+':'+(Date[_0x419637(0x5ee)]()-_0x40908e[_0x419637(0x30d)]-_0x40908e['video']['realTime'])+':'+Date[_0x419637(0x5ee)]()+':'+_0x40908e['timedelta']+':'+_0x40908e[_0x419637(0x735)][_0x419637(0x9c6)],!_0x42c792['silence']&&(_0x42c792['silence']=_0x42c792['audioCtx']['createGain'](),_0x42c792[_0x419637(0xa9d)][_0x419637(0xa70)]['value']=0x0,_0x42c792[_0x419637(0xa9d)]['connect'](_0x42c792[_0x419637(0x31f)]['destination'])),!_0x40908e[_0x419637(0x264)]&&(_0x2f7055<=0x0&&(_0x2f7055=0x0),_0x40908e[_0x419637(0x264)]=_0x42c792[_0x419637(0x31f)][_0x419637(0x667)](),_0x40908e[_0x419637(0x264)][_0x419637(0x8ca)](_0x42c792['silence']),_0x40908e[_0x419637(0x264)][_0x419637(0x5c5)](0x0),_0x40908e[_0x419637(0x264)][_0x419637(0x6ef)]=_0x447195=>{var _0x530191=_0x419637;_0x40908e[_0x530191(0x264)]['disconnect']();if(_0x459e33===_0x40908e[_0x530191(0x1ab)])try{_0x40908e[_0x530191(0x735)][_0x530191(0x42f)][_0x530191(0x406)](_0x58d7eb);}catch(_0x127e6e){errorlog(_0x127e6e);}else console[_0x530191(0x282)](_0x459e33,_0x40908e[_0x530191(0x1ab)]);_0x40908e[_0x530191(0x264)]=![],_0x40908e['video'][_0x530191(0x750)][_0x530191(0x606)]?_0x184aed(_0x40908e[_0x530191(0x735)][_0x530191(0x750)][_0x530191(0x20b)]()):_0x40908e[_0x530191(0x735)]['nextQueue']=null;},_0x40908e['vosc'][_0x419637(0x77f)](_0x42c792[_0x419637(0x31f)]['currentTime']+_0x2f7055/0x3e8));}try{_0x184aed(_0x4b3ea0);}catch(_0x154cc0){errorlog(_0x154cc0),_0x40908e[_0x396959(0x735)][_0x396959(0x5c7)]=null,!_0x40908e['requestKeyframe']&&(_0x40908e['dc'][_0x396959(0x8c1)](JSON[_0x396959(0x895)]({'kf':!![]})),_0x40908e['requestKeyframe']=setTimeout(function(){var _0x1cbd2d=_0x396959;clearTimeout(_0x40908e['requestKeyframe']),_0x40908e[_0x1cbd2d(0x4a4)]=null;},0x3e8));}}else try{_0x40908e[_0x396959(0x735)][_0x396959(0x42f)]['decode'](_0x4b3ea0);}catch(_0x52ab7b){errorlog(_0x52ab7b);}}}}catch(_0x1ff98b){errorlog(_0x1ff98b),_0x40908e[_0x396959(0x735)]['playbackheader']=![];}}_0x40908e[_0x396959(0x735)][_0x396959(0x42f)]['decodeQueueSize']&&console[_0x396959(0x282)](_0x396959(0xb3c)+_0x40908e['video'][_0x396959(0x42f)][_0x396959(0x841)]),!_0x40908e['video'][_0x396959(0x214)]&&(!_0x40908e[_0x396959(0x4a4)]&&(_0x40908e['dc'][_0x396959(0x8c1)](JSON[_0x396959(0x895)]({'kf':!![]})),_0x40908e[_0x396959(0x4a4)]=setTimeout(function(){var _0x587d08=_0x396959;clearTimeout(_0x40908e[_0x587d08(0x4a4)]),_0x40908e[_0x587d08(0x4a4)]=null;},0x3e8)));},_0x40908e['processFrameAudio']=async function(_0x4f5373){var _0x5e9f7f=_0x374939;if(!_0x40908e['audio']){errorlog('Audio\x20isn\x27t\x20setup\x20yet.');return;}try{_0x4f5373[_0x5e9f7f(0x94c)]=_0x5e9f7f(0xb44),_0x4f5373=new EncodedAudioChunk(_0x4f5373);}catch(_0x79bc53){return;}_0x40908e[_0x5e9f7f(0x347)]&&_0x40908e[_0x5e9f7f(0x735)][_0x5e9f7f(0x686)]&&_0x40908e[_0x5e9f7f(0xb58)][_0x5e9f7f(0x822)]&&_0x40908e['videoWriter'][_0x5e9f7f(0x6e9)](_0x4f5373);_0x40908e[_0x5e9f7f(0x864)][_0x5e9f7f(0x42f)][_0x5e9f7f(0x213)]===_0x5e9f7f(0x981)&&(_0x40908e['audio']['decoder']=new AudioDecoder(_0x40908e[_0x5e9f7f(0x8d7)]),_0x40908e['audio'][_0x5e9f7f(0x42f)][_0x5e9f7f(0x640)](_0x40908e[_0x5e9f7f(0x6b3)]));try{_0x40908e[_0x5e9f7f(0x864)][_0x5e9f7f(0x42f)][_0x5e9f7f(0x406)](_0x4f5373);}catch(_0x34e85a){errorlog(_0x34e85a);}};}else{if(_0x40908e[_0x374939(0x864)]&&_0x64924c[_0x374939(0x201)])_0x40908e['audio'][_0x374939(0x9c6)]=_0x64924c[_0x374939(0x201)];else _0x40908e[_0x374939(0x735)]&&_0x64924c[_0x374939(0xb08)]?_0x40908e[_0x374939(0x735)][_0x374939(0x9c6)]=_0x64924c[_0x374939(0xb08)]:errorlog(_0x679a02);}return;}catch(_0x5d01bc){errorlog(_0x5d01bc);}else _0x42c792[_0x374939(0x62a)]&&(_0x42c792[_0x374939(0x335)][_0x374939(0x3e0)](_0x340384['data']),_0x42c792[_0x374939(0x62a)]&&_0x42c792['retransmitChunkedStream']());try{var _0x40fff1=_0x340384[_0x374939(0x461)];if(typeof _0x40fff1=='string'){if(_0x40908e[_0x374939(0xa38)]){var _0x2b31ce=new Int8Array(_0x40fff1[_0x374939(0xa38)]);_0x40908e[_0x374939(0xa38)]=![],await _0x40908e[_0x374939(0xa0d)]({'data':_0x2b31ce,'timestamp':_0x40908e[_0x374939(0x612)][0x0],'type':_0x40908e[_0x374939(0x612)][0x1]});}_0x40908e[_0x374939(0x612)]=JSON[_0x374939(0x867)](_0x40fff1);}else{try{if(_0x40fff1[_0x374939(0x98c)]>=0x40000){if(_0x40908e[_0x374939(0xa38)]){_0x40fff1=new Int8Array(_0x40fff1);var _0x2b31ce=new Int8Array(_0x40908e['buffer'][_0x374939(0x606)]+_0x40fff1[_0x374939(0x606)]);_0x2b31ce[_0x374939(0xac0)](_0x40908e['buffer']),_0x2b31ce[_0x374939(0xac0)](_0x40fff1,_0x40908e[_0x374939(0xa38)]['length']),_0x40908e[_0x374939(0xa38)]=_0x2b31ce;}else _0x40908e[_0x374939(0xa38)]=new Int8Array(_0x40fff1);return;}else{if(_0x40908e['buffer']){_0x40fff1=new Int8Array(_0x40fff1);var _0x2b31ce=new Int8Array(_0x40908e['buffer']['length']+_0x40fff1[_0x374939(0x606)]);_0x2b31ce['set'](_0x40908e['buffer']),_0x2b31ce[_0x374939(0xac0)](_0x40fff1,_0x40908e[_0x374939(0xa38)][_0x374939(0x606)]),_0x40908e[_0x374939(0xa38)]=![],await _0x40908e[_0x374939(0xa0d)]({'data':_0x2b31ce,'timestamp':_0x40908e['frameMeta'][0x0],'type':_0x40908e[_0x374939(0x612)][0x1]});}else await _0x40908e[_0x374939(0xa0d)]({'data':new Uint8Array(_0x40fff1),'timestamp':_0x40908e[_0x374939(0x612)][0x0],'type':_0x40908e[_0x374939(0x612)][0x1]}),_0x40908e['fillDataBuffer']&&_0x40908e[_0x374939(0x9ab)]();}}catch(_0x3fe588){errorlog(_0x3fe588);}return;}}catch(_0x1c0c8c){errorlog(_0x1c0c8c);}};return;},_0x42c792[_0x5b10c6(0x448)]=function(){var _0x4e14e5=_0x5b10c6;const _0x68fd88=new Set([...Object[_0x4e14e5(0x3fa)](_0x42c792['pcs']),...Object['keys'](_0x42c792['rpcs'])]),_0x8b23dd=_0x42c792['directorList'][_0x4e14e5(0x606)];_0x42c792['directorList']=_0x42c792[_0x4e14e5(0x74b)][_0x4e14e5(0x28d)](_0x51287e=>_0x68fd88[_0x4e14e5(0x326)](_0x51287e));const _0x26263d=_0x8b23dd-_0x42c792[_0x4e14e5(0x74b)][_0x4e14e5(0x606)];_0x26263d&&console[_0x4e14e5(0x282)]('Removed\x20'+_0x26263d+_0x4e14e5(0x7f8));},_0x42c792['setupIncoming']=async function(_0x31855b){var _0x679e45=_0x5b10c6;log(_0x679e45(0x6fb));var _0x522563=_0x31855b[_0x679e45(0xac6)];if(_0x522563 in _0x42c792[_0x679e45(0x9f2)]){if(_0x679e45(0x610)in _0x31855b&&_0x31855b[_0x679e45(0x610)]){if(_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x610)]==_0x31855b[_0x679e45(0x610)]){log('SDP\x20Sessions\x20Match.\x20I\x20assume\x20ADDING\x20TRACKS.\x20RPCS');return;}warnlog(_0x679e45(0x5eb)),_0x42c792[_0x679e45(0x9b8)](_0x522563,![],!![])||![];}}else log(_0x679e45(0x1c4));try{for(var _0x2292a7 in _0x42c792['rpcs']){_0x42c792['rpcs'][_0x2292a7][_0x679e45(0x476)]==_0x31855b[_0x679e45(0x476)]&&(_0x42c792['rpcs'][_0x2292a7][_0x679e45(0x5f7)]&&errorlog(_0x679e45(0x63d)),_0x42c792['rpcs'][_0x2292a7]['videoElement']&&(_0x42c792[_0x679e45(0x9f2)][_0x2292a7][_0x679e45(0xb58)][_0x679e45(0x84c)]['display']='none'),warnlog(_0x679e45(0x64c)),_0x42c792[_0x679e45(0x9b8)](_0x2292a7),_0x2292a7!==_0x522563&&(_0x2292a7 in _0x42c792['pcs']&&(_0x31855b[_0x679e45(0x610)]&&_0x31855b[_0x679e45(0x610)][_0x679e45(0x5ae)](0x0,0x6)!==_0x42c792[_0x679e45(0x32f)]?(warnlog(_0x679e45(0x938)),log(_0x679e45(0x3c7)),_0x42c792[_0x679e45(0x83a)](_0x2292a7,![])):warnlog(_0x679e45(0x24e)))));}document[_0x679e45(0x83d)]('mainmenu')&&(document[_0x679e45(0x83d)](_0x679e45(0x5e5))[_0x679e45(0xa98)][_0x679e45(0xa64)](document[_0x679e45(0x83d)](_0x679e45(0x5e5))),document[_0x679e45(0x901)](_0x679e45(0x8ea))['forEach'](_0x5a44e6=>{var _0x2c593a=_0x679e45;_0x5a44e6[_0x2c593a(0x33d)][_0x2c593a(0x881)](_0x2c593a(0x9ca));}));}catch(_0x4655cf){errorlog(_0x4655cf);}if(_0x42c792['maxpublishers']!==![]){if(Object[_0x679e45(0x3fa)](_0x42c792[_0x679e45(0x9f2)])['length']>=_0x42c792[_0x679e45(0x71d)]){warnlog(_0x679e45(0x8b5));return;}}else{if(_0x42c792[_0x679e45(0x575)]!==![]){if(Object['keys'](_0x42c792[_0x679e45(0x9f2)])[_0x679e45(0x606)]+Object[_0x679e45(0x3fa)](_0x42c792['pcs'])[_0x679e45(0x606)]>=_0x42c792[_0x679e45(0x575)]){warnlog(_0x679e45(0x8b5));return;}}}if(_0x42c792[_0x679e45(0x750)]){if(_0x42c792['director'])!(_0x522563 in _0x42c792[_0x679e45(0x3c0)])&&_0x42c792[_0x679e45(0x31a)](_0x522563);else{if(_0x42c792[_0x679e45(0x74b)][_0x679e45(0x1de)](_0x522563)==-0x1){if(!(_0x31855b[_0x679e45(0x476)]&&_0x42c792[_0x679e45(0x3c8)]&&_0x42c792[_0x679e45(0x3c8)][_0x679e45(0x401)](_0x31855b[_0x679e45(0x476)])))return;}}}!_0x42c792[_0x679e45(0xb26)]&&await chooseBestTURN();_0x42c792[_0x679e45(0xb37)]&&(_0x42c792['configuration'][_0x679e45(0xb37)]=!![]);_0x42c792[_0x679e45(0x1cb)]&&(_0x42c792[_0x679e45(0xb26)][_0x679e45(0x1cb)]=_0x42c792[_0x679e45(0x1cb)]);try{if(_0x42c792[_0x679e45(0x9f2)][_0x522563]&&_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x8a7)]){let _0x134a6d=new RTCPeerConnection(_0x42c792[_0x679e45(0xb26)]);var _0xb63f84=Object['keys'](_0x42c792['rpcs'][_0x522563]);for(var _0x2292a7=0x0;_0x2292a7<_0xb63f84[_0x679e45(0x606)];_0x2292a7++){var _0x6f8039=_0xb63f84[_0x2292a7];if(_0x134a6d[_0x679e45(0x784)](_0x6f8039))continue;_0x134a6d[_0x6f8039]=_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x6f8039],log(_0x679e45(0xaa0)+_0x6f8039);}_0x42c792[_0x679e45(0x9f2)][_0x522563]=_0x134a6d;}else _0x42c792[_0x679e45(0x9f2)][_0x522563]=new RTCPeerConnection(_0x42c792[_0x679e45(0xb26)]);if(_0x42c792[_0x679e45(0x2f5)]&&!_0x31855b['vector']){errorlog(_0x679e45(0xab3)),errorlog(_0x31855b);return;}else{if(!_0x31855b['vector']&&!_0x42c792[_0x679e45(0x37d)]&&_0x42c792[_0x679e45(0x3dd)]&&!_0x42c792['unsafe']){errorlog(_0x679e45(0x7bf)),errorlog(_0x31855b);return;}}}catch(_0x1d9fbe){!_0x42c792[_0x679e45(0xad1)]&&warnUser(_0x679e45(0x624));errorlog(_0x1d9fbe);return;}!_0x31855b[_0x679e45(0x97b)]?(_0x42c792['password']&&_0x42c792[_0x679e45(0x37d)]&&(warnlog('No\x20vector?\x20uh\x20oh\x20--\x20might\x20be\x20raspberry\x20ninja\x20or\x20some\x20other\x20simpler\x20implementation,\x20so\x20lets\x20move\x20on.\x20We\x27re\x20using\x20the\x20default\x20password,\x20so\x20we\x27re\x20going\x20to\x20allow\x20it'),warnlog(_0x31855b)),_0x42c792[_0x679e45(0x9f2)][_0x522563]['vector']=![]):(!_0x42c792[_0x679e45(0x3dd)]&&(errorlog('Handshake\x20has\x20a\x20vector?\x20But\x20we\x20don\x27t\x20have\x20a\x20password.\x20This\x20is\x20probably\x20going\x20to\x20fail...'),errorlog(_0x31855b)),_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x97b)]=!![]);if(_0x42c792[_0x679e45(0x183)]){if(Object[_0x679e45(0x3fa)](_0x42c792[_0x679e45(0x9f2)])[_0x679e45(0x606)]>0x1){warnlog(_0x679e45(0x433)),log(_0x42c792[_0x679e45(0x9f2)]),delete _0x42c792[_0x679e45(0x9f2)][_0x522563],updateUserList();return;}else warnlog(_0x679e45(0x54d));}_0x31855b['streamID']in _0x42c792[_0x679e45(0x659)]&&(log(_0x679e45(0xa52)),delete _0x42c792['waitingWatchList'][_0x31855b[_0x679e45(0x476)]]);try{_0x42c792['rpcs'][_0x522563][_0x679e45(0x476)]=_0x31855b[_0x679e45(0x476)],await checkDirectorStreamID();}catch(_0x4029f0){errorlog(_0x4029f0);return;}_0x31855b[_0x679e45(0x610)]?_0x42c792[_0x679e45(0x9f2)][_0x522563]['session']=_0x31855b['session']:_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x610)]=null;_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x5c9)]=null,_0x42c792['rpcs'][_0x522563][_0x679e45(0x4f7)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x7b3)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['loudest']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['allowMIDI']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['allowGraphs']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x628)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x546)]={},_0x42c792['rpcs'][_0x522563][_0x679e45(0x546)][_0x679e45(0x5a6)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xa33)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xa9a)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x857)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x844)]=-0x1,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x666)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0xa38)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x4a3)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x88a)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x90e)]=-0x1,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x59e)]=![],_0x42c792['rpcs'][_0x522563]['videoElement']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x25f)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['voiceMeter']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['group']=[],_0x42c792[_0x679e45(0x9f2)][_0x522563]['videoMuted']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['iframeVideo']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xab5)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x967)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x611)]=![],_0x42c792['rpcs'][_0x522563]['remoteMuteState']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x2ad)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x7c0)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563]['whep']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x172)]=null,_0x42c792['rpcs'][_0x522563][_0x679e45(0x35a)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x56e)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x238)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x360)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x7b4)]=![],_0x42c792['rpcs'][_0x522563]['savedVolume']=![],_0x42c792['rpcs'][_0x522563]['scaleHeight']=![],_0x42c792['rpcs'][_0x522563]['scaleWidth']=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x5ba)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x81e)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x46b)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x5f5)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x820)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x33f)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x9e7)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x5a4)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x843)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xb4d)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x934)]=0x64,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xb19)]=0x0,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x3b1)]=0x0,_0x42c792['rpcs'][_0x522563][_0x679e45(0x6e3)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['opacityDisconnect']='1',_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xb5d)]='1',_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x813)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x933)]=0x0,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x625)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x452)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x4a5)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x1ea)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x4a6)]=null,_0x42c792['rpcs'][_0x522563][_0x679e45(0x65d)]={},_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x343)]=![],_0x42c792['rpcs'][_0x522563][_0x679e45(0x547)]=![],_0x42c792['rpcs'][_0x522563]['startTime']=Date[_0x679e45(0x5ee)](),_0x42c792['rpcs'][_0x522563][_0x679e45(0x70a)]=![],_0x42c792[_0x679e45(0x9f2)][_0x522563]['wssid']=_0x42c792['wssid'];(_0x42c792['activeSpeaker']==0x2||_0x42c792[_0x679e45(0x2bd)]==0x4)&&(_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x96d)]=!![]);if(_0x42c792['showall']){var _0x143975=createRichVideoElement(_0x522563);_0x143975['style'][_0x679e45(0x745)]='block';}if(_0x42c792[_0x679e45(0x843)]){if(_0x42c792[_0x679e45(0x491)]&&'isScene'in _0x31855b&&_0x31855b[_0x679e45(0x246)]!==![]){}else{var _0x4a80ea=soloLinkGenerator(_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x476)]);_0x679e45(0x8a0)in _0x31855b?createControlBox(_0x522563,_0x4a80ea,_0x42c792['rpcs'][_0x522563][_0x679e45(0x476)],_0x31855b[_0x679e45(0x8a0)]):createControlBox(_0x522563,_0x4a80ea,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x476)]);}}_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0xac6)]=_0x522563;try{if(_0x42c792[_0x679e45(0x3c8)]){if(_0x42c792['view_set'][_0x679e45(0x401)](_0x42c792['rpcs'][_0x522563]['streamID'])){if(_0x42c792['bitrate_set']!==![]){let _0x31dff5=_0x42c792[_0x679e45(0x3c8)][_0x679e45(0x1de)](_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x476)]);_0x42c792[_0x679e45(0x744)][_0x679e45(0x606)]>_0x31dff5&&(_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x59e)]=parseInt(_0x42c792[_0x679e45(0x744)][_0x31dff5]),_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x59e)]<=0x0&&(_0x42c792[_0x679e45(0x9f2)][_0x522563]['manualBandwidth']=![]));}}}}catch(_0x16869a){errorlog(_0x16869a);}_0x42c792['rpcs'][_0x522563][_0x679e45(0x8c7)]=function(_0x4034c0){var _0x591aff=_0x679e45;log(_0x591aff(0x893)),_0x42c792['closeRPC'](_0x522563);},_0x42c792['rpcs'][_0x522563][_0x679e45(0x989)]=null,_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x54e)]=[],_0x42c792[_0x679e45(0x9f2)][_0x522563]['delayIceSend']=0xa,_0x42c792['rpcs'][_0x522563][_0x679e45(0x195)]=function(_0x1e2ffc){var _0x35bf4b=_0x679e45;if(_0x1e2ffc[_0x35bf4b(0x943)]==null){log(_0x35bf4b(0x2e3));_0x42c792['rpcs'][_0x522563]&&_0x42c792['rpcs'][_0x522563]['whipCallback2']&&(_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0xada)]([..._0x42c792[_0x35bf4b(0x9f2)][_0x522563]['iceBundle']]),clearTimeout(_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0x989)]),_0x42c792[_0x35bf4b(0x9f2)][_0x522563]['iceTimer']=null,_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0x54e)]=[],_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0xada)]=null,console[_0x35bf4b(0x282)](_0x35bf4b(0x585)));return;}try{if(_0x42c792[_0x35bf4b(0x757)]){if(_0x1e2ffc[_0x35bf4b(0x943)]['candidate'][_0x35bf4b(0x1de)](_0x42c792[_0x35bf4b(0x757)])===-0x1){log('dropped\x20candidate\x20due\x20to\x20filter');return;}else log(_0x1e2ffc[_0x35bf4b(0x943)]);}}catch(_0xd6936e){errorlog(_0xd6936e);}try{if(_0x42c792[_0x35bf4b(0x724)]){if(!filterIceLAN(_0x1e2ffc[_0x35bf4b(0x943)]))return;}if(_0x42c792['stunOnly']){if(!filterStunOnly(_0x1e2ffc[_0x35bf4b(0x943)]))return;}}catch(_0x2083e4){errorlog(_0x2083e4);}_0x42c792['rpcs'][_0x522563][_0x35bf4b(0x54e)][_0x35bf4b(0x3e0)](_0x1e2ffc[_0x35bf4b(0x943)]);if(_0x42c792[_0x35bf4b(0x9f2)][_0x522563]&&(_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0xada)]||_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0x989)]!==null))return;_0x42c792['rpcs'][_0x522563][_0x35bf4b(0x989)]=setTimeout(function(_0x56d5d0){var _0x3c3c5c=_0x35bf4b;if(!(_0x56d5d0 in _0x42c792[_0x3c3c5c(0x9f2)]))return;if(_0x42c792['rpcs'][_0x56d5d0][_0x3c3c5c(0xada)])return;_0x42c792['rpcs'][_0x56d5d0]['iceTimer']=null;if(!_0x42c792[_0x3c3c5c(0x9f2)][_0x56d5d0]['iceBundle']||!_0x42c792[_0x3c3c5c(0x9f2)][_0x56d5d0][_0x3c3c5c(0x54e)][_0x3c3c5c(0x606)]){errorlog(_0x3c3c5c(0x8ed));return;}var _0x338a87={};_0x338a87[_0x3c3c5c(0xac6)]=_0x56d5d0,_0x338a87[_0x3c3c5c(0x94c)]=_0x3c3c5c(0x5e7),_0x338a87[_0x3c3c5c(0x243)]=_0x42c792[_0x3c3c5c(0x9f2)][_0x56d5d0]['iceBundle'],_0x338a87['session']=_0x42c792[_0x3c3c5c(0x9f2)][_0x56d5d0][_0x3c3c5c(0x610)],_0x42c792[_0x3c3c5c(0x9f2)][_0x56d5d0][_0x3c3c5c(0x54e)]=[],_0x42c792[_0x3c3c5c(0x9f2)][_0x56d5d0][_0x3c3c5c(0x268)]=0x3e8;if(_0x42c792['rpcs'][_0x56d5d0][_0x3c3c5c(0x5f7)])return;_0x42c792['password']&&_0x42c792['rpcs'][_0x56d5d0][_0x3c3c5c(0x97b)]?_0x42c792[_0x3c3c5c(0x712)](JSON[_0x3c3c5c(0x895)](_0x338a87['candidates']))[_0x3c3c5c(0x272)](function(_0x19d0ef){var _0x4525d4=_0x3c3c5c;_0x338a87['candidates']=_0x19d0ef[0x0],_0x338a87[_0x4525d4(0x97b)]=_0x19d0ef[0x1],_0x42c792[_0x4525d4(0x52b)](_0x338a87);})['catch'](errorlog):_0x42c792[_0x3c3c5c(0x52b)](_0x338a87);},_0x42c792[_0x35bf4b(0x9f2)][_0x522563][_0x35bf4b(0x268)],_0x522563);},_0x42c792['rpcs'][_0x522563][_0x679e45(0x19f)]=function(_0x4eb1f6){var _0x4d9e3d=_0x679e45;switch(this[_0x4d9e3d(0x9e2)]){case'new':log('new'),log(_0x4d9e3d(0x1fa)),clearInterval(_0x42c792[_0x4d9e3d(0x9f2)][this['UUID']][_0x4d9e3d(0x7c0)]);case _0x4d9e3d(0x266):log(_0x4d9e3d(0x266)),log('closeTimeout\x20cancelled;\x203'),clearInterval(_0x42c792['rpcs'][this[_0x4d9e3d(0xac6)]]['closeTimeout']);case _0x4d9e3d(0x36f):log('**\x20connected'),log('closeTimeout\x20cancelled;\x204'),clearInterval(_0x42c792['rpcs'][this[_0x4d9e3d(0xac6)]][_0x4d9e3d(0x7c0)]);if(_0x42c792[_0x4d9e3d(0x183)]){if(_0x42c792['ws']['readyState']!==0x1){_0x42c792['ws']['close']();break;}_0x42c792['ws']['close'](),setTimeout(function(){var _0x1c0b2b=_0x4d9e3d;_0x42c792[_0x1c0b2b(0xad1)]!=!![]&&warnUser(getTranslation(_0x1c0b2b(0x2aa)));},0x1);}break;case _0x4d9e3d(0x6d0):log(_0x4d9e3d(0x777)),warnlog(_0x4d9e3d(0x309));if(this[_0x4d9e3d(0xac6)]in _0x42c792[_0x4d9e3d(0x9f2)]){clearInterval(_0x42c792[_0x4d9e3d(0x9f2)][this['UUID']][_0x4d9e3d(0x7c0)]),_0x42c792[_0x4d9e3d(0x9f2)][this[_0x4d9e3d(0xac6)]][_0x4d9e3d(0x268)]=0x0;if(_0x42c792[_0x4d9e3d(0x9f2)][this[_0x4d9e3d(0xac6)]][_0x4d9e3d(0x70a)])return;_0x42c792[_0x4d9e3d(0x9f2)][this[_0x4d9e3d(0xac6)]][_0x4d9e3d(0x7c0)]=setTimeout(function(_0x5b1181){var _0x599e1e=_0x4d9e3d;log(_0x599e1e(0x97f)),_0x42c792[_0x599e1e(0x9b8)](_0x5b1181);},0x1388,this[_0x4d9e3d(0xac6)]);}else log('UUID\x20not\x20found;\x20can\x27t\x20close.');break;case _0x4d9e3d(0x9c8):warnlog(_0x4d9e3d(0x836)),log('closeTimeout\x20cancelled;\x206\x27\x20retry\x20in\x203s?');this['UUID']in _0x42c792[_0x4d9e3d(0x9f2)]?(clearInterval(_0x42c792[_0x4d9e3d(0x9f2)][this['UUID']][_0x4d9e3d(0x7c0)]),_0x42c792[_0x4d9e3d(0x9f2)][this['UUID']]['delayIceSend']=0x0,_0x42c792[_0x4d9e3d(0x9f2)][this[_0x4d9e3d(0xac6)]][_0x4d9e3d(0x7c0)]=setTimeout(function(_0x4df134){var _0x2850c5=_0x4d9e3d;log(_0x2850c5(0x98b)),_0x42c792[_0x2850c5(0x9b8)](_0x4df134);},0xbb8,this[_0x4d9e3d(0xac6)])):log(_0x4d9e3d(0x715));break;case _0x4d9e3d(0x981):warnlog('RTC\x20closed'),_0x42c792[_0x4d9e3d(0x9b8)](this['UUID']);break;default:log('closeTimeout\x20cancelled;\x207'),log(_0x4d9e3d(0x2a7)+this[_0x4d9e3d(0x9e2)]),clearInterval(_0x42c792[_0x4d9e3d(0x9f2)][this['UUID']][_0x4d9e3d(0x7c0)]);break;}},_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x516)]=function(_0x47c0cb){var _0x62e04d=_0x679e45;let _0x301feb=_0x47c0cb[_0x62e04d(0x2e0)];switch(_0x301feb[_0x62e04d(0xa31)]){case'gathering':log(_0x62e04d(0x558));break;case _0x62e04d(0x2af):log(_0x62e04d(0x553));_0x42c792[_0x62e04d(0x9f2)][_0x522563]['whipCallback2']&&(_0x42c792['rpcs'][_0x522563][_0x62e04d(0xada)]([..._0x42c792['rpcs'][_0x522563][_0x62e04d(0x54e)]]),clearTimeout(_0x42c792[_0x62e04d(0x9f2)][_0x522563][_0x62e04d(0x989)]),_0x42c792['rpcs'][_0x522563]['iceTimer']=null,_0x42c792[_0x62e04d(0x9f2)][_0x522563][_0x62e04d(0x54e)]=[],_0x42c792[_0x62e04d(0x9f2)][_0x522563][_0x62e04d(0xada)]=null);break;}},_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x5c0)]=function(){var _0x234bf5=_0x679e45;try{if(this[_0x234bf5(0x910)]==_0x234bf5(0x981))errorlog(_0x234bf5(0x212));else{if(this[_0x234bf5(0x910)]==_0x234bf5(0x6d0)){if(_0x42c792['rpcs'][_0x522563][_0x234bf5(0x70a)])return;warnlog(_0x234bf5(0xb22)),_0x42c792[_0x234bf5(0x9f2)][_0x522563]['opacityDisconnect']='0',_0x42c792['rpcs'][_0x522563][_0x234bf5(0xb58)][_0x234bf5(0x84c)]['opacity']='0',_0x42c792['rpcs'][_0x522563][_0x234bf5(0x7cf)]=setTimeout(function(_0x2b96a7){updateMixer();},0x1f4,_0x522563);}else this[_0x234bf5(0x910)]==_0x234bf5(0x9c8)?errorlog(_0x234bf5(0x904)):(log(_0x234bf5(0x69b)+this['iceConnectionState']),_0x42c792[_0x234bf5(0x9f2)][_0x522563][_0x234bf5(0x7cf)]&&clearTimeout(_0x42c792['rpcs'][_0x522563]['disconnectedTimeout']),_0x42c792[_0x234bf5(0x9f2)][_0x522563][_0x234bf5(0xb58)]&&'opacity'in _0x42c792['rpcs'][_0x522563][_0x234bf5(0xb58)][_0x234bf5(0x84c)]?_0x42c792['rpcs'][_0x522563][_0x234bf5(0x31c)]=='0'&&_0x42c792[_0x234bf5(0x9f2)][_0x522563][_0x234bf5(0xb5d)]=='1'?(_0x42c792['rpcs'][_0x522563][_0x234bf5(0xb58)][_0x234bf5(0x84c)]['opacity']='1',_0x42c792[_0x234bf5(0x9f2)][_0x522563][_0x234bf5(0x31c)]='1',updateMixer()):_0x42c792[_0x234bf5(0x9f2)][_0x522563]['opacityDisconnect']='1':_0x42c792['rpcs'][_0x522563]['opacityDisconnect']='1');}}catch(_0x14cfbf){}},_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x8f1)]=function(_0x357355){var _0x2fd621=_0x679e45;log(_0x357355);if(_0x357355['channel']['label']&&_0x357355[_0x2fd621(0x536)][_0x2fd621(0x625)]!==_0x2fd621(0x2b7)){if(_0x42c792[_0x2fd621(0x8d5)][_0x2fd621(0x401)](_0x42c792[_0x2fd621(0x9f2)][_0x522563][_0x2fd621(0x476)]))return;if(_0x357355[_0x2fd621(0x536)][_0x2fd621(0x625)]===_0x2fd621(0x4b8))_0x42c792['recieveChunkedStream'](_0x522563,_0x357355['channel']);else _0x357355[_0x2fd621(0x536)]['label']===_0x2fd621(0x753)?_0x42c792[_0x2fd621(0x873)](_0x522563,_0x357355[_0x2fd621(0x536)]):_0x42c792['recieveFile'](_0x42c792['rpcs'],_0x522563,_0x357355['channel']);return;}_0x42c792[_0x2fd621(0x9f2)][_0x522563]['receiveChannel']=_0x357355[_0x2fd621(0x536)],_0x42c792['rpcs'][_0x522563][_0x2fd621(0x9f1)][_0x2fd621(0xac6)]=_0x522563,_0x42c792[_0x2fd621(0x9f2)][_0x522563][_0x2fd621(0x9f1)][_0x2fd621(0x556)]=_0x1d3d4d=>{var _0x2ddff5=_0x2fd621;_0x1d3d4d[_0x2ddff5(0x8fd)]&&_0x1d3d4d[_0x2ddff5(0x8fd)]['sctpCauseCode']&&_0x1d3d4d[_0x2ddff5(0x8fd)][_0x2ddff5(0x690)]!==0xc&&warnlog(_0x1d3d4d),log(_0x2ddff5(0xb00)+_0x522563);},_0x42c792[_0x2fd621(0x9f2)][_0x522563][_0x2fd621(0x9f1)][_0x2fd621(0xaf3)]=_0x4db890=>{var _0xb6a6a2=_0x2fd621;_0x42c792[_0xb6a6a2(0x9f2)][_0x522563]['delayIceSend']=0x0;var _0x5976e8={};_0x5976e8['downloads']=![],_0x5976e8[_0xb6a6a2(0x566)]=![],_0x5976e8['allowdrawing']=![],_0x5976e8[_0xb6a6a2(0x927)]=![],_0x5976e8[_0xb6a6a2(0x99f)]=![],_0x5976e8[_0xb6a6a2(0x864)]=![],_0x5976e8['video']=![],_0x5976e8[_0xb6a6a2(0x3ab)]=![],_0x5976e8[_0xb6a6a2(0xa5f)]=![],_0x5976e8[_0xb6a6a2(0x6de)]=![],_0x5976e8[_0xb6a6a2(0x513)]=![],_0x5976e8[_0xb6a6a2(0x1f2)]=![],_0x5976e8[_0xb6a6a2(0x8c3)]=![];_0x42c792[_0xb6a6a2(0xb51)]&&(_0x42c792[_0xb6a6a2(0xb51)]===_0xb6a6a2(0x471)||_0x42c792['audioCodec']==='lyra')&&(_0x5976e8[_0xb6a6a2(0xb1e)]=_0x42c792[_0xb6a6a2(0xb51)]);try{if(_0x42c792[_0xb6a6a2(0x377)]!==![]){if(_0x42c792[_0xb6a6a2(0x377)]===!![])_0x5976e8[_0xb6a6a2(0x6de)]=!![],_0x5976e8[_0xb6a6a2(0x513)]=!![];else _0x42c792[_0xb6a6a2(0x377)]['includes'](_0x42c792['rpcs'][_0x522563]['streamID'])?(_0x5976e8[_0xb6a6a2(0x6de)]=!![],_0x5976e8[_0xb6a6a2(0x513)]=!![]):(_0x5976e8[_0xb6a6a2(0x6de)]=![],_0x5976e8[_0xb6a6a2(0x513)]=![]);}else _0x5976e8['allowscreenaudio']=!![],_0x5976e8[_0xb6a6a2(0x513)]=!![];if(_0x5976e8['allowscreenvideo']){if(_0x42c792['novideo']!==![])!_0x42c792[_0xb6a6a2(0x383)][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)]+':s')&&(_0x5976e8[_0xb6a6a2(0x513)]=![]);else{if(_0x42c792[_0xb6a6a2(0x3ab)]!==![]){if(_0x42c792[_0xb6a6a2(0x3ab)]!==null)_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)]+':s'===_0x42c792['broadcast']?_0x5976e8[_0xb6a6a2(0x3ab)]=!![]:_0x5976e8[_0xb6a6a2(0x513)]=![];else _0x42c792['directorUUID']&&(_0x522563==_0x42c792['directorUUID']?_0x5976e8[_0xb6a6a2(0x3ab)]=!![]:_0x5976e8[_0xb6a6a2(0x513)]=![]);}else _0x42c792['exclude']!==![]&&(_0x42c792[_0xb6a6a2(0x5a8)][_0xb6a6a2(0x401)](_0x42c792['rpcs'][_0x522563][_0xb6a6a2(0x476)]+':s')&&(_0x5976e8['video']=![]));}}if(_0x5976e8[_0xb6a6a2(0x6de)]){if(_0x42c792[_0xb6a6a2(0x71e)]!==![])!_0x42c792[_0xb6a6a2(0x71e)][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)]+':s')&&(_0x5976e8['allowscreenaudio']=![]);else _0x42c792[_0xb6a6a2(0x799)]&&(_0x42c792['excludeaudio'][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)]+':s')&&(_0x5976e8[_0xb6a6a2(0x6de)]=![]));}}catch(_0x227b73){errorlog(_0x227b73);}try{if(_0x42c792['novideo']!==![]){if(_0x42c792[_0xb6a6a2(0x383)][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)]))_0x5976e8['video']=!![];else _0x42c792['novideo'][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)]+':s')?_0x5976e8['video']=0x2:_0x5976e8[_0xb6a6a2(0x735)]=![];}else{if(_0x42c792['broadcast']!==![]){if(_0x42c792[_0xb6a6a2(0x3ab)]!==null)_0x42c792['rpcs'][_0x522563][_0xb6a6a2(0x476)]===_0x42c792[_0xb6a6a2(0x3ab)]?(_0x5976e8[_0xb6a6a2(0x3ab)]=!![],_0x5976e8[_0xb6a6a2(0x735)]=!![]):_0x5976e8['video']=![];else _0x42c792['directorUUID']&&(_0x522563==_0x42c792['directorUUID']?(_0x5976e8[_0xb6a6a2(0x3ab)]=!![],_0x5976e8[_0xb6a6a2(0x735)]=!![]):_0x5976e8[_0xb6a6a2(0x735)]=![]);}else _0x42c792[_0xb6a6a2(0x5a8)]!==![]?_0x42c792[_0xb6a6a2(0x5a8)]['includes'](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)])?_0x5976e8['video']=![]:_0x5976e8[_0xb6a6a2(0x735)]=!![]:_0x5976e8[_0xb6a6a2(0x735)]=!![];}if(_0x42c792[_0xb6a6a2(0x71e)]!==![]){if(_0x42c792['noaudio']['includes'](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563]['streamID']))_0x5976e8['audio']=!![];else _0x42c792[_0xb6a6a2(0x71e)]['includes'](_0x42c792['rpcs'][_0x522563]['streamID']+':s')?_0x5976e8[_0xb6a6a2(0x864)]=0x2:_0x5976e8[_0xb6a6a2(0x864)]=![];}else _0x42c792[_0xb6a6a2(0x799)]&&_0x42c792[_0xb6a6a2(0x799)][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)])?_0x5976e8[_0xb6a6a2(0x864)]=![]:_0x5976e8[_0xb6a6a2(0x864)]=!![];_0x42c792[_0xb6a6a2(0x32b)]&&_0x42c792[_0xb6a6a2(0x74b)][_0xb6a6a2(0x1de)](_0x522563)>=0x0&&(_0x5976e8[_0xb6a6a2(0x864)]=![]);_0x42c792['nodirectorvideo']&&_0x42c792[_0xb6a6a2(0x74b)][_0xb6a6a2(0x1de)](_0x522563)>=0x0&&(_0x5976e8[_0xb6a6a2(0x735)]=![]);_0x42c792['noiframe']!==![]?_0x42c792['noiframe'][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)])?_0x5976e8[_0xb6a6a2(0x927)]=!![]:_0x5976e8[_0xb6a6a2(0x927)]=![]:_0x5976e8['iframe']=!![];if(_0x42c792['noWidget']!==![])_0x42c792[_0xb6a6a2(0x223)][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563]['streamID'])?_0x5976e8[_0xb6a6a2(0x99f)]=!![]:_0x5976e8['widget']=![];else{if(_0x42c792[_0xb6a6a2(0x2ea)]!==![])_0x5976e8[_0xb6a6a2(0x99f)]=![];else _0x42c792[_0xb6a6a2(0x1be)]&&!_0x42c792[_0xb6a6a2(0x843)]&&_0x42c792[_0xb6a6a2(0x936)]===![]?_0x5976e8['widget']=![]:_0x5976e8[_0xb6a6a2(0x99f)]=!![];}_0x42c792[_0xb6a6a2(0x9e9)]&&(_0x5976e8['allowmeshcast']=![]),_0x42c792[_0xb6a6a2(0x26c)]&&(_0x5976e8[_0xb6a6a2(0x311)]=_0x42c792[_0xb6a6a2(0x26c)]),_0x42c792[_0xb6a6a2(0x531)]!==![]&&(!_0x42c792[_0xb6a6a2(0x531)]['includes'](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)])&&(_0x5976e8[_0xb6a6a2(0x735)]=![],_0x5976e8[_0xb6a6a2(0x864)]=![])),(_0x42c792[_0xb6a6a2(0x20f)]||_0x42c792[_0xb6a6a2(0x446)]||_0x42c792[_0xb6a6a2(0x166)]||_0x42c792[_0xb6a6a2(0x9ee)])&&(_0x5976e8[_0xb6a6a2(0x566)]=_0x42c792['midiIn']||_0x42c792[_0xb6a6a2(0x446)]||_0x42c792[_0xb6a6a2(0x166)]||_0x42c792[_0xb6a6a2(0x9ee)]),_0x5976e8['downloads']=!![],_0x42c792[_0xb6a6a2(0x2da)]&&(_0x5976e8[_0xb6a6a2(0x99b)]=![]),_0x42c792[_0xb6a6a2(0x437)]?_0x5976e8[_0xb6a6a2(0x1f2)]=![]:_0x5976e8[_0xb6a6a2(0x1f2)]=_0x42c792[_0xb6a6a2(0x79d)]?0x2:0x1,_0x42c792[_0xb6a6a2(0x6ea)]&&(_0x5976e8[_0xb6a6a2(0x8c3)]=_0x42c792[_0xb6a6a2(0x6ea)]),_0x42c792['allowDrawing']&&(_0x5976e8['allowdrawing']=!![]),_0x42c792[_0xb6a6a2(0x565)]&&(_0x42c792[_0xb6a6a2(0x565)]==_0xb6a6a2(0xb21)||_0x42c792[_0xb6a6a2(0x565)]==_0xb6a6a2(0x67a)||_0x42c792[_0xb6a6a2(0x565)]==_0xb6a6a2(0x4c5))&&(_0x5976e8[_0xb6a6a2(0xa5f)]=!![]),_0x42c792[_0xb6a6a2(0x1a3)]&&(_0x5976e8[_0xb6a6a2(0x185)]=!![]),_0x42c792[_0xb6a6a2(0x8d5)][_0xb6a6a2(0x401)](_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x476)])&&(warnlog(_0xb6a6a2(0x93d)),_0x5976e8[_0xb6a6a2(0x9bc)]=![],_0x5976e8[_0xb6a6a2(0x1f2)]=![],_0x5976e8[_0xb6a6a2(0x7d6)]=![],_0x5976e8['allowresources']=![],_0x5976e8[_0xb6a6a2(0x185)]=![],_0x5976e8[_0xb6a6a2(0x99b)]=![],_0x5976e8[_0xb6a6a2(0x566)]=![],_0x5976e8[_0xb6a6a2(0x927)]=![],_0x5976e8[_0xb6a6a2(0x99f)]=![],_0x5976e8[_0xb6a6a2(0x864)]=![],_0x5976e8[_0xb6a6a2(0x735)]=![],_0x5976e8[_0xb6a6a2(0x3ab)]=![],_0x5976e8[_0xb6a6a2(0xa5f)]=![],_0x5976e8[_0xb6a6a2(0x6de)]=![],_0x5976e8[_0xb6a6a2(0x513)]=![]);}catch(_0x34ab28){errorlog(_0x34ab28);}try{_0x5976e8[_0xb6a6a2(0x9aa)]={},_0x5976e8['info'][_0xb6a6a2(0x625)]=_0x42c792[_0xb6a6a2(0x625)],_0x5976e8['info'][_0xb6a6a2(0x452)]=_0x42c792[_0xb6a6a2(0x452)],_0x5976e8[_0xb6a6a2(0x9aa)]['order']=_0x42c792['order'],_0x5976e8['info'][_0xb6a6a2(0x2d5)]=_0x42c792['stereo'],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0xacf)]=_0x42c792['bitrate'],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x916)]=_0x42c792[_0xb6a6a2(0x8bd)],_0x5976e8[_0xb6a6a2(0x9aa)]['codec_url']=_0x42c792[_0xb6a6a2(0x565)];_0x42c792[_0xb6a6a2(0xb51)]&&(_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x230)]=_0x42c792['audioCodec']);_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x41f)]=_0x42c792[_0xb6a6a2(0x41f)],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0xb2e)]=_0x42c792[_0xb6a6a2(0xb2e)],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x8d2)]=_0x42c792[_0xb6a6a2(0x219)],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x737)]=_0x42c792[_0xb6a6a2(0x737)],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x7a3)]=_0x42c792['minptime'],_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x356)]=_0x42c792[_0xb6a6a2(0x356)];Firefox&&(_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x3e5)]=Firefox);ChromiumVersion&&(_0x5976e8[_0xb6a6a2(0x9aa)]['chromium']=ChromiumVersion);SafariVersion&&(_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x2cb)]=SafariVersion);navigator&&navigator[_0xb6a6a2(0x63e)]&&(_0x5976e8['info'][_0xb6a6a2(0x410)]=navigator['userAgent']);navigator&&navigator[_0xb6a6a2(0x72f)]&&(_0x5976e8['info'][_0xb6a6a2(0x72f)]=navigator[_0xb6a6a2(0x72f)]);gpgpuSupport&&(_0x5976e8['info']['gpGPU']=gpgpuSupport);cpuSupport&&(_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x6aa)]=cpuSupport);if(_0x42c792[_0xb6a6a2(0x79f)]===![]){if(window['obsstudio']){_0x5976e8[_0xb6a6a2(0x9aa)][_0xb6a6a2(0x4f3)]=window[_0xb6a6a2(0xa53)][_0xb6a6a2(0x263)];try{_0x5976e8=_0x42c792[_0xb6a6a2(0x772)](_0x5976e8,_0x522563);}catch(_0x19ce5c){errorlog(_0x19ce5c),warnUser(_0x19ce5c[_0xb6a6a2(0x937)]);}}else _0x5976e8[_0xb6a6a2(0x9aa)]['obs']=![];}else _0x5976e8[_0xb6a6a2(0x9aa)]['obs']=![];}catch(_0x330418){}_0x5976e8[_0xb6a6a2(0x639)]=![],_0x5976e8['scene']=![],_0x5976e8[_0xb6a6a2(0x843)]=![],_0x5976e8['limitaudio']=![],_0x5976e8[_0xb6a6a2(0xb2e)]=![];_0x42c792[_0xb6a6a2(0x5e7)]&&(_0x5976e8['remote']=!![]);_0x42c792[_0xb6a6a2(0x219)]&&(_0x5976e8[_0xb6a6a2(0x8b9)]=!![]);_0x42c792[_0xb6a6a2(0x846)]&&(_0x5976e8[_0xb6a6a2(0x846)]=_0x42c792['degrade']);_0x42c792['solo']&&(_0x5976e8[_0xb6a6a2(0x76b)]=_0x42c792[_0xb6a6a2(0x76b)]);_0x42c792[_0xb6a6a2(0x9e6)]!==![]&&(_0x5976e8[_0xb6a6a2(0x9e6)]=_0x42c792[_0xb6a6a2(0x9e6)]);if(_0x42c792['director']){_0x5976e8['director']=!![],_0x5976e8['forceios']=_0x42c792[_0xb6a6a2(0xb2e)];if(_0x42c792[_0xb6a6a2(0x95b)]&&_0x42c792[_0xb6a6a2(0x95b)]===_0x522563)_0x42c792[_0xb6a6a2(0xaae)]();else{var _0x404474={};_0x404474[_0xb6a6a2(0x4b6)]=[];for(var _0x46c4f5 in _0x42c792[_0xb6a6a2(0x3c0)]){_0x42c792[_0xb6a6a2(0x3c0)][_0x46c4f5][_0xb6a6a2(0x47d)]===!![]&&_0x404474['addCoDirector'][_0xb6a6a2(0x3e0)](_0x46c4f5);}_0x404474[_0xb6a6a2(0x4b6)]['length']&&(_0x5976e8[_0xb6a6a2(0x90a)]=_0x404474);}if(_0x42c792[_0xb6a6a2(0xb41)]&&_0x42c792['roomTimer']>0x0)_0x5976e8[_0xb6a6a2(0x75a)]=_0x42c792[_0xb6a6a2(0xb41)]-Date['now']()/0x3e8,_0x5976e8[_0xb6a6a2(0x9de)]=!![],_0x5976e8[_0xb6a6a2(0xa9e)]=!![];else _0x42c792[_0xb6a6a2(0xb41)]&&_0x42c792[_0xb6a6a2(0xb41)]<0x0&&(_0x5976e8[_0xb6a6a2(0x75a)]=_0x42c792['roomTimer']*-0x1,_0x5976e8[_0xb6a6a2(0x9de)]=!![],_0x5976e8['startClock']=!![],_0x5976e8[_0xb6a6a2(0x567)]=!![]);_0x42c792[_0xb6a6a2(0x9c0)]&&(_0x5976e8[_0xb6a6a2(0x783)]=!![]);}else{if(_0x42c792[_0xb6a6a2(0x2ea)]!==![])_0x5976e8[_0xb6a6a2(0x2ea)]=_0x42c792[_0xb6a6a2(0x2ea)],(_0x42c792[_0xb6a6a2(0xa33)]||_0x42c792[_0xb6a6a2(0x76b)])&&(_0x5976e8[_0xb6a6a2(0xa33)]=_0x42c792['showDirector']||_0x42c792['solo']);else _0x42c792[_0xb6a6a2(0x273)]!==![]&&_0x42c792[_0xb6a6a2(0x273)]!==''&&(_0x5976e8['forceios']=_0x42c792[_0xb6a6a2(0xb2e)],_0x5976e8[_0xb6a6a2(0x639)]=!![]);}if(_0x42c792[_0xb6a6a2(0x330)])_0x5976e8[_0xb6a6a2(0x330)]=parseFloat(_0x42c792[_0xb6a6a2(0x330)]);else(_0x42c792[_0xb6a6a2(0x77c)]||_0x42c792[_0xb6a6a2(0x969)])&&(_0x5976e8['requestResolution']={},_0x5976e8[_0xb6a6a2(0xa4f)]['h']=null,_0x5976e8[_0xb6a6a2(0xa4f)]['w']=null,_0x42c792[_0xb6a6a2(0x77c)]&&(_0x5976e8[_0xb6a6a2(0xa4f)]['h']=_0x42c792['viewheight'],_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x404)]=_0x42c792[_0xb6a6a2(0x77c)]),_0x42c792[_0xb6a6a2(0x969)]&&(_0x5976e8['requestResolution']['w']=_0x42c792[_0xb6a6a2(0x969)],_0x42c792['rpcs'][_0x522563][_0xb6a6a2(0x3f5)]=_0x42c792[_0xb6a6a2(0x969)]));!_0x42c792[_0xb6a6a2(0x273)]&&(_0x42c792['beepToNotify']&&(playtone(![],'jointone'),showNotification(_0xb6a6a2(0x5f4)))),_0x42c792[_0xb6a6a2(0x9f2)][_0x522563][_0xb6a6a2(0x6e3)]=_0x5976e8,_0x42c792[_0xb6a6a2(0x380)](_0x5976e8,_0x522563)?log('successfully\x20requested\x20audio\x20and\x20video?\x20maybe?'):errorlog(_0xb6a6a2(0x2c7)),pokeIframeAPI(_0xb6a6a2(0x86b),!![],_0x522563),pokeIframeAPI(_0xb6a6a2(0x948),!![],_0x522563),pokeAPI(_0xb6a6a2(0x9d4),_0x42c792[_0xb6a6a2(0x9f2)][_0x522563]['streamID']),_0x42c792['updateOnSlotChange']&&(_0x42c792['layout_array']&&(_0x42c792[_0xb6a6a2(0x185)]=combinedLayout(_0x42c792['layout_array'])),updateMixer()),clearTimeout(_0x42c792['rpcs'][_0x522563]['getStatsTimeout']),_0x42c792['rpcs'][_0x522563][_0xb6a6a2(0x5c9)]=setTimeout(processStats,0x0,_0x522563);},_0x42c792['rpcs'][_0x522563][_0x2fd621(0x9f1)]['onmessage']=async _0x4e5ee5=>{var _0x3eb0ae=_0x2fd621;if(typeof _0x4e5ee5['data']==_0x3eb0ae(0x698)){if(!_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)]){_0x42c792['rpcs'][_0x522563][_0x3eb0ae(0x25f)]=document[_0x3eb0ae(0x27d)](_0x3eb0ae(0x58b)),_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0xb1b)]=0x10,_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x229)]=0x9,_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x84c)][_0x3eb0ae(0x7ad)]=_0x3eb0ae(0x499),_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x5d0)][_0x3eb0ae(0xac6)]=_0x522563;try{_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x5d0)][_0x3eb0ae(0x68b)]=_0x42c792['rpcs'][_0x522563]['streamID'];}catch(_0x4feaee){}_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x4d2)]=![],_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x839)](_0x3eb0ae(0xafc),function(_0x4a3040){var _0x289c3d=_0x3eb0ae;log(_0x289c3d(0x5d4));try{if(_0x4a3040[_0x289c3d(0x2c9)]||_0x4a3040[_0x289c3d(0x908)]){_0x4a3040[_0x289c3d(0x800)]();if(_0x42c792[_0x289c3d(0x8f7)]!==![]){var _0x52cd67=_0x4a3040[_0x289c3d(0xad8)][_0x289c3d(0x5d0)][_0x289c3d(0xac6)];if('stats'in _0x42c792[_0x289c3d(0x9f2)][_0x52cd67]){var [_0x1acc04,_0x3fbd02]=statsMenuCreator();printViewStats(_0x3fbd02,_0x52cd67),_0x1acc04[_0x289c3d(0x3c3)]=setInterval(printViewStats,_0x42c792[_0x289c3d(0x5ed)],_0x3fbd02,_0x52cd67);}}return _0x4a3040[_0x289c3d(0x400)](),![];}}catch(_0x3ca122){errorlog(_0x3ca122);}}),updateMixer();}else _0x42c792[_0x3eb0ae(0x9f2)][_0x522563]['imageElement'][_0x3eb0ae(0x4d2)]&&(_0x42c792['rpcs'][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x4d2)]=![],_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)][_0x3eb0ae(0x84c)][_0x3eb0ae(0xb20)]=_0x3eb0ae(0x40d));_0x42c792[_0x3eb0ae(0x9f2)][_0x522563][_0x3eb0ae(0x25f)]['src']=window[_0x3eb0ae(0x3ad)][_0x3eb0ae(0x688)](new Blob([new Uint8Array(_0x4e5ee5[_0x3eb0ae(0x461)])],{'type':'image/webp'}));return;}try{var _0x501a5e=JSON[_0x3eb0ae(0x867)](_0x4e5ee5[_0x3eb0ae(0x461)]);_0x501a5e[_0x3eb0ae(0xac6)]=_0x522563;if(_0x501a5e['smid']||_0x501a5e[_0x3eb0ae(0x7e3)]){let _0x5f5481=_0x501a5e[_0x3eb0ae(0x618)]||_0x501a5e[_0x3eb0ae(0x7e3)];if(_0x42c792['mids'][_0x522563]){if(_0x42c792[_0x3eb0ae(0xa01)][_0x522563][_0x3eb0ae(0x401)](_0x5f5481))return;else _0x42c792[_0x3eb0ae(0xa01)][_0x522563][_0x3eb0ae(0x3e0)](_0x5f5481);}else _0x42c792[_0x3eb0ae(0xa01)][_0x522563]=[_0x5f5481];}_0x3eb0ae(0x1e4)in _0x501a5e?await _0x42c792['processRPCSOnMessage'](_0x501a5e,_0x522563+_0x3eb0ae(0x4b7)):await _0x42c792['processRPCSOnMessage'](_0x501a5e,_0x522563);}catch(_0x1a8834){warnlog(_0x3eb0ae(0x362)),warnlog(_0x1a8834[_0x3eb0ae(0x461)]);}},_0x42c792[_0x2fd621(0xb38)]=async function(_0x293f3e,_0x383d8b){var _0x426634=_0x2fd621;warnlog(_0x293f3e);if(_0x426634(0xabc)in _0x293f3e){warnlog(_0x426634(0x4ab)),_0x42c792[_0x426634(0x9b8)](_0x383d8b,!![]);return;}else{if(_0x426634(0x68d)in _0x293f3e){var _0x98539b={};_0x98539b[_0x426634(0x2df)]=_0x293f3e[_0x426634(0x68d)],_0x42c792[_0x426634(0x380)](_0x98539b,_0x383d8b),warnlog(_0x426634(0x74c));return;}else{if(_0x426634(0x2df)in _0x293f3e){warnlog(_0x426634(0x215));return;}}}log(_0x426634(0xb55)),log(_0x293f3e);var _0x216caa=![],_0x275348=![];if(_0x426634(0x5dd)in _0x293f3e)_0x42c792[_0x426634(0x211)](_0x293f3e);else{if(_0x426634(0x943)in _0x293f3e)_0x293f3e[_0x426634(0xac6)]=_0x383d8b,log(_0x426634(0x434)),_0x42c792[_0x426634(0x80b)](_0x293f3e);else _0x426634(0x243)in _0x293f3e&&(_0x293f3e[_0x426634(0xac6)]=_0x383d8b,log(_0x426634(0x861)),_0x42c792[_0x426634(0x6d1)](_0x293f3e));}_0x426634(0x9be)in _0x293f3e&&_0x406ae8(_0x293f3e[_0x426634(0x9be)]);if(_0x426634(0x696)in _0x293f3e){if(_0x293f3e[_0x426634(0x696)]===_0x426634(0x51d))_0x42c792[_0x426634(0xa4c)]=![],!_0x42c792[_0x426634(0xad1)]&&(warnUser(getTranslation(_0x426634(0x1db))),miniTranslate(getById(_0x426634(0x6fc)),'not-the-director'));else{if(_0x293f3e[_0x426634(0x696)]===_0x426634(0x1b6))!_0x42c792[_0x426634(0xad1)]&&warnUser(getTranslation(_0x426634(0x754)),0xbb8);else{if(!_0x42c792[_0x426634(0xad1)]){if(_0x42c792['directorUUID']===_0x383d8b)warnUser(getTranslation(_0x426634(0x9c5)),0x1388);else _0x42c792[_0x426634(0x5e7)]&&!_0x42c792['director']?warnUser(getTranslation(_0x426634(0x926)),0x1388):warnUser(getTranslation(_0x426634(0xa46)),0x1388);}else{if(_0x42c792[_0x426634(0x843)])!_0x42c792[_0x426634(0xad1)]&&warnUser(_0x426634(0x2fc)+_0x293f3e[_0x426634(0x696)]+_0x426634(0x33e),0x1388);else{if(!_0x42c792[_0x426634(0xad1)])_0x42c792['remote']?warnUser(getTranslation(_0x426634(0x831)),0x1388):warnUser(getTranslation(_0x426634(0x902)),0x1388);else{}}}}}errorlog(_0x426634(0x4b4)+_0x293f3e[_0x426634(0x696)]+_0x426634(0x930)+_0x42c792[_0x426634(0x843)]),pokeIframeAPI(_0x426634(0x696),_0x293f3e['rejected'],_0x383d8b);return;}else{if(_0x426634(0x88d)in _0x293f3e){if(_0x293f3e[_0x426634(0x88d)]==='requestCoDirector'){if(_0x42c792[_0x426634(0x843)]){try{_0x42c792[_0x426634(0x625)]===![]&&(document[_0x426634(0x7a4)]=getTranslation(_0x426634(0x2eb)));}catch(_0x3b371e){errorlog(_0x3b371e);}!_0x42c792[_0x426634(0xad1)]&&!_0x42c792[_0x426634(0xa4c)]&&(warnUser(getTranslation(_0x426634(0xa84)),0xbb8),miniTranslate(getById(_0x426634(0x6fc)),_0x426634(0x5ab)),miniTranslate(getById(_0x426634(0x8df)),_0x426634(0x61a))),!_0x42c792['directorState']&&(_0x42c792[_0x426634(0xa4c)]=!![],pokeAPI(_0x426634(0x16c),!![]),_0x42c792[_0x426634(0x5ce)](_0x383d8b));}}log(_0x426634(0x3b8)+_0x293f3e[_0x426634(0x88d)]),pokeIframeAPI(_0x426634(0x88d),_0x293f3e[_0x426634(0x88d)],_0x383d8b);return;}}if(_0x426634(0x343)in _0x293f3e)try{_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x343)]=_0x293f3e['iframeSrc']||![];if(_0x42c792[_0x426634(0x843)]){if(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x343)]){var _0x1b3622=document[_0x426634(0x27d)](_0x426634(0x51b));_0x1b3622[_0x426634(0x787)]=_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x343)],_0x1b3622[_0x426634(0x787)]=_0x1b3622['innerHTML'],_0x1b3622=_0x1b3622['textContent']||_0x1b3622[_0x426634(0x787)]||'',getById(_0x426634(0x43d)+_0x383d8b)[_0x426634(0x15f)]=_0x426634(0x62d)+_0x1b3622+'\x27\x20target=\x27_blank\x27>'+_0x1b3622+_0x426634(0xa2e),getById(_0x426634(0x43d)+_0x383d8b)[_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x4d2));}else getById(_0x426634(0x43d)+_0x383d8b)[_0x426634(0x33d)]['add'](_0x426634(0x4d2)),getById(_0x426634(0x43d)+_0x383d8b)['innerText']='';}else{if(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x343)]==![]){try{_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)][_0x426634(0x881)]();}catch(_0x2edd37){errorlog(_0x2edd37);}_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x359)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x359)][_0x426634(0x881)](),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x359)]=![]);_0x42c792['rpcs'][_0x383d8b]['iframeEle']=![],_0x216caa=!![];if(_0x42c792['broadcast']!==![]){if(_0x42c792[_0x426634(0x3ab)]!==null)_0x42c792[_0x426634(0x9f2)][_0x383d8b]['streamID']===_0x42c792[_0x426634(0x3ab)]&&(_0x42c792[_0x426634(0x726)]=![]);else _0x383d8b==_0x42c792[_0x426634(0x95b)]&&(_0x42c792[_0x426634(0x726)]=![]);}}else{if(_0x42c792[_0x426634(0x3ab)]!==![]){if(_0x42c792['broadcast']!==null){if(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]===_0x42c792[_0x426634(0x3ab)]){if(_0x42c792['noiframe']===![])_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)]=loadIframe(_0x293f3e['iframeSrc'],_0x383d8b),_0x216caa=!![],_0x42c792['broadcastIFrame']=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)][_0x426634(0x5d0)][_0x426634(0x68b)]=_0x42c792['rpcs'][_0x383d8b]['streamID']);else _0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]in _0x42c792[_0x426634(0x501)]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)]=loadIframe(_0x293f3e[_0x426634(0x343)],_0x383d8b),_0x216caa=!![],_0x42c792[_0x426634(0x726)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)][_0x426634(0x5d0)]['sid']=_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]));}}else{if(_0x42c792['directorUUID']){if(_0x383d8b==_0x42c792[_0x426634(0x95b)]){if(_0x42c792[_0x426634(0x501)]===![])_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)]=loadIframe(_0x293f3e[_0x426634(0x343)],_0x383d8b),_0x216caa=!![],_0x42c792[_0x426634(0x726)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)][_0x426634(0x5d0)][_0x426634(0x68b)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x476)]);else _0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]in _0x42c792[_0x426634(0x501)]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)]=loadIframe(_0x293f3e[_0x426634(0x343)],_0x383d8b),_0x216caa=!![],_0x42c792[_0x426634(0x726)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)][_0x426634(0x5d0)][_0x426634(0x68b)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x476)]));}}}}else{if(_0x42c792[_0x426634(0x501)]===![])_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)]=loadIframe(_0x293f3e[_0x426634(0x343)],_0x383d8b),_0x216caa=!![],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)][_0x426634(0x5d0)][_0x426634(0x68b)]=_0x42c792[_0x426634(0x9f2)][_0x383d8b]['streamID']);else _0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]in _0x42c792[_0x426634(0x501)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x547)]=loadIframe(_0x293f3e['iframeSrc'],_0x383d8b),_0x216caa=!![],_0x42c792[_0x426634(0x9f2)][_0x383d8b]['streamID']&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['iframeEle'][_0x426634(0x5d0)][_0x426634(0x68b)]=_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]));}}}}catch(_0x231978){errorlog(_0x231978);}else{if(_0x426634(0x3ce)in _0x293f3e){if(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x547)])try{_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x343)][_0x426634(0x52f)](_0x426634(0x9bb))&&processIframeSyncUpdates(_0x293f3e['ifs'],_0x383d8b);}catch(_0x5d8b0){errorlog(_0x5d8b0);}}}if('draw'in _0x293f3e){if(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xb58)]&&_0x42c792[_0x426634(0x628)]){!_0x42c792[_0x426634(0x9f2)][_0x383d8b]['canvasOverlay']&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['canvasOverlay']=receiveDrawingOnVideo(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['videoElement'],_0x383d8b));if(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x423)]){if(typeof _0x293f3e['draw']==_0x426634(0x974)){if(_0x293f3e[_0x426634(0xac5)]==_0x426634(0x3e7))_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x423)]['clearDrawing']();else{if(_0x293f3e[_0x426634(0xac5)]==_0x426634(0x8c4))_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x423)][_0x426634(0x8c4)]();else _0x293f3e[_0x426634(0xac5)]==_0x426634(0x82b)&&_0x42c792[_0x426634(0x9f2)][_0x383d8b]['canvasOverlay'][_0x426634(0xa3c)](_0x426634(0x82b));}}else _0x42c792[_0x426634(0x9f2)][_0x383d8b]['canvasOverlay']['updateDrawing'](_0x293f3e[_0x426634(0xac5)]);}}return;}if(_0x426634(0x5e7)in _0x293f3e)try{_0x293f3e=await _0x42c792[_0x426634(0x732)](_0x293f3e);if(!_0x293f3e)return;}catch(_0x591740){errorlog(_0x591740);}'obsCommand'in _0x293f3e&&processOBSCommand(_0x293f3e);if('chat'in _0x293f3e){var _0x3aa42c=![],_0x4aa3a0=![];_0x42c792[_0x426634(0x95b)]===_0x383d8b&&(_0x3aa42c=!![],_0x426634(0x5a2)in _0x293f3e&&(_0x4aa3a0=_0x293f3e[_0x426634(0x5a2)]));if(_0x42c792[_0x426634(0x843)]){if(_0x293f3e[_0x426634(0x8e0)]==_0x426634(0x638))_0x42c792[_0x426634(0x6ad)]&&playtone(),getById(_0x426634(0x607)+_0x383d8b)[_0x426634(0x33d)]['remove'](_0x426634(0x4d2)),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x7d1)][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x4d2));else _0x293f3e[_0x426634(0x8e0)]==_0x426634(0x1bd)&&(getById(_0x426634(0x607)+_0x383d8b)[_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x4d2)),_0x42c792[_0x426634(0x9f2)][_0x383d8b]['remoteRaisedHandElement'][_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x4d2)));}log(_0x426634(0x87d)+_0x3aa42c),getChatMessage(_0x293f3e[_0x426634(0x8e0)],_0x42c792[_0x426634(0x9f2)][_0x383d8b]['label'],_0x3aa42c,_0x4aa3a0,_0x383d8b);}_0x426634(0xa4e)in _0x293f3e&&_0x42c792[_0x426634(0x21a)](_0x293f3e[_0x426634(0xa4e)],_0x383d8b);_0x426634(0x4df)in _0x293f3e&&(_0x42c792[_0x426634(0x24d)]=_0x293f3e[_0x426634(0x4df)],_0x42c792[_0x426634(0x6f4)](_0x383d8b));_0x426634(0xaf2)in _0x293f3e&&log(_0x293f3e);if(_0x426634(0x81d)in _0x293f3e){log(_0x293f3e);_0x293f3e['group']?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x81d)]=_0x293f3e['group'][_0x426634(0x1e2)](','):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x81d)]=[];log(_0x42c792[_0x426634(0x9f2)][_0x383d8b]),_0x216caa=!![];if(_0x42c792[_0x426634(0x843)]&&_0x42c792[_0x426634(0x9f2)][_0x383d8b]['streamID'])try{syncGroup(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x81d)],_0x383d8b);}catch(_0x25b6ca){errorlog(_0x25b6ca);}pokeIframeAPI(_0x426634(0x7a6),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x81d)],_0x383d8b);}_0x426634(0x9e0)in _0x293f3e&&(log(_0x293f3e),_0x42c792[_0x426634(0x5ec)]&&updateClosedCaptions(_0x293f3e,_0x42c792['rpcs'][_0x383d8b]['label'],_0x383d8b));_0x42c792[_0x426634(0x843)]&&(_0x426634(0x658)in _0x293f3e&&updateDirectorsAudio(_0x293f3e['audioOptions'],_0x383d8b),_0x426634(0xa5b)in _0x293f3e&&gotDevicesRemote(_0x293f3e[_0x426634(0xa5b)],_0x383d8b),'videoOptions'in _0x293f3e&&updateDirectorsVideo(_0x293f3e[_0x426634(0xa8d)],_0x383d8b),'recorder'in _0x293f3e&&updateRemoteRecordButton(_0x383d8b,_0x293f3e[_0x426634(0x73d)],_0x293f3e['alt']||![]),_0x426634(0x481)in _0x293f3e&&updateGdriveButton(_0x383d8b,_0x293f3e[_0x426634(0x481)],_0x293f3e['alt']||![]),_0x426634(0x253)in _0x293f3e&&updateRemoteTimerButton(_0x383d8b,_0x293f3e['timer']));if('whepSettings'in _0x293f3e)whepWatch(_0x383d8b,_0x293f3e[_0x426634(0x4f0)]);else _0x426634(0x980)in _0x293f3e&&(!_0x42c792[_0x426634(0x9e9)]&&meshcastWatch(_0x383d8b,_0x293f3e[_0x426634(0x980)]));'lowerhand'in _0x293f3e&&(_0x42c792[_0x426634(0x74b)]['indexOf'](_0x383d8b)>=0x0&&(_0x42c792[_0x426634(0x584)]&&lowerhand()));'isolateChannel'in _0x293f3e&&(_0x42c792[_0x426634(0x74b)][_0x426634(0x1de)](_0x383d8b)>=0x0&&isolateIncomingChannel(_0x293f3e[_0x426634(0x54b)],_0x383d8b));!_0x42c792[_0x426634(0x42d)]&&_0x42c792[_0x426634(0x74b)][_0x426634(0x1de)](_0x383d8b)>=0x0&&('layout'in _0x293f3e&&(_0x42c792[_0x426634(0x185)]=_0x293f3e[_0x426634(0x185)],pokeIframeAPI(_0x426634(0x9bd),_0x42c792[_0x426634(0x185)]),_0x216caa=!![]),_0x426634(0x285)in _0x293f3e&&(_0x42c792['layout_array']=_0x293f3e[_0x426634(0x285)]));if(_0x426634(0x20a)in _0x293f3e){_0x42c792['infocus']=![],_0x42c792[_0x426634(0xa32)]=![];if(_0x42c792[_0x426634(0x3ab)]===![]){log(_0x293f3e);if(_0x42c792['directorList'][_0x426634(0x1de)](_0x383d8b)>=0x0){if(_0x293f3e[_0x426634(0x20a)]!==![]){if(_0x293f3e[_0x426634(0x20a)]===_0x42c792[_0x426634(0x476)])_0x42c792['infocus']=!![];else{if(_0x42c792[_0x426634(0x3c8)][_0x426634(0x606)]&&!(_0x293f3e['infocus']in _0x42c792[_0x426634(0x3c8)]))warnlog('NOT\x20IN\x20VIEW\x20SET'),_0x42c792[_0x426634(0x20a)]=![];else{if(_0x42c792[_0x426634(0x1be)]&&_0x42c792[_0x426634(0x1be)]!==_0x293f3e[_0x426634(0x20a)])warnlog(_0x426634(0x24f)),_0x42c792[_0x426634(0x20a)]=![];else{if(_0x42c792[_0x426634(0x2ea)]!==![]&&_0x42c792['directorUUID']&&_0x42c792['directorUUID']in _0x42c792[_0x426634(0x9f2)]&&!_0x42c792['rpcs'][_0x42c792[_0x426634(0x95b)]][_0x426634(0xa33)]&&_0x293f3e[_0x426634(0x20a)]===_0x42c792['rpcs'][_0x42c792[_0x426634(0x95b)]][_0x426634(0x476)])warnlog(_0x426634(0x405)),_0x42c792[_0x426634(0x20a)]=![];else{for(var _0x73c9eb in _0x42c792[_0x426634(0x9f2)]){if(_0x42c792[_0x426634(0x9f2)][_0x73c9eb]['streamID']===_0x293f3e[_0x426634(0x20a)]){_0x42c792['infocus']=_0x73c9eb;break;}}warnlog('ON\x20FOCUS\x20NOT\x20FOUND');}}}}}else _0x42c792[_0x426634(0x20a)]=![];_0x216caa=!![],_0x275348=!![],_0x42c792['infocus']?_0x42c792[_0x426634(0xac2)]=!![]:_0x42c792['infocusForceMode']=![];}}}else{if(_0x426634(0xa32)in _0x293f3e){_0x42c792[_0x426634(0x20a)]=![],_0x42c792[_0x426634(0xa32)]=![];if(_0x42c792[_0x426634(0x3ab)]===![]){log(_0x293f3e);if(_0x42c792['directorList'][_0x426634(0x1de)](_0x383d8b)>=0x0){if(_0x293f3e[_0x426634(0xa32)]!==![]){if(_0x293f3e[_0x426634(0xa32)]===_0x42c792[_0x426634(0x476)])_0x42c792[_0x426634(0xa32)]=!![];else{if(_0x42c792['view_set'][_0x426634(0x606)]&&!(_0x293f3e[_0x426634(0xa32)]in _0x42c792[_0x426634(0x3c8)]))warnlog(_0x426634(0x7a0)),_0x42c792[_0x426634(0xa32)]=![];else{if(_0x42c792['view']&&_0x42c792['view']!==_0x293f3e[_0x426634(0xa32)])warnlog(_0x426634(0x24f)),_0x42c792['infocus2']=![];else{if(_0x42c792[_0x426634(0x2ea)]!==![]&&_0x42c792[_0x426634(0x95b)]&&_0x42c792[_0x426634(0x95b)]in _0x42c792[_0x426634(0x9f2)]&&!_0x42c792[_0x426634(0x9f2)][_0x42c792[_0x426634(0x95b)]][_0x426634(0xa33)]&&_0x293f3e['infocus2']===_0x42c792[_0x426634(0x9f2)][_0x42c792[_0x426634(0x95b)]]['streamID'])warnlog('not\x20allowed\x20to\x20show\x20the\x20director'),_0x42c792[_0x426634(0xa32)]=![];else{for(var _0x73c9eb in _0x42c792[_0x426634(0x9f2)]){if(_0x42c792[_0x426634(0x9f2)][_0x73c9eb][_0x426634(0x476)]===_0x293f3e[_0x426634(0xa32)]){_0x42c792['infocus2']=_0x73c9eb;break;}}warnlog('ON\x20FOCUS\x20NOT\x20FOUND');}}}}}else _0x42c792[_0x426634(0xa32)]=![];_0x42c792[_0x426634(0xa32)]?_0x42c792[_0x426634(0xac2)]=!![]:_0x42c792['infocusForceMode']=![],_0x216caa=!![],_0x275348=!![];}}}}'allowmidi'in _0x293f3e&&_0x293f3e[_0x426634(0x566)]!==![]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x50e)]=_0x293f3e[_0x426634(0x566)]);_0x426634(0x4ba)in _0x293f3e&&(log(_0x293f3e),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)]['sensors']=_0x293f3e[_0x426634(0x4ba)],isIFrame&&parent[_0x426634(0x1f9)]({'sensors':_0x293f3e['sensors']},_0x42c792[_0x426634(0x859)]));_0x426634(0x426)in _0x293f3e&&playbackMIDI(_0x293f3e['midi'],![],_0x383d8b);'fileList'in _0x293f3e&&_0x293f3e[_0x426634(0x6fd)]&&addDownloadLink(_0x293f3e['fileList'],_0x383d8b,_0x42c792['rpcs']);_0x426634(0x19c)in _0x293f3e&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['rotate']!==_0x293f3e[_0x426634(0x19c)]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x7b4)]=_0x293f3e['rotate_video'],_0x42c792['rpcs'][_0x383d8b]['videoElement']&&(_0x42c792['rpcs'][_0x383d8b]['videoElement'][_0x426634(0x50b)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x7b4)],_0x42c792['rpcs'][_0x383d8b]['videoElement']['dataset'][_0x426634(0x50b)]=_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x7b4)]),_0x216caa=!![]));if(_0x426634(0x9aa)in _0x293f3e){warnlog(_0x293f3e),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)][_0x426634(0x9aa)]=_0x293f3e[_0x426634(0x9aa)];_0x293f3e[_0x426634(0x9aa)][_0x426634(0x4df)]&&(!_0x42c792[_0x426634(0x24d)]&&(_0x42c792[_0x426634(0x24d)]=_0x293f3e[_0x426634(0x9aa)][_0x426634(0x4df)],_0x42c792[_0x426634(0x6f4)](_0x383d8b)));_0x426634(0x5a4)in _0x293f3e[_0x426634(0x9aa)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['pseudoguest']=_0x293f3e[_0x426634(0x9aa)][_0x426634(0x5a4)]);_0x293f3e[_0x426634(0x9aa)][_0x426634(0x9e7)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x9e7)]=!![]);if(_0x293f3e['info'][_0x426634(0x7d6)]){_0x42c792[_0x426634(0x9f2)][_0x383d8b]['allowDrawing']=_0x293f3e[_0x426634(0x9aa)][_0x426634(0x7d6)];try{_0x42c792['rpcs'][_0x383d8b]['videoElement']&&_0x42c792['rpcs'][_0x383d8b][_0x426634(0xb58)][_0x426634(0x8bb)]&&_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xb58)][_0x426634(0x8bb)]();}catch(_0x144f24){errorlog(_0x144f24);}}if(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x81e)]){if(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)]['info'][_0x426634(0x762)])_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x81e)]['dataset'][_0x426634(0x5da)]='1';else _0x426634(0x762)in _0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)][_0x426634(0x9aa)]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x81e)][_0x426634(0x5d0)][_0x426634(0x5da)]='0');}_0x426634(0xb23)in _0x293f3e[_0x426634(0x9aa)]&&(_0x293f3e[_0x426634(0x9aa)]['obs_control']!==![]?(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x813)]=_0x293f3e[_0x426634(0x9aa)][_0x426634(0xb23)],_0x42c792[_0x426634(0x4e5)]('details',_0x383d8b)):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x813)]=![]);if(_0x426634(0x452)in _0x293f3e[_0x426634(0x9aa)])try{typeof _0x293f3e[_0x426634(0x9aa)][_0x426634(0x452)]==_0x426634(0x698)?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x452)]=_0x293f3e[_0x426634(0x9aa)]['meta']:_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x452)]=![];}catch(_0x3c5f5c){errorlog(_0x3c5f5c);}if(_0x426634(0x625)in _0x293f3e[_0x426634(0x9aa)])try{typeof _0x293f3e[_0x426634(0x9aa)]['label']==_0x426634(0x974)?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x625)]=sanitizeLabel(_0x293f3e[_0x426634(0x9aa)][_0x426634(0x625)]):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x625)]=![],applyStyleEffect(_0x383d8b),_0x42c792[_0x426634(0x843)]&&setupGuestLabelControl(_0x383d8b);}catch(_0x4b721e){errorlog(_0x4b721e);}if(_0x426634(0x4a5)in _0x293f3e[_0x426634(0x9aa)])try{_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x4a5)]=parseInt(_0x293f3e[_0x426634(0x9aa)]['order'])||0x0;if(_0x42c792['director']){var _0x31771a=document['querySelectorAll']('[data-action-type=\x22order-value\x22][data--u-u-i-d=\x22'+_0x383d8b+'\x22]');_0x31771a[0x0]&&(_0x31771a[0x0][_0x426634(0x787)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x4a5)]);}}catch(_0x28f7b0){errorlog(_0x28f7b0);}else _0x42c792['rpcs'][_0x383d8b][_0x426634(0x4a5)]=0x0;if(_0x293f3e[_0x426634(0x9aa)][_0x426634(0x1c5)])try{if(_0x42c792[_0x426634(0x843)]&&!_0x42c792[_0x426634(0x750)]){var _0x31771a=document[_0x426634(0x901)](_0x426634(0x8b4)+_0x383d8b+'\x22]');_0x31771a[0x0]&&_0x31771a[0x0][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x4d2));}}catch(_0x1bd2cd){errorlog(_0x1bd2cd);}if(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['batteryMeter'])try{if(_0x426634(0x9d5)in _0x293f3e[_0x426634(0x9aa)]){if(_0x293f3e[_0x426634(0x9aa)][_0x426634(0x9d5)]!==null){var _0x16d9fe=_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x313)][_0x426634(0x66b)]('.battery-level');if(_0x16d9fe){var _0x2fae90=parseInt(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x546)][_0x426634(0x9aa)][_0x426634(0x9d5)])||0x0;_0x2fae90>0x64&&(_0x2fae90=0x64);_0x2fae90<0x0&&(_0x2fae90=0x0);_0x16d9fe[_0x426634(0x84c)][_0x426634(0x229)]=parseInt(_0x2fae90)+'%';if(_0x2fae90<0xa)_0x42c792[_0x426634(0x9f2)][_0x383d8b]['batteryMeter'][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x16d)),_0x42c792['rpcs'][_0x383d8b][_0x426634(0x313)][_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x886));else _0x2fae90<0x19?(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x313)][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x886)),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x313)]['classList'][_0x426634(0xb15)](_0x426634(0x16d))):(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x313)][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x886)),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x313)][_0x426634(0x33d)][_0x426634(0x881)]('warn'));_0x2fae90<0x64&&_0x42c792['rpcs'][_0x383d8b][_0x426634(0x313)]['classList'][_0x426634(0x881)](_0x426634(0x4d2)),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x313)][_0x426634(0x7a4)]=_0x2fae90+_0x426634(0x2bf);}}}'plugged_in'in _0x293f3e[_0x426634(0x9aa)]&&(_0x293f3e[_0x426634(0x9aa)][_0x426634(0x4e6)]===![]?(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x313)][_0x426634(0x5d0)]['plugged']='0',_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x313)]['classList']['remove'](_0x426634(0x4d2))):_0x42c792['rpcs'][_0x383d8b][_0x426634(0x313)]['dataset'][_0x426634(0xa66)]='1');}catch(_0xc24d24){errorlog(_0xc24d24);}if('initial_group'in _0x293f3e[_0x426634(0x9aa)])try{_0x293f3e[_0x426634(0x9aa)][_0x426634(0x52c)]?_0x42c792['rpcs'][_0x383d8b][_0x426634(0x81d)]=_0x293f3e[_0x426634(0x9aa)][_0x426634(0x52c)][_0x426634(0x1e2)](','):_0x42c792[_0x426634(0x9f2)][_0x383d8b]['group']=[],_0x42c792[_0x426634(0x843)]?(initGroupButtons(_0x383d8b),_0x42c792['rpcs'][_0x383d8b][_0x426634(0x81d)]['length']&&syncGroup(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x81d)],_0x383d8b)):_0x216caa=!![];}catch(_0x2da97e){errorlog(_0x2da97e);}if(_0x426634(0x920)in _0x293f3e[_0x426634(0x9aa)])try{_0x42c792['rpcs'][_0x383d8b][_0x426634(0x4a2)]=_0x293f3e['info'][_0x426634(0x920)],(_0x42c792[_0x426634(0x2ea)]===![]||_0x42c792[_0x426634(0x240)])&&(_0x42c792[_0x426634(0x273)]&&((!_0x42c792['cleanOutput']||_0x42c792[_0x426634(0x843)])&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)]?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x4a2)]?_0x42c792['rpcs'][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x4d2)):_0x42c792[_0x426634(0x9f2)][_0x383d8b]['remoteMuteElement']['classList'][_0x426634(0xb15)](_0x426634(0x4d2)):(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)]=getById(_0x426634(0x570))[_0x426634(0xa11)](!![]),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)]['id']=_0x426634(0x968)+_0x383d8b,_0x42c792['rpcs'][_0x383d8b][_0x426634(0x4a2)]?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)][_0x426634(0x881)]('hidden'):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)]['add']('hidden'),_0x216caa=!![])))),pokeIframeAPI(_0x426634(0x21b),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x4a2)],_0x383d8b);}catch(_0x28a6c4){errorlog(_0x28a6c4);}if(_0x42c792[_0x426634(0x843)]){try{_0x426634(0xa10)in _0x293f3e['info']&&(_0x293f3e[_0x426634(0x9aa)][_0x426634(0xa10)]==![]&&initRecordingImpossible(_0x383d8b));}catch(_0x39e0e2){errorlog(_0x39e0e2);}try{if(_0x426634(0x24b)in _0x293f3e['info']){if(_0x293f3e[_0x426634(0x9aa)][_0x426634(0x24b)]!==![]){let _0x1d8d90=parseInt(_0x293f3e[_0x426634(0x9aa)][_0x426634(0x24b)])||0x0;initAudioButtons(_0x1d8d90,_0x383d8b);}}}catch(_0x17b04b){errorlog(_0x17b04b);}try{_0x426634(0x218)in _0x293f3e[_0x426634(0x9aa)]&&(_0x293f3e['info'][_0x426634(0x218)]&&updateRemoteSpeakerMute(_0x383d8b));}catch(_0x100311){errorlog(_0x100311);}try{_0x426634(0xa4a)in _0x293f3e[_0x426634(0x9aa)]&&(_0x293f3e['info'][_0x426634(0xa4a)]&&updateRemoteDisplayMute(_0x383d8b));}catch(_0x400509){errorlog(_0x400509);}}if(_0x426634(0xb4d)in _0x293f3e['info'])try{_0x42c792[_0x426634(0x843)]?_0x293f3e[_0x426634(0x9aa)]['directorVideoMuted']&&updateDirectorVideoMute(_0x383d8b):(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xb4d)]=_0x293f3e['info'][_0x426634(0xb4d)],_0x42c792[_0x426634(0x9f2)][_0x383d8b]['directorVideoMuted']&&(_0x383d8b in _0x42c792[_0x426634(0x9f2)]&&_0x42c792[_0x426634(0x7b1)](0x0,_0x383d8b)));}catch(_0xbc5d0){errorlog(_0xbc5d0);}if(_0x426634(0xa7f)in _0x293f3e[_0x426634(0x9aa)])try{_0x42c792['director']&&(_0x293f3e[_0x426634(0x9aa)]['directorMirror']&&(getById(_0x426634(0x9e4)+_0x383d8b)['querySelector'](_0x426634(0x720))&&(getById(_0x426634(0x9e4)+_0x383d8b)['querySelector'](_0x426634(0x720))[_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x631)),getById('container_'+_0x383d8b)[_0x426634(0x66b)](_0x426634(0x720))['ariaPressed']='true'))),_0x42c792[_0x426634(0x9f2)][_0x383d8b]['mirrorState']=_0x293f3e[_0x426634(0x9aa)][_0x426634(0xa7f)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xb58)]&&applyMirrorGuest(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x238)],_0x42c792['rpcs'][_0x383d8b]['videoElement']);}catch(_0x3f8831){errorlog(_0x3f8831);}if(_0x426634(0xa54)in _0x293f3e['info'])try{_0x42c792[_0x426634(0x9f2)][_0x383d8b]['videoMuted']=_0x293f3e['info'][_0x426634(0xa54)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x71f)]&&(_0x42c792[_0x426634(0x843)]&&_0x42c792[_0x426634(0x9f2)][_0x383d8b]['remoteVideoMuteElement']['classList'][_0x426634(0x881)](_0x426634(0x4d2))),pokeIframeAPI(_0x426634(0x88b),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x71f)],_0x383d8b);}catch(_0x56aeaa){errorlog(_0x56aeaa);}_0x426634(0x19c)in _0x293f3e[_0x426634(0x9aa)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x7b4)]!==_0x293f3e[_0x426634(0x9aa)]['rotate_video']&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x7b4)]=_0x293f3e[_0x426634(0x9aa)][_0x426634(0x19c)],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xb58)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xb58)]['rotated']=_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x7b4)],_0x42c792[_0x426634(0x9f2)][_0x383d8b]['videoElement']['dataset'][_0x426634(0x50b)]=_0x42c792['rpcs'][_0x383d8b][_0x426634(0x7b4)]),_0x216caa=!![])),_0x426634(0x30f)in _0x293f3e[_0x426634(0x9aa)]&&(_0x293f3e[_0x426634(0x9aa)]['room_init']===![]&&soloLinkGeneratorInit(_0x383d8b)),directorCoDirectorColoring(_0x383d8b),_0x275348=!![],pokeAPI(_0x426634(0x781),getDetailedState(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)])),pokeIframeAPI(_0x426634(0x232),_0x293f3e[_0x426634(0x9aa)],_0x383d8b);}_0x426634(0x182)in _0x293f3e&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)]&&_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)][_0x426634(0x9aa)]&&processMiniInfoUpdate(_0x293f3e[_0x426634(0x182)],_0x383d8b));if(_0x293f3e['directorSettings']){_0x42c792['rpcs'][_0x383d8b][_0x426634(0x843)]=!![];_0x293f3e[_0x426634(0x90a)]['tokenDirector']&&await checkToken();if(_0x42c792[_0x426634(0x95b)]===_0x383d8b){'totalRoomBitrate'in _0x293f3e[_0x426634(0x90a)]&&(_0x42c792[_0x426634(0x65f)]=parseInt(_0x293f3e[_0x426634(0x90a)]['totalRoomBitrate'])||0x0,_0x216caa=!![]);if(_0x293f3e['directorSettings']['soloVideo']){if(_0x42c792[_0x426634(0x3ab)]===![]){if(_0x293f3e[_0x426634(0x90a)]['soloVideo']===_0x42c792[_0x426634(0x476)])_0x42c792[_0x426634(0x20a)]=!![];else for(var _0x73c9eb in _0x42c792[_0x426634(0x9f2)]){if(_0x42c792['rpcs'][_0x73c9eb]['streamID']===_0x293f3e[_0x426634(0x90a)][_0x426634(0x68f)]){if((_0x42c792[_0x426634(0x74b)]['includes'](_0x73c9eb)||_0x42c792[_0x426634(0x9f2)][_0x73c9eb][_0x426634(0x843)])&&!_0x42c792[_0x426634(0xa33)])break;_0x42c792[_0x426634(0x20a)]=_0x73c9eb;break;}}_0x216caa=!![],_0x275348=!![];}}if(_0x426634(0xa33)in _0x293f3e[_0x426634(0x90a)]){if(_0x42c792['scene']!==![]){if(_0x42c792[_0x426634(0xa33)])_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xa33)]=_0x42c792[_0x426634(0xa33)];else _0x293f3e[_0x426634(0x90a)][_0x426634(0xa33)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0xa33)]=_0x293f3e['directorSettings']['showDirector']);}}if(_0x42c792[_0x426634(0x2ea)]!==![]){if(_0x293f3e['directorSettings']['scene'])for(var _0x73c9eb in _0x293f3e[_0x426634(0x90a)][_0x426634(0x2ea)]){setTimeout(function(_0x24c06){var _0x4ed459=_0x426634;_0x42c792[_0x4ed459(0x388)](_0x24c06);},0x3e8,_0x293f3e[_0x426634(0x90a)][_0x426634(0x2ea)][_0x73c9eb]);}if(_0x293f3e[_0x426634(0x90a)][_0x426634(0x23d)])for(var _0x73c9eb in _0x293f3e[_0x426634(0x90a)][_0x426634(0x23d)]){setTimeout(function(_0x1a59df){var _0x2004b2=_0x426634;_0x42c792[_0x2004b2(0x388)](_0x1a59df);},0x3e8,_0x293f3e[_0x426634(0x90a)][_0x426634(0x23d)][_0x73c9eb]);}}if('addCoDirector'in _0x293f3e['directorSettings'])for(var _0x478e8c=0x0;_0x478e8c<_0x293f3e[_0x426634(0x90a)][_0x426634(0x4b6)][_0x426634(0x606)];_0x478e8c++){!_0x42c792[_0x426634(0x74b)]['includes'](_0x293f3e[_0x426634(0x90a)][_0x426634(0x4b6)][_0x478e8c][_0x426634(0x880)])&&(_0x42c792[_0x426634(0x74b)]['push'](_0x293f3e[_0x426634(0x90a)]['addCoDirector'][_0x478e8c][_0x426634(0x880)]()),addDirectorBlue(_0x293f3e[_0x426634(0x90a)][_0x426634(0x4b6)][_0x478e8c][_0x426634(0x880)]()));}}}if(_0x42c792[_0x426634(0x74b)][_0x426634(0x1de)](_0x383d8b)>=0x0){if(_0x42c792[_0x426634(0x2ea)]!==![]){_0x426634(0x6cf)in _0x293f3e&&_0x42c792['directorActions'](_0x293f3e);if(_0x426634(0x5d6)in _0x293f3e&&_0x293f3e[_0x426634(0x68b)])for(var _0x73c9eb in _0x42c792['rpcs']){if(_0x42c792[_0x426634(0x9f2)][_0x73c9eb][_0x426634(0x476)]===_0x293f3e[_0x426634(0x68b)]){_0x293f3e[_0x426634(0x5d6)]?(_0x42c792[_0x426634(0x9f2)][_0x73c9eb][_0x426634(0x4a3)]=parseInt(_0x293f3e[_0x426634(0x5d6)])||![],_0x42c792[_0x426634(0x9f2)][_0x73c9eb][_0x426634(0x4a3)]-=0x1):_0x42c792[_0x426634(0x9f2)][_0x73c9eb][_0x426634(0x4a3)]=![];updateIncomingVideoElement(_0x73c9eb,![],!![]);break;}}}_0x426634(0x90a)in _0x293f3e&&_0x293f3e[_0x426634(0x90a)]['blindAllGuests']&&(!_0x42c792[_0x426634(0x843)]&&(_0x42c792[_0x426634(0x2ea)]===![]&&(_0x42c792['directorDisplayMuted']=!![],_0x42c792[_0x426634(0x4ce)]())));if(_0x426634(0x975)in _0x293f3e&&'mirrorGuestTarget'in _0x293f3e){if(_0x293f3e['mirrorGuestTarget']&&_0x293f3e[_0x426634(0x2e1)]===!![]){_0x42c792['permaMirrored']=_0x293f3e['mirrorGuestState'],applyMirror(_0x42c792[_0x426634(0x5c3)]);if(_0x42c792[_0x426634(0x843)]){if(_0x293f3e[_0x426634(0x9aa)][_0x426634(0xa7f)]){if(getById('container_director')[_0x426634(0x66b)](_0x426634(0x720)))getById(_0x426634(0xa02))[_0x426634(0x66b)](_0x426634(0x720))[_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x631)),getById('container_director')[_0x426634(0x66b)](_0x426634(0x720))[_0x426634(0x19d)]='true';else getById(_0x426634(0xa02))[_0x426634(0x66b)]('[data-action-type=\x22mirror-guest\x22]')&&(getById(_0x426634(0xa02))[_0x426634(0x66b)](_0x426634(0x720))['classList'][_0x426634(0x881)]('pressed'),getById(_0x426634(0xa02))[_0x426634(0x66b)]('[data-action-type=\x22mirror-guest\x22]')['ariaPressed']=_0x426634(0x61c));}}}else{if(_0x293f3e[_0x426634(0x2e1)]&&_0x293f3e['mirrorGuestTarget']in _0x42c792[_0x426634(0x9f2)]){_0x42c792[_0x426634(0x9f2)][_0x293f3e[_0x426634(0x2e1)]][_0x426634(0x238)]=_0x293f3e[_0x426634(0x975)];_0x42c792['rpcs'][_0x293f3e['mirrorGuestTarget']][_0x426634(0xb58)]&&applyMirrorGuest(_0x293f3e[_0x426634(0x975)],_0x42c792[_0x426634(0x9f2)][_0x293f3e[_0x426634(0x2e1)]][_0x426634(0xb58)]);if(_0x42c792[_0x426634(0x843)]){if(_0x293f3e[_0x426634(0x9aa)][_0x426634(0xa7f)])getById('container_'+_0x383d8b)['querySelector'](_0x426634(0x720))&&(getById(_0x426634(0x9e4)+_0x383d8b)[_0x426634(0x66b)](_0x426634(0x720))[_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x631)),getById(_0x426634(0x9e4)+_0x383d8b)[_0x426634(0x66b)](_0x426634(0x720))[_0x426634(0x19d)]='true');else getById('container_'+_0x383d8b)[_0x426634(0x66b)](_0x426634(0x720))&&(getById(_0x426634(0x9e4)+_0x383d8b)[_0x426634(0x66b)](_0x426634(0x720))[_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x631)),getById(_0x426634(0x9e4)+_0x383d8b)['querySelector'](_0x426634(0x720))[_0x426634(0x19d)]=_0x426634(0x61c));}}}}if(_0x426634(0xa4c)in _0x293f3e){_0x42c792[_0x426634(0x7fb)]=_0x293f3e['directorState'],log(_0x293f3e);for(var _0xc236c6 in _0x42c792[_0x426634(0x7fb)]){syncSceneState(_0xc236c6),syncOtherState(_0xc236c6);}pokeAPI(_0x426634(0x781),_0x293f3e[_0x426634(0xa4c)]);}if(_0x426634(0xad7)in _0x293f3e){_0x42c792[_0x426634(0x99f)]=_0x293f3e['widgetSrc']||![];let _0x3da8ea=document[_0x426634(0x83d)](_0x426634(0x99f));try{_0x3da8ea?!_0x42c792[_0x426634(0x99f)]?(document[_0x426634(0x83d)](_0x426634(0x99f))[_0x426634(0x881)](),_0x216caa=!![]):_0x3da8ea['src']=parseURL4Iframe(_0x42c792[_0x426634(0x99f)]):_0x216caa=!![],_0x42c792[_0x426634(0x843)]&&(getById('widgetURL')['value']=_0x42c792['widget']||'');}catch(_0x485c97){errorlog(_0x485c97);}pokeIframeAPI(_0x426634(0x598),_0x42c792['widget'],_0x383d8b);}if(_0x426634(0x9ac)in _0x293f3e){_0x42c792['currentSlots']=_0x293f3e[_0x426634(0x9ac)],Object['entries'](_0x42c792[_0x426634(0x4dc)])[_0x426634(0x6d2)](([_0x139709,_0x399cdb])=>{var _0x4e22c3=_0x426634;const _0x1e2534=Object[_0x4e22c3(0x3fa)](_0x42c792[_0x4e22c3(0x9f2)])[_0x4e22c3(0x96c)](_0x99cf86=>_0x42c792['rpcs'][_0x99cf86]['streamID']===_0x399cdb);_0x1e2534&&syncSlotState(_0x1e2534,parseInt(_0x139709),!![]);});if(_0x42c792[_0x426634(0x42d)])try{let _0x46a8f9=_0x42c792[_0x426634(0x4dc)][_0x42c792['viewslot']];if(_0x46a8f9)_0x42c792[_0x426634(0x185)]&&!_0x42c792[_0x426634(0x185)][_0x46a8f9]&&(_0x42c792['layout']={[_0x46a8f9]:{'h':0x64,'w':0x64,'x':0x0,'y':0x0,'c':_0x42c792[_0x426634(0x5b7)]}},updateMixer());else _0x42c792['layout']&&Object[_0x426634(0x3fa)](_0x42c792['layout'])[_0x426634(0x606)]&&(_0x42c792[_0x426634(0x185)]={},updateMixer());}catch(_0x6c075b){errorlog(_0x6c075b);}else!_0x42c792[_0x426634(0x2f4)]()&&_0x42c792['updateOnSlotChange']&&(_0x42c792[_0x426634(0x285)]&&(_0x42c792[_0x426634(0x185)]=combinedLayout(_0x42c792[_0x426634(0x285)]),updateMixer()),_0x42c792['layout']&&(_0x42c792[_0x426634(0x185)]=combinedLayoutSimple(_0x42c792[_0x426634(0x185)]),updateMixer()));warnlog(_0x293f3e);}_0x426634(0x40a)in _0x293f3e&&(_0x42c792[_0x426634(0x40a)]=_0x293f3e[_0x426634(0x40a)],'obsSceneTriggers'in _0x293f3e?(_0x42c792[_0x426634(0x2d2)]=_0x293f3e[_0x426634(0x2d2)],_0x42c792[_0x426634(0x2f4)]()):_0x42c792[_0x426634(0x2d2)]=![]);}if(_0x426634(0x4a5)in _0x293f3e){_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x4a5)]=parseInt(_0x293f3e[_0x426634(0x4a5)])||0x0;_0x383d8b in _0x42c792[_0x426634(0x3c0)]&&(_0x42c792[_0x426634(0x3c0)][_0x383d8b][_0x426634(0x4a5)]=parseInt(_0x293f3e[_0x426634(0x4a5)])||0x0);if(_0x42c792[_0x426634(0x843)]){var _0x31771a=document[_0x426634(0x901)](_0x426634(0x1fc)+_0x383d8b+'\x22]');_0x31771a[0x0]&&(_0x31771a[0x0][_0x426634(0x787)]=parseInt(_0x293f3e[_0x426634(0x4a5)])||0x0);}_0x216caa=!![];}if('changeLabel'in _0x293f3e){log(_0x426634(0x90b));if(_0x426634(0x76d)in _0x293f3e){log(_0x426634(0x92d));if(typeof _0x293f3e[_0x426634(0x76d)]==_0x426634(0x974)){_0x42c792[_0x426634(0x9f2)][_0x383d8b]['label']=sanitizeLabel(_0x293f3e['value']);_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x625)][_0x426634(0x606)]==0x0&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['label']=![]);applyStyleEffect(_0x383d8b);if(_0x42c792['director'])updateLabelDirectors(_0x383d8b);else _0x42c792['showlabels']&&(_0x216caa=!![]);}else{_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x625)]=![],applyStyleEffect(_0x383d8b);if(_0x42c792[_0x426634(0x843)])updateLabelDirectors2(_0x383d8b);else _0x42c792[_0x426634(0x6ee)]&&(_0x216caa=!![]);}_0x275348=!![],pokeIframeAPI(_0x426634(0x8b0),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x625)],_0x383d8b);}}_0x426634(0x44a)in _0x293f3e&&(log(_0x293f3e),_0x42c792['rpcs'][_0x383d8b][_0x426634(0x4a2)]=_0x293f3e[_0x426634(0x44a)],_0x42c792[_0x426634(0x7b1)](![],_0x383d8b),_0x42c792['rpcs'][_0x383d8b]['stats'][_0x426634(0x9aa)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x546)][_0x426634(0x9aa)]['muted']=_0x42c792[_0x426634(0x9f2)][_0x383d8b]['remoteMuteState']),(_0x42c792[_0x426634(0x2ea)]===![]||_0x42c792['showMuteState'])&&(_0x42c792[_0x426634(0x273)]&&((!_0x42c792[_0x426634(0xad1)]||_0x42c792[_0x426634(0x843)])&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x2ad)]?_0x42c792[_0x426634(0x9f2)][_0x383d8b]['remoteMuteState']?_0x42c792['rpcs'][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x4d2)):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x4d2)):(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)]=getById(_0x426634(0x570))[_0x426634(0xa11)](!![]),_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)]['id']=_0x426634(0x968)+_0x383d8b,_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x4a2)]?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)]['remove'](_0x426634(0x4d2)):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x2ad)][_0x426634(0x33d)]['add']('hidden'),_0x216caa=!![]),_0x275348=!![]))),pokeAPI(_0x426634(0x3a8),_0x42c792[_0x426634(0x9f2)][_0x383d8b]['remoteMuteState'],_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x476)]),pokeIframeAPI(_0x426634(0x21b),_0x293f3e[_0x426634(0x44a)],_0x383d8b));if('requestSceneUpdate'in _0x293f3e){var _0x562dd5=getChromiumVersion();_0x562dd5&&(_0x562dd5<0x50&&(_0x216caa=!![]));}if(_0x426634(0x71f)in _0x293f3e){log(_0x426634(0x4e9)+_0x293f3e[_0x426634(0x71f)]),_0x42c792[_0x426634(0x9f2)][_0x383d8b]['videoMuted']=_0x293f3e['videoMuted'];_0x42c792['rpcs'][_0x383d8b][_0x426634(0x71f)]?(!_0x42c792[_0x426634(0x61b)]&&_0x42c792[_0x426634(0x7b1)](0x0,_0x383d8b),_0x42c792['rpcs'][_0x383d8b][_0x426634(0x25f)]&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x25f)][_0x426634(0x4d2)]=!![],_0x42c792['rpcs'][_0x383d8b][_0x426634(0x25f)][_0x426634(0x84c)][_0x426634(0xb20)]=_0x426634(0x4d2))):(!_0x42c792[_0x426634(0x49e)]&&applyQualityDirector(_0x383d8b),updateIncomingVideoElement(_0x383d8b,!![],![]));_0x216caa=!![];_0x42c792['director']&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b]['videoMuted']?_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x9da)][_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x4d2)):_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x9da)][_0x426634(0x33d)][_0x426634(0xb15)](_0x426634(0x4d2)));if(_0x42c792['rpcs'][_0x383d8b]['defaultSpeaker']&&_0x42c792['rpcs'][_0x383d8b]['videoMuted'])setTimeout(function(){activeSpeaker();},0x0);else!_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x71f)]&&setTimeout(function(){activeSpeaker();},0x0);_0x275348=!![],pokeAPI('remoteVideoMuted',_0x42c792[_0x426634(0x9f2)][_0x383d8b]['videoMuted'],_0x42c792['rpcs'][_0x383d8b]['streamID']),pokeIframeAPI(_0x426634(0x88b),_0x293f3e[_0x426634(0x71f)],_0x383d8b);}if(_0x426634(0x7dd)in _0x293f3e){if(_0x383d8b+'_screen'in _0x42c792[_0x426634(0x9f2)]){_0x42c792['rpcs'][_0x383d8b+_0x426634(0x4b7)][_0x426634(0x611)]=_0x293f3e[_0x426634(0x7dd)];try{_0x42c792[_0x426634(0x9f2)][_0x383d8b+_0x426634(0x4b7)][_0x426634(0x611)]&&(!(SafariVersion&&SafariVersion>0x10)&&(iPad||iOS)&&(_0x42c792['rpcs'][_0x383d8b+_0x426634(0x4b7)]['videoElement'][_0x426634(0x627)]=!![]));}catch(_0x13ee78){}_0x42c792[_0x426634(0x843)]&&(_0x293f3e['screenStopped']?getById(_0x426634(0x9e4)+_0x383d8b+'_screen')[_0x426634(0x33d)]['add'](_0x426634(0x6a5)):getById(_0x426634(0x9e4)+_0x383d8b+_0x426634(0x4b7))[_0x426634(0x33d)][_0x426634(0x881)](_0x426634(0x6a5))),_0x216caa=!![],_0x275348=!![];}}'screenShareState'in _0x293f3e&&(_0x42c792['rpcs'][_0x383d8b][_0x426634(0x33f)]=_0x293f3e[_0x426634(0x33f)],_0x216caa=!![],pokeIframeAPI(_0x426634(0x4ac),_0x293f3e['screenShareState'],_0x383d8b));if(_0x426634(0x500)in _0x293f3e){if(!_0x42c792['director']){if(_0x426634(0x2e0)in _0x293f3e){if(_0x42c792['directorList']['indexOf'](_0x383d8b)>=0x0){var _0x247df2=_0x293f3e[_0x426634(0x2e0)];if(_0x247df2===!![])_0x42c792[_0x426634(0xb4d)]=_0x293f3e['directVideoMuted'];else _0x247df2 in _0x42c792['rpcs']&&(_0x42c792['rpcs'][_0x247df2][_0x426634(0xb4d)]=_0x293f3e[_0x426634(0x500)],_0x42c792[_0x426634(0x9f2)][_0x247df2][_0x426634(0xb4d)]&&_0x42c792['requestRateLimit'](0x0,_0x247df2),_0x216caa=!![]);}}}_0x275348=!![];}'virtualHangup'in _0x293f3e&&(!_0x42c792[_0x426634(0x843)]&&(_0x42c792['directorList'][_0x426634(0x1de)](_0x383d8b)>=0x0&&(_0x383d8b in _0x42c792[_0x426634(0x9f2)]&&(_0x42c792[_0x426634(0x9f2)][_0x383d8b][_0x426634(0x611)]=_0x293f3e['virtualHangup'],_0x42c792['rpcs'][_0x383d8b][_0x426634(0x611)]&&(_0x383d8b in _0x42c792['rpcs']&&_0x42c792[_0x426634(0x7b1)](0x0,_0x383d8b)),_0x216caa=!![]))),_0x275348=!![]);if(_0x426634(0x17f)in _0x293f3e){log(_0x426634(0x9c3));try{_0x42c792[_0x426634(0x39a)](_0x383d8b,_0x293f3e[_0x426634(0x17f)]);}catch(_0x2a78e1){errorlog(_0x2a78e1);}}_0x426634(0x4cd)in _0x293f3e&&remoteStats(_0x293f3e,_0x383d8b);if(_0x216caa)setTimeout(function(){updateMixer(),updateUserList();},0x1);else _0x275348&&updateUserList();},_0x42c792[_0x2fd621(0x9f2)][_0x522563][_0x2fd621(0x9f1)][_0x2fd621(0x8c7)]=()=>{var _0x25cc47=_0x2fd621;warnlog(_0x25cc47(0x37b));};},_0x42c792[_0x679e45(0x9f2)][_0x522563][_0x679e45(0x304)]=_0x3ba965=>{var _0x106238=_0x679e45;warnlog(_0x106238(0x316)),_0x42c792[_0x106238(0x514)](_0x3ba965,_0x522563);},log(_0x679e45(0x220));},_0x42c792[_0x5b10c6(0x512)]=function(_0x5c8050,_0x10413e){var _0x379b5a=_0x5b10c6;log(_0x379b5a(0x87b));if(!_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x951)]){_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]={},_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x18d)]=_0x10413e,_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x951)]=createVideoElement(),_0x42c792['rpcs'][_0x10413e][_0x379b5a(0x951)]['needsLoading']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x951)][_0x379b5a(0x839)](_0x379b5a(0x5d5),_0x1d2ce7=>{var _0x1986bc=_0x379b5a;log(_0x1986bc(0x871)),_0x1d2ce7[_0x1986bc(0x2e0)]['needsLoading']=![];}),_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x951)][_0x379b5a(0x3b0)]=createMediaStream(),_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xb58)]=_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x951)],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen']['streamSrc']=createMediaStream();_0x42c792[_0x379b5a(0x9f2)][_0x10413e]['streamID']&&(_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x476)]=_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x476)]+':s');_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['stats']={},_0x42c792['rpcs'][_0x10413e][_0x379b5a(0x546)][_0x379b5a(0x5a6)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xa8a)]=function(){return new Promise((_0x16922c,_0x5d4149)=>{_0x16922c([]);});},_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x5c9)]=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['allowGraphs']=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['allowMIDI']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x628)]=![],_0x42c792['rpcs'][_0x10413e+'_screen'][_0x379b5a(0x7b3)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x360)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['activelySpeaking']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x96d)]=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x857)]=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xa9a)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xa38)]=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x844)]=-0x1,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['bandwidthMuted']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xa33)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x4a3)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x88a)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen']['targetBandwidth']=-0x1,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x59e)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x25f)]=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x293)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x81d)]=_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x81d)]||[],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x71f)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x359)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xb4d)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x611)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['remoteMuteState']=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x2ad)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['lockedVideoBitrate']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x967)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x7c0)]=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen']['mutedState']=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['mutedStateMixer']=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x56e)]=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x238)]=null,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['scaleHeight']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x3f5)]=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x5ba)]=![],_0x42c792['rpcs'][_0x10413e+'_screen'][_0x379b5a(0x81e)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['volumeControl']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x820)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x33f)]=!![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x934)]=0x64,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen']['directorMutedState']=0x0,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x3b1)]=0x0,_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x31c)]='1',_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xb5d)]='1',_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen']['obsControl']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x933)]=0x0,_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x625)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x4a5)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x1ea)]=null,_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['canvas']=null,_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x65d)]={},_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x343)]=![],_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['iframeEle']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x318)]=Date['now'](),_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['settings']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x853)]=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x5a4)]=![];(_0x42c792[_0x379b5a(0x2bd)]==0x2||_0x42c792[_0x379b5a(0x2bd)]==0x4)&&(_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x96d)]=!![]);_0x42c792[_0x379b5a(0x9f2)][_0x10413e][_0x379b5a(0x9e7)]?_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['smallScreen']=!![]:_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x9e7)]=![];if(_0x42c792['rpcs'][_0x10413e][_0x379b5a(0x628)]){_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x628)]=_0x42c792['rpcs'][_0x10413e]['allowDrawing'];try{_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)]['videoElement']&&_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xb58)][_0x379b5a(0x8bb)]&&_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xb58)][_0x379b5a(0x8bb)]();}catch(_0x7d3d08){errorlog(_0x7d3d08);}}_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xb58)][_0x379b5a(0x5d0)]['UUID']=_0x10413e+_0x379b5a(0x4b7),_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xb58)]['id']='videosource_'+_0x10413e+_0x379b5a(0x4b7),_0x42c792['rpcs'][_0x10413e+'_screen'][_0x379b5a(0x476)]&&(_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xb58)]['dataset'][_0x379b5a(0x68b)]=_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x476)]),_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['videoElement']['screenshare']=![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0x293)]=![],setupIncomingScreenTracking(_0x42c792['rpcs'][_0x10413e+_0x379b5a(0x4b7)]['videoElement'],_0x10413e+_0x379b5a(0x4b7)),_0x5c8050[_0x379b5a(0x6d2)](function(_0x177f16){var _0x2a6192=_0x379b5a;_0x42c792[_0x2a6192(0x9f2)][_0x10413e][_0x2a6192(0x951)]['srcObject'][_0x2a6192(0x971)](_0x177f16),_0x42c792[_0x2a6192(0x9f2)][_0x10413e+'_screen']['streamSrc'][_0x2a6192(0x971)](_0x177f16);}),_0x42c792[_0x379b5a(0x9f2)][_0x10413e+'_screen'][_0x379b5a(0xb58)][_0x379b5a(0x1ba)]=!![],_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0xb58)][_0x379b5a(0x18b)](_0x379b5a(0x8ba),''),mediaSourceUpdated(_0x10413e+_0x379b5a(0x4b7),_0x42c792[_0x379b5a(0x9f2)][_0x10413e+_0x379b5a(0x4b7)][_0x379b5a(0x476)]);}else _0x5c8050[_0x379b5a(0x6d2)](function(_0x4a452c){var _0x4598d8=_0x379b5a,_0x23e2b3=![];_0x42c792[_0x4598d8(0x9f2)][_0x10413e][_0x4598d8(0x951)][_0x4598d8(0x3b0)][_0x4598d8(0x234)]()[_0x4598d8(0x6d2)](function(_0x2b7cb0){var _0x1d77d0=_0x4598d8;_0x2b7cb0['id']==_0x4a452c['id']&&_0x2b7cb0['kind']==_0x4a452c[_0x1d77d0(0x184)]&&(_0x23e2b3=!![]);});!_0x23e2b3&&_0x42c792[_0x4598d8(0x9f2)][_0x10413e][_0x4598d8(0x951)][_0x4598d8(0x3b0)][_0x4598d8(0x971)](_0x4a452c);var _0x23e2b3=![];_0x42c792[_0x4598d8(0x9f2)][_0x10413e+'_screen'][_0x4598d8(0x5f5)]['getTracks']()[_0x4598d8(0x6d2)](function(_0x5d2a53){var _0x4dfea9=_0x4598d8;_0x5d2a53['id']==_0x4a452c['id']&&_0x5d2a53[_0x4dfea9(0x184)]==_0x4a452c[_0x4dfea9(0x184)]&&(_0x23e2b3=!![]);}),!_0x23e2b3&&_0x42c792[_0x4598d8(0x9f2)][_0x10413e+_0x4598d8(0x4b7)]['streamSrc']['addTrack'](_0x4a452c);});},_0x42c792;}());var meshcastServer=![],meshcastServerList=![];const meshcastPingResults=new Map();function selectMeshcast(_0x3dd6b5){var _0x16b52b=_0x268b62;meshcastServer={};const _0x392508=_0x3dd6b5[_0x16b52b(0x44e)][_0x3dd6b5[_0x16b52b(0x4c2)]];meshcastServer[_0x16b52b(0x3ac)]=_0x392508[_0x16b52b(0x3ac)],meshcastServer[_0x16b52b(0xafa)]=_0x392508[_0x16b52b(0xafa)]||null,meshcastServer['id']=_0x392508['id']||null;}async function pingMeshcast(_0x4c285d,_0xcfaa82){return new Promise(_0x220f12=>{var _0x4ff014=_0x4b6a;const _0x134297=new XMLHttpRequest();_0x134297['onload']=function(){var _0x29b015=_0x4b6a;const _0x5c75b6=parseFloat(this[_0x29b015(0xa0c)]);if(_0x5c75b6>=0x0){meshcastPingResults['set'](_0x4c285d['id']||_0x4c285d[_0x29b015(0xafa)],{'load':_0x5c75b6,'failed':![],'option':_0x4c285d});if(_0x5c75b6>0x46)_0x4c285d[_0x29b015(0x15f)]+=_0x29b015(0x548);else{if(_0x5c75b6>0x28)_0x4c285d[_0x29b015(0x15f)]+=_0x29b015(0x93f);else{if(_0x5c75b6>0xa)_0x4c285d[_0x29b015(0x15f)]+=_0x29b015(0x8b2);else _0x5c75b6>0x0?_0x4c285d[_0x29b015(0x15f)]+='\x20(good)':handleMeshcastFailure(_0x4c285d);}}_0x220f12(!![]);}else handleMeshcastFailure(_0x4c285d),_0x220f12(![]);},_0x134297['onerror']=()=>{handleMeshcastFailure(_0x4c285d),_0x220f12(![]);},_0x134297[_0x4ff014(0xb27)]=0x7d0,_0x134297[_0x4ff014(0x478)]=()=>{var _0x34a288=_0x4ff014;handleMeshcastFailure(_0x4c285d,_0x34a288(0xb27)),_0x220f12(![]);},_0x134297[_0x4ff014(0x722)]('GET',_0xcfaa82,!![]),_0x134297[_0x4ff014(0x8c1)]();});}function handleMeshcastFailure(_0x1e1e66,_0x215a78=_0x268b62(0x3aa)){var _0x294f7b=_0x268b62;meshcastPingResults[_0x294f7b(0xac0)](_0x1e1e66['id']||_0x1e1e66[_0x294f7b(0xafa)],{'load':Infinity,'failed':!![],'option':_0x1e1e66}),_0x1e1e66['disabled']=!![],_0x1e1e66['innerHTML']+='\x20('+_0x215a78+')';}function sortMeshcastOptions(){var _0x293fb1=_0x268b62;const _0x3502de=document['getElementById'](_0x293fb1(0x5aa)),_0x1a8c12=Array[_0x293fb1(0x9a4)](_0x3502de[_0x293fb1(0x44e)]);_0x1a8c12[_0x293fb1(0x6b9)]((_0x5eb674,_0x4d3782)=>{var _0x1e6e18=_0x293fb1;const _0x749fc8=meshcastPingResults[_0x1e6e18(0x7b6)](_0x5eb674['id']||_0x5eb674['code'])||{'load':Infinity,'failed':!![]},_0x397e93=meshcastPingResults['get'](_0x4d3782['id']||_0x4d3782[_0x1e6e18(0xafa)])||{'load':Infinity,'failed':!![]};if(_0x749fc8[_0x1e6e18(0x9c8)]&&!_0x397e93[_0x1e6e18(0x9c8)])return 0x1;if(!_0x749fc8[_0x1e6e18(0x9c8)]&&_0x397e93[_0x1e6e18(0x9c8)])return-0x1;const _0x4dc04a=meshcastServerList[_0x1e6e18(0x96c)](_0x54f918=>(_0x54f918['id']||_0x54f918[_0x1e6e18(0xafa)])===(_0x5eb674['id']||_0x5eb674['code'])),_0x392d33=meshcastServerList['find'](_0x3f78d6=>(_0x3f78d6['id']||_0x3f78d6['code'])===(_0x4d3782['id']||_0x4d3782[_0x1e6e18(0xafa)])),_0x2d8662=_0x749fc8[_0x1e6e18(0x534)]+(_0x4dc04a[_0x1e6e18(0x863)]||0x0)/0x28,_0x3887e9=_0x397e93[_0x1e6e18(0x534)]+(_0x392d33[_0x1e6e18(0x863)]||0x0)/0x28;return _0x5eb674[_0x1e6e18(0x5d0)]['score']=_0x2d8662,_0x4d3782[_0x1e6e18(0x5d0)][_0x1e6e18(0x9c9)]=_0x3887e9,_0x5eb674[_0x1e6e18(0x5d0)][_0x1e6e18(0x534)]=_0x749fc8[_0x1e6e18(0x534)],_0x4d3782[_0x1e6e18(0x5d0)]['load']=_0x397e93[_0x1e6e18(0x534)],_0x5eb674[_0x1e6e18(0x5d0)]['delta']=(_0x4dc04a[_0x1e6e18(0x863)]||0x0)/0x28,_0x4d3782[_0x1e6e18(0x5d0)][_0x1e6e18(0x863)]=(_0x392d33['delta']||0x0)/0x28,_0x2d8662-_0x3887e9;}),_0x1a8c12[_0x293fb1(0x6d2)](_0x29de55=>_0x3502de['appendChild'](_0x29de55));}function selectBestMeshcastServer(){var _0x3d6c8b=_0x268b62;const _0x34fa41=document[_0x3d6c8b(0x83d)](_0x3d6c8b(0x5aa));let _0xcc38fb=Array[_0x3d6c8b(0x9a4)](_0x34fa41[_0x3d6c8b(0x44e)])[_0x3d6c8b(0x96c)](_0x3b7944=>_0x3b7944[_0x3d6c8b(0x68c)]&&!_0x3b7944[_0x3d6c8b(0x8b7)]);!_0xcc38fb&&(_0xcc38fb=Array[_0x3d6c8b(0x9a4)](_0x34fa41[_0x3d6c8b(0x44e)])[_0x3d6c8b(0x96c)](_0x662fb6=>!_0x662fb6[_0x3d6c8b(0x8b7)])),_0xcc38fb?(_0xcc38fb[_0x3d6c8b(0x6c5)]=!![],selectMeshcast(_0x34fa41)):console[_0x3d6c8b(0x8fd)](_0x3d6c8b(0x290));}async function queryMeshcastServers(_0x253b7a=![]){var _0xdd5191=_0x268b62;try{const _0x5b0372=new Date(),_0x21072a=urlParams['has']('tz')?parseInt(urlParams[_0xdd5191(0x7b6)]('tz')):_0x5b0372[_0xdd5191(0x997)](),_0x3f4afd=await fetch(_0xdd5191(0x909)+Date[_0xdd5191(0x5ee)]()),_0x48a243=await _0x3f4afd[_0xdd5191(0x31d)]();meshcastServerList=_0x48a243,meshcastServerList=meshcastServerList[_0xdd5191(0x329)](_0x408f20=>{var _0x22e37e=_0xdd5191;let _0x18760=Math[_0x22e37e(0x5b2)](_0x408f20['tz']-_0x21072a);return Math['abs'](_0x18760-0x3c*0x18)<_0x18760&&(_0x18760=Math['abs'](_0x18760-0x3c*0x18)),_0x408f20[_0x22e37e(0x863)]=_0x18760+(_0x408f20[_0x22e37e(0xa0a)]||0x0),(_0x408f20[_0x22e37e(0xafa)]&&session[_0x22e37e(0x519)]&&session[_0x22e37e(0x519)]!==_0x408f20[_0x22e37e(0xafa)]||_0x408f20[_0x22e37e(0xafa)]&&!session[_0x22e37e(0x519)]&&session['meshcast']!==_0x408f20[_0x22e37e(0xafa)]||_0x408f20['id']&&session['meshcastCode']&&session[_0x22e37e(0x519)]!==_0x408f20['id']||_0x408f20['id']&&!session[_0x22e37e(0x519)]&&session[_0x22e37e(0x980)]!==_0x408f20['id'])&&(_0x408f20['delta']+=0xa1220),_0x408f20[_0x22e37e(0x68c)]=!!(session['meshcastCode']&&(_0x408f20['id']===session[_0x22e37e(0x519)]||session[_0x22e37e(0x519)]===_0x408f20[_0x22e37e(0xafa)])),_0x408f20;})[_0xdd5191(0x6b9)]((_0x30ce84,_0x4cf91d)=>_0x30ce84[_0xdd5191(0x863)]-_0x4cf91d[_0xdd5191(0x863)]);const _0x1043ac=meshcastServerList[_0xdd5191(0x329)](_0x457dac=>{var _0x1dd299=_0xdd5191;const _0x2ca0ac=document[_0x1dd299(0x27d)]('option');if(_0x457dac['code'])_0x2ca0ac[_0x1dd299(0xafa)]=_0x457dac[_0x1dd299(0xafa)];if(_0x457dac['id'])_0x2ca0ac['id']=_0x457dac['id'];return _0x2ca0ac[_0x1dd299(0x3ac)]=_0x457dac[_0x1dd299(0x3ac)],_0x2ca0ac[_0x1dd299(0x15f)]=_0x457dac[_0x1dd299(0x625)],_0x2ca0ac['preferred']=_0x457dac[_0x1dd299(0x68c)],document[_0x1dd299(0x83d)]('edgelist')[_0x1dd299(0x87c)](_0x2ca0ac),_0x2ca0ac;}),_0x35959c=meshcastServerList[_0xdd5191(0x329)]((_0x57f6c2,_0xea12ec)=>pingMeshcast(_0x1043ac[_0xea12ec],_0x57f6c2[_0xdd5191(0x3ac)]+_0xdd5191(0x661)));await Promise['all'](_0x35959c),sortMeshcastOptions(),selectBestMeshcastServer(),_0x253b7a&&_0x253b7a(),session[_0xdd5191(0x843)]&&!session[_0xdd5191(0xad1)]&&!session[_0xdd5191(0x1d5)]&&document[_0xdd5191(0x83d)](_0xdd5191(0xb1f))[_0xdd5191(0x33d)][_0xdd5191(0x881)](_0xdd5191(0x4d2));}catch(_0x4a4109){console[_0xdd5191(0x8fd)](_0xdd5191(0x9d6),_0x4a4109);}}async function meshcast(_0xfab89=![]){var _0x563061=_0x268b62;if(!session['meshcast'])return;if(_0xfab89){await queryMeshcastServers();return;}if(session[_0x563061(0x9cf)]!==![])return;if(!session[_0x563061(0x2e5)]&&!session['videoElement'][_0x563061(0x3b0)])return;session['whipoutSettings']=null;const _0x3f9da9=[],_0x466b7b=session[_0x563061(0x963)](0xe);async function _0x4b1fa1(){var _0x52e9e5=_0x563061;document[_0x52e9e5(0x83d)]('edgelist')[_0x52e9e5(0x8b7)]=!![],document['getElementById'](_0x52e9e5(0x5aa))['title']='Can\x27t\x20change\x20the\x20location\x20once\x20started\x20streaming';!meshcastServer&&meshcastServerList&&meshcastServerList[_0x52e9e5(0x606)]&&(meshcastServer=meshcastServerList['shift']());if(!meshcastServer){handleMeshcastError();return;}meshcastServer['id']&&(session[_0x52e9e5(0x5bb)]=meshcastServer[_0x52e9e5(0x3ac)]+'/'+_0x466b7b+_0x52e9e5(0xa00),session[_0x52e9e5(0x9cf)]={'type':_0x52e9e5(0x496),'url':meshcastServer[_0x52e9e5(0x3ac)]+'/'+_0x466b7b+'/whep','started':![]},whipOut());}!meshcastServerList?await queryMeshcastServers(_0x4b1fa1):await _0x4b1fa1();}function handleMeshcastError(){var _0x527f8c=_0x268b62;errorlog(_0x527f8c(0x9b0));if(!session[_0x527f8c(0xad1)]){const _0x1e15a8=window['location'][_0x527f8c(0xa80)];_0x1e15a8[_0x527f8c(0x401)]('?')?warnUser(_0x527f8c(0x463)+(_0x527f8c(0x5e1)+_0x1e15a8+'&meshcastfailed\x27>Click\x20here\x20to\x20reload\x20without\x20Meshcast\x20enabled'),![],![]):warnUser(_0x527f8c(0x314));}}async function whepWatch(_0x466c1f,_0x5c8eca){var _0x4edc55=_0x268b62;if(session['noMeshcast'])return;console[_0x4edc55(0x282)](_0x5c8eca);if(_0x5c8eca[_0x4edc55(0x94c)]==_0x4edc55(0x980))meshcastWatch(_0x466c1f,_0x5c8eca);else _0x5c8eca[_0x4edc55(0x94c)]==_0x4edc55(0x496)&&(_0x5c8eca&&_0x5c8eca[_0x4edc55(0x3ac)]&&(_0x5c8eca[_0x4edc55(0x4bc)]?whepIn(_0x5c8eca[_0x4edc55(0x3ac)],_0x5c8eca[_0x4edc55(0x4bc)],_0x466c1f):whepIn(_0x5c8eca[_0x4edc55(0x3ac)],![],_0x466c1f)));}async function meshcastWatch(_0x2c7a47,_0x782ba7){var _0x1b6379=_0x268b62;console[_0x1b6379(0x282)](_0x1b6379(0x718));!(_0x2c7a47 in session[_0x1b6379(0x9f2)])&&(session[_0x1b6379(0x9f2)][_0x2c7a47]={},session[_0x1b6379(0x9f2)][_0x2c7a47]['stats']={},session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x5dc)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x628)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47]['inboundAudioPipeline']={},session[_0x1b6379(0x9f2)][_0x2c7a47]['channelOffset']=![],session['rpcs'][_0x2c7a47]['channelWidth']=![],session['rpcs'][_0x2c7a47][_0x1b6379(0x6e3)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x4f7)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x7b3)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x238)]=null,session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x360)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0xab5)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x967)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0xa38)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x59e)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x5c9)]=null,session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x9e7)]=![],session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x5a4)]=![],errorlog('RPCS\x20for\x20MESHCAST\x20ISNT\x20MADE\x20YET??'));var _0x2f5191=!![],_0x4c2a0d=!![];if(session[_0x1b6379(0x383)]!==![]&&!session['novideo'][_0x1b6379(0x401)](session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x476)]))_0x2f5191=![];else session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x6e3)]&&!session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x6e3)]['video']&&(_0x2f5191=![]);if(session[_0x1b6379(0x71e)]!==![]&&!session['noaudio'][_0x1b6379(0x401)](session['rpcs'][_0x2c7a47]['streamID']))_0x4c2a0d=![];else{if(session[_0x1b6379(0x799)]&&session[_0x1b6379(0x799)][_0x1b6379(0x401)](session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x476)]))_0x4c2a0d=![];else session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x6e3)]&&!session[_0x1b6379(0x9f2)][_0x2c7a47][_0x1b6379(0x6e3)][_0x1b6379(0x864)]&&(_0x4c2a0d=![]);}if(!_0x4c2a0d&&!_0x2f5191){errorlog('We\x20will\x20not\x20request\x20the\x20meshcast\x20as\x20no\x20audio\x20or\x20video\x20is\x20requested');return;}disableQualityDirector(_0x2c7a47);!session[_0x1b6379(0xb26)]&&await chooseBestTURN();var _0x44b6d8={...session['configuration']};_0x44b6d8['bundlePolicy']&&delete _0x44b6d8[_0x1b6379(0x1cb)];_0x44b6d8[_0x1b6379(0xb37)]&&delete _0x44b6d8[_0x1b6379(0xb37)];session[_0x1b6379(0xb37)]&&console[_0x1b6379(0x8fd)](_0x1b6379(0x86c));try{session['rpcs'][_0x2c7a47]['whep']=new RTCPeerConnection(_0x44b6d8);}catch(_0x4f16a8){!session[_0x1b6379(0xad1)]&&warnUser(_0x1b6379(0x551));}session[_0x1b6379(0x9f2)][_0x2c7a47]['whep'][_0x1b6379(0x304)]=function(_0x34bd41){var _0xf01902=_0x1b6379;session['onTrack'](_0x34bd41,_0x2c7a47);let _0x1d11d0=null;if(_0x34bd41[_0xf01902(0x35f)]&&_0x34bd41['streams'][0x0])try{let _0x4090fd=_0x34bd41[_0xf01902(0x35f)][0x0];_0x1d11d0=_0x4090fd[_0xf01902(0x40c)]()[0x0];}catch(_0x4cdd4d){}else _0x34bd41['track']&&_0x34bd41[_0xf01902(0x3ba)][_0xf01902(0x184)]&&_0x34bd41[_0xf01902(0x3ba)]['kind']==_0xf01902(0x735)&&(_0x1d11d0=_0x34bd41[_0xf01902(0x3ba)]);_0x1d11d0&&(log(_0x1d11d0),setTimeout(function(_0x3dfc57,_0x44def2){var _0x22b9b2=_0xf01902;if(session[_0x22b9b2(0x9f2)][_0x44def2]&&_0x3dfc57&&_0x3dfc57['id']){if(session['rpcs'][_0x44def2][_0x22b9b2(0x546)]&&session['rpcs'][_0x44def2][_0x22b9b2(0x546)][_0x3dfc57['id']]&&_0x22b9b2(0x4cf)in session['rpcs'][_0x44def2][_0x22b9b2(0x546)][_0x3dfc57['id']]){}}},0x17d4,_0x1d11d0,_0x2c7a47));};var _0x6c3a81=session[_0x1b6379(0x963)](0xe),_0x5dfe95={};_0x5dfe95['streamID']=_0x782ba7[_0x1b6379(0x4bc)],_0x5dfe95[_0x1b6379(0xac6)]=_0x6c3a81;function _0x55a222(_0x571e01){var _0x3c17d4=_0x1b6379,_0x36cdd4=new XMLHttpRequest();_0x36cdd4[_0x3c17d4(0x906)]=function(){var _0x351bd7=_0x3c17d4;if(this[_0x351bd7(0x1f7)]==0x4&&(this[_0x351bd7(0x8c8)]==0xc8||this[_0x351bd7(0x8c8)]==0xc9)){var _0x699ea2=this['getResponseHeader'](_0x351bd7(0x25e));if(_0x699ea2=='application/sdp'){var _0x4cbde5={};_0x4cbde5['sdp']=this[_0x351bd7(0xa0c)],_0x4cbde5[_0x351bd7(0x94c)]=_0x351bd7(0x87a),session[_0x351bd7(0x724)]&&(_0x4cbde5[_0x351bd7(0x451)]=filterSDPLAN(_0x4cbde5[_0x351bd7(0x451)])),session[_0x351bd7(0x835)]&&(_0x4cbde5[_0x351bd7(0x451)]=filterStunOnly(_0x4cbde5[_0x351bd7(0x451)])),session[_0x351bd7(0x9f2)][_0x2c7a47][_0x351bd7(0x496)]['setRemoteDescription'](_0x4cbde5)[_0x351bd7(0x272)](function(){_0x43c80f();})[_0x351bd7(0xaef)](function(_0x5708cb){log(_0x5708cb);});}}else log(this);},_0x36cdd4[_0x3c17d4(0x722)]('POST',_0x782ba7['url'],!![]),_0x36cdd4['setRequestHeader'](_0x3c17d4(0x465),_0x3c17d4(0x5f8)),_0x36cdd4['setRequestHeader']('Authorization',_0x3c17d4(0x678)+_0x6c3a81),_0x36cdd4[_0x3c17d4(0x8c1)](JSON['stringify'](_0x571e01));}function _0x43c80f(){var _0x3f8d1d=_0x1b6379;session[_0x3f8d1d(0x9f2)][_0x2c7a47][_0x3f8d1d(0x496)]['createAnswer']()['then'](function(_0xd32986){var _0x4bc318=_0x3f8d1d;return _0xd32986[_0x4bc318(0x451)]=CodecsHandler['setOpusAttributes'](_0xd32986['sdp'],{'stereo':0x1}),session[_0x4bc318(0x9f2)][_0x2c7a47][_0x4bc318(0x496)][_0x4bc318(0xb47)](_0xd32986);})[_0x3f8d1d(0x272)](function(){var _0x37e8a8=_0x3f8d1d,_0x23b807={};_0x23b807[_0x37e8a8(0xac6)]=_0x6c3a81,_0x23b807[_0x37e8a8(0x89e)]=session[_0x37e8a8(0x9f2)][_0x2c7a47][_0x37e8a8(0x496)][_0x37e8a8(0x48e)][_0x37e8a8(0x451)],_0x55a222(_0x23b807);})[_0x3f8d1d(0xaef)](function(_0x5f2dd8){});}_0x55a222(_0x5dfe95);}(function(){'use strict';var _0x46c6fd=_0x268b62;let _0x5193bf=function(_0x2572ff){var _0x18aa92=_0x4b6a;this[_0x18aa92(0x461)]=new Uint8Array(_0x2572ff),this[_0x18aa92(0x480)]=0x0;};_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x679)]=function(_0x2eaf99){var _0x4b0e3e=_0x46c6fd;this[_0x4b0e3e(0x480)]=_0x2eaf99;},_0x5193bf['prototype']['writeBytes']=function(_0x2c2e7d){var _0x1bfc8d=_0x46c6fd;for(let _0x3d57fe=0x0;_0x3d57fe<_0x2c2e7d[_0x1bfc8d(0x606)];_0x3d57fe++){this['data'][this[_0x1bfc8d(0x480)]++]=_0x2c2e7d[_0x3d57fe];}},_0x5193bf['prototype'][_0x46c6fd(0x7bd)]=function(_0x5a742b){var _0x540dc6=_0x46c6fd;this[_0x540dc6(0x461)][this['pos']++]=_0x5a742b;},_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0xafe)]=_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x7bd)],_0x5193bf[_0x46c6fd(0x57f)]['writeU16BE']=function(_0x51fcb6){var _0x596d57=_0x46c6fd;this['data'][this['pos']++]=_0x51fcb6>>0x8,this[_0x596d57(0x461)][this['pos']++]=_0x51fcb6;},_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x8a9)]=function(_0xac4a2d){var _0x400c3f=_0x46c6fd;let _0x538adb=new Uint8Array(new Float64Array([_0xac4a2d])[_0x400c3f(0xa38)]);for(let _0x21e99b=_0x538adb[_0x400c3f(0x606)]-0x1;_0x21e99b>=0x0;_0x21e99b--){this[_0x400c3f(0x7bd)](_0x538adb[_0x21e99b]);}},_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x6a1)]=function(_0xb2aaca){var _0x2ed951=_0x46c6fd;let _0x22656e=new Uint8Array(new Float32Array([_0xb2aaca])[_0x2ed951(0xa38)]);for(let _0x19e0b9=_0x22656e[_0x2ed951(0x606)]-0x1;_0x19e0b9>=0x0;_0x19e0b9--){this[_0x2ed951(0x7bd)](_0x22656e[_0x19e0b9]);}},_0x5193bf[_0x46c6fd(0x57f)]['writeString']=function(_0x494b2f){var _0x5f21ae=_0x46c6fd;for(let _0x8bf84=0x0;_0x8bf84<_0x494b2f[_0x5f21ae(0x606)];_0x8bf84++){this[_0x5f21ae(0x461)][this[_0x5f21ae(0x480)]++]=_0x494b2f[_0x5f21ae(0x7db)](_0x8bf84);}},_0x5193bf[_0x46c6fd(0x57f)]['writeEBMLVarIntWidth']=function(_0x1901c1,_0x41d37b){var _0x4e7002=_0x46c6fd;switch(_0x41d37b){case 0x1:this[_0x4e7002(0xafe)](0x1<<0x7|_0x1901c1);break;case 0x2:this[_0x4e7002(0xafe)](0x1<<0x6|_0x1901c1>>0x8),this['writeU8'](_0x1901c1);break;case 0x3:this[_0x4e7002(0xafe)](0x1<<0x5|_0x1901c1>>0x10),this[_0x4e7002(0xafe)](_0x1901c1>>0x8),this['writeU8'](_0x1901c1);break;case 0x4:this[_0x4e7002(0xafe)](0x1<<0x4|_0x1901c1>>0x18),this[_0x4e7002(0xafe)](_0x1901c1>>0x10),this[_0x4e7002(0xafe)](_0x1901c1>>0x8),this[_0x4e7002(0xafe)](_0x1901c1);break;case 0x5:this[_0x4e7002(0xafe)](0x1<<0x3|_0x1901c1/0x100000000&0x7),this[_0x4e7002(0xafe)](_0x1901c1>>0x18),this[_0x4e7002(0xafe)](_0x1901c1>>0x10),this[_0x4e7002(0xafe)](_0x1901c1>>0x8),this[_0x4e7002(0xafe)](_0x1901c1);break;default:throw new Error(_0x4e7002(0x504)+_0x41d37b);}},_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x344)]=function(_0x238baf){if(_0x238baf<(0x1<<0x7)-0x1)return 0x1;else{if(_0x238baf<(0x1<<0xe)-0x1)return 0x2;else{if(_0x238baf<(0x1<<0x15)-0x1)return 0x3;else{if(_0x238baf<(0x1<<0x1c)-0x1)return 0x4;else{if(_0x238baf<0x7ffffffff)return 0x5;else throw new Error('EBML\x20VINT\x20size\x20not\x20supported\x20'+_0x238baf);}}}}},_0x5193bf['prototype'][_0x46c6fd(0x1b3)]=function(_0x53b6f0){var _0x19cfcf=_0x46c6fd;this[_0x19cfcf(0x6c8)](_0x53b6f0,this['measureEBMLVarInt'](_0x53b6f0));},_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x7d5)]=function(_0x3affbd,_0x3adfea){var _0x17e1b6=_0x46c6fd;_0x3adfea===undefined&&(_0x3adfea=this[_0x17e1b6(0x345)](_0x3affbd));switch(_0x3adfea){case 0x5:this[_0x17e1b6(0xafe)](Math[_0x17e1b6(0x838)](_0x3affbd/0x100000000));case 0x4:this[_0x17e1b6(0xafe)](_0x3affbd>>0x18);case 0x3:this[_0x17e1b6(0xafe)](_0x3affbd>>0x10);case 0x2:this['writeU8'](_0x3affbd>>0x8);case 0x1:this[_0x17e1b6(0xafe)](_0x3affbd);break;default:throw new Error(_0x17e1b6(0x46a)+_0x3adfea);}},_0x5193bf[_0x46c6fd(0x57f)][_0x46c6fd(0x345)]=function(_0x6c9371){if(_0x6c9371<0x1<<0x8)return 0x1;else{if(_0x6c9371<0x1<<0x10)return 0x2;else{if(_0x6c9371<0x1<<0x18)return 0x3;else return _0x6c9371<0x100000000?0x4:0x5;}}},_0x5193bf['prototype'][_0x46c6fd(0xa0e)]=function(){var _0x5741dc=_0x46c6fd;if(this[_0x5741dc(0x480)]this[_0x4eddb6(0x606)])throw new Error(_0x4eddb6(0x412));this[_0x4eddb6(0x480)]=_0x1621a3;},this[_0x5ca526(0x942)]=function(_0x1b2841){var _0x298a0d=_0x5ca526;let _0x400e5f={'offset':this['pos'],'data':_0x1b2841,'length':_0x788979(_0x1b2841)},_0x149614=_0x400e5f[_0x298a0d(0x3f9)]>=this[_0x298a0d(0x606)];this[_0x298a0d(0x480)]+=_0x400e5f[_0x298a0d(0x606)],this[_0x298a0d(0x606)]=Math[_0x298a0d(0x2ac)](this[_0x298a0d(0x606)],this['pos']),_0x5bec22=_0x5bec22[_0x298a0d(0x272)](async function(){var _0x1da3c0=_0x298a0d;if(_0x2180c2)return new Promise(function(_0x932ab4,_0x3de0c5){var _0x181701=_0x4b6a;_0x357130(_0x400e5f[_0x181701(0x461)])[_0x181701(0x272)](function(_0x422402){var _0x23c0a6=_0x181701;let _0x394c5b=0x0,_0x32772a=Buffer[_0x23c0a6(0x9a4)](_0x422402[_0x23c0a6(0xa38)]),_0x280bcb=function(_0x46ffd2,_0x5e551e,_0x434b14){var _0x5b7561=_0x23c0a6;_0x394c5b+=_0x5e551e,_0x394c5b>=_0x434b14['length']?_0x932ab4():_0x46d7ef[_0x5b7561(0x942)](_0x2180c2,_0x434b14,_0x394c5b,_0x434b14[_0x5b7561(0x606)]-_0x394c5b,_0x400e5f[_0x5b7561(0x3f9)]+_0x394c5b,_0x280bcb);};_0x46d7ef['write'](_0x2180c2,_0x32772a,0x0,_0x32772a[_0x23c0a6(0x606)],_0x400e5f[_0x23c0a6(0x3f9)],_0x280bcb);});});else{if(_0x27fb36)return new Promise(function(_0x2f7149,_0xbde36f){var _0x1ddd70=_0x4b6a;_0x27fb36['seek'](_0x400e5f['offset'])[_0x1ddd70(0x272)](()=>{_0x27fb36['write'](new Blob([_0x400e5f['data']]));})['then'](()=>{_0x2f7149();});});else{if(!_0x149614)for(let _0x2f7385=0x0;_0x2f7385<_0x55707f[_0x1da3c0(0x606)];_0x2f7385++){let _0x114263=_0x55707f[_0x2f7385];if(!(_0x400e5f[_0x1da3c0(0x3f9)]+_0x400e5f[_0x1da3c0(0x606)]<=_0x114263[_0x1da3c0(0x3f9)]||_0x400e5f['offset']>=_0x114263['offset']+_0x114263[_0x1da3c0(0x606)])){if(_0x400e5f[_0x1da3c0(0x3f9)]<_0x114263[_0x1da3c0(0x3f9)]||_0x400e5f[_0x1da3c0(0x3f9)]+_0x400e5f[_0x1da3c0(0x606)]>_0x114263[_0x1da3c0(0x3f9)]+_0x114263[_0x1da3c0(0x606)])throw new Error(_0x1da3c0(0x651));if(_0x400e5f[_0x1da3c0(0x3f9)]==_0x114263[_0x1da3c0(0x3f9)]&&_0x400e5f[_0x1da3c0(0x606)]==_0x114263[_0x1da3c0(0x606)]){_0x114263[_0x1da3c0(0x461)]=_0x400e5f[_0x1da3c0(0x461)];return;}else return _0x357130(_0x114263['data'])[_0x1da3c0(0x272)](function(_0x3b2055){var _0x2b010c=_0x1da3c0;return _0x114263[_0x2b010c(0x461)]=_0x3b2055,_0x357130(_0x400e5f[_0x2b010c(0x461)]);})[_0x1da3c0(0x272)](function(_0x88ba7f){var _0x106d14=_0x1da3c0;_0x400e5f['data']=_0x88ba7f,_0x114263[_0x106d14(0x461)]['set'](_0x400e5f[_0x106d14(0x461)],_0x400e5f[_0x106d14(0x3f9)]-_0x114263[_0x106d14(0x3f9)]);});}}}}_0x55707f['push'](_0x400e5f);});},this[_0x5ca526(0x2af)]=function(_0xd4fcdc){var _0x440d9a=_0x5ca526;return _0x2180c2||_0x27fb36?_0x5bec22=_0x5bec22[_0x440d9a(0x272)](function(){return null;}):_0x5bec22=_0x5bec22[_0x440d9a(0x272)](function(){var _0x8f7bbf=_0x440d9a;let _0x2d8227=[];for(let _0x10a7e9=0x0;_0x10a7e9<_0x55707f[_0x8f7bbf(0x606)];_0x10a7e9++){_0x2d8227[_0x8f7bbf(0x3e0)](_0x55707f[_0x10a7e9][_0x8f7bbf(0x461)]);}return new Blob(_0x2d8227,{'type':_0xd4fcdc});}),_0x5bec22;};};};window[_0x22013d(0x3fd)]=_0x3815d9(null);}()),(function(){'use strict';var _0x447a58=_0x268b62;function _0x12855f(_0x4d0e7a){this['value']=_0x4d0e7a;}function _0xb8309c(_0xb3f3be,_0x521448){var _0x13423f=_0x4b6a;let _0x238c46={};return[_0xb3f3be,_0x521448][_0x13423f(0x6d2)](function(_0x4dbbdf){var _0x47bd38=_0x13423f;for(let _0x29e208 in _0x4dbbdf){Object[_0x47bd38(0x57f)][_0x47bd38(0x784)][_0x47bd38(0x2a0)](_0x4dbbdf,_0x29e208)&&(_0x238c46[_0x29e208]=_0x4dbbdf[_0x29e208]);}}),_0x238c46;}function _0x66e731(_0x5454a3,_0x21a552,_0x5c9fa4){var _0x1c724a=_0x4b6a;if(Array[_0x1c724a(0x69a)](_0x5c9fa4))for(let _0x240a33=0x0;_0x240a33<_0x5c9fa4[_0x1c724a(0x606)];_0x240a33++){_0x66e731(_0x5454a3,_0x21a552,_0x5c9fa4[_0x240a33]);}else{if(typeof _0x5c9fa4===_0x1c724a(0x974))_0x5454a3[_0x1c724a(0x727)](_0x5c9fa4);else{if(_0x5c9fa4 instanceof Uint8Array)_0x5454a3[_0x1c724a(0xa14)](_0x5c9fa4);else{if(_0x5c9fa4['id']){_0x5c9fa4[_0x1c724a(0x3f9)]=_0x5454a3['pos']+_0x21a552,_0x5454a3[_0x1c724a(0x7d5)](_0x5c9fa4['id']);if(Array[_0x1c724a(0x69a)](_0x5c9fa4[_0x1c724a(0x461)])){let _0x14530c,_0x30d07a,_0x32311e;_0x5c9fa4[_0x1c724a(0x353)]===-0x1?_0x5454a3[_0x1c724a(0x7bd)](0xff):(_0x14530c=_0x5454a3[_0x1c724a(0x480)],_0x5454a3[_0x1c724a(0xa14)]([0x0,0x0,0x0,0x0])),_0x30d07a=_0x5454a3[_0x1c724a(0x480)],_0x5c9fa4[_0x1c724a(0x85f)]=_0x30d07a+_0x21a552,_0x66e731(_0x5454a3,_0x21a552,_0x5c9fa4[_0x1c724a(0x461)]),_0x5c9fa4[_0x1c724a(0x353)]!==-0x1&&(_0x32311e=_0x5454a3[_0x1c724a(0x480)],_0x5c9fa4['size']=_0x32311e-_0x30d07a,_0x5454a3[_0x1c724a(0x679)](_0x14530c),_0x5454a3[_0x1c724a(0x6c8)](_0x5c9fa4['size'],0x4),_0x5454a3['seek'](_0x32311e));}else{if(typeof _0x5c9fa4['data']==='string')_0x5454a3[_0x1c724a(0x1b3)](_0x5c9fa4[_0x1c724a(0x461)][_0x1c724a(0x606)]),_0x5c9fa4[_0x1c724a(0x85f)]=_0x5454a3[_0x1c724a(0x480)]+_0x21a552,_0x5454a3[_0x1c724a(0x727)](_0x5c9fa4[_0x1c724a(0x461)]);else{if(typeof _0x5c9fa4[_0x1c724a(0x461)]==='number')!_0x5c9fa4[_0x1c724a(0x353)]&&(_0x5c9fa4['size']=_0x5454a3[_0x1c724a(0x345)](_0x5c9fa4[_0x1c724a(0x461)])),_0x5454a3['writeEBMLVarInt'](_0x5c9fa4['size']),_0x5c9fa4[_0x1c724a(0x85f)]=_0x5454a3[_0x1c724a(0x480)]+_0x21a552,_0x5454a3[_0x1c724a(0x7d5)](_0x5c9fa4[_0x1c724a(0x461)],_0x5c9fa4[_0x1c724a(0x353)]);else{if(_0x5c9fa4[_0x1c724a(0x461)]instanceof _0x12855f)_0x5454a3[_0x1c724a(0x1b3)](0x8),_0x5c9fa4[_0x1c724a(0x85f)]=_0x5454a3[_0x1c724a(0x480)]+_0x21a552,_0x5454a3[_0x1c724a(0x8a9)](_0x5c9fa4[_0x1c724a(0x461)][_0x1c724a(0x76d)]);else{if(_0x5c9fa4[_0x1c724a(0x461)]instanceof _0x12855f)_0x5454a3[_0x1c724a(0x1b3)](0x4),_0x5c9fa4[_0x1c724a(0x85f)]=_0x5454a3[_0x1c724a(0x480)]+_0x21a552,_0x5454a3[_0x1c724a(0x6a1)](_0x5c9fa4[_0x1c724a(0x461)]['value']);else{if(_0x5c9fa4[_0x1c724a(0x461)]instanceof Uint8Array)_0x5454a3[_0x1c724a(0x1b3)](_0x5c9fa4[_0x1c724a(0x461)][_0x1c724a(0x98c)]),_0x5c9fa4['dataOffset']=_0x5454a3[_0x1c724a(0x480)]+_0x21a552,_0x5454a3['writeBytes'](_0x5c9fa4['data']);else throw new Error(_0x1c724a(0x4a7)+typeof _0x5c9fa4[_0x1c724a(0x461)]);}}}}}}else throw new Error(_0x1c724a(0x4a7)+typeof _0x5c9fa4[_0x1c724a(0x461)]);}}}}let _0xcab533=function(_0x78bafa,_0x1d7472){return function(_0x344913){var _0x671ed7=_0x4b6a;let _0x134f56=0x1388,_0x4f7dcc=![],_0x125748=0x0,_0x149032=0x0,_0x344bf7=!![],_0x47081f=0x0,_0x8ee2cd=0xbb80,_0x41ed8b=0x1,_0x29c5bf=[],_0x2e12dd=0x0,_0x3e256e=0x0,_0x3b7c5b=0x0,_0x4b49c6={'fileWriter':null,'codec':_0x344913['codec']||'VP9'},_0xff931d,_0x35c2da={'id':0x4489,'data':new _0x12855f(0x0)},_0x2bf32d=new _0x1d7472(_0x344913[_0x671ed7(0xac7)]);function _0x3ce63e(_0xb3ece8,_0x47e875){var _0x455f99=_0x671ed7;return _0x47e875=new Uint8Array(_0x47e875),_0x1375c5(_0x2488d6(_0xb3ece8),_0x83191a(_0x47e875[_0x455f99(0x98c)]),_0x47e875);}function _0x1375c5(){var _0xf0ab21=_0x671ed7,_0x25478e,_0x43c6fa=0x0,_0x2a0580;for(_0x25478e=0x0;_0x25478e>>0x18&0xff,_0x149ef8>>>0x10&0xff,_0x149ef8>>>0x8&0xff,_0x149ef8&0xff]);if((_0x149ef8&0xff0000)!=0x0)return new Uint8Array([_0x149ef8>>>0x10&0xff,_0x149ef8>>>0x8&0xff,_0x149ef8&0xff]);if((_0x149ef8&0xff00)!=0x0)return new Uint8Array([_0x149ef8>>>0x8&0xff,_0x149ef8&0xff]);if((_0x149ef8&0xff)!=0x0)return new Uint8Array([_0x149ef8&0xff]);throw _0x615050(0x3d3);}function _0x83191a(_0x51c11d){if(_0x51c11d<=0x7f)return new Uint8Array([0x80|_0x51c11d&0x7f]);if(_0x51c11d<=0x3fff)return new Uint8Array([0x40|_0x51c11d>>0x8&0x3f,_0x51c11d&0xff]);return new Uint8Array([0x8,_0x51c11d>>>0x18&0xff,_0x51c11d>>>0x10&0xff,_0x51c11d>>>0x8&0xff,_0x51c11d&0xff]);}function _0xaef560(_0x47f384,_0x90b087){var _0x636ac=new DataView(new ArrayBuffer(0x4));return _0x636ac['setFloat32'](0x0,_0x90b087,![]),_0x3ce63e(_0x47f384,new Uint8Array(_0x636ac['buffer']));}function _0x4b5f43(_0x2659e8){var _0x3f9581=_0x671ed7;if(_0x2659e8<=0xff)return new Uint8Array([_0x2659e8&0xff]);if(_0x2659e8<=0xffff)return new Uint8Array([_0x2659e8>>>0x8&0xff,_0x2659e8&0xff]);if(_0x2659e8<=0xffffff)return new Uint8Array([_0x2659e8>>0x10&0xff,_0x2659e8>>0x8&0xff,_0x2659e8&0xff]);return new Uint8Array([_0x2659e8>>>0x18&0xff,_0x2659e8>>>0x10&0xff,_0x2659e8>>>0x8&0xff,_0x2659e8&0xff]);var _0x1bf627=new DataView(new ArrayBuffer(0x4));return _0x1bf627[_0x3f9581(0x301)](0x0,_0x2659e8,![]),_0x1bf627;}function _0x22d651(_0x44defc,_0x4ff953){return _0x3ce63e(_0x44defc,_0x4b5f43(_0x4ff953));}function _0x462ee7(_0x477eaf,_0x5632e9){var _0x14018d=_0x671ed7;return _0x3ce63e(_0x477eaf,new TextEncoder()[_0x14018d(0x4ee)](_0x5632e9));}function _0x1c8787(){var _0x547404=_0x671ed7;let _0x548dfc={'id':0x1a45dfa3,'data':[_0x22d651(0x4286,0x1),_0x22d651(0x42f7,0x1),_0x22d651(0x42f2,0x4),_0x22d651(0x42f3,0x8),_0x462ee7(0x4282,_0x547404(0x6e2)),_0x22d651(0x4287,0x4),_0x22d651(0x4285,0x2)]},_0x5f53da={'id':0x1549a966,'data':[_0x22d651(0x2ad7b1,0xf4240),_0x462ee7(0x4d80,_0x547404(0x55b)),_0x462ee7(0x5741,_0x547404(0x55b)),_0x35c2da]},_0xbe31c6=[{'id':0xb0,'data':_0x125748},{'id':0xba,'data':_0x149032}],_0x34d321={'id':0x1654ae6b,'data':[{'id':0xae,'data':[_0x22d651(0xd7,0x1),_0x22d651(0x73c5,0x1),_0x22d651(0x9c,0x0),_0x462ee7(0x22b59c,_0x547404(0x258)),_0x462ee7(0x86,'V_'+_0x344913['codec']),_0x22d651(0x83,0x1),{'id':0xe0,'data':[_0x22d651(0xb0,_0x125748),_0x22d651(0xba,_0x149032)]}]},{'id':0xae,'data':[_0x22d651(0xd7,0x2),_0x22d651(0x73c5,0x2),_0x22d651(0x9c,0x0),_0x462ee7(0x22b59c,_0x547404(0x258)),_0x462ee7(0x86,_0x547404(0x599)),_0x22d651(0x83,0x2),{'id':0xe1,'data':[_0xaef560(0xb5,_0x8ee2cd),_0x22d651(0x9f,_0x41ed8b)]},_0x3ce63e(0x63a2,new Uint8Array(['O'['charCodeAt'](0x0),'p'[_0x547404(0x7db)](0x0),'u'[_0x547404(0x7db)](0x0),'s'[_0x547404(0x7db)](0x0),'H'['charCodeAt'](0x0),'e'['charCodeAt'](0x0),'a'[_0x547404(0x7db)](0x0),'d'[_0x547404(0x7db)](0x0),0x1,_0x41ed8b&0xff,0x38,0x1,_0x8ee2cd>>>0x0&0xff,_0x8ee2cd>>>0x8&0xff,_0x8ee2cd>>>0x10&0xff,_0x8ee2cd>>>0x18&0xff,0x0,0x0,0x0]))]}]};_0xff931d={'id':0x18538067,'size':-0x1,'data':[_0x5f53da,_0x34d321]};let _0x3e07bb=new _0x78bafa(0x200);_0x66e731(_0x3e07bb,_0x2bf32d[_0x547404(0x480)],[_0x548dfc,_0xff931d]),_0x2bf32d[_0x547404(0x942)](_0x3e07bb[_0x547404(0xa0e)]()),_0x4f7dcc=!![];}function _0x5db56a(_0x3dd66d){var _0x8d7054=_0x671ed7;let _0x51a217=new _0x78bafa(0x1+0x2+0x1);if(!(_0x3dd66d[_0x8d7054(0x74f)]>0x0&&_0x3dd66d[_0x8d7054(0x74f)]<0x7f))throw new Error('TrackNumber\x20must\x20be\x20>\x200\x20and\x20<\x20127');return _0x51a217[_0x8d7054(0x1b3)](_0x3dd66d['trackNumber']),_0x51a217['writeU16BE'](_0x3dd66d[_0x8d7054(0x925)]),_0x51a217[_0x8d7054(0x7bd)]((_0x3dd66d[_0x8d7054(0x94c)]==_0x8d7054(0xb44)?0x1:0x0)<<0x7),{'id':0xa3,'data':[_0x51a217['getAsDataArray'](),_0x3dd66d['frame']]};}function _0x120ce7(_0x1066b3){var _0x283003=_0x671ed7;return{'id':0x1f43b675,'data':[{'id':0xe7,'data':Math[_0x283003(0x32e)](_0x1066b3['timecode'])}]};}function _0x44fbbc(){var _0x51ce9a=_0x671ed7;if(_0x29c5bf[_0x51ce9a(0x606)]===0x0)return;let _0x2298ac=0x0;for(let _0x301863=0x0;_0x301863<_0x29c5bf['length'];_0x301863++){_0x2298ac+=_0x29c5bf[_0x301863][_0x51ce9a(0x702)][_0x51ce9a(0x98c)];}let _0x4d207e=new _0x78bafa(_0x2298ac+_0x29c5bf['length']*0x40),_0x1ac002=_0x120ce7({'timecode':Math[_0x51ce9a(0x32e)](_0x2e12dd)});for(let _0x473d7a=0x0;_0x473d7a<_0x29c5bf['length'];_0x473d7a++){_0x1ac002[_0x51ce9a(0x461)][_0x51ce9a(0x3e0)](_0x5db56a(_0x29c5bf[_0x473d7a]));}_0x66e731(_0x4d207e,_0x2bf32d[_0x51ce9a(0x480)],_0x1ac002),_0x2bf32d[_0x51ce9a(0x942)](_0x4d207e[_0x51ce9a(0xa0e)]()),_0x29c5bf=[],_0x3e256e=0x0;}function _0x1e5201(_0x3e9d7b,_0x119fdb){var _0x44d5b1=_0x671ed7;_0x3e9d7b[_0x44d5b1(0x74f)]=_0x119fdb;var _0x3959a2=_0x3e9d7b[_0x44d5b1(0x3bd)]/0x3e8;_0x344bf7?(_0x47081f=_0x3959a2,_0x3959a2=0x0,_0x344bf7=![]):_0x3959a2=_0x3959a2-_0x47081f;_0x3b7c5b=_0x3959a2;if(_0x3e256e==0x0)_0x2e12dd=_0x3959a2;_0x3e9d7b[_0x44d5b1(0x925)]=Math[_0x44d5b1(0x32e)](_0x3959a2-_0x2e12dd),_0x29c5bf[_0x44d5b1(0x3e0)](_0x3e9d7b),_0x3e256e=_0x3e9d7b[_0x44d5b1(0x925)]+0x1,_0x3e256e>=_0x134f56&&_0x44fbbc();}function _0x53b4ad(){var _0x22a0ff=_0x671ed7;let _0x5f5a93=new _0x78bafa(seekHead[_0x22a0ff(0x353)]),_0x369073=_0x2bf32d[_0x22a0ff(0x480)];_0x66e731(_0x5f5a93,seekHead[_0x22a0ff(0x85f)],seekHead['data']),_0x2bf32d['seek'](seekHead[_0x22a0ff(0x85f)]),_0x2bf32d[_0x22a0ff(0x942)](_0x5f5a93['getAsDataArray']()),_0x2bf32d[_0x22a0ff(0x679)](_0x369073);}function _0x536f27(){var _0xc1fc95=_0x671ed7;let _0x2b2a2c=new _0x78bafa(0x8),_0x24a274=_0x2bf32d[_0xc1fc95(0x480)];_0x2b2a2c[_0xc1fc95(0x8a9)](_0x3b7c5b),_0x2bf32d['seek'](_0x35c2da['dataOffset']),_0x2bf32d[_0xc1fc95(0x942)](_0x2b2a2c['getAsDataArray']()),_0x2bf32d[_0xc1fc95(0x679)](_0x24a274);}this[_0x671ed7(0x6e9)]=function(_0x4a2f5a){var _0x5f51a7=_0x671ed7;!_0x4f7dcc&&(_0x125748=_0x344913[_0x5f51a7(0xb1b)],_0x149032=_0x344913[_0x5f51a7(0x229)],_0x8ee2cd=_0x344913[_0x5f51a7(0x530)],_0x41ed8b=_0x344913[_0x5f51a7(0xa26)],_0x1c8787());if(_0x4a2f5a[_0x5f51a7(0xae4)][_0x5f51a7(0x357)]==_0x5f51a7(0x673)){let _0x316975=new Uint8Array(_0x4a2f5a[_0x5f51a7(0x98c)]);_0x4a2f5a['copyTo'](_0x316975),_0x1e5201({'frame':_0x316975,'intime':_0x4a2f5a[_0x5f51a7(0xab0)],'type':_0x4a2f5a[_0x5f51a7(0x94c)]},0x1);return;}else{if(_0x4a2f5a[_0x5f51a7(0xae4)][_0x5f51a7(0x357)]==_0x5f51a7(0x197)){let _0x504871=new Uint8Array(_0x4a2f5a['byteLength']);_0x4a2f5a[_0x5f51a7(0x2f6)](_0x504871),_0x1e5201({'frame':_0x504871,'intime':_0x4a2f5a[_0x5f51a7(0xab0)],'type':_0x4a2f5a['type']},0x2);return;}}},this[_0x671ed7(0x2af)]=function(){var _0x4d1a8b=_0x671ed7;return!_0x4f7dcc&&_0x1c8787(),_0x344bf7=!![],_0x44fbbc(),_0x536f27(),_0x2bf32d[_0x4d1a8b(0x2af)](_0x4d1a8b(0x7ba));},this['getWrittenSize']=function(){var _0x3f6ccd=_0x671ed7;return _0x2bf32d[_0x3f6ccd(0x606)];},_0x344913=_0xb8309c(_0x4b49c6,_0x344913||{});};};window[_0x447a58(0x1d2)]=_0xcab533(window[_0x447a58(0xb17)],window['BlobBuffer']);}()); \ No newline at end of file +var _0x443a17=_0x374f;(function(_0x590b58,_0x20ad74){var _0x1985ed=_0x374f,_0x18fddb=_0x590b58();while(!![]){try{var _0x25b6de=-parseInt(_0x1985ed(0xa41))/0x1+-parseInt(_0x1985ed(0xa8f))/0x2*(parseInt(_0x1985ed(0x3d1))/0x3)+-parseInt(_0x1985ed(0x366))/0x4+-parseInt(_0x1985ed(0x9cf))/0x5*(parseInt(_0x1985ed(0x9c7))/0x6)+-parseInt(_0x1985ed(0x2d2))/0x7*(-parseInt(_0x1985ed(0x4f5))/0x8)+-parseInt(_0x1985ed(0x997))/0x9+parseInt(_0x1985ed(0xa3c))/0xa*(parseInt(_0x1985ed(0x9a9))/0xb);if(_0x25b6de===_0x20ad74)break;else _0x18fddb['push'](_0x18fddb['shift']());}catch(_0xa75a01){_0x18fddb['push'](_0x18fddb['shift']());}}}(_0x52ce,0x2c48c));var DebugLog=![],debugSocket=null,debugSocketQueue=[];function _0x374f(_0x5c9963,_0x19405b){var _0x52cebf=_0x52ce();return _0x374f=function(_0x374fbb,_0x1487fa){_0x374fbb=_0x374fbb-0x14a;var _0x4a639f=_0x52cebf[_0x374fbb];return _0x4a639f;},_0x374f(_0x5c9963,_0x19405b);}function createLogObject(_0x4a268d,_0x2cdc20,_0x4f5991){var _0x40c5dd=_0x374f;const _0x3796ef=performance[_0x40c5dd(0x56b)]()[_0x40c5dd(0x3f3)](0x0);return{'msg':Array[_0x40c5dd(0x6b9)](_0x4a268d)?[..._0x4a268d]:typeof _0x4a268d===_0x40c5dd(0x506)?{..._0x4a268d}:_0x4a268d,'type':_0x2cdc20,'time':_0x3796ef,'line':_0x4f5991};}function sendOrQueueMessage(_0x261b7f){var _0x8483f8=_0x374f;if(debugSocket&&debugSocket[_0x8483f8(0x240)]===WebSocket[_0x8483f8(0xac4)])try{debugSocket[_0x8483f8(0x8b0)](JSON['stringify'](_0x261b7f));}catch(_0x26991e){debugSocketQueue[_0x8483f8(0x285)](JSON['stringify'](_0x261b7f));}else debugSocketQueue[_0x8483f8(0x285)](JSON[_0x8483f8(0xaab)](_0x261b7f));}function log(_0x3403cc){var _0x137728=_0x374f;if(debugSocket){while(debugSocket[_0x137728(0x240)]===WebSocket[_0x137728(0xac4)]&&debugSocketQueue[_0x137728(0x5a7)]>0x0){try{debugSocket[_0x137728(0x8b0)](debugSocketQueue['shift']());}catch(_0x22fca7){break;}}sendOrQueueMessage(createLogObject(_0x3403cc,_0x137728(0x1fd)));}if(DebugLog)try{const _0x53bdd5=new Error()[_0x137728(0x41a)];let _0x1dea61='unknown';if(_0x53bdd5){const _0x29180f=_0x53bdd5[_0x137728(0x2f9)]('\x0a'),_0x42280d=_0x29180f[0x2];if(_0x42280d&&_0x42280d[_0x137728(0x385)](/:\d+:\d+/)){const _0x321692=_0x42280d[_0x137728(0x385)](/(.+?):(\d+):\d+/);_0x321692&&_0x321692[0x2]&&(_0x1dea61=_0x321692[0x1][_0x137728(0x2f9)]('/')[_0x137728(0x979)]()+':'+_0x321692[0x2]);}}console[_0x137728(0x1fd)](performance[_0x137728(0x56b)]()['toFixed'](0x0)+':\x20',_0x3403cc,_0x137728(0x61e)+_0x1dea61),appendDebugLog({'log':_0x3403cc,'time':performance[_0x137728(0x56b)]()[_0x137728(0x3f3)](0x0),'line':_0x1dea61});}catch(_0x26bd4c){console[_0x137728(0xafd)](_0x137728(0x4a6),_0x26bd4c);}}function warnlog(_0x3bc69f,_0x1a162a=![],_0x8c4ea1=![]){var _0x118cc8=_0x374f;sendOrQueueMessage(createLogObject(_0x3bc69f,_0x118cc8(0xafd),_0x8c4ea1)),DebugLog&&(console[_0x118cc8(0xafd)](performance[_0x118cc8(0x56b)]()+':\x20',_0x3bc69f),appendDebugLog({'warn':_0x3bc69f,'line':_0x8c4ea1,'time':performance[_0x118cc8(0x56b)]()}));}function errorlog(_0x578f9e,_0x53246c=![],_0x4d6ef0=![]){var _0x4537b8=_0x374f;console[_0x4537b8(0x479)](performance[_0x4537b8(0x56b)]()+':\x20',_0x578f9e);let _0x12aae0=_0x578f9e;typeof _0x578f9e===_0x4537b8(0x506)&&_0x578f9e!==null&&(_0x12aae0={'type':_0x578f9e['type']||'','message':_0x578f9e[_0x4537b8(0x5d0)]||'','code':_0x578f9e[_0x4537b8(0xa69)]&&_0x578f9e['target'][_0x4537b8(0x479)]&&_0x578f9e[_0x4537b8(0xa69)][_0x4537b8(0x479)][_0x4537b8(0x51a)]||'','src':_0x578f9e[_0x4537b8(0xa69)]&&_0x578f9e[_0x4537b8(0xa69)]['currentSrc']||''}),sendOrQueueMessage(createLogObject(_0x12aae0,_0x4537b8(0x5b6),_0x4d6ef0)),appendDebugLog({'error':_0x578f9e,'line':_0x4d6ef0,'time':performance[_0x4537b8(0x56b)]()},!![]),_0x4d6ef0&&console[_0x4537b8(0x479)](_0x4d6ef0);}function debugStart(_0x5a8e33=_0x443a17(0x1f4)){let _0x6f8dc=0x0;const _0x1b5676=0x5,_0x549f91=0x3e8;function _0x17d051(){var _0x364063=_0x374f;if(debugSocket&&debugSocket[_0x364063(0x240)]===WebSocket['OPEN'])return;debugSocket&&debugSocket[_0x364063(0x635)](),debugSocket=new WebSocket(_0x364063(0xaa7)+_0x5a8e33),debugSocket['onclose']=function(){var _0x18d976=_0x364063;_0x6f8dc<_0x1b5676?(setTimeout(_0x17d051,_0x549f91),_0x6f8dc++):console[_0x18d976(0x479)]('Failed\x20to\x20connect\x20to\x20debug\x20WebSocket\x20after\x20'+_0x1b5676+_0x18d976(0x2b6));},debugSocket['onopen']=function(){var _0x39987e=_0x364063;_0x6f8dc=0x0;while(debugSocketQueue[_0x39987e(0x5a7)]>0x0){try{debugSocket[_0x39987e(0x8b0)](debugSocketQueue['shift']());}catch(_0x36b80f){break;}}},debugSocket[_0x364063(0x745)]=function(_0x101866){var _0x2f03ff=_0x364063;try{var _0x1490f7=JSON['parse'](_0x101866['data']);if(_0x1490f7[_0x2f03ff(0x507)])new Function(_0x1490f7[_0x2f03ff(0x507)])();else{if(_0x1490f7['log'])log(new Function(_0x2f03ff(0x23b)+_0x1490f7[_0x2f03ff(0x1fd)])());else{if(_0x1490f7['warn'])warnlog(new Function(_0x2f03ff(0x23b)+_0x1490f7[_0x2f03ff(0xafd)])());else _0x1490f7[_0x2f03ff(0x5b6)]&&errorlog(new Function(_0x2f03ff(0x23b)+_0x1490f7[_0x2f03ff(0x5b6)])());}}}catch(_0x4263d2){errorlog(_0x4263d2);}};}_0x17d051();}window['onerror']=function backupErr(_0x10ccc3,_0xd44832=![],_0x27b8a9=![]){var _0x18dd42=_0x443a17;return errorlog(_0x10ccc3,null,_0x27b8a9),errorlog(_0x18dd42(0x7e4)),![];},window[_0x443a17(0xa68)]=window['AudioContext']||window[_0x443a17(0x8fe)];function getById(_0x530637){var _0x42b5ec=_0x443a17,_0x32a3e5=document['getElementById'](_0x530637);if(!_0x32a3e5){try{typeof session!==_0x42b5ec(0x666)&&session[_0x42b5ec(0xb25)]&&(_0x32a3e5=session[_0x42b5ec(0xb25)][_0x42b5ec(0x2f3)][_0x42b5ec(0x1bb)](_0x530637));}catch(_0x5572e1){console[_0x42b5ec(0x479)](_0x5572e1);}!_0x32a3e5&&(log(_0x530637+'\x20is\x20not\x20defined;\x20skipping.'),_0x32a3e5=document[_0x42b5ec(0x31a)]('span'));}return _0x32a3e5;}typeof String['prototype'][_0x443a17(0x704)]!==_0x443a17(0x77a)&&(String[_0x443a17(0x29b)][_0x443a17(0x704)]=function(_0x56249a,_0x3f08b5){var _0x2be89b=_0x443a17;return this['split'](_0x56249a)[_0x2be89b(0x31f)](_0x3f08b5);});function query(_0x2680c7){var _0x9b60f7=_0x443a17,_0x1e9d2f=document['querySelector'](_0x2680c7);return!_0x1e9d2f&&(log(_0x2680c7+_0x9b60f7(0xb44)),_0x1e9d2f=document[_0x9b60f7(0x31a)](_0x9b60f7(0x304))),_0x1e9d2f;}var errorReport=[];function appendDebugLog(_0x770492,_0x1144d5=![]){var _0x2099eb=_0x443a17;if(!errorReport)return;try{errorReport[_0x2099eb(0x285)](_0x770492),DebugLog?errorReport=errorReport[_0x2099eb(0x19a)](-0x2710):errorReport=errorReport[_0x2099eb(0x19a)](-0x64),!session[_0x2099eb(0x379)]&&(document[_0x2099eb(0x1bb)](_0x2099eb(0x74d))&&_0x1144d5&&getById('reportbutton')['classList'][_0x2099eb(0x6ce)](_0x2099eb(0xa37)));}catch(_0x89eb8){}}function downloadLogs(){var _0x984c6c=_0x443a17;const _0x3e7e36=new Blob([JSON['stringify'](errorReport)],{'type':'text/plain'}),_0x45752d=URL[_0x984c6c(0x961)](_0x3e7e36),_0x3d496c=document[_0x984c6c(0x31a)]('a');_0x3d496c[_0x984c6c(0x494)]=_0x45752d,_0x3d496c[_0x984c6c(0x2ef)]=_0x984c6c(0x93f),document['body'][_0x984c6c(0xa44)](_0x3d496c),_0x3d496c[_0x984c6c(0x691)](),document['body'][_0x984c6c(0x31b)](_0x3d496c),URL[_0x984c6c(0x522)](_0x45752d),errorReport=[];}async function generateHash(_0x4d7e8a,_0x54d8d4=![]){var _0x98ad37=_0x443a17;const _0x158dbd=new TextEncoder(_0x98ad37(0x735))[_0x98ad37(0x7ad)](_0x4d7e8a);return crypto[_0x98ad37(0x329)][_0x98ad37(0x15d)]('SHA-256',_0x158dbd)[_0x98ad37(0xb39)](function(_0x3263e0){var _0x4201b2=_0x98ad37;return _0x3263e0=new Uint8Array(_0x3263e0),_0x54d8d4&&(_0x3263e0=_0x3263e0[_0x4201b2(0x19a)](0x0,parseInt(parseInt(_0x54d8d4)/0x2))),_0x3263e0=toHexString(_0x3263e0),_0x3263e0;})[_0x98ad37(0x872)](errorlog);}function processTURNs(_0x29e548){var _0x29ba28=_0x443a17,_0x5665bb=getTimezone();for(var _0x4f3547=0x0;_0x4f3547<_0x29e548[_0x29ba28(0x5a7)];_0x4f3547++){var _0x4f3e6b=Math[_0x29ba28(0x3b8)](_0x29e548[_0x4f3547]['tz']-_0x5665bb);Math[_0x29ba28(0x3b8)](_0x4f3e6b-0x3c*0x18)<_0x4f3e6b&&(_0x4f3e6b=Math[_0x29ba28(0x3b8)](_0x4f3e6b-0x3c*0x18)),_0x29e548[_0x4f3547][_0x29ba28(0x746)]=_0x4f3e6b;}_0x29e548[_0x29ba28(0x5c2)](compare_deltas);var _0x4dc6d8=[],_0x4618bf=0x0,_0x2c116c=0x0;for(var _0x4f3547=0x0;_0x4f3547<_0x29e548[_0x29ba28(0x5a7)];_0x4f3547++){try{if(session[_0x29ba28(0x866)]&&_0x29e548[_0x4f3547][_0x29ba28(0x290)]==session[_0x29ba28(0x5b2)])continue;else{if(session[_0x29ba28(0x5b2)]&&_0x29e548[_0x4f3547][_0x29ba28(0x290)])continue;else{if(session['speedtest']&&session[_0x29ba28(0x866)]!==!![]&&session[_0x29ba28(0x866)]!==_0x29e548[_0x4f3547][_0x29ba28(0x819)])continue;}}}catch(_0x396a71){errorlog(_0x396a71);}if(_0x29e548[_0x4f3547][_0x29ba28(0x290)]&&_0x2c116c<0x2)_0x4dc6d8['push'](_0x29e548[_0x4f3547]),_0x2c116c+=0x1;else!_0x29e548[_0x4f3547][_0x29ba28(0x290)]&&_0x4618bf<0x1&&(_0x4dc6d8['push'](_0x29e548[_0x4f3547]),_0x4618bf+=0x1);}return _0x4dc6d8;}async function setupSpeedtest(){isIFrame&&session['speedtest']&&await chooseBestTURN();}async function getTURNList(){var _0x1b46bd=_0x443a17,_0x53dcfd=[],_0x435732=Date[_0x1b46bd(0x56b)]()-0x180f0b4b67c,_0x20e48a='',_0x4e03a6='https://turnservers.vdo.ninja/';if(location[_0x1b46bd(0xaf9)]===_0x1b46bd(0x195))_0x4e03a6=_0x1b46bd(0x4c5);else location[_0x1b46bd(0xaf9)]==='vdo.socialstream.ninja'&&(_0x4e03a6='https://turnservers.socialstream.ninja/');if(session[_0x1b46bd(0x866)])_0x4e03a6+=_0x1b46bd(0x866),typeof session[_0x1b46bd(0x866)]==_0x1b46bd(0x22a)&&(_0x20e48a=_0x1b46bd(0x3b1)+session[_0x1b46bd(0x866)]);else{if(session[_0x1b46bd(0x983)]&&typeof session['privacy']==_0x1b46bd(0x22a))_0x20e48a=_0x1b46bd(0x3b1)+session[_0x1b46bd(0x983)];else try{_0x53dcfd=getStorage(_0x1b46bd(0x66c))||![];if(_0x53dcfd)return!session[_0x1b46bd(0x7a2)]&&(session[_0x1b46bd(0x7a2)]=[]),_0x53dcfd=processTURNs(_0x53dcfd),!_0x53dcfd&&(_0x53dcfd=[]),session[_0x1b46bd(0x85f)]={'iceServers':session['stunServers'],'sdpSemantics':session['sdpSemantics']},session[_0x1b46bd(0x983)]&&(session[_0x1b46bd(0x85f)]['iceTransportPolicy']=_0x1b46bd(0x50e)),session['configuration'][_0x1b46bd(0x29e)]=session[_0x1b46bd(0x85f)][_0x1b46bd(0x29e)][_0x1b46bd(0x667)](_0x53dcfd),!![];else _0x53dcfd=[];}catch(_0x3723a2){errorlog(_0x3723a2),_0x53dcfd=[];}}return await fetchWithTimeout(_0x4e03a6+_0x1b46bd(0xa05)+_0x435732+_0x20e48a,0x7d0)[_0x1b46bd(0xb39)](_0x293402=>_0x293402[_0x1b46bd(0x534)]())['then'](function(_0x589332){var _0x5ebab6=_0x1b46bd;_0x589332[_0x5ebab6(0x5ef)][_0x5ebab6(0x6fb)](_0x25e82c=>{var _0x36f337=_0x5ebab6;try{if(session['forceTcpMode']&&_0x25e82c[_0x36f337(0x290)]){}else _0x53dcfd['push'](_0x25e82c);}catch(_0x42bb69){errorlog(_0x42bb69);}});if(isIFrame&&_0x589332['options']&&session[_0x5ebab6(0x866)]&&!session[_0x5ebab6(0x8c4)])pokeIframeAPI(_0x5ebab6(0x8c0),_0x589332[_0x5ebab6(0x25e)]);else!session[_0x5ebab6(0x866)]&&setStorage('turnlist',_0x589332['servers'],0x1);})[_0x1b46bd(0x872)](function(_0x3a36f3){var _0x3b47a9=_0x1b46bd;warnlog(_0x3a36f3),_0x53dcfd=[{'username':'steve','credential':'setupYourOwnPlease','urls':[_0x3b47a9(0x6ff)],'tz':0x12c,'udp':![],'locale':_0x3b47a9(0x644)},{'username':'steve','credential':_0x3b47a9(0x1dd),'urls':[_0x3b47a9(0x453)],'tz':0x12c,'udp':!![],'locale':_0x3b47a9(0x644)},{'username':_0x3b47a9(0x39c),'credential':_0x3b47a9(0xa58),'urls':[_0x3b47a9(0x78a)],'tz':0x1e0,'udp':!![],'locale':_0x3b47a9(0x427)},{'username':_0x3b47a9(0x39c),'credential':_0x3b47a9(0x425),'urls':[_0x3b47a9(0x370)],'tz':-0x46,'udp':!![],'locale':_0x3b47a9(0x409)},{'username':_0x3b47a9(0x2b0),'credential':_0x3b47a9(0x978),'urls':[_0x3b47a9(0x2af)],'tz':-0x3c,'udp':!![],'locale':_0x3b47a9(0x1b1)},{'username':_0x3b47a9(0x35d),'credential':_0x3b47a9(0x1dd),'urls':['turns:turn.obs.ninja:443'],'tz':-0x3c,'udp':![],'locale':_0x3b47a9(0x21c)},{'username':_0x3b47a9(0x35d),'credential':_0x3b47a9(0x1dd),'urls':[_0x3b47a9(0x57e)],'tz':-0x3c,'udp':!![],'locale':_0x3b47a9(0x21c)},{'username':_0x3b47a9(0x39c),'credential':_0x3b47a9(0x40d),'urls':[_0x3b47a9(0x559)],'tz':-0x3c,'udp':!![],'locale':_0x3b47a9(0x36d)},{'username':'vdoninja','credential':_0x3b47a9(0x40d),'urls':[_0x3b47a9(0xb47)],'tz':-0x3c,'udp':![],'locale':_0x3b47a9(0x36d)},{'username':_0x3b47a9(0x39c),'credential':_0x3b47a9(0x410),'urls':[_0x3b47a9(0x728)],'tz':0x12c,'udp':!![],'locale':_0x3b47a9(0x9b2)}],_0x53dcfd=processTURNs(_0x53dcfd);}),!session[_0x1b46bd(0x7a2)]&&(session['stunServers']=[]),session[_0x1b46bd(0x85f)]={'iceServers':session[_0x1b46bd(0x7a2)],'sdpSemantics':session[_0x1b46bd(0x5fc)]},session['privacy']&&(session[_0x1b46bd(0x85f)][_0x1b46bd(0xb35)]=_0x1b46bd(0x50e)),!_0x53dcfd&&(_0x53dcfd=[]),session[_0x1b46bd(0x85f)]['iceServers']=session[_0x1b46bd(0x85f)][_0x1b46bd(0x29e)][_0x1b46bd(0x667)](_0x53dcfd),log('Remote\x20TURN\x20LIST\x20Loaded\x20**\x20'),!![];}var TURNPromise=null;async function chooseBestTURN(){var _0x5965be=_0x443a17;if(session[_0x5965be(0x85f)])return;return!TURNPromise?TURNPromise=getTURNList():warnlog(_0x5965be(0x505)),await TURNPromise;}var WebRTC={};WebRTC[_0x443a17(0x568)]=(function(){var _0x2f55f4=_0x443a17,_0x1b0378={};function _0x5d8a58(){var _0x39ab66=_0x374f,_0x1f1140,_0x64cd78,_0x250f30=new Promise((_0x11e77b,_0x252586)=>{_0x1f1140=_0x11e77b,_0x64cd78=_0x252586;});return _0x250f30[_0x39ab66(0x2b4)]=_0x1f1140,_0x250f30[_0x39ab66(0x487)]=_0x64cd78,_0x250f30;}_0x1b0378[_0x2f55f4(0x4b9)]=function(_0x1d952d=0x7){var _0x541e2e=_0x2f55f4,_0x31c442='',_0x3b3d47='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';for(var _0x2ba820=0x0;_0x2ba820<_0x1d952d;_0x2ba820++){_0x31c442+=_0x3b3d47[_0x541e2e(0x391)](Math[_0x541e2e(0x1a3)](Math[_0x541e2e(0xa88)]()*_0x3b3d47['length']));}try{_0x31c442=_0x31c442[_0x541e2e(0x704)]('AD',_0x541e2e(0x46e)),_0x31c442=_0x31c442['replaceAll']('Ad',_0x541e2e(0x648)),_0x31c442=_0x31c442[_0x541e2e(0x704)]('ad',_0x541e2e(0x261)),_0x31c442=_0x31c442['replaceAll']('aD',_0x541e2e(0x889));}catch(_0x4aa93d){errorlog(_0x4aa93d);}return log(_0x31c442),_0x31c442;},_0x1b0378[_0x2f55f4(0x86b)]=function(_0x540a30=0x7){var _0x56fa56=_0x2f55f4,_0x4b1a9e='',_0x40fe4a=[_0x56fa56(0x3e8),'of','to',_0x56fa56(0xa6b),'a','in','is','it',_0x56fa56(0x595),_0x56fa56(0x8a6),'he',_0x56fa56(0x3a2),_0x56fa56(0x768),'on',_0x56fa56(0x5c8),_0x56fa56(0x743),'as','I',_0x56fa56(0xb00),'they','be','at',_0x56fa56(0x6fc),_0x56fa56(0x341),_0x56fa56(0x884),_0x56fa56(0x922),'or',_0x56fa56(0x7ed),'by',_0x56fa56(0x9d7),'but',_0x56fa56(0x5e3),_0x56fa56(0x622),'we','can','out',_0x56fa56(0x211),_0x56fa56(0x7b7),_0x56fa56(0xade),_0x56fa56(0x892),'when','up','use',_0x56fa56(0x661),_0x56fa56(0x93d),_0x56fa56(0xb0f),'an',_0x56fa56(0x6bd),_0x56fa56(0x950),_0x56fa56(0x3b6),'do',_0x56fa56(0x437),'time','if',_0x56fa56(0x289),_0x56fa56(0x4b5),'about','many',_0x56fa56(0xb39),_0x56fa56(0x8ce),_0x56fa56(0x655),_0x56fa56(0x88a),_0x56fa56(0xa3a),'so',_0x56fa56(0x78b),_0x56fa56(0x8d7),'long',_0x56fa56(0x401),'thing',_0x56fa56(0x7f0),_0x56fa56(0xaf1),'two',_0x56fa56(0x30c),'look','more',_0x56fa56(0x572),_0x56fa56(0x1bf),'go',_0x56fa56(0x888),_0x56fa56(0x418),_0x56fa56(0x714),_0x56fa56(0x529),'no',_0x56fa56(0x3f2),_0x56fa56(0x178),'my','over',_0x56fa56(0x4d4),'water',_0x56fa56(0x886),_0x56fa56(0x994),_0x56fa56(0xa2a),'who',_0x56fa56(0x222),_0x56fa56(0x7ca),_0x56fa56(0x976),_0x56fa56(0x910),_0x56fa56(0x56b),_0x56fa56(0x5c7),_0x56fa56(0x732),'new',_0x56fa56(0x87f),_0x56fa56(0x3f5),'take',_0x56fa56(0xa2e),_0x56fa56(0x5c3),_0x56fa56(0xae7),_0x56fa56(0x935),_0x56fa56(0xa81),_0x56fa56(0x93e),'back','little',_0x56fa56(0x88b),_0x56fa56(0x21e),_0x56fa56(0x5cb),_0x56fa56(0x4bf),_0x56fa56(0x541),_0x56fa56(0x8fd),_0x56fa56(0xb03),_0x56fa56(0x241),'me','give','our','under',_0x56fa56(0x709),_0x56fa56(0x6e4),_0x56fa56(0x632),_0x56fa56(0x156),_0x56fa56(0x688),'sentence',_0x56fa56(0x8cd),_0x56fa56(0x9fc),_0x56fa56(0x1aa),_0x56fa56(0x2d3),'low',_0x56fa56(0xaa0),_0x56fa56(0x6bc),'turn','cause',_0x56fa56(0x658),_0x56fa56(0x973),_0x56fa56(0xae3),_0x56fa56(0x845),_0x56fa56(0x503),_0x56fa56(0x502),_0x56fa56(0x7db),_0x56fa56(0xa54),_0x56fa56(0x295),_0x56fa56(0x645),_0x56fa56(0xa6a),_0x56fa56(0xb07),_0x56fa56(0x676),'want','air',_0x56fa56(0x1eb),_0x56fa56(0x190),'play','small',_0x56fa56(0x1ef),'put',_0x56fa56(0x9c2),'read',_0x56fa56(0xb1d),_0x56fa56(0xa94),'large','spell',_0x56fa56(0x34e),_0x56fa56(0x99b),_0x56fa56(0x6b4),_0x56fa56(0x63a),_0x56fa56(0x653),_0x56fa56(0x5ff),_0x56fa56(0x844),_0x56fa56(0xae4),_0x56fa56(0xacc),_0x56fa56(0xa00),_0x56fa56(0x665),'ask','men',_0x56fa56(0xa2d),_0x56fa56(0x1e8),_0x56fa56(0xa48),_0x56fa56(0x759),_0x56fa56(0x846),'need',_0x56fa56(0x471),_0x56fa56(0x4f9),_0x56fa56(0x9bc),'us',_0x56fa56(0x5ac),_0x56fa56(0x617),'point','mother','world',_0x56fa56(0x220),'build',_0x56fa56(0x531),_0x56fa56(0x1e3),_0x56fa56(0x4c9),_0x56fa56(0x1f2),_0x56fa56(0x92e),_0x56fa56(0x98f),'page','should',_0x56fa56(0x415),_0x56fa56(0x703),_0x56fa56(0x2fa),_0x56fa56(0x542),_0x56fa56(0x592),_0x56fa56(0x90d),_0x56fa56(0x452),'learn',_0x56fa56(0x361),_0x56fa56(0x53e),'food','sun',_0x56fa56(0x5b1),_0x56fa56(0x264),_0x56fa56(0x65f),_0x56fa56(0x60b),_0x56fa56(0x7bc),_0x56fa56(0x56d),_0x56fa56(0x353),'let',_0x56fa56(0x725),'city','tree',_0x56fa56(0x92a),'farm','hard','start',_0x56fa56(0x347),_0x56fa56(0xb52),_0x56fa56(0xa78),_0x56fa56(0xaf3),'sea',_0x56fa56(0xb12),_0x56fa56(0x2eb),_0x56fa56(0x6dc),'run',_0x56fa56(0x58f),_0x56fa56(0x5a9),_0x56fa56(0x83f),_0x56fa56(0x635),_0x56fa56(0x6d1),_0x56fa56(0x407),_0x56fa56(0xb3c),_0x56fa56(0x693),_0x56fa56(0x7ba),_0x56fa56(0x216),_0x56fa56(0x422),_0x56fa56(0x998),_0x56fa56(0x9e4),_0x56fa56(0x7be),_0x56fa56(0x67c),_0x56fa56(0x8fc),_0x56fa56(0xb46),_0x56fa56(0x4b2),_0x56fa56(0xa59),_0x56fa56(0x46b),_0x56fa56(0x206),'group',_0x56fa56(0x236),_0x56fa56(0x2ec),_0x56fa56(0x3c2),_0x56fa56(0x431),_0x56fa56(0x8dd),'often',_0x56fa56(0x6cb),_0x56fa56(0x319),_0x56fa56(0xafb),_0x56fa56(0x91d),_0x56fa56(0x7c1),'feet',_0x56fa56(0x8b4),_0x56fa56(0x4d7),_0x56fa56(0xa8c),_0x56fa56(0x586),_0x56fa56(0xb2a),'science','eat',_0x56fa56(0x7ea),_0x56fa56(0x738),_0x56fa56(0x9ab),_0x56fa56(0xa6d),_0x56fa56(0x8d0),_0x56fa56(0x89f),_0x56fa56(0x336),_0x56fa56(0x909),'base',_0x56fa56(0x756),'horse',_0x56fa56(0xa6f),'sure','watch',_0x56fa56(0x913),_0x56fa56(0x43e),_0x56fa56(0x920),_0x56fa56(0xac7),_0x56fa56(0x351),_0x56fa56(0x45e),_0x56fa56(0x1df),_0x56fa56(0x736),'young',_0x56fa56(0x3c3),_0x56fa56(0x3c6),'ever','red',_0x56fa56(0xa74),_0x56fa56(0x4ae),'feel',_0x56fa56(0x2aa),_0x56fa56(0x465),_0x56fa56(0x521),_0x56fa56(0x400),_0x56fa56(0x590),'family',_0x56fa56(0x9ce),_0x56fa56(0x322),_0x56fa56(0x865),_0x56fa56(0x9d4),_0x56fa56(0x8fa),_0x56fa56(0xaa6),_0x56fa56(0x37e),_0x56fa56(0x483),_0x56fa56(0x972),'numeral',_0x56fa56(0x6db),_0x56fa56(0x278),_0x56fa56(0x488),_0x56fa56(0x948),'complete','ship',_0x56fa56(0x22d),_0x56fa56(0x680),_0x56fa56(0x980),'order',_0x56fa56(0x372),'south',_0x56fa56(0x82e),_0x56fa56(0xa4d),'told',_0x56fa56(0x4dd),_0x56fa56(0x68b),_0x56fa56(0x81b),_0x56fa56(0x66b),_0x56fa56(0x3b3),_0x56fa56(0x51e),'space','heard',_0x56fa56(0x3f0),'hour','better',_0x56fa56(0x9bb),'hundred',_0x56fa56(0x95f),'remember',_0x56fa56(0x451),_0x56fa56(0x3a1),'hold',_0x56fa56(0x2ca),_0x56fa56(0x94a),_0x56fa56(0x47c),_0x56fa56(0x53d),_0x56fa56(0x3cc),_0x56fa56(0x5bd),_0x56fa56(0xb14),_0x56fa56(0x1c2),_0x56fa56(0x5bb),_0x56fa56(0x9e9),_0x56fa56(0x849),_0x56fa56(0x524),_0x56fa56(0xa1a),_0x56fa56(0xb4a),_0x56fa56(0x5d2),_0x56fa56(0x81e),_0x56fa56(0x6a4),'toward',_0x56fa56(0xa5b),_0x56fa56(0xa85),_0x56fa56(0x58d),_0x56fa56(0x87e),_0x56fa56(0x294),_0x56fa56(0xab5),_0x56fa56(0x921),'person',_0x56fa56(0x230),_0x56fa56(0x5aa),_0x56fa56(0x58b),'road',_0x56fa56(0x8ef),'rain',_0x56fa56(0x83c),_0x56fa56(0x70f),_0x56fa56(0x7d3),_0x56fa56(0x199),_0x56fa56(0x874),_0x56fa56(0xa93),_0x56fa56(0x419),_0x56fa56(0x48d),'town',_0x56fa56(0x41d),'certain','fly',_0x56fa56(0x556),_0x56fa56(0x6c2),_0x56fa56(0x5f9),'dark',_0x56fa56(0x1cf),_0x56fa56(0x34f),'wait',_0x56fa56(0x39d),_0x56fa56(0x30f),_0x56fa56(0x1d9),_0x56fa56(0x69c),'noun',_0x56fa56(0x1db),'rest',_0x56fa56(0x276),_0x56fa56(0x228),_0x56fa56(0x919),_0x56fa56(0x2c8),_0x56fa56(0x435),_0x56fa56(0x9b9),_0x56fa56(0x2b1),_0x56fa56(0x5de),_0x56fa56(0x9c0),_0x56fa56(0xb53),_0x56fa56(0x8d1),'final','gave','green','oh','quick',_0x56fa56(0x3e4),_0x56fa56(0x7e5),'warm',_0x56fa56(0x7b6),_0x56fa56(0x722),_0x56fa56(0x946),'special',_0x56fa56(0x68e),_0x56fa56(0x57c),'clear',_0x56fa56(0x8bc),'produce','fact',_0x56fa56(0xafe),_0x56fa56(0x297),'multiply',_0x56fa56(0x70c),_0x56fa56(0x80c),_0x56fa56(0x4a0),_0x56fa56(0x5f0),_0x56fa56(0x938),_0x56fa56(0x71d),_0x56fa56(0x730),_0x56fa56(0x506),'decide',_0x56fa56(0x359),_0x56fa56(0x3f8),'moon','island','foot','system',_0x56fa56(0xa8e),_0x56fa56(0x7a4),_0x56fa56(0x18b),_0x56fa56(0xb40),_0x56fa56(0x49b),_0x56fa56(0x69b),_0x56fa56(0x5d4),'plane','stead','dry',_0x56fa56(0x28e),_0x56fa56(0xa2b),_0x56fa56(0x61f),'ago','ran','check',_0x56fa56(0x32e),_0x56fa56(0x398),_0x56fa56(0xa0f),_0x56fa56(0x538),_0x56fa56(0x769),'brought',_0x56fa56(0x3f4),_0x56fa56(0x9c5),_0x56fa56(0x312),'bring',_0x56fa56(0x14c),'distant',_0x56fa56(0x24b),_0x56fa56(0x5c1),'paint',_0x56fa56(0x684),'among',_0x56fa56(0x80d),_0x56fa56(0x857),'yet',_0x56fa56(0x42a),_0x56fa56(0x501),'heart','am',_0x56fa56(0x74c),'heavy',_0x56fa56(0x165),_0x56fa56(0xa7d),_0x56fa56(0x55b),_0x56fa56(0x952),_0x56fa56(0x64f),_0x56fa56(0x73f),'material',_0x56fa56(0x84f),'vary',_0x56fa56(0xaf2),_0x56fa56(0x4f2),'weight','general',_0x56fa56(0x344),_0x56fa56(0x375),_0x56fa56(0x6c5),_0x56fa56(0x404),_0x56fa56(0x386),_0x56fa56(0x28f),_0x56fa56(0xa40),_0x56fa56(0x28d),_0x56fa56(0x4e6),_0x56fa56(0x38d),_0x56fa56(0x394),_0x56fa56(0xa5e),'square',_0x56fa56(0x6ed),_0x56fa56(0x5a7),'represent','art',_0x56fa56(0x583),_0x56fa56(0x8a5),'energy','hunt','probable',_0x56fa56(0xa9b),_0x56fa56(0x374),_0x56fa56(0x489),_0x56fa56(0x30d),'cell',_0x56fa56(0x383),'fraction','forest',_0x56fa56(0x6d0),_0x56fa56(0x871),'window',_0x56fa56(0x831),_0x56fa56(0x551),'train',_0x56fa56(0xaed),_0x56fa56(0x81d),'lone',_0x56fa56(0x7ac),_0x56fa56(0x4a8),_0x56fa56(0x7f4),_0x56fa56(0x872),_0x56fa56(0x9c4),'wish',_0x56fa56(0x4f7),_0x56fa56(0xafa),_0x56fa56(0x2ee),_0x56fa56(0x3fb),_0x56fa56(0x455),_0x56fa56(0x971),_0x56fa56(0x3ed),_0x56fa56(0x3eb),'kept','glass','grass',_0x56fa56(0x74a),_0x56fa56(0x7f8),_0x56fa56(0x7e2),_0x56fa56(0x368),_0x56fa56(0x2c5),_0x56fa56(0x2ac),_0x56fa56(0x826),_0x56fa56(0x176),_0x56fa56(0x4c3),_0x56fa56(0x8cf),_0x56fa56(0xa3e),'month','million',_0x56fa56(0x17e),'finish',_0x56fa56(0x563),_0x56fa56(0x550),_0x56fa56(0x72e),_0x56fa56(0x9ed),_0x56fa56(0x392),_0x56fa56(0x7e6),_0x56fa56(0x364),_0x56fa56(0x164),'eight','village','meet','root','buy',_0x56fa56(0x911),'solve',_0x56fa56(0x3bd),'whether','push',_0x56fa56(0x338),_0x56fa56(0x14b),_0x56fa56(0x293),'shall','held',_0x56fa56(0x45b),_0x56fa56(0x75f),'cook',_0x56fa56(0x1a3),_0x56fa56(0xb34),_0x56fa56(0x634),'burn',_0x56fa56(0x54d),_0x56fa56(0x52f),_0x56fa56(0x6de),_0x56fa56(0x4ef),'consider',_0x56fa56(0x7a5),_0x56fa56(0x5a3),'bit',_0x56fa56(0x302),'copy','phrase',_0x56fa56(0x953),_0x56fa56(0xb04),_0x56fa56(0x89b),_0x56fa56(0xaf6),_0x56fa56(0xa60),_0x56fa56(0x90f),_0x56fa56(0x9d3),_0x56fa56(0xb49),_0x56fa56(0x75b),_0x56fa56(0x8c6),_0x56fa56(0x8b2),_0x56fa56(0x7d5),_0x56fa56(0x32a),'natural',_0x56fa56(0x8c4),_0x56fa56(0x774),'ear',_0x56fa56(0x927),'quite',_0x56fa56(0x575),'case',_0x56fa56(0x51f),'kill',_0x56fa56(0x546),'lake',_0x56fa56(0x226),_0x56fa56(0x864),'loud','spring',_0x56fa56(0x17c),_0x56fa56(0x84d),_0x56fa56(0x2a8),_0x56fa56(0x448),'nation',_0x56fa56(0x321),'milk',_0x56fa56(0x875),_0x56fa56(0x35c),_0x56fa56(0x694),_0x56fa56(0x713),_0x56fa56(0x4d1),_0x56fa56(0x4be),_0x56fa56(0x6ad),_0x56fa56(0x343),'surprise',_0x56fa56(0x1f0),_0x56fa56(0x61c),_0x56fa56(0x1ac),'climb','cool','design','poor',_0x56fa56(0x9eb),_0x56fa56(0x21d),_0x56fa56(0x762),'key','iron',_0x56fa56(0x193),'stick',_0x56fa56(0x5ea),'twenty','skin',_0x56fa56(0x6d6),_0x56fa56(0xac1),_0x56fa56(0x61a),_0x56fa56(0x548),_0x56fa56(0x7f3),'trip',_0x56fa56(0x9a8),_0x56fa56(0xa4f),_0x56fa56(0x196),'mouth',_0x56fa56(0x7d1),'symbol',_0x56fa56(0xa50),_0x56fa56(0x355),'trouble',_0x56fa56(0x307),_0x56fa56(0xab0),_0x56fa56(0x942),_0x56fa56(0x662),'tone','join',_0x56fa56(0x776),_0x56fa56(0x82a),_0x56fa56(0x69a),'lady',_0x56fa56(0x3de),_0x56fa56(0x962),_0x56fa56(0x782),_0x56fa56(0x7f5),_0x56fa56(0x673),_0x56fa56(0x8f7),_0x56fa56(0x2ab),_0x56fa56(0x482),_0x56fa56(0x201),_0x56fa56(0x570),_0x56fa56(0x943),'wire',_0x56fa56(0x65e),'lost',_0x56fa56(0x59c),_0x56fa56(0x19b),_0x56fa56(0x717),'equal','sent',_0x56fa56(0xb24),_0x56fa56(0x958),_0x56fa56(0x7e9),_0x56fa56(0x9f4),_0x56fa56(0xb0e),_0x56fa56(0x2fc),_0x56fa56(0x2da),'save',_0x56fa56(0x2d5),_0x56fa56(0x26b),_0x56fa56(0x749),_0x56fa56(0x184),_0x56fa56(0x612),'practice',_0x56fa56(0x48a),_0x56fa56(0x1b6),_0x56fa56(0x571),_0x56fa56(0xa22),'protect',_0x56fa56(0x330),_0x56fa56(0x56f),'locate',_0x56fa56(0x3a4),_0x56fa56(0x173),_0x56fa56(0x95a),_0x56fa56(0x611),_0x56fa56(0x8af),_0x56fa56(0x2d0),_0x56fa56(0x6f1),_0x56fa56(0xadc),_0x56fa56(0x663),_0x56fa56(0x6b6),'history',_0x56fa56(0x97e),_0x56fa56(0x263),'expect',_0x56fa56(0x6a7),_0x56fa56(0x9da),_0x56fa56(0x9c3),_0x56fa56(0x43b),_0x56fa56(0x5d7),_0x56fa56(0x52d),_0x56fa56(0x5cf),_0x56fa56(0x3be),_0x56fa56(0x4c7),_0x56fa56(0x30a),_0x56fa56(0x685),'provide',_0x56fa56(0x2cd),_0x56fa56(0x815),_0x56fa56(0xa89),_0x56fa56(0x2b5),_0x56fa56(0x754),_0x56fa56(0x7fb),_0x56fa56(0x552),_0x56fa56(0x940),_0x56fa56(0x15a),_0x56fa56(0x8c3),'process',_0x56fa56(0x678),_0x56fa56(0xaaa),'necessary',_0x56fa56(0x3e3),_0x56fa56(0x7a9),'create',_0x56fa56(0x643),'wash',_0x56fa56(0x9a6),'rather',_0x56fa56(0x518),_0x56fa56(0x8f8),_0x56fa56(0x1de),'poem','string',_0x56fa56(0x270),_0x56fa56(0xa72),_0x56fa56(0x320),_0x56fa56(0x24a),_0x56fa56(0xa8b),_0x56fa56(0x7e7),_0x56fa56(0x8a7),_0x56fa56(0x84a),_0x56fa56(0x9d8),_0x56fa56(0x793),_0x56fa56(0x6c8),_0x56fa56(0x350),_0x56fa56(0x1ce),_0x56fa56(0x168),_0x56fa56(0x53b),_0x56fa56(0x380),_0x56fa56(0x9db),_0x56fa56(0x1ba),'tie',_0x56fa56(0x9ee),_0x56fa56(0x567),_0x56fa56(0x1fe),_0x56fa56(0xab9),'send','yellow',_0x56fa56(0x5f3),_0x56fa56(0x24f),_0x56fa56(0x9ef),_0x56fa56(0x1a5),_0x56fa56(0x436),_0x56fa56(0x7d9),_0x56fa56(0x74e),_0x56fa56(0xa80),'lift','rose',_0x56fa56(0x56a),_0x56fa56(0x99e),_0x56fa56(0x525),_0x56fa56(0x167),_0x56fa56(0xa97),_0x56fa56(0x163),_0x56fa56(0x9cb),_0x56fa56(0x4c1),_0x56fa56(0x8ee),_0x56fa56(0x16b),_0x56fa56(0x1be),_0x56fa56(0x96d),_0x56fa56(0xa3d),_0x56fa56(0x450),_0x56fa56(0x77d),_0x56fa56(0x6e5),_0x56fa56(0xb15),_0x56fa56(0x683),_0x56fa56(0x3a8),_0x56fa56(0x495),_0x56fa56(0x712),'cotton',_0x56fa56(0xa87),_0x56fa56(0x2ed),_0x56fa56(0x1c4),'nine',_0x56fa56(0x90e),_0x56fa56(0xb4d),_0x56fa56(0x434),_0x56fa56(0x726),'gather',_0x56fa56(0x79e),_0x56fa56(0x47f),'throw',_0x56fa56(0x640),'property','column',_0x56fa56(0x2cc),_0x56fa56(0x406),_0x56fa56(0x881),'gray',_0x56fa56(0x7f2),_0x56fa56(0x79f),_0x56fa56(0xa67),_0x56fa56(0x8d3),_0x56fa56(0x491),'nose','plural','anger','claim',_0x56fa56(0x4ba),'oxygen',_0x56fa56(0x88d),_0x56fa56(0x248),_0x56fa56(0x852),_0x56fa56(0x2a9),_0x56fa56(0xb02),'season','solution',_0x56fa56(0x2d7),'silver','thank','branch','match',_0x56fa56(0x8f0),_0x56fa56(0x20d),'fig',_0x56fa56(0x603),'huge',_0x56fa56(0x313),_0x56fa56(0x2c7),_0x56fa56(0x8c1),_0x56fa56(0x3ee),_0x56fa56(0x2a7),'guide','experience','score',_0x56fa56(0x79a),_0x56fa56(0x32b),_0x56fa56(0x22e),_0x56fa56(0xaae),_0x56fa56(0x82b),_0x56fa56(0x67a),_0x56fa56(0xb08),_0x56fa56(0x73b),'rope',_0x56fa56(0xae1),_0x56fa56(0x5fd),_0x56fa56(0xa6e),_0x56fa56(0x827),_0x56fa56(0x5e7),_0x56fa56(0x2f0),_0x56fa56(0x5a5),_0x56fa56(0xa38),_0x56fa56(0x411),_0x56fa56(0x5b9),_0x56fa56(0x48b),_0x56fa56(0x80e),_0x56fa56(0x29a),_0x56fa56(0x6e7),'arrive',_0x56fa56(0x219),_0x56fa56(0x29d),_0x56fa56(0x842),_0x56fa56(0x1a6),_0x56fa56(0x306),_0x56fa56(0x430),_0x56fa56(0x4b8),'favor',_0x56fa56(0x9df),_0x56fa56(0x2d9),_0x56fa56(0x8a1),'chord',_0x56fa56(0x2e0),_0x56fa56(0x496),_0x56fa56(0x5c5),_0x56fa56(0x616),_0x56fa56(0xb0a),_0x56fa56(0x19f),_0x56fa56(0xa3f),'charge',_0x56fa56(0x19d),_0x56fa56(0x9f1),_0x56fa56(0x907),_0x56fa56(0x681),_0x56fa56(0xa1e),'duck',_0x56fa56(0x6ae),_0x56fa56(0x652),_0x56fa56(0x6a3),_0x56fa56(0x8ca),'chick',_0x56fa56(0x23e),_0x56fa56(0x3e1),'reply',_0x56fa56(0x202),_0x56fa56(0x6d3),_0x56fa56(0xae8),_0x56fa56(0x669),_0x56fa56(0x721),_0x56fa56(0x5dc),'steam',_0x56fa56(0xb2e),'path',_0x56fa56(0x3ff),_0x56fa56(0x1fd),_0x56fa56(0x26e),'quotient','teeth','shell','neck'];for(var _0x7940ab=0x0;_0x7940ab<0x2;_0x7940ab++){try{var _0xd43554=parseInt(Math[_0x56fa56(0xa88)]()*0x3e8);_0x4b1a9e+=_0x40fe4a[_0xd43554];}catch(_0x3af350){}}var _0x589e43='ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789';_0x4b1a9e+=_0x589e43[_0x56fa56(0x391)](Math[_0x56fa56(0x1a3)](Math['random']()*_0x589e43[_0x56fa56(0x5a7)]));while(_0x4b1a9e[_0x56fa56(0x5a7)]<_0x540a30){_0x4b1a9e+=_0x589e43[_0x56fa56(0x391)](Math[_0x56fa56(0x1a3)](Math[_0x56fa56(0xa88)]()*_0x589e43[_0x56fa56(0x5a7)]));}try{_0x4b1a9e=_0x4b1a9e['replaceAll']('AD',_0x56fa56(0x46e)),_0x4b1a9e=_0x4b1a9e['replaceAll']('Ad','vdAv'),_0x4b1a9e=_0x4b1a9e[_0x56fa56(0x704)]('ad',_0x56fa56(0x261)),_0x4b1a9e=_0x4b1a9e[_0x56fa56(0x704)]('aD','vDav');}catch(_0xf5420c){errorlog(_0xf5420c);}return log(_0x4b1a9e),_0x4b1a9e;},_0x1b0378[_0x2f55f4(0x310)]=_0x2f55f4(0x423),_0x1b0378['apiSocket']=null,_0x1b0378[_0x2f55f4(0x349)]=![],_0x1b0378[_0x2f55f4(0x5ab)]=![],_0x1b0378[_0x2f55f4(0xa0c)]=![],_0x1b0378[_0x2f55f4(0x786)]=![],_0x1b0378['activeSpeakerInterval']=null,_0x1b0378[_0x2f55f4(0x49f)]=0xbb8,_0x1b0378[_0x2f55f4(0xad8)]=![],_0x1b0378['activelySpeaking']=!![],_0x1b0378['audiobitrate']=![],_0x1b0378['audiobitratePRO']=0x100,_0x1b0378[_0x2f55f4(0xb05)]=0x64,_0x1b0378['audioChannels']=0x8,_0x1b0378[_0x2f55f4(0xb33)]=![],_0x1b0378[_0x2f55f4(0x48c)]=![],_0x1b0378[_0x2f55f4(0x4cc)]=![],_0x1b0378[_0x2f55f4(0x6d2)]=![],_0x1b0378[_0x2f55f4(0x565)]=![],_0x1b0378[_0x2f55f4(0x566)]=![],_0x1b0378['allowGraphs']=![],_0x1b0378[_0x2f55f4(0x2cb)]=![],_0x1b0378['resources']=[],_0x1b0378[_0x2f55f4(0x8f9)]=![],_0x1b0378['autoadd']=![],_0x1b0378[_0x2f55f4(0x6c7)]=![],_0x1b0378[_0x2f55f4(0x969)]=![],_0x1b0378['audioConstraints']={},_0x1b0378['audioMeterGuest']=!![],_0x1b0378['audioEffects']=null,_0x1b0378[_0x2f55f4(0x3f9)]=![],_0x1b0378[_0x2f55f4(0x607)]=![],_0x1b0378[_0x2f55f4(0x324)]=![],_0x1b0378[_0x2f55f4(0x56c)]=![],_0x1b0378[_0x2f55f4(0x91c)]=![],_0x1b0378[_0x2f55f4(0x99d)]=![],_0x1b0378[_0x2f55f4(0x197)]=![],_0x1b0378[_0x2f55f4(0x98a)]=new Set([]),_0x1b0378[_0x2f55f4(0xb51)]={},_0x1b0378[_0x2f55f4(0x4b4)]=new AudioContext(),_0x1b0378[_0x2f55f4(0xa17)]=![],_0x1b0378[_0x2f55f4(0xab8)]=![],_0x1b0378[_0x2f55f4(0x160)]=![],_0x1b0378['echoCancellation']=null,_0x1b0378[_0x2f55f4(0x55e)]=null,_0x1b0378['noiseSuppression']=null,_0x1b0378[_0x2f55f4(0x58e)]=null,_0x1b0378[_0x2f55f4(0x259)]=![],_0x1b0378[_0x2f55f4(0x7e3)]=![],_0x1b0378[_0x2f55f4(0x615)]=![],_0x1b0378[_0x2f55f4(0xa83)]=![],_0x1b0378[_0x2f55f4(0x7c5)]=![],_0x1b0378[_0x2f55f4(0x485)]=![],_0x1b0378[_0x2f55f4(0xb4c)]=![],_0x1b0378[_0x2f55f4(0x16a)]=![],_0x1b0378[_0x2f55f4(0xaac)]=![],_0x1b0378[_0x2f55f4(0x72c)]=![],_0x1b0378[_0x2f55f4(0x996)]=0x0,_0x1b0378[_0x2f55f4(0x237)]=0x0,_0x1b0378[_0x2f55f4(0x159)]=_0x2f55f4(0x1af),_0x1b0378[_0x2f55f4(0x1f8)]=0x0,_0x1b0378[_0x2f55f4(0x5f7)]=![],_0x1b0378[_0x2f55f4(0x1b3)]=![],_0x1b0378[_0x2f55f4(0x619)]=null,_0x1b0378[_0x2f55f4(0x85a)]=![],_0x1b0378[_0x2f55f4(0x960)]=![],_0x1b0378[_0x2f55f4(0xad0)]=![],_0x1b0378[_0x2f55f4(0x733)]=![],_0x1b0378['badStreamList']=[],_0x1b0378[_0x2f55f4(0x6c3)]=null,_0x1b0378['beepToNotify']=![],_0x1b0378[_0x2f55f4(0x8b7)]=![],_0x1b0378['slotBroadcastThrottle']=null,_0x1b0378[_0x2f55f4(0xb20)]=null,_0x1b0378[_0x2f55f4(0x9be)]=null,_0x1b0378[_0x2f55f4(0x9fb)]=null,_0x1b0378[_0x2f55f4(0x6a1)]=![],_0x1b0378[_0x2f55f4(0x7b0)]=![],_0x1b0378[_0x2f55f4(0x5a1)]=![],_0x1b0378[_0x2f55f4(0xaa1)]=![],_0x1b0378[_0x2f55f4(0x379)]=![],_0x1b0378[_0x2f55f4(0x893)]=![],_0x1b0378['closedCaptions']=![],_0x1b0378[_0x2f55f4(0x85f)]=![],_0x1b0378['compressor']=![],_0x1b0378[_0x2f55f4(0x3d4)]=![],_0x1b0378[_0x2f55f4(0x369)]='',_0x1b0378[_0x2f55f4(0x1f6)]='',_0x1b0378[_0x2f55f4(0x7d8)]='',_0x1b0378[_0x2f55f4(0x7df)]=![],_0x1b0378[_0x2f55f4(0x8a4)]=![],_0x1b0378[_0x2f55f4(0xae6)]=null,_0x1b0378['cleanViewer']=![],_0x1b0378[_0x2f55f4(0x863)]=null,_0x1b0378[_0x2f55f4(0x1bc)]=![],_0x1b0378[_0x2f55f4(0x3d0)]=0x1,_0x1b0378[_0x2f55f4(0x53e)]=![],_0x1b0378['chatbutton']=null,_0x1b0378[_0x2f55f4(0x40a)]={},_0x1b0378[_0x2f55f4(0x861)]=![],_0x1b0378[_0x2f55f4(0x3f1)]=!![],_0x1b0378[_0x2f55f4(0x5e5)]=[],_0x1b0378[_0x2f55f4(0x3aa)]={},_0x1b0378[_0x2f55f4(0x3bb)]=![],_0x1b0378[_0x2f55f4(0x98b)]=![],_0x1b0378[_0x2f55f4(0x569)]=null,_0x1b0378[_0x2f55f4(0x7f6)]=null,_0x1b0378['compressSDP']=![],_0x1b0378['localNetworkOnly']=![],_0x1b0378[_0x2f55f4(0x89e)]=![],_0x1b0378['language']=![],_0x1b0378[_0x2f55f4(0x3b5)]={},_0x1b0378[_0x2f55f4(0x6d5)]={},_0x1b0378[_0x2f55f4(0x9bf)]=![],_0x1b0378['hiddenSceneViewBitrate']=0x0,_0x1b0378[_0x2f55f4(0x547)]=0x25a,_0x1b0378[_0x2f55f4(0x8de)]=![],_0x1b0378[_0x2f55f4(0x2c3)]=![],_0x1b0378['bitrateGroupFlag']=![],_0x1b0378[_0x2f55f4(0x587)]=![],_0x1b0378[_0x2f55f4(0x77b)]=![],_0x1b0378[_0x2f55f4(0x265)]=null,_0x1b0378[_0x2f55f4(0xab1)]=![],_0x1b0378[_0x2f55f4(0x200)]=![],_0x1b0378[_0x2f55f4(0x209)]=![],_0x1b0378['dedicatedControlBarSpace']=null,_0x1b0378[_0x2f55f4(0x91b)]=![],_0x1b0378[_0x2f55f4(0x92c)]=![],_0x1b0378[_0x2f55f4(0x9f5)]=![],_0x1b0378['defaultMedia']=![],_0x1b0378[_0x2f55f4(0x6f0)]=![],_0x1b0378['disableMouseEvents']=![],_0x1b0378['directorChat']=![],_0x1b0378[_0x2f55f4(0x67f)]=0x23,_0x1b0378['directorEnabledPPT']=![],_0x1b0378[_0x2f55f4(0x810)]=null,_0x1b0378[_0x2f55f4(0x3ea)]=null,_0x1b0378[_0x2f55f4(0x27e)]=[],_0x1b0378['directorPassword']=![],_0x1b0378[_0x2f55f4(0x877)]=![],_0x1b0378[_0x2f55f4(0x63e)]=![],_0x1b0378['directorStreamID']=![],_0x1b0378[_0x2f55f4(0x32d)]=null,_0x1b0378[_0x2f55f4(0x459)]=![],_0x1b0378[_0x2f55f4(0x36f)]=!![],_0x1b0378['darkmode']=null,_0x1b0378[_0x2f55f4(0x85e)]=![],_0x1b0378[_0x2f55f4(0x748)]=![],_0x1b0378[_0x2f55f4(0x97e)]=![],_0x1b0378[_0x2f55f4(0x373)]=![],_0x1b0378[_0x2f55f4(0xafc)]=![],_0x1b0378[_0x2f55f4(0x8d2)]=![],_0x1b0378[_0x2f55f4(0x6ec)]=![],_0x1b0378[_0x2f55f4(0x34c)]=![],_0x1b0378[_0x2f55f4(0x750)]=![],_0x1b0378['fullscreenButton']=![],_0x1b0378[_0x2f55f4(0x393)]=![],_0x1b0378['degrade']=![],_0x1b0378[_0x2f55f4(0x348)]=![],_0x1b0378[_0x2f55f4(0x1f7)]=![],_0x1b0378[_0x2f55f4(0xb56)]=0x384,_0x1b0378[_0x2f55f4(0x5bc)]=![],_0x1b0378[_0x2f55f4(0x4a7)]=new TextEncoder(_0x2f55f4(0x735)),_0x1b0378[_0x2f55f4(0x60c)]=![],_0x1b0378['excludeaudio']=![],_0x1b0378[_0x2f55f4(0xa4c)]=![],_0x1b0378['focusStyle']=![],_0x1b0378['roomhost']=![],_0x1b0378[_0x2f55f4(0x1f5)]=![],_0x1b0378['hideDirector']=![],_0x1b0378[_0x2f55f4(0x966)]=[],_0x1b0378[_0x2f55f4(0x67d)]=[],_0x1b0378[_0x2f55f4(0x4b6)]=![],_0x1b0378[_0x2f55f4(0x271)]=null,_0x1b0378['firstPlayTriggered']=![],_0x1b0378[_0x2f55f4(0x20c)]=![],_0x1b0378['poke']=![],_0x1b0378['frameRate']=![],_0x1b0378[_0x2f55f4(0x334)]=![],_0x1b0378[_0x2f55f4(0x702)]=![],_0x1b0378[_0x2f55f4(0x949)]=null,_0x1b0378[_0x2f55f4(0xb2b)]=![],_0x1b0378['forceios']=![],_0x1b0378[_0x2f55f4(0x7a8)]=![],_0x1b0378['fullscreen']=![],_0x1b0378['keepIncomingVideosInLandscape']=![],_0x1b0378[_0x2f55f4(0xa45)]=null,_0x1b0378[_0x2f55f4(0x77c)]=[],_0x1b0378['groupView']=[],_0x1b0378[_0x2f55f4(0x641)]=![],_0x1b0378[_0x2f55f4(0x155)]=![],_0x1b0378[_0x2f55f4(0x172)]=null,_0x1b0378[_0x2f55f4(0x192)]=![],_0x1b0378[_0x2f55f4(0xa63)]=![],_0x1b0378[_0x2f55f4(0x802)]=![],_0x1b0378[_0x2f55f4(0x7bd)]=![],_0x1b0378['iframeSrc']=![],_0x1b0378['iframeEle']=![],_0x1b0378[_0x2f55f4(0x73d)]=![],_0x1b0378[_0x2f55f4(0xabd)]=![],_0x1b0378[_0x2f55f4(0x7a2)]=[{'urls':[_0x2f55f4(0x929),'stun:stun.cloudflare.com:3478']}],_0x1b0378[_0x2f55f4(0x517)]=![],_0x1b0378[_0x2f55f4(0x386)]=[],_0x1b0378[_0x2f55f4(0x573)]={},_0x1b0378[_0x2f55f4(0x22c)]=![],_0x1b0378[_0x2f55f4(0x35a)]=![],_0x1b0378['quality']=![],_0x1b0378[_0x2f55f4(0x4fb)]=0x1,_0x1b0378[_0x2f55f4(0x8a9)]=0x0,_0x1b0378[_0x2f55f4(0x584)]=![],_0x1b0378[_0x2f55f4(0x21b)]=![],_0x1b0378[_0x2f55f4(0x86e)]=![],_0x1b0378[_0x2f55f4(0x1c0)]=![],_0x1b0378[_0x2f55f4(0x185)]=![],_0x1b0378['infocusForceMode']=![],_0x1b0378[_0x2f55f4(0x5b0)]=![],_0x1b0378[_0x2f55f4(0x3fe)]={},_0x1b0378[_0x2f55f4(0x9d9)]=![],_0x1b0378['label']=![],_0x1b0378[_0x2f55f4(0xa16)]=![],_0x1b0378[_0x2f55f4(0x69e)]={},_0x1b0378[_0x2f55f4(0x981)]=[],_0x1b0378[_0x2f55f4(0xa7b)]=![],_0x1b0378[_0x2f55f4(0x64d)]=![],_0x1b0378[_0x2f55f4(0xab7)]=!![],_0x1b0378[_0x2f55f4(0x315)]=0x1,_0x1b0378[_0x2f55f4(0x7da)]={},_0x1b0378[_0x2f55f4(0xa4e)]=![],_0x1b0378[_0x2f55f4(0x3b7)]=[],_0x1b0378[_0x2f55f4(0x44e)]=![],_0x1b0378['maxviewers']=![],_0x1b0378[_0x2f55f4(0x8ac)]=![],_0x1b0378[_0x2f55f4(0x6b2)]=![],_0x1b0378[_0x2f55f4(0x2a5)]=![],_0x1b0378['midiDelay']=![],_0x1b0378['midiIframe']=![],_0x1b0378['mobile']=![],_0x1b0378[_0x2f55f4(0x905)]=![],_0x1b0378['maxframeRate_q2']=![],_0x1b0378[_0x2f55f4(0x860)]=![],_0x1b0378[_0x2f55f4(0x574)]=![],_0x1b0378[_0x2f55f4(0xa0b)]=![],_0x1b0378[_0x2f55f4(0x323)]=![],_0x1b0378[_0x2f55f4(0xa30)]=![],_0x1b0378[_0x2f55f4(0x4c0)]=![],_0x1b0378[_0x2f55f4(0x609)]=![],_0x1b0378[_0x2f55f4(0x677)]=![],_0x1b0378[_0x2f55f4(0xac2)]=![],_0x1b0378[_0x2f55f4(0x614)]=![],_0x1b0378[_0x2f55f4(0x6b0)]=![],_0x1b0378[_0x2f55f4(0x439)]=0x15e,_0x1b0378[_0x2f55f4(0x2ba)]=0x23,_0x1b0378['labelsize']=![],_0x1b0378[_0x2f55f4(0x6e6)]=![],_0x1b0378[_0x2f55f4(0x2f2)]=![],_0x1b0378[_0x2f55f4(0x2b2)]=0x2710,_0x1b0378['layout']=![],_0x1b0378[_0x2f55f4(0x64a)]=null,_0x1b0378['accept_layouts']=![],_0x1b0378[_0x2f55f4(0x466)]=![],_0x1b0378['layouts']=![],_0x1b0378[_0x2f55f4(0x3ae)]=![],_0x1b0378[_0x2f55f4(0x6bf)]=_0x1b0378[_0x2f55f4(0x4b9)](0x5),_0x1b0378[_0x2f55f4(0x67e)]=![],_0x1b0378[_0x2f55f4(0xa06)]=![],_0x1b0378[_0x2f55f4(0x803)]=![],_0x1b0378[_0x2f55f4(0x1bd)]=![],_0x1b0378[_0x2f55f4(0x68a)]=null,_0x1b0378[_0x2f55f4(0xb29)]=![],_0x1b0378[_0x2f55f4(0x243)]=![],_0x1b0378[_0x2f55f4(0x7b2)]=![],_0x1b0378[_0x2f55f4(0x7c2)]=null,_0x1b0378[_0x2f55f4(0x2ff)]=![],_0x1b0378[_0x2f55f4(0x765)]=![],_0x1b0378[_0x2f55f4(0x2ae)]=![],_0x1b0378[_0x2f55f4(0xab4)]=![],_0x1b0378[_0x2f55f4(0x3dc)]=![],_0x1b0378[_0x2f55f4(0x912)]=![],_0x1b0378[_0x2f55f4(0x977)]=![],_0x1b0378[_0x2f55f4(0x779)]=![],_0x1b0378[_0x2f55f4(0x476)]=![],_0x1b0378[_0x2f55f4(0x5e1)]=0x17,_0x1b0378['minipreview']=![],_0x1b0378[_0x2f55f4(0x6e0)]=![],_0x1b0378[_0x2f55f4(0x903)]=![],_0x1b0378[_0x2f55f4(0x5c4)]=![],_0x1b0378[_0x2f55f4(0x651)]=![],_0x1b0378['minimumRoomBitrate']=![],_0x1b0378[_0x2f55f4(0x1a7)]=[],_0x1b0378['hidehome']=![],_0x1b0378['meshcast']=![],_0x1b0378[_0x2f55f4(0xa14)]=![],_0x1b0378['meshcastCode']=![],_0x1b0378[_0x2f55f4(0x150)]=![],_0x1b0378[_0x2f55f4(0xae5)]=![],_0x1b0378[_0x2f55f4(0x5cd)]=![],_0x1b0378[_0x2f55f4(0x3ad)]=![],_0x1b0378[_0x2f55f4(0x64c)]=![],_0x1b0378[_0x2f55f4(0x186)]=![],_0x1b0378[_0x2f55f4(0x3b4)]={},_0x1b0378[_0x2f55f4(0x14f)]=![],_0x1b0378[_0x2f55f4(0xa56)]=![],_0x1b0378[_0x2f55f4(0x660)]=![],_0x1b0378[_0x2f55f4(0xa07)]=![],_0x1b0378[_0x2f55f4(0xad9)]=![],_0x1b0378['noNacks']=![],_0x1b0378[_0x2f55f4(0x6df)]=![],_0x1b0378[_0x2f55f4(0x1da)]=null,_0x1b0378[_0x2f55f4(0x346)]=![],_0x1b0378[_0x2f55f4(0x367)]=![],_0x1b0378[_0x2f55f4(0x898)]=![],_0x1b0378[_0x2f55f4(0x783)]=![],_0x1b0378['offsetChannel']=![],_0x1b0378[_0x2f55f4(0x3d3)]=![],_0x1b0378['optimize']=![],_0x1b0378['autohide']=![],_0x1b0378[_0x2f55f4(0x15e)]=![],_0x1b0378[_0x2f55f4(0xa79)]=![],_0x1b0378['obsSceneTriggers']=![],_0x1b0378['obsState']={},_0x1b0378[_0x2f55f4(0x19e)]['visibility']=null,_0x1b0378[_0x2f55f4(0x19e)]['streaming']=null,_0x1b0378[_0x2f55f4(0x19e)][_0x2f55f4(0x17a)]=null,_0x1b0378[_0x2f55f4(0x19e)][_0x2f55f4(0x6d9)]=null,_0x1b0378[_0x2f55f4(0x19e)][_0x2f55f4(0x4e4)]=null,_0x1b0378['whipOutScale']=![],_0x1b0378[_0x2f55f4(0x724)]='wss://whip.vdo.ninja',_0x1b0378[_0x2f55f4(0x88c)]=![],_0x1b0378[_0x2f55f4(0x6ee)]=![],_0x1b0378[_0x2f55f4(0x232)]=![],_0x1b0378['orderby']=![],_0x1b0378[_0x2f55f4(0x305)]=![],_0x1b0378['onceConnected']=![],_0x1b0378['panning']=![],_0x1b0378[_0x2f55f4(0x625)]=![],_0x1b0378[_0x2f55f4(0x87b)]=null,_0x1b0378[_0x2f55f4(0x6c9)]=![],_0x1b0378[_0x2f55f4(0x823)]=![],_0x1b0378[_0x2f55f4(0x325)]=![],_0x1b0378[_0x2f55f4(0x554)]=![],_0x1b0378[_0x2f55f4(0x1d4)]=![],_0x1b0378[_0x2f55f4(0x249)]=null,_0x1b0378[_0x2f55f4(0xa6c)]=![],_0x1b0378[_0x2f55f4(0x38f)]=![],_0x1b0378[_0x2f55f4(0x44d)]=0x5dc,_0x1b0378['preset']=![],_0x1b0378[_0x2f55f4(0x71c)]={},_0x1b0378['pip']=![],_0x1b0378['pip3']=![],_0x1b0378[_0x2f55f4(0xb25)]=![],_0x1b0378[_0x2f55f4(0x84c)]=![],_0x1b0378[_0x2f55f4(0x937)]=![],_0x1b0378[_0x2f55f4(0x9f3)]=![],_0x1b0378['whipOutScreenShareBitrate']=![],_0x1b0378[_0x2f55f4(0xab6)]=![],_0x1b0378[_0x2f55f4(0x39b)]=![],_0x1b0378['pcm']=![],_0x1b0378[_0x2f55f4(0x2a4)]=![],_0x1b0378[_0x2f55f4(0x93b)]=![],_0x1b0378[_0x2f55f4(0x75e)]=0x1e,_0x1b0378['posterImage']=![],_0x1b0378[_0x2f55f4(0x3f6)]=![],_0x1b0378[_0x2f55f4(0x9dd)]=_0x2f55f4(0x218),_0x1b0378[_0x2f55f4(0x983)]=![],_0x1b0378[_0x2f55f4(0x561)]=![],_0x1b0378[_0x2f55f4(0x5b8)]=null,_0x1b0378[_0x2f55f4(0x55f)]=null,_0x1b0378[_0x2f55f4(0x7fa)]=![],_0x1b0378[_0x2f55f4(0x41e)]=![],_0x1b0378[_0x2f55f4(0x581)]=!![],_0x1b0378[_0x2f55f4(0xad5)]=![],_0x1b0378[_0x2f55f4(0x9cd)]=![],_0x1b0378[_0x2f55f4(0xa29)]=![],_0x1b0378[_0x2f55f4(0x631)]=[],_0x1b0378[_0x2f55f4(0x4ad)]=![],_0x1b0378[_0x2f55f4(0xa52)]=![],_0x1b0378[_0x2f55f4(0x4ca)]=![],_0x1b0378[_0x2f55f4(0x235)]=![],_0x1b0378['recordedBlobs']=![],_0x1b0378[_0x2f55f4(0x5b7)]=![],_0x1b0378[_0x2f55f4(0x1b0)]=![],_0x1b0378[_0x2f55f4(0x18b)]=!![],_0x1b0378['recordDefault']=0x1770,_0x1b0378['remote']=![],_0x1b0378[_0x2f55f4(0x941)]=0x1770,_0x1b0378[_0x2f55f4(0x801)]=![],_0x1b0378[_0x2f55f4(0x2b8)]=0x1388,_0x1b0378['recordingVideoCodec']=![],_0x1b0378[_0x2f55f4(0x5f1)]=![],_0x1b0378['roomenc']=![],_0x1b0378[_0x2f55f4(0x85b)]=![],_0x1b0378[_0x2f55f4(0x4e8)]=![],_0x1b0378[_0x2f55f4(0xa53)]=![],_0x1b0378[_0x2f55f4(0x781)]=null,_0x1b0378[_0x2f55f4(0xb0b)]=![],_0x1b0378[_0x2f55f4(0x4da)]=![],_0x1b0378[_0x2f55f4(0x31c)]=!![],_0x1b0378['requireencryption']=![],_0x1b0378[_0x2f55f4(0x2cf)]=![],_0x1b0378['ptz']=![],_0x1b0378['retryScenes']={},_0x1b0378[_0x2f55f4(0x7cc)]={},_0x1b0378['rows']=![],_0x1b0378[_0x2f55f4(0x4e1)]=![],_0x1b0378[_0x2f55f4(0x8bf)]=![],_0x1b0378[_0x2f55f4(0x50c)]=![],_0x1b0378[_0x2f55f4(0x4ac)]=null,_0x1b0378['unsafe']=![],_0x1b0378[_0x2f55f4(0x4b1)]=![],_0x1b0378[_0x2f55f4(0x864)]=![],_0x1b0378[_0x2f55f4(0xa28)]=![],_0x1b0378[_0x2f55f4(0x166)]=![],_0x1b0378[_0x2f55f4(0x3e6)]=![],_0x1b0378[_0x2f55f4(0x32c)]=[],_0x1b0378[_0x2f55f4(0x2e2)]={},_0x1b0378[_0x2f55f4(0x424)]=![],_0x1b0378['noScaling']=![],_0x1b0378[_0x2f55f4(0x34b)]=![],_0x1b0378[_0x2f55f4(0x309)]=![],_0x1b0378['iframetarget']='*',_0x1b0378['scene']=![],_0x1b0378['solo']=![],_0x1b0378[_0x2f55f4(0x729)]={},_0x1b0378['silence']=![],_0x1b0378['sendingBuffer']=0x1f4,_0x1b0378[_0x2f55f4(0x731)]=![],_0x1b0378[_0x2f55f4(0x54a)]=null,_0x1b0378['sdpSemantics']=_0x2f55f4(0x624),_0x1b0378[_0x2f55f4(0x52e)]=![],_0x1b0378['screenshareStyle']=![],_0x1b0378[_0x2f55f4(0x20b)]=![],_0x1b0378[_0x2f55f4(0x1d5)]=![],_0x1b0378[_0x2f55f4(0x6bb)]=![],_0x1b0378[_0x2f55f4(0xaf0)]=![],_0x1b0378[_0x2f55f4(0xb10)]=![],_0x1b0378[_0x2f55f4(0x882)]=![],_0x1b0378[_0x2f55f4(0x707)]=![],_0x1b0378[_0x2f55f4(0x157)]=![],_0x1b0378[_0x2f55f4(0x8db)]=![],_0x1b0378[_0x2f55f4(0xb21)]=![],_0x1b0378[_0x2f55f4(0x214)]=![],_0x1b0378[_0x2f55f4(0xaa4)]=![],_0x1b0378[_0x2f55f4(0x92d)]=![],_0x1b0378[_0x2f55f4(0x4dc)]=![],_0x1b0378['sensorDataFilter']=[_0x2f55f4(0x526),_0x2f55f4(0x432),_0x2f55f4(0x3ca),'mag',_0x2f55f4(0x2be),_0x2f55f4(0xa42)],_0x1b0378[_0x2f55f4(0x162)]=0x0,_0x1b0378[_0x2f55f4(0x3d2)]=![],_0x1b0378['surfaceSwitching']=![],_0x1b0378['preferCurrentTab']=![],_0x1b0378[_0x2f55f4(0x720)]=![],_0x1b0378[_0x2f55f4(0x8f6)]=![],_0x1b0378['showSlider']=![],_0x1b0378[_0x2f55f4(0x9de)]=![],_0x1b0378[_0x2f55f4(0x6d7)]=![],_0x1b0378['displaySurface']=![],_0x1b0378[_0x2f55f4(0x5a2)]=![],_0x1b0378[_0x2f55f4(0xb41)]=![],_0x1b0378['screenshareVideoOnly']=![],_0x1b0378[_0x2f55f4(0x519)]=null,_0x1b0378[_0x2f55f4(0x6a6)]=![],_0x1b0378[_0x2f55f4(0x5e4)]=[],_0x1b0378['screenShareElementHidden']=![],_0x1b0378[_0x2f55f4(0x5e8)]=![],_0x1b0378[_0x2f55f4(0x7e0)]=![],_0x1b0378[_0x2f55f4(0x2b7)]=!![],_0x1b0378[_0x2f55f4(0x4ce)]=![],_0x1b0378[_0x2f55f4(0x8be)]=![],_0x1b0378[_0x2f55f4(0x7d4)]=![],_0x1b0378[_0x2f55f4(0x1a1)]=![],_0x1b0378[_0x2f55f4(0x7dc)]=null,_0x1b0378[_0x2f55f4(0x947)]=![],_0x1b0378[_0x2f55f4(0x36c)]={},_0x1b0378['sceneType']=![],_0x1b0378['maxScene']=0x8,_0x1b0378[_0x2f55f4(0x1e4)]=![],_0x1b0378[_0x2f55f4(0x591)]=![],_0x1b0378['socialstream']=![],_0x1b0378[_0x2f55f4(0x93c)]=null,_0x1b0378['statsInterval']=0xbb8,_0x1b0378['store']=![],_0x1b0378['stereo']=![],_0x1b0378[_0x2f55f4(0x791)]=null,_0x1b0378[_0x2f55f4(0x97f)]=null,_0x1b0378[_0x2f55f4(0x384)]=null,_0x1b0378[_0x2f55f4(0x212)]=null,_0x1b0378['style']=![],_0x1b0378['sync']=![],_0x1b0378[_0x2f55f4(0x9f2)]=null,_0x1b0378[_0x2f55f4(0x5b2)]=![],_0x1b0378['totalRoomBitrate']=![],_0x1b0378[_0x2f55f4(0x239)]=0x1f4,_0x1b0378[_0x2f55f4(0x1ad)]=![],_0x1b0378[_0x2f55f4(0x606)]=null,_0x1b0378[_0x2f55f4(0x520)]=[_0x2f55f4(0x5e6),_0x2f55f4(0x205)],_0x1b0378[_0x2f55f4(0x4c2)]=['./media/overlay1.png'],_0x1b0378[_0x2f55f4(0xa66)]=![],_0x1b0378[_0x2f55f4(0x880)]=![],_0x1b0378[_0x2f55f4(0xabf)]=![],_0x1b0378['reconnectSpeed']=[0x2710,0x186a0,0xbb8,0x7530,0xbb8,0x1388],_0x1b0378['tfliteModule']=![],_0x1b0378[_0x2f55f4(0x83a)]=![],_0x1b0378['tz']=![],_0x1b0378['tallyOverride']=![],_0x1b0378['transparent']=![],_0x1b0378[_0x2f55f4(0x82c)]=![],_0x1b0378[_0x2f55f4(0x610)]=![],_0x1b0378['transferred']=![],_0x1b0378[_0x2f55f4(0x2bf)]=![],_0x1b0378[_0x2f55f4(0x777)]=![],_0x1b0378[_0x2f55f4(0x601)]=![],_0x1b0378[_0x2f55f4(0x283)]=![],_0x1b0378[_0x2f55f4(0x9c6)]=![],_0x1b0378[_0x2f55f4(0x66d)]=![],_0x1b0378[_0x2f55f4(0x24d)]=![],_0x1b0378[_0x2f55f4(0x42e)]=![],_0x1b0378[_0x2f55f4(0x8c4)]=![],_0x1b0378[_0x2f55f4(0x41c)]=![],_0x1b0378[_0x2f55f4(0x96f)]=![],_0x1b0378['width']=![],_0x1b0378[_0x2f55f4(0x530)]=![],_0x1b0378['zoom']=![],_0x1b0378['pan']=![],_0x1b0378[_0x2f55f4(0x8b3)]=![],_0x1b0378['disableWebAudio']=![],_0x1b0378['disableViewerWebAudioPipeline']=![],_0x1b0378[_0x2f55f4(0x22b)]={},_0x1b0378[_0x2f55f4(0x314)]={},_0x1b0378[_0x2f55f4(0xa70)]=![],_0x1b0378[_0x2f55f4(0x8f2)]=null,_0x1b0378[_0x2f55f4(0x2e8)]=![],_0x1b0378[_0x2f55f4(0x221)]=![],_0x1b0378[_0x2f55f4(0x902)]=![],_0x1b0378[_0x2f55f4(0x1f3)]=0x1388,_0x1b0378[_0x2f55f4(0x72f)]=![],_0x1b0378[_0x2f55f4(0x9cc)]={},_0x1b0378[_0x2f55f4(0x974)]=![],_0x1b0378[_0x2f55f4(0x789)]=![],_0x1b0378['ws']=null,_0x1b0378['wss']=![],_0x1b0378[_0x2f55f4(0x991)]=null,_0x1b0378[_0x2f55f4(0x1e7)]=![],_0x1b0378[_0x2f55f4(0x3e5)]=![],_0x1b0378[_0x2f55f4(0x358)]=![],_0x1b0378[_0x2f55f4(0x6b5)]=![],_0x1b0378[_0x2f55f4(0x9dc)]=![],_0x1b0378[_0x2f55f4(0x7d6)]=![],_0x1b0378['whipOutKeyframe']=![],_0x1b0378['whipOutKeyframeOnNewViewer']=![],_0x1b0378[_0x2f55f4(0xa86)]=![],_0x1b0378[_0x2f55f4(0x549)]=![],_0x1b0378[_0x2f55f4(0xb0c)]=![],_0x1b0378[_0x2f55f4(0x54c)]=![],_0x1b0378[_0x2f55f4(0x9e2)]=![],_0x1b0378[_0x2f55f4(0x9f3)]=![],_0x1b0378[_0x2f55f4(0x8f5)]=![],_0x1b0378[_0x2f55f4(0x79b)]=![],_0x1b0378['whepInput']=![],_0x1b0378[_0x2f55f4(0x5af)]=0x7d0,_0x1b0378[_0x2f55f4(0x244)]=0x7d0,_0x1b0378[_0x2f55f4(0x64b)]=![],_0x1b0378['whipView']=![],_0x1b0378[_0x2f55f4(0x5d8)]=![],_0x1b0378[_0x2f55f4(0x4fa)]=![],_0x1b0378[_0x2f55f4(0x933)]=![],_0x1b0378[_0x2f55f4(0x208)]=![],_0x1b0378['contrast']=![],_0x1b0378[_0x2f55f4(0x284)]=![],_0x1b0378['focusDistance']=![],_0x1b0378[_0x2f55f4(0x639)]=!![],_0x1b0378[_0x2f55f4(0x9b7)]=null,_0x1b0378['gdrive']=![],_0x1b0378[_0x2f55f4(0x217)]=![],_0x1b0378['pauseInvisible']=![],_0x1b0378[_0x2f55f4(0x357)]=![],_0x1b0378[_0x2f55f4(0x578)]=![],_0x1b0378[_0x2f55f4(0xb01)]=![],_0x1b0378[_0x2f55f4(0x27d)]=![],_0x1b0378['redAudio']=![],_0x1b0378[_0x2f55f4(0x533)]=![],_0x1b0378[_0x2f55f4(0x475)]=![],_0x1b0378[_0x2f55f4(0x1c3)]=null,_0x1b0378['defaultIframeSrc']='',_0x1b0378['version']=null,_0x1b0378[_0x2f55f4(0xb1b)]=![],_0x1b0378[_0x2f55f4(0x233)]=![],_0x1b0378[_0x2f55f4(0x5dd)]=![],_0x1b0378[_0x2f55f4(0xa96)]=![],_0x1b0378[_0x2f55f4(0xa77)]=null,_0x1b0378[_0x2f55f4(0x7b3)]=![],_0x1b0378['localMuteElement']=getById(_0x2f55f4(0x784))[_0x2f55f4(0x5f4)](!![]),_0x1b0378[_0x2f55f4(0x189)]=null,_0x1b0378['localMuteElement']['id']=_0x2f55f4(0x3e0),_0x1b0378[_0x2f55f4(0x558)]=getById(_0x2f55f4(0x4de))[_0x2f55f4(0x5f4)](!![]),_0x1b0378[_0x2f55f4(0x558)]['id']=_0x2f55f4(0xb26),_0x1b0378[_0x2f55f4(0x558)]['style']['opacity']=0x0,_0x1b0378[_0x2f55f4(0x558)][_0x2f55f4(0x970)][_0x2f55f4(0x434)]=0x0,_0x1b0378[_0x2f55f4(0x856)]=![],_0x1b0378['widgetleft']=![],_0x1b0378[_0x2f55f4(0x939)]=0x19,_0x1b0378['noWidget']=![],_0x1b0378[_0x2f55f4(0x705)]=![],_0x1b0378['showUnMuteState']=![],_0x1b0378[_0x2f55f4(0x813)]=!![],_0x1b0378['introOnClean']=![],_0x1b0378[_0x2f55f4(0x7c4)]=!![],_0x1b0378['codirector_changeURL']=!![],_0x1b0378[_0x2f55f4(0x19c)]=![],_0x1b0378[_0x2f55f4(0x75d)]=![],_0x1b0378[_0x2f55f4(0x39e)]=![],_0x1b0378['GDRIVE_CLIENT_ID']=_0x2f55f4(0x984),_0x1b0378['GDRIVE_API_KEY']=_0x2f55f4(0x835),_0x1b0378[_0x2f55f4(0x2e4)]=_0x2f55f4(0x3dd);if(location['hostname']==_0x2f55f4(0xb4b))_0x1b0378['salt']=_0x2f55f4(0xb4b);else{if(location[_0x2f55f4(0xaf9)]==_0x2f55f4(0xa98))_0x1b0378['salt']=_0x2f55f4(0xb4b);else{if([_0x2f55f4(0xb4b),'rtc.ninja',_0x2f55f4(0x6f3),_0x2f55f4(0x767)][_0x2f55f4(0x8a3)](location['hostname'][_0x2f55f4(0x2f9)]('.')[_0x2f55f4(0x19a)](-0x2)['join']('.')))_0x1b0378[_0x2f55f4(0x491)]=location[_0x2f55f4(0xaf9)][_0x2f55f4(0x2f9)]('.')[_0x2f55f4(0x19a)](-0x2)[_0x2f55f4(0x31f)]('.');else try{var _0x23e68a=/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$|^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/;if(_0x23e68a[_0x2f55f4(0x7a4)](window[_0x2f55f4(0x3ba)][_0x2f55f4(0xaf9)]))_0x1b0378[_0x2f55f4(0x491)]=_0x2f55f4(0xb4b);else window[_0x2f55f4(0x3ba)]['hostname']==_0x2f55f4(0x5f8)?_0x1b0378[_0x2f55f4(0x491)]=_0x2f55f4(0xb4b):_0x1b0378[_0x2f55f4(0x491)]=location[_0x2f55f4(0xaf9)];}catch(_0x1ca517){_0x1b0378[_0x2f55f4(0x491)]=location['hostname'],errorlog(_0x1ca517);}}}_0x1b0378[_0x2f55f4(0x1c8)]=function(_0x28eded,_0x4ebd83=_0x1b0378[_0x2f55f4(0x625)]+_0x1b0378['salt']){var _0x293be8=_0x2f55f4,_0xe6d3f=crypto['getRandomValues'](new Uint8Array(0x10));return crypto[_0x293be8(0x329)][_0x293be8(0x15d)]({'name':_0x293be8(0x356)},convertStringToArrayBufferView(_0x4ebd83))[_0x293be8(0xb39)](function(_0x35bd6e){var _0x1aab34=_0x293be8;return window[_0x1aab34(0x3a0)][_0x1aab34(0x329)]['importKey']('raw',_0x35bd6e,{'name':_0x1aab34(0x2c0)},![],[_0x1aab34(0x7f9),_0x1aab34(0x901)])['then'](function(_0x164dd7){var _0x56f8b3=_0x1aab34;return crypto['subtle'][_0x56f8b3(0x7f9)]({'name':_0x56f8b3(0x2c0),'iv':_0xe6d3f},_0x164dd7,convertStringToArrayBufferView(_0x28eded))[_0x56f8b3(0xb39)](function(_0x68f86d){return encrypted_data=new Uint8Array(_0x68f86d),encrypted_data=toHexString(encrypted_data),_0xe6d3f=toHexString(_0xe6d3f),[encrypted_data,_0xe6d3f];},function(_0x4e0e22){var _0x53f56b=_0x56f8b3;return errorlog(_0x4e0e22[_0x53f56b(0x5d0)]),![];});},function(_0x59c37e){return errorlog(_0x59c37e),![];});})[_0x293be8(0x872)](errorlog);},_0x1b0378['decryptMessage']=function(_0x1dc5e0,_0x4cb29c,_0x534c36=_0x1b0378[_0x2f55f4(0x625)]+_0x1b0378['salt']){var _0x90325=_0x2f55f4;return _0x1dc5e0=toByteArray(_0x1dc5e0),_0x4cb29c=toByteArray(_0x4cb29c),crypto['subtle'][_0x90325(0x15d)]({'name':_0x90325(0x356)},convertStringToArrayBufferView(_0x534c36))[_0x90325(0xb39)](function(_0x3cf43e){var _0x351e4a=_0x90325;return window['crypto']['subtle']['importKey'](_0x351e4a(0x31d),_0x3cf43e,{'name':'AES-CBC'},![],[_0x351e4a(0x7f9),'decrypt'])[_0x351e4a(0xb39)](function(_0x204cd7){var _0x2b154e=_0x351e4a;return crypto[_0x2b154e(0x329)][_0x2b154e(0x901)]({'name':'AES-CBC','iv':_0x4cb29c},_0x204cd7,_0x1dc5e0)[_0x2b154e(0xb39)](function(_0x19bad5){var _0x2ccb38=_0x2b154e,_0x2e3196=new Uint8Array(_0x19bad5),_0x319899='';for(var _0x5ee86a=0x0;_0x5ee86a<_0x2e3196[_0x2ccb38(0x180)];_0x5ee86a++){_0x319899+=String['fromCharCode'](_0x2e3196[_0x5ee86a]);}return _0x319899;},function(_0x164146){return errorlog(_0x4cb29c),errorlog(_0x1dc5e0),errorlog(_0x164146),![];});});})[_0x90325(0x872)](errorlog);},_0x1b0378[_0x2f55f4(0xaf4)]=async function(_0x2eef2e){var _0x212065=_0x2f55f4;if(typeof _0x2eef2e[_0x212065(0x2fb)]!==_0x212065(0x506))return _0x2eef2e;try{_0x2eef2e['remote'][_0x212065(0x5a7)]==0x2&&(!_0x1b0378[_0x212065(0xa79)]&&(_0x1b0378['remoteHash']=await generateHash(_0x1b0378[_0x212065(0x2fb)]+_0x1b0378[_0x212065(0x491)],0xc)),_0x2eef2e[_0x212065(0x2fb)]=await _0x1b0378['decryptMessage'](_0x2eef2e[_0x212065(0x2fb)][0x0],_0x2eef2e['remote'][0x1],_0x1b0378[_0x212065(0xa79)]),_0x2eef2e['remote']?log('Remote\x20request\x20decoded\x20successfully'):warnlog(_0x212065(0x543)),log(_0x2eef2e));}catch(_0x2d6d61){errorlog(_0x2d6d61);}return _0x2eef2e;},_0x1b0378[_0x2f55f4(0x636)]=async function(_0x25523e){var _0xe5e93=_0x2f55f4;try{if(_0x25523e[_0xe5e93(0x2fb)]&&typeof _0x25523e[_0xe5e93(0x2fb)]===_0xe5e93(0x22a)){var _0xf4fd8a=await generateHash(_0x25523e[_0xe5e93(0x2fb)]+_0x1b0378[_0xe5e93(0x491)],0xc);_0x25523e[_0xe5e93(0x2fb)]=await _0x1b0378[_0xe5e93(0x1c8)](_0x25523e[_0xe5e93(0x2fb)],_0xf4fd8a);}}catch(_0x23e600){errorlog(_0x23e600);}return _0x25523e;},_0x1b0378[_0x2f55f4(0x7eb)]=function(_0x43ac4b){var _0x44053c=_0x2f55f4;try{try{_0x43ac4b=decodeURIComponent(_0x43ac4b[_0x44053c(0x4d3)](/ /g,'+'));}catch(_0x1e6799){}_0x43ac4b=CryptoJS['AES'][_0x44053c(0x901)](_0x43ac4b,'OBSNINJAFORLIFE'),_0x43ac4b=_0x43ac4b[_0x44053c(0x6f5)](CryptoJS[_0x44053c(0x4a7)][_0x44053c(0x4b0)]);if(_0x43ac4b){if(_0x43ac4b['startsWith'](_0x44053c(0x3cd)))_0x43ac4b=_0x43ac4b['replace'](_0x44053c(0x3cd),'');else{if(_0x43ac4b[_0x44053c(0x23c)]('https://'))_0x43ac4b=_0x43ac4b[_0x44053c(0x4d3)](_0x44053c(0x8d4),'');else{if(_0x43ac4b[_0x44053c(0x23c)]('/'))_0x43ac4b=_0x43ac4b['replace']('/','');else{if(_0x43ac4b[_0x44053c(0x23c)](_0x44053c(0x5a8)))_0x43ac4b=_0x43ac4b[_0x44053c(0x4d3)]('obs.ninja/','');else{if(_0x43ac4b['startsWith']('vdo.ninja/'))_0x43ac4b=_0x43ac4b[_0x44053c(0x4d3)](_0x44053c(0x472),'');else _0x43ac4b['startsWith'](_0x44053c(0x3db))&&(_0x43ac4b=_0x43ac4b[_0x44053c(0x4d3)](_0x44053c(0x3db),''));}}}}_0x43ac4b=_0x43ac4b[_0x44053c(0x2f9)]('?')['splice'](0x1)[_0x44053c(0x31f)]('?'),_0x43ac4b&&(_0x43ac4b='?'+_0x43ac4b['replace'](/\?/g,'&'),_0x1b0378[_0x44053c(0x209)]=_0x43ac4b);}}catch(_0x1d677c){warnlog(_0x1d677c);}},_0x1b0378['requestKeyframe']=function(_0x36d440,_0x4bd1ed=![]){var _0x468303=_0x2f55f4,_0x4e52bc={};_0x4e52bc[_0x468303(0x7c3)]=!![],_0x4e52bc['scene']=_0x4bd1ed,_0x1b0378[_0x468303(0x32f)](_0x4e52bc,_0x36d440);},_0x1b0378[_0x2f55f4(0x63c)]=function(_0x5bfafe,_0x17cd92,_0x3f9fff=null){var _0x15a74d=_0x2f55f4;if(!_0x1b0378[_0x15a74d(0x7cc)][_0x17cd92])return![];var _0x153435={};if(_0x3f9fff!==null)_0x1b0378[_0x15a74d(0x7cc)][_0x17cd92]['lockedAudioBitrate']=_0x3f9fff||![];else{if(_0x1b0378[_0x15a74d(0x7cc)][_0x17cd92][_0x15a74d(0x55a)]){warnlog(_0x15a74d(0x5eb));return;}}_0x153435[_0x15a74d(0x52b)]=_0x5bfafe,log(_0x153435),_0x1b0378[_0x15a74d(0x32f)](_0x153435,_0x17cd92);},_0x1b0378[_0x2f55f4(0x54e)]=function(_0x3142c2,_0x46a1fd,_0x1d57cc=![],_0x426a28=null){var _0x475c57=_0x2f55f4;log('requestRateLimit\x20RUN:\x20'+_0x1d57cc);if(!_0x1b0378['rpcs'][_0x46a1fd]||!_0x1b0378['rpcs'][_0x46a1fd]['getStats'])return![];if(_0x426a28!==null)_0x1b0378[_0x475c57(0x7cc)][_0x46a1fd][_0x475c57(0x867)]=_0x426a28||![];else{if(_0x1b0378[_0x475c57(0x7cc)][_0x46a1fd][_0x475c57(0x867)]){warnlog(_0x475c57(0x1c5));return;}}if(_0x3142c2===![]){}else _0x1b0378['rpcs'][_0x46a1fd][_0x475c57(0x36e)]=_0x3142c2;var _0x36bf63=-0x1;_0x1b0378['rpcs'][_0x46a1fd]['manualBandwidth']!==![]?_0x3142c2=parseInt(_0x1b0378['rpcs'][_0x46a1fd][_0x475c57(0x25b)]):_0x3142c2=parseInt(_0x1b0378[_0x475c57(0x7cc)][_0x46a1fd][_0x475c57(0x36e)]);if(_0x1b0378[_0x475c57(0x19e)][_0x475c57(0xb43)]===![]){if(_0x1b0378[_0x475c57(0x280)]!==![]){if(window[_0x475c57(0x408)])return![];}}else{if(_0x1b0378[_0x475c57(0x803)]&&_0x3142c2===0x0)return![];}_0x3142c2===0x0&&_0x1b0378[_0x475c57(0x7cc)][_0x46a1fd][_0x475c57(0x3c0)]&&(_0x3142c2=0x1);if(_0x1b0378['rpcs'][_0x46a1fd][_0x475c57(0x277)]===_0x3142c2)return![];log(_0x475c57(0x414)+_0x3142c2);var _0x50cc32={};_0x50cc32[_0x475c57(0x85a)]=_0x3142c2;if(_0x1d57cc===null){}else{if(_0x1d57cc)_0x3142c2===0x0?(warnlog(_0x475c57(0xa62)),_0x50cc32[_0x475c57(0x52b)]=0x0):_0x36bf63<0x10&&_0x36bf63>=0x0?_0x50cc32['audioBitrate']=_0x36bf63:_0x50cc32[_0x475c57(0x52b)]=0x10;else _0x426a28===null&&(_0x50cc32[_0x475c57(0x52b)]=_0x36bf63);}return _0x1b0378[_0x475c57(0x32f)](_0x50cc32,_0x46a1fd)?(_0x1b0378[_0x475c57(0x7cc)][_0x46a1fd][_0x475c57(0x277)]=_0x3142c2,!![]):(setTimeout(function _0x3ba576(){_0x1b0378['requestRateLimit'](![],_0x46a1fd);},0x1388),warnlog(_0x475c57(0x773)),![]);},_0x1b0378[_0x2f55f4(0x744)]=function(_0x3b71ac,_0x281288=![],_0x5e97f8=![],_0xf34588=![]){var _0x5b8d59=_0x2f55f4,_0x10ec5f=![],_0x1ac801={};_0x1ac801[_0x5b8d59(0x257)]=_0x3b71ac;try{if(!_0x281288&&!_0x5e97f8){if(_0xf34588==_0x5b8d59(0x7cc))_0x1b0378[_0x5b8d59(0x32f)](_0x1ac801);else _0xf34588=='pcs'?_0x1b0378[_0x5b8d59(0x7ff)](_0x1ac801):_0x1b0378[_0x5b8d59(0x50a)](_0x1ac801);_0x10ec5f=!![];}else{if(_0x281288){_0x281288=_0x281288+'';if(_0xf34588=='rpcs')_0x1b0378[_0x5b8d59(0x32f)](_0x1ac801,_0x281288);else _0xf34588==_0x5b8d59(0x71c)?_0x1b0378[_0x5b8d59(0x7ff)](_0x1ac801,_0x281288):_0x1b0378[_0x5b8d59(0x50a)](_0x1ac801,_0x281288);_0x10ec5f=!![];}else{if(_0x5e97f8){_0x5e97f8=_0x5e97f8+'';for(var _0x4efab6 in _0x1b0378[_0x5b8d59(0x7cc)]){if(_0x1b0378[_0x5b8d59(0x7cc)][_0x4efab6][_0x5b8d59(0x791)]===_0x5e97f8){if(_0xf34588=='rpcs')_0x1b0378[_0x5b8d59(0x32f)](_0x1ac801,_0x4efab6);else _0xf34588==_0x5b8d59(0x71c)?_0x1b0378['sendMessage'](_0x1ac801,_0x4efab6):_0x1b0378['sendPeers'](_0x1ac801,_0x4efab6);_0x10ec5f=!![];}}}}}return _0x10ec5f;}catch(_0x158c37){return![];}},_0x1b0378[_0x2f55f4(0x6a5)]=function(_0x3e0c92,_0x590471){var _0x4d128f=_0x2f55f4,_0x1ed2fb={};_0x1ed2fb[_0x4d128f(0x95c)]={},_0x1ed2fb[_0x4d128f(0x95c)]=_0x3e0c92;_0x590471!==null&&(_0x1ed2fb['UUID']=_0x590471);if(isIFrame)parent['postMessage'](_0x1ed2fb,_0x1b0378[_0x4d128f(0x4aa)]);else _0x3e0c92[_0x4d128f(0x918)]&&!isIFrame&&getChatMessage(_0x3e0c92[_0x4d128f(0x918)][_0x4d128f(0xaeb)],_0x3e0c92[_0x4d128f(0x918)]['chatname'],![],![]);},_0x1b0378[_0x2f55f4(0x670)]=function(){var _0x4e002c=_0x2f55f4;if(_0x1b0378[_0x4e002c(0x810)]===null)return;for(var _0x37be78 in _0x1b0378['rpcs']){try{var _0x473382=getReceivers2(_0x37be78);for(var _0x502afc=0x0;_0x502afc<_0x473382[_0x4e002c(0x5a7)];_0x502afc++){_0x473382[_0x502afc][_0x4e002c(0x29d)][_0x4e002c(0x759)]==_0x4e002c(0x95b)&&(_0x473382[_0x502afc][_0x4e002c(0x29d)][_0x4e002c(0x7ef)]=!_0x1b0378['directorSpeakerMuted']);}}catch(_0x4e2851){}}_0x1b0378['directorSpeakerMuted']&&(getById(_0x4e002c(0x3d9))[_0x4e002c(0x5cd)]=!![]);},_0x1b0378[_0x2f55f4(0x513)]=function(){var _0x2923c5=_0x2f55f4;if(_0x1b0378[_0x2923c5(0x3ea)]===null)return;_0x1b0378[_0x2923c5(0x3ea)]?(getById(_0x2923c5(0x268))[_0x2923c5(0xb06)][_0x2923c5(0x34e)]('hidden'),!_0x1b0378[_0x2923c5(0x379)]&&warnUser(getTranslation(_0x2923c5(0x5f5)),![],![])):(getById('gridlayout')['classList'][_0x2923c5(0x6ce)](_0x2923c5(0xa37)),!_0x1b0378[_0x2923c5(0x379)]&&closeModal());for(var _0x54e999 in _0x1b0378[_0x2923c5(0x7cc)]){try{var _0x33b693=getReceivers2(_0x54e999);for(var _0x5f5a7f=0x0;_0x5f5a7f<_0x33b693[_0x2923c5(0x5a7)];_0x5f5a7f++){_0x33b693[_0x5f5a7f]['track']['kind']==_0x2923c5(0xace)&&(_0x33b693[_0x5f5a7f][_0x2923c5(0x29d)][_0x2923c5(0x7ef)]=!_0x1b0378[_0x2923c5(0x3ea)]);}}catch(_0x3bd09b){errorlog(_0x3bd09b);}}_0x1b0378[_0x2923c5(0x3ea)]&&(getById(_0x2923c5(0x3d9))[_0x2923c5(0x5cd)]=!![]);},_0x1b0378['seedStream']=async function(){var _0x523c01=_0x2f55f4;await _0x1b0378[_0x523c01(0x9df)]();if(_0x1b0378['joiningRoom']!==![])_0x1b0378[_0x523c01(0x9d9)]=_0x523c01(0x8b1),log(_0x523c01(0x805));else{if(_0x1b0378[_0x523c01(0x200)])log(_0x523c01(0x2b9));else{var _0x44de58={};_0x44de58[_0x523c01(0x169)]=_0x523c01(0x662),_0x44de58[_0x523c01(0x791)]=_0x1b0378[_0x523c01(0x791)],_0x1b0378[_0x523c01(0x4a5)](_0x44de58),log(_0x523c01(0x262)),pokeAPI('seeding',!![]),pokeIframeAPI(_0x523c01(0x5b4),!![]),pokeIframeAPI(_0x523c01(0x92d),!![]);}}},_0x1b0378['requestCoDirector']=function(){var _0x24a23e=_0x2f55f4;getById('coDirectorEnable')[_0x24a23e(0x9d2)]=!![],getById(_0x24a23e(0x327))['title']='Only\x20the\x20main\x20director\x20can\x20use\x20this\x20setting',getById(_0x24a23e(0xad3))[_0x24a23e(0xb06)][_0x24a23e(0x34e)](_0x24a23e(0xa37)),_0x1b0378[_0x24a23e(0x830)]&&(_0x1b0378['directorHash']?_0x1b0378['directorUUID']&&(_0x1b0378[_0x24a23e(0x63e)]in _0x1b0378[_0x24a23e(0x7cc)]&&(_0x1b0378[_0x24a23e(0x7cc)][_0x1b0378[_0x24a23e(0x63e)]][_0x24a23e(0x20e)]===![]&&_0x1b0378[_0x24a23e(0x1c8)](_0x1b0378['directorHash'],_0x1b0378[_0x24a23e(0x877)])['then'](function(_0x51cb7c){var _0x43bc80=_0x24a23e,_0x1c791f={};_0x1c791f[_0x43bc80(0x7b3)]=_0x1b0378[_0x43bc80(0x63e)],_0x1c791f['requestCoDirector']=_0x51cb7c[0x0],_0x1c791f['vector']=_0x51cb7c[0x1],_0x1b0378[_0x43bc80(0x7cc)][_0x1b0378[_0x43bc80(0x63e)]][_0x43bc80(0x20e)]===![]&&(_0x1b0378[_0x43bc80(0x32f)](_0x1c791f,_0x1c791f[_0x43bc80(0x7b3)])&&(_0x1b0378[_0x43bc80(0x7cc)][_0x1b0378['directorUUID']][_0x43bc80(0x20e)]=!![]));})[_0x24a23e(0x872)](errorlog))):generateHash(_0x1b0378['directorPassword']+_0x1b0378[_0x24a23e(0x491)]+'abc123',0xc)[_0x24a23e(0xb39)](function(_0x3fe835){var _0x26e9e6=_0x24a23e;_0x1b0378[_0x26e9e6(0x877)]=_0x3fe835;_0x1b0378[_0x26e9e6(0x63e)]&&(_0x1b0378[_0x26e9e6(0x7cc)][_0x1b0378['directorUUID']][_0x26e9e6(0x20e)]===![]&&_0x1b0378[_0x26e9e6(0x1c8)](_0x1b0378[_0x26e9e6(0x877)],_0x1b0378[_0x26e9e6(0x877)])[_0x26e9e6(0xb39)](function(_0x1c153a){var _0x258aef=_0x26e9e6,_0x23bdcc={};_0x23bdcc[_0x258aef(0x7b3)]=_0x1b0378[_0x258aef(0x63e)],_0x23bdcc[_0x258aef(0xad1)]=_0x1c153a[0x0],_0x23bdcc[_0x258aef(0x7fc)]=_0x1c153a[0x1],_0x1b0378['rpcs'][_0x1b0378['directorUUID']][_0x258aef(0x20e)]===![]&&(_0x1b0378['sendRequest'](_0x23bdcc,_0x23bdcc[_0x258aef(0x7b3)])&&(_0x1b0378[_0x258aef(0x7cc)][_0x1b0378[_0x258aef(0x63e)]][_0x258aef(0x20e)]=!![]));})[_0x26e9e6(0x872)](errorlog));return;})[_0x24a23e(0x872)](errorlog));},_0x1b0378[_0x2f55f4(0x87c)]=function(_0x497295,_0xea379e){return _0x497295;},_0x1b0378[_0x2f55f4(0x537)]=function(_0x529090=![]){var _0x3b3d53=_0x2f55f4;log(_0x3b3d53(0x76b));if(_0x529090){if(!_0x1b0378['pcs'][_0x529090])return![];if(_0x1b0378[_0x3b3d53(0x71c)][_0x529090][_0x3b3d53(0x69d)]!==![]||_0x1b0378['pcs'][_0x529090]['scaleWidth']!==![]||_0x1b0378[_0x3b3d53(0x71c)][_0x529090]['scaleHeight']!==![])return log('resolution\x20scale:\x20'+_0x1b0378[_0x3b3d53(0x71c)][_0x529090]['scaleWidth']+_0x3b3d53(0x1d6)+_0x1b0378[_0x3b3d53(0x71c)][_0x529090][_0x3b3d53(0x58c)]),_0x1b0378[_0x3b3d53(0xae9)](_0x529090,_0x1b0378[_0x3b3d53(0x71c)][_0x529090][_0x3b3d53(0x5c0)],_0x1b0378['pcs'][_0x529090][_0x3b3d53(0x58c)],_0x1b0378[_0x3b3d53(0x71c)][_0x529090][_0x3b3d53(0x20a)],_0x1b0378[_0x3b3d53(0x71c)][_0x529090][_0x3b3d53(0x53e)]),!![];else{if(_0x1b0378[_0x3b3d53(0x71c)][_0x529090]['scale']!==![])return log(_0x3b3d53(0x84e)),_0x1b0378[_0x3b3d53(0x316)](_0x529090,_0x1b0378[_0x3b3d53(0x71c)][_0x529090][_0x3b3d53(0x864)],!![]),!![];}}else for(var _0x38f195 in _0x1b0378['pcs']){setTimeout(function(_0xf9e0ca){var _0x20fc54=_0x3b3d53;if(_0x1b0378['pcs'][_0xf9e0ca][_0x20fc54(0x69d)]!==![]||_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca]['scaleWidth']!==![]||_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x58c)]!==![])log(_0x20fc54(0xb17)+_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x5c0)]+'\x20x\x20'+_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x58c)]),_0x1b0378[_0x20fc54(0xae9)](_0xf9e0ca,_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x5c0)],_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x58c)],_0x1b0378['pcs'][_0xf9e0ca]['scaleSnap'],_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x53e)]);else _0x1b0378['pcs'][_0xf9e0ca][_0x20fc54(0x864)]!==![]&&(log(_0x20fc54(0x84e)),_0x1b0378[_0x20fc54(0x316)](_0xf9e0ca,_0x1b0378[_0x20fc54(0x71c)][_0xf9e0ca][_0x20fc54(0x864)],!![]));},0x0,_0x38f195);}return![];},_0x1b0378['whipOutSetScale']=function(_0x16ac34=_0x1b0378[_0x2f55f4(0x1a9)]){var _0x146aa0=_0x2f55f4;warnlog(_0x146aa0(0x737));if(_0x1b0378[_0x146aa0(0x9f3)][_0x146aa0(0x864)]!==_0x16ac34){if(_0x16ac34==null){try{var _0x29a7f9=_0x1b0378[_0x146aa0(0x9f3)][_0x146aa0(0x54b)]()[_0x146aa0(0x5c7)](function(_0x265928){var _0x2817bf=_0x146aa0;return _0x265928['track']&&_0x265928['track'][_0x2817bf(0x759)]==_0x2817bf(0xace);});}catch(_0x22fc1f){errorlog(_0x22fc1f);}if(!_0x29a7f9){warnlog(_0x146aa0(0x3a6));return;}var _0x4b7772=_0x29a7f9['getParameters']();(!_0x4b7772['encodings']||_0x4b7772[_0x146aa0(0x508)][_0x146aa0(0x5a7)]==0x0)&&(_0x4b7772[_0x146aa0(0x508)]=[{}]),'scaleResolutionDownBy'in _0x4b7772[_0x146aa0(0x508)][0x0]?(_0x16ac34=0x64/_0x4b7772['encodings'][0x0][_0x146aa0(0x445)],_0x16ac34=_0x16ac34*0.95):_0x16ac34=0x5f;}else _0x1b0378[_0x146aa0(0x9f3)][_0x146aa0(0x864)]=_0x16ac34;try{if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad))log(_0x146aa0(0x352));else{if(_0x146aa0(0x282)in window&&'setParameters'in window[_0x146aa0(0x282)][_0x146aa0(0x29b)]){try{var _0x29a7f9=_0x1b0378[_0x146aa0(0x9f3)][_0x146aa0(0x54b)]()[_0x146aa0(0x5c7)](function(_0x51a5ef){var _0x3cf4b8=_0x146aa0;return _0x51a5ef[_0x3cf4b8(0x29d)]&&_0x51a5ef[_0x3cf4b8(0x29d)]['kind']=='video';});}catch(_0x448d8d){errorlog(_0x448d8d);}if(!_0x29a7f9){warnlog(_0x146aa0(0x3a6));return;}var _0x24cedb={};if(_0x16ac34<=0x0||_0x16ac34==0x64){var _0x5dfabe=getChromiumVersion();_0x5dfabe>0x50?_0x24cedb['scaleResolutionDownBy']=null:_0x24cedb['scaleResolutionDownBy']=0x1;}else _0x24cedb[_0x146aa0(0x445)]=0x64/_0x16ac34;setEncodings(_0x29a7f9,_0x24cedb,function(_0x32a04e){var _0x8f5b67=_0x146aa0;log(_0x8f5b67(0xb3d)),pokeIframeAPI(_0x8f5b67(0x7c8),_0x32a04e,_0x8f5b67(0x9b6)),pokeIframeAPI(_0x8f5b67(0x982),_0x32a04e,'meshcast'),_0x1b0378['whipOut'][_0x8f5b67(0x36c)][_0x8f5b67(0xa34)]=parseInt(_0x32a04e)+'%';},_0x16ac34);return;}}}catch(_0x557d58){errorlog(_0x557d58);}}},_0x1b0378[_0x2f55f4(0x316)]=function(_0x2234d2,_0x15d774,_0x180ade=![]){var _0xc1282e=_0x2f55f4;warnlog(_0xc1282e(0x335)+_0x15d774);try{_0x1b0378[_0xc1282e(0x71c)][_0x2234d2][_0xc1282e(0x36c)]['scaleFactor']=_0x15d774;}catch(_0x3171bc){errorlog(_0x3171bc);}if(!_0x180ade&&_0x1b0378[_0xc1282e(0x71c)][_0x2234d2][_0xc1282e(0x864)]===_0x15d774)return;if(_0x15d774==null){try{var _0x1a31f1=getSenders2(_0x2234d2)[_0xc1282e(0x5c7)](function(_0x2d176b){var _0x4e5c33=_0xc1282e;return _0x2d176b[_0x4e5c33(0x29d)]&&_0x2d176b[_0x4e5c33(0x29d)]['kind']==_0x4e5c33(0xace);});}catch(_0x181ba1){errorlog(_0x181ba1);}if(!_0x1a31f1){warnlog(_0xc1282e(0x3a6));return;}var _0x23922f=_0x1a31f1[_0xc1282e(0xa8a)]();(!_0x23922f[_0xc1282e(0x508)]||_0x23922f[_0xc1282e(0x508)]['length']==0x0)&&(_0x23922f['encodings']=[{}]),_0xc1282e(0x445)in _0x23922f['encodings'][0x0]?(_0x15d774=0x64/_0x23922f['encodings'][0x0][_0xc1282e(0x445)],_0x15d774=_0x15d774*0.95):_0x15d774=0x5f;}else _0x15d774=Math[_0xc1282e(0x187)](_0x15d774),_0x1b0378[_0xc1282e(0x71c)][_0x2234d2][_0xc1282e(0x864)]=_0x15d774;try{if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad))log(_0xc1282e(0x352));else{if('RTCRtpSender'in window&&_0xc1282e(0x873)in window[_0xc1282e(0x282)]['prototype']){try{var _0x1a31f1=getSenders2(_0x2234d2)['find'](function(_0x4f34f4){var _0x12b217=_0xc1282e;return _0x4f34f4[_0x12b217(0x29d)]&&_0x4f34f4[_0x12b217(0x29d)]['kind']==_0x12b217(0xace);});}catch(_0x1eb5fb){errorlog(_0x1eb5fb);}if(!_0x1a31f1){warnlog(_0xc1282e(0x3a6));return;}_0x15d774=_0x1b0378[_0xc1282e(0x86d)](_0x2234d2,![],_0x15d774);var _0x51a0b2={};if(_0x15d774<=0x0||_0x15d774==0x64){var _0x184fce=getChromiumVersion();_0x184fce>0x50?_0x51a0b2[_0xc1282e(0x445)]=null:_0x51a0b2[_0xc1282e(0x445)]=0x1;}else _0x51a0b2['scaleResolutionDownBy']=0x64/_0x15d774;setEncodings(_0x1a31f1,_0x51a0b2,function(_0x5ec104){var _0x516d2b=_0xc1282e;log('scale\x20set!\x20'+_0x5ec104[0x0]),pokeIframeAPI('setVideoScale',_0x5ec104[0x0],_0x5ec104[0x1]),pokeIframeAPI(_0x516d2b(0x982),_0x5ec104[0x0],_0x5ec104[0x1]),_0x1b0378['pcs'][_0x5ec104[0x1]][_0x516d2b(0x36c)]['scaleFactor']=parseInt(_0x5ec104[0x0])+'%';},[_0x15d774,_0x2234d2]);return;}}}catch(_0x5f2c7b){errorlog(_0x5f2c7b);}},_0x1b0378[_0x2f55f4(0x60d)]=function(_0x510e28,_0xae1b3b,_0x1ef235,_0x1756ac=![],_0xfe41d5=![],_0x2521a7=null){var _0x4d6601=_0x2f55f4;if(!(_0x510e28 in _0x1b0378[_0x4d6601(0x7cc)]))return;_0x2521a7===null&&(_0x2521a7=_0x1b0378[_0x4d6601(0x53e)]||![]);var _0x401c97=![];!(_0x1b0378[_0x4d6601(0x7cc)][_0x510e28]['scaleWidth']==Math[_0x4d6601(0x1a3)](_0xae1b3b)||_0x1b0378[_0x4d6601(0x7cc)][_0x510e28][_0x4d6601(0x5c0)]===Math[_0x4d6601(0x187)](_0xae1b3b))&&(_0xae1b3b=Math[_0x4d6601(0x21e)](_0xae1b3b),_0x1b0378['rpcs'][_0x510e28]['scaleWidth']=_0xae1b3b,_0x401c97=!![]);!(_0x1b0378[_0x4d6601(0x7cc)][_0x510e28][_0x4d6601(0x58c)]==Math[_0x4d6601(0x1a3)](_0x1ef235)||_0x1b0378[_0x4d6601(0x7cc)][_0x510e28][_0x4d6601(0x58c)]===Math[_0x4d6601(0x187)](_0x1ef235))&&(_0x1ef235=Math[_0x4d6601(0x21e)](_0x1ef235),_0x1b0378[_0x4d6601(0x7cc)][_0x510e28][_0x4d6601(0x58c)]=_0x1ef235,_0x401c97=!![]);_0x1b0378[_0x4d6601(0x7cc)][_0x510e28][_0x4d6601(0x20a)]!=_0x1756ac&&(_0x1b0378['rpcs'][_0x510e28][_0x4d6601(0x20a)]=_0x1756ac,_0x401c97=!![]);_0xae1b3b=Math['round'](_0xae1b3b),_0x1ef235=Math[_0x4d6601(0x21e)](_0x1ef235);if(_0x401c97){var _0x18da1f={};_0x18da1f['UUID']=_0x510e28,_0x18da1f[_0x4d6601(0x60d)]={'w':_0xae1b3b,'h':_0x1ef235,'s':_0x1756ac,'c':_0x2521a7},_0xfe41d5&&(_0x18da1f[_0x4d6601(0x6c4)]=_0xfe41d5),log(_0xae1b3b+'\x20'+_0x1ef235),_0x1b0378[_0x4d6601(0x32f)](_0x18da1f,_0x510e28);}_0x1756ac?_0x1b0378['rpcs'][_0x510e28]['stats'][_0x4d6601(0x203)]='~\x20'+parseInt(_0xae1b3b)+'\x20x\x20'+parseInt(_0x1ef235):_0x1b0378[_0x4d6601(0x7cc)][_0x510e28]['stats'][_0x4d6601(0x203)]=parseInt(_0xae1b3b)+_0x4d6601(0x1d6)+parseInt(_0x1ef235);},_0x1b0378[_0x2f55f4(0x86d)]=function(_0x364541,_0x8fe2ac=![],_0x1d7d9f=![]){var _0x1ecab5=_0x2f55f4;if(_0x1d7d9f){}else _0x1b0378[_0x1ecab5(0x71c)][_0x364541][_0x1ecab5(0x864)]?_0x1d7d9f=_0x1b0378[_0x1ecab5(0x71c)][_0x364541][_0x1ecab5(0x864)]:_0x1d7d9f=0x64;_0x1b0378[_0x1ecab5(0x71c)][_0x364541][_0x1ecab5(0x69d)]&&_0x1d7d9f>_0x1b0378[_0x1ecab5(0x71c)][_0x364541][_0x1ecab5(0x69d)]&&(_0x1d7d9f=_0x1b0378[_0x1ecab5(0x71c)][_0x364541][_0x1ecab5(0x69d)]);if(_0x8fe2ac)_0x1d7d9f=_0x48dfd7(_0x364541,_0x1d7d9f,_0x8fe2ac);else _0x1b0378[_0x1ecab5(0x71c)][_0x364541][_0x1ecab5(0x7e1)]&&_0x1b0378[_0x1ecab5(0x71c)][_0x364541]['scaleDueToBitrate']<_0x1d7d9f&&(_0x1d7d9f=_0x1b0378['pcs'][_0x364541][_0x1ecab5(0x7e1)]);if(_0x1b0378[_0x1ecab5(0xb10)]&&_0x1b0378['pcs'][_0x364541]['scaleSnap']){if(_0x1d7d9f>0x55)_0x1d7d9f=0x64;else _0x1d7d9f>0x2a&&_0x1d7d9f<0x32&&(_0x1d7d9f=0x32);}return _0x1d7d9f=_0x1b0378[_0x1ecab5(0x87c)](_0x1d7d9f,_0x364541),_0x1d7d9f;},_0x1b0378['setResolution']=function(_0x3dc3ac=![],_0x2f9a67=null,_0x45a692=null,_0x414a88=![],_0x323a75=![]){var _0x1a9e9e=_0x2f55f4;log('setResolution\x20triggered;\x20'+_0x2f9a67+'x'+_0x45a692);if(_0x3dc3ac&&!(_0x3dc3ac in _0x1b0378[_0x1a9e9e(0x71c)]))return;else{if(!_0x3dc3ac){for(var _0x3bfef5 in _0x1b0378['pcs']){_0x1b0378[_0x1a9e9e(0xae9)](_0x3bfef5,_0x1b0378['pcs'][_0x3bfef5][_0x1a9e9e(0x5c0)],_0x1b0378[_0x1a9e9e(0x71c)][_0x3bfef5][_0x1a9e9e(0x58c)],_0x1b0378['pcs'][_0x3bfef5][_0x1a9e9e(0x20a)],_0x1b0378[_0x1a9e9e(0x71c)][_0x3bfef5]['cover']);}return;}}_0x323a75=_0x323a75||![],snape=_0x414a88||![];if(_0x2f9a67===null&&_0x45a692===null){if(!_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac]['scaleWidth']&&!_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac][_0x1a9e9e(0x58c)])return;else _0x2f9a67=_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac]['scaleWidth']||0x64,_0x45a692=_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac]['scaleHeight']||0x64;}else _0x1b0378['pcs'][_0x3dc3ac][_0x1a9e9e(0x5c0)]=_0x2f9a67,_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac][_0x1a9e9e(0x58c)]=_0x45a692,_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac][_0x1a9e9e(0x20a)]=_0x414a88,_0x1b0378[_0x1a9e9e(0x71c)][_0x3dc3ac][_0x1a9e9e(0x53e)]=_0x323a75;if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad))return;if('RTCRtpSender'in window&&_0x1a9e9e(0x873)in window['RTCRtpSender']['prototype']){var _0x582b7b=getSenders2(_0x3dc3ac)[_0x1a9e9e(0x5c7)](function(_0x4bd94b){var _0x14355e=_0x1a9e9e;return _0x4bd94b['track']&&_0x4bd94b[_0x14355e(0x29d)][_0x14355e(0x759)]=='video';});if(!_0x582b7b){log(_0x1a9e9e(0x5b3));return;}var _0x1b04b0={};if(_0x1a9e9e(0x42b)in _0x1b0378['pcs'][_0x3dc3ac]){var _0x492408=_0x1b0378['screenStream'][_0x1a9e9e(0x527)]();if(_0x492408['length'])var _0x27a467=_0x492408[0x0][_0x1a9e9e(0x6e2)](),_0x58743d=_0x27a467['height'],_0x546f39=_0x27a467[_0x1a9e9e(0x57a)];else return;}else{if(_0x1b0378['videoElement']&&_0x1b0378[_0x1a9e9e(0x601)][_0x1a9e9e(0x318)]){var _0x492408=_0x1b0378[_0x1a9e9e(0x601)][_0x1a9e9e(0x318)][_0x1a9e9e(0x527)]();if(_0x492408['length'])var _0x27a467=_0x492408[0x0][_0x1a9e9e(0x6e2)](),_0x58743d=_0x27a467[_0x1a9e9e(0x7bd)],_0x546f39=_0x27a467[_0x1a9e9e(0x57a)];else return;}else return;}var _0x28f98d=0x64*_0x2f9a67/_0x546f39,_0x1ab8a5=0x64*_0x45a692/_0x58743d;warnlog(_0x28f98d+'\x20x\x20'+_0x1ab8a5);var _0x3fd93b=0x64;if(_0x2f9a67===null)_0x3fd93b=_0x1ab8a5;else{if(_0x45a692===null)_0x3fd93b=_0x28f98d;else _0x323a75?_0x28f98d>_0x1ab8a5?_0x3fd93b=_0x28f98d:_0x3fd93b=_0x1ab8a5:_0x28f98d<_0x1ab8a5?_0x3fd93b=_0x28f98d:_0x3fd93b=_0x1ab8a5;}_0x3fd93b>0x64&&(_0x3fd93b=0x64);log(_0x1a9e9e(0xb17)+_0x3fd93b),_0x1b0378['pcs'][_0x3dc3ac]['scaleResolution']=_0x3fd93b;var _0x2a6c07=_0x1b0378[_0x1a9e9e(0x86d)](_0x3dc3ac);if(_0x2a6c07<=0x0||_0x2a6c07==0x64){var _0x28bee7=getChromiumVersion();_0x28bee7>0x50?_0x1b04b0[_0x1a9e9e(0x445)]=null:_0x1b04b0['scaleResolutionDownBy']=0x1;}else _0x1b04b0[_0x1a9e9e(0x445)]=0x64/_0x2a6c07;setEncodings(_0x582b7b,_0x1b04b0,function(_0x51db9b){var _0x24fd0d=_0x1a9e9e;log(_0x24fd0d(0xb3d)),pokeIframeAPI(_0x24fd0d(0x7c8),_0x51db9b[0x0],_0x51db9b[0x1]),pokeIframeAPI(_0x24fd0d(0x982),_0x51db9b[0x0],_0x51db9b[0x1]),_0x1b0378[_0x24fd0d(0x71c)][_0x51db9b[0x1]]['stats'][_0x24fd0d(0xa34)]=parseInt(_0x51db9b[0x0])+'%';},[_0x2a6c07,_0x3dc3ac]);return;}},_0x1b0378['forcePLI']=function(_0x37c4c0=null,_0x27c62c=null){var _0x301e8b=_0x2f55f4;_0x27c62c&&_0x27c62c[_0x301e8b(0x7b4)]();_0x1b0378['chunkedRecorder']&&(_0x1b0378[_0x301e8b(0x3bb)][_0x301e8b(0x311)]=!![],log(_0x301e8b(0x695)+_0x37c4c0));if(iOS||iPad)return log('iOS\x20devices\x20do\x20not\x20support\x20dynamic\x20bitrates\x20correctly;\x20skipping'),![];else{if(_0x301e8b(0x282)in window&&'setParameters'in window[_0x301e8b(0x282)][_0x301e8b(0x29b)]){log(_0x301e8b(0x40e)+_0x37c4c0);if(_0x37c4c0==null){for(_0x37c4c0 in _0x1b0378['pcs']){_0x1b0378[_0x301e8b(0x8b5)](_0x37c4c0);}return![];}if(!(_0x37c4c0 in _0x1b0378[_0x301e8b(0x71c)]))return![];_0x1b0378['pcs'][_0x37c4c0][_0x301e8b(0xa16)]&&(_0x1b0378[_0x301e8b(0x71c)][_0x37c4c0][_0x301e8b(0x7c0)]&&(clearTimeout(_0x1b0378[_0x301e8b(0x71c)][_0x37c4c0][_0x301e8b(0x7c0)]),_0x1b0378[_0x301e8b(0x71c)][_0x37c4c0][_0x301e8b(0x7c0)]=null),_0x1b0378[_0x301e8b(0x71c)][_0x37c4c0][_0x301e8b(0x7c0)]=setTimeout(function(_0x249f51){var _0x553776=_0x301e8b;!_0x1b0378[_0x553776(0x71c)][_0x249f51]?clearInterval(this):_0x1b0378[_0x553776(0x8b5)](_0x249f51);},parseInt(_0x1b0378['pcs'][_0x37c4c0][_0x301e8b(0xa16)]),_0x37c4c0));try{var _0x4b437c=getSenders2(_0x37c4c0)['find'](function(_0xc729e9){var _0x8c9b51=_0x301e8b;return _0xc729e9['track']&&_0xc729e9[_0x8c9b51(0x29d)][_0x8c9b51(0x759)]=='video';});if(!_0x4b437c)return warnlog(_0x301e8b(0x5b3)),![];var _0x70880f={};return _0x70880f[_0x301e8b(0x445)]=0xa,setEncodings(_0x4b437c,_0x70880f,function(_0x1f1ffe){var _0x435178=_0x301e8b;log(_0x435178(0x7d7)+_0x1f1ffe[0x0]);var _0x131cee=_0x1b0378[_0x435178(0x86d)](_0x1f1ffe[0x0]),_0x1aae6e={};if(_0x131cee<=0x0||_0x131cee==0x64){var _0x36a1e8=getChromiumVersion();_0x36a1e8>0x50?_0x1aae6e[_0x435178(0x445)]=null:_0x1aae6e[_0x435178(0x445)]=0x1;}else _0x1aae6e['scaleResolutionDownBy']=0x64/_0x131cee;setEncodings(_0x1f1ffe[0x1],_0x1aae6e,function(){var _0x95322f=_0x435178;log(_0x95322f(0x6c0));});},[_0x37c4c0,_0x4b437c]),!![];}catch(_0x1f8630){errorlog(_0x1f8630);}}}return![];},_0x1b0378[_0x2f55f4(0x9f0)]=function(_0x2e8f16){var _0x34eb70=_0x2f55f4;log(_0x34eb70(0xa75));var _0x3f1ac0=getSenders2(_0x2e8f16)['find'](function(_0x3d8261){var _0x357fd3=_0x34eb70;return _0x3d8261[_0x357fd3(0x29d)]&&_0x3d8261[_0x357fd3(0x29d)]['kind']==_0x357fd3(0x95b);});if(!_0x3f1ac0)return log(_0x34eb70(0x90c)),![];var _0x4b0edb={};try{_0x4b0edb[_0x34eb70(0x80f)]=_0x34eb70(0x844),_0x4b0edb['priority']='high',_0x4b0edb['adaptivePtime']=!![],setEncodings(_0x3f1ac0,_0x4b0edb,function(_0x1d819c){var _0x4ac300=_0x34eb70;log('done\x20clearing\x20audio'),pokeIframeAPI(_0x4ac300(0x93a),!![],_0x1d819c);},_0x2e8f16);}catch(_0x59c5c5){errorlog(_0x59c5c5);}},_0x1b0378[_0x2f55f4(0xad2)]=function(_0x59ef14,_0x49c871=_0x2f55f4(0x360)){var _0x43bd3e=_0x2f55f4,_0x16af8f=getSenders2(_0x59ef14)[_0x43bd3e(0x5c7)](function(_0x1134f6){var _0x15315f=_0x43bd3e;return _0x1134f6[_0x15315f(0x29d)]&&_0x1134f6[_0x15315f(0x29d)]['kind']==_0x15315f(0xace);});if(!_0x16af8f)return log('no\x20video\x20track\x20to\x20control'),![];var _0x374c58={};try{_0x49c871===!![]?(_0x374c58[_0x43bd3e(0xad2)]=_0x43bd3e(0x360),log('done\x20setting\x20degrad\x20to\x20maintain-framerate')):(_0x374c58[_0x43bd3e(0xad2)]=_0x49c871,log(_0x43bd3e(0x8eb)+_0x49c871)),setEncodings(_0x16af8f,_0x374c58,(function(){log('done\x20setting\x20degrad');}()));}catch(_0x591968){errorlog(_0x591968);}},_0x1b0378[_0x2f55f4(0x928)]=function(_0x581d91,_0x21857a,_0x4e8ea8=![]){var _0x185607=_0x2f55f4;log(_0x185607(0x3cb)+_0x581d91+_0x185607(0x5f6)+_0x4e8ea8);if(_0x1b0378[_0x185607(0x6b2)]===![])return;_0x21857a[_0x185607(0x6b2)]=parseInt(_0x1b0378[_0x185607(0x6b2)]/0x64*_0x581d91),_0x4e8ea8?_0x1b0378[_0x185607(0x79c)](null):_0x1b0378[_0x185607(0x3a5)](_0x21857a['UUID'],null);},_0x1b0378[_0x2f55f4(0x80a)]=function(_0x111732,_0xb9175d=0x7d00,_0x2cc1f0=0x3e8){var _0x2fc8b5=_0x2f55f4;log(_0x2fc8b5(0xa1c));var _0x5b6733=getSenders2(_0x111732)[_0x2fc8b5(0x5c7)](function(_0x384955){var _0x1b77e7=_0x2fc8b5;return _0x384955['track']&&_0x384955['track']['kind']==_0x1b77e7(0x95b);});if(!_0x5b6733)return log(_0x2fc8b5(0x90c)),![];var _0x241562={};_0x241562[_0x2fc8b5(0x1ff)]=_0xb9175d,setEncodings(_0x5b6733,_0x241562,function(_0x2f5275){var _0x3ce80f=_0x2fc8b5;pokeIframeAPI(_0x3ce80f(0xa26),_0x2f5275[0x0],_0x2f5275[0x1]),pokeIframeAPI(_0x3ce80f(0x5e0),_0x2f5275[0x0],_0x2f5275[0x1]),_0x2f5275[0x2]>0x0&&setTimeout(function(){var _0x3b918f=_0x3ce80f;try{if(_0x2f5275[0x1]in _0x1b0378[_0x3b918f(0x71c)])var _0x301790=getSenders2(_0x2f5275[0x1])[_0x3b918f(0x5c7)](function(_0x5b23ac){var _0x220e1f=_0x3b918f;return _0x5b23ac['track']&&_0x5b23ac['track'][_0x220e1f(0x759)]=='audio';});else return![];if(!_0x301790)return log('no\x20audio\x20track\x20to\x20poke'),![];var _0x5e8d2f={};_0x5e8d2f[_0x3b918f(0x1ff)]=null,setEncodings(_0x301790,_0x5e8d2f,function(){var _0x15225c=_0x3b918f;log(_0x15225c(0x7ae));});}catch(_0x2deef2){errorlog(_0x2deef2);}},_0x2f5275[0x2],_0x2f5275[0x1]);},[_0xb9175d,_0x111732,_0x2cc1f0]);},_0x1b0378[_0x2f55f4(0x988)]=function(_0x2104ca,_0x2e41a0,_0x2a667f){var _0x1e618f=_0x2f55f4;pokeIframeAPI(_0x1e618f(0x35b),_0x2104ca,_0x2a667f);if(_0x1b0378[_0x1e618f(0x625)])return generateHash(_0x2104ca+_0x1b0378[_0x1e618f(0x625)]+_0x1b0378[_0x1e618f(0x491)],0x10)['then'](function(_0x133f4e){var _0x257252=_0x1e618f,_0x1889b7={};_0x2e41a0[_0x257252(0x36a)]&&(_0x2e41a0[_0x257252(0x8f4)]=_0x133f4e);if(_0x1b0378[_0x257252(0x91b)]&&_0x1b0378[_0x257252(0x63e)])_0x1889b7['migrate']=_0x2a667f,_0x1889b7[_0x257252(0x85b)]=_0x133f4e,_0x1889b7[_0x257252(0x86f)]=_0x2e41a0,_0x1b0378[_0x257252(0x32f)](_0x1889b7,_0x1b0378['directorUUID']),log(_0x1889b7);else{if(_0x2e41a0[_0x257252(0x36a)])_0x1889b7['request']=_0x257252(0x59a),_0x1889b7['transferSettings']=_0x2e41a0,log(_0x1889b7),_0x1b0378[_0x257252(0x32f)](_0x1889b7,_0x2a667f,function(){var _0x1bc897=_0x257252,_0x2e6f44={};_0x2e6f44['request']=_0x1bc897(0x59a),_0x2e6f44[_0x1bc897(0x85b)]=_0x133f4e,_0x2e6f44[_0x1bc897(0xa69)]=_0x2a667f,_0x1b0378[_0x1bc897(0x4a5)](_0x2e6f44);}),log(_0x1889b7);else{if(_0x257252(0x259)in _0x2e41a0)_0x1889b7['request']=_0x257252(0x59a),_0x1889b7['transferSettings']=_0x2e41a0,delete _0x1889b7[_0x257252(0x86f)][_0x257252(0x85b)],delete _0x1889b7[_0x257252(0x86f)]['roomenc'],log(_0x1889b7),_0x1b0378[_0x257252(0x32f)](_0x1889b7,_0x2a667f,function(){var _0x2d4463=_0x257252,_0x2a91e4={};_0x2a91e4['request']=_0x2d4463(0x59a),_0x2a91e4[_0x2d4463(0x85b)]=_0x133f4e,_0x2a91e4[_0x2d4463(0xa69)]=_0x2a667f,_0x1b0378['sendMsg'](_0x2a91e4);}),log(_0x1889b7);else Object['keys'](_0x2e41a0)[_0x257252(0x5a7)]?(_0x1889b7['request']=_0x257252(0x59a),_0x1889b7['transferSettings']=_0x2e41a0,delete _0x1889b7[_0x257252(0x86f)]['roomid'],delete _0x1889b7[_0x257252(0x86f)][_0x257252(0x8f4)],log(_0x1889b7),_0x1b0378[_0x257252(0x32f)](_0x1889b7,_0x2a667f,function(){var _0x47d5f3=_0x257252,_0x367013={};_0x367013[_0x47d5f3(0x169)]=_0x47d5f3(0x59a),_0x367013[_0x47d5f3(0x85b)]=_0x133f4e,_0x367013[_0x47d5f3(0xa69)]=_0x2a667f,_0x1b0378['sendMsg'](_0x367013);}),log(_0x1889b7)):(_0x1889b7[_0x257252(0x169)]=_0x257252(0x59a),_0x1889b7['roomid']=_0x133f4e,_0x1889b7[_0x257252(0xa69)]=_0x2a667f,_0x1b0378[_0x257252(0x4a5)](_0x1889b7));}}})[_0x1e618f(0x872)](errorlog);else{_0x2e41a0[_0x1e618f(0x36a)]&&(_0x2e41a0[_0x1e618f(0x8f4)]=_0x2104ca);var _0x17c260={};if(_0x1b0378[_0x1e618f(0x91b)]&&_0x1b0378['directorUUID'])_0x17c260[_0x1e618f(0x59a)]=_0x2a667f,_0x17c260[_0x1e618f(0x85b)]=_0x2104ca,_0x17c260[_0x1e618f(0x86f)]=_0x2e41a0,_0x1b0378[_0x1e618f(0x32f)](_0x17c260,_0x1b0378[_0x1e618f(0x63e)]),log(_0x17c260);else{if(_0x2e41a0[_0x1e618f(0x36a)])_0x17c260[_0x1e618f(0x169)]=_0x1e618f(0x59a),_0x17c260['transferSettings']=_0x2e41a0,_0x1b0378['sendRequest'](_0x17c260,_0x2a667f,function(){var _0x584799=_0x1e618f,_0x1f3dce={};_0x1f3dce['request']=_0x584799(0x59a),_0x1f3dce[_0x584799(0x85b)]=_0x2104ca,_0x1f3dce[_0x584799(0xa69)]=_0x2a667f,_0x1b0378['sendMsg'](_0x1f3dce);});else{if(_0x1e618f(0x259)in _0x2e41a0)_0x17c260[_0x1e618f(0x169)]=_0x1e618f(0x59a),_0x17c260[_0x1e618f(0x86f)]=_0x2e41a0,delete _0x17c260[_0x1e618f(0x86f)][_0x1e618f(0x85b)],delete _0x17c260[_0x1e618f(0x86f)][_0x1e618f(0x8f4)],_0x1b0378['sendRequest'](_0x17c260,_0x2a667f,function(){var _0x86c146=_0x1e618f,_0x48cff4={};_0x48cff4[_0x86c146(0x169)]=_0x86c146(0x59a),_0x48cff4[_0x86c146(0x85b)]=_0x2104ca,_0x48cff4[_0x86c146(0xa69)]=_0x2a667f,_0x1b0378[_0x86c146(0x4a5)](_0x48cff4);});else Object[_0x1e618f(0x69e)](_0x2e41a0)[_0x1e618f(0x5a7)]?(_0x17c260[_0x1e618f(0x169)]=_0x1e618f(0x59a),_0x17c260['transferSettings']=_0x2e41a0,delete _0x17c260[_0x1e618f(0x86f)][_0x1e618f(0x85b)],delete _0x17c260[_0x1e618f(0x86f)][_0x1e618f(0x8f4)],log(_0x17c260),_0x1b0378[_0x1e618f(0x32f)](_0x17c260,_0x2a667f,function(){var _0xb2fb93=_0x1e618f,_0x525b56={};_0x525b56[_0xb2fb93(0x169)]=_0xb2fb93(0x59a),_0x525b56['roomid']=_0x2104ca,_0x525b56[_0xb2fb93(0xa69)]=_0x2a667f,_0x1b0378[_0xb2fb93(0x4a5)](_0x525b56);}),log(_0x17c260)):(_0x17c260['request']=_0x1e618f(0x59a),_0x17c260['roomid']=_0x2104ca,_0x17c260[_0x1e618f(0xa69)]=_0x2a667f,_0x1b0378[_0x1e618f(0x4a5)](_0x17c260));}}}},_0x1b0378['limitAudioBitrate']=async function(_0x8bcb2,_0xf3bf5a){var _0x3fb81a=_0x2f55f4;_0xf3bf5a=parseInt(_0xf3bf5a);try{var _0x565d5d=getSenders2(_0x8bcb2)[_0x3fb81a(0x5c7)](function(_0x84dd2a){var _0x23d6ff=_0x3fb81a;return _0x84dd2a[_0x23d6ff(0x29d)]&&_0x84dd2a['track']['kind']==_0x23d6ff(0x95b);});if(!_0x565d5d){log('can\x27t\x20change\x20audio\x20bitrate;\x20no\x20audio\x20sender\x20found');return;}var _0x21dd58={};if(_0xf3bf5a<0x0){_0x21dd58[_0x3fb81a(0x76d)]=!![];if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad)){_0xf3bf5a=0x20;if(_0x1b0378[_0x3fb81a(0x71c)][_0x8bcb2][_0x3fb81a(0xa26)]!==![])_0xf3bf5a=_0x1b0378[_0x3fb81a(0x71c)][_0x8bcb2][_0x3fb81a(0xa26)];else _0x1b0378[_0x3fb81a(0x340)]&&(_0xf3bf5a=_0x1b0378['audiobitrate']);_0x21dd58[_0x3fb81a(0x1ff)]=_0xf3bf5a*0x400;}else _0x1b0378[_0x3fb81a(0x71c)][_0x8bcb2][_0x3fb81a(0xa26)]!==![]?(_0xf3bf5a=_0x1b0378[_0x3fb81a(0x71c)][_0x8bcb2]['setAudioBitrate'],_0x21dd58[_0x3fb81a(0x1ff)]=_0xf3bf5a*0x400):_0x21dd58['maxBitrate']=null;}else _0xf3bf5a===0x0?_0x21dd58[_0x3fb81a(0x76d)]=![]:(_0x21dd58[_0x3fb81a(0x76d)]=!![],_0x21dd58[_0x3fb81a(0x1ff)]=_0xf3bf5a*0x400);_0x1b0378['pcs'][_0x8bcb2][_0x3fb81a(0x4bb)]&&(_0x21dd58[_0x3fb81a(0x76d)]=![]),setEncodings(_0x565d5d,_0x21dd58,function(_0x4217c0){var _0x3d8157=_0x3fb81a;pokeIframeAPI(_0x3d8157(0xa26),_0x4217c0[0x0],_0x4217c0[0x1]),pokeIframeAPI(_0x3d8157(0x5e0),_0x4217c0[0x0],_0x4217c0[0x1]),log(_0x3d8157(0x449));},[_0xf3bf5a,_0x8bcb2]);}catch(_0x16d41b){errorlog(_0x16d41b),log(_0x8bcb2),log(_0x1b0378[_0x3fb81a(0x71c)][_0x8bcb2]);}},_0x1b0378['optimizeBitrate']=function(_0x223ceb){var _0x14c531=_0x2f55f4;if(_0x1b0378[_0x14c531(0x9b4)]&&_0x1b0378[_0x14c531(0x71c)][_0x223ceb][_0x14c531(0x883)]===!![])_0x1b0378[_0x14c531(0x3a5)](_0x223ceb,0x0),_0x1b0378['pcs'][_0x223ceb][_0x14c531(0x2f6)]===0x0&&(_0x1b0378[_0x14c531(0x71c)][_0x223ceb][_0x14c531(0x19e)]['visibility']===![]?_0x1b0378[_0x14c531(0x7fd)](_0x223ceb,0x0):_0x1b0378[_0x14c531(0x7fd)](_0x223ceb,-0x1));else{if(_0x1b0378[_0x14c531(0x71c)][_0x223ceb]&&_0x1b0378[_0x14c531(0x71c)][_0x223ceb]['optimizedBitrate']!==![]){if(_0x1b0378[_0x14c531(0x71c)][_0x223ceb]['obsState'][_0x14c531(0xb43)]===![]){var _0x57ac68=_0x1b0378[_0x14c531(0x71c)][_0x223ceb][_0x14c531(0x2f6)];_0x1b0378[_0x14c531(0x71c)][_0x223ceb][_0x14c531(0x1a8)]&&_0x1b0378['pcs'][_0x223ceb][_0x14c531(0x1a8)]>0x0&&(_0x1b0378[_0x14c531(0x71c)][_0x223ceb][_0x14c531(0x1a8)]<_0x1b0378['pcs'][_0x223ceb]['optimizedBitrate']&&(_0x57ac68=_0x1b0378['pcs'][_0x223ceb][_0x14c531(0x1a8)])),_0x1b0378[_0x14c531(0x3a5)](_0x223ceb,_0x57ac68),_0x1b0378['pcs'][_0x223ceb]['optimizedBitrate']===0x0&&_0x1b0378[_0x14c531(0x7fd)](_0x223ceb,0x0);}else _0x1b0378[_0x14c531(0x71c)][_0x223ceb]['optimizedBitrate']===0x0&&(_0x1b0378[_0x14c531(0x7fd)](_0x223ceb,-0x1),_0x1b0378[_0x14c531(0xa51)](),_0x1b0378['maxvideobitrate']&&_0x1b0378[_0x14c531(0x3a5)](_0x223ceb,null));}else _0x1b0378[_0x14c531(0xa51)](),_0x1b0378['maxvideobitrate']&&_0x1b0378[_0x14c531(0x3a5)](_0x223ceb,null);}},_0x1b0378[_0x2f55f4(0xa51)]=function(_0x16954e=0x0,_0x17db2c=![]){var _0x16a53e=_0x2f55f4;if(!_0x1b0378[_0x16a53e(0x2f2)])return _0x16954e;if(!_0x1b0378[_0x16a53e(0x85b)]||_0x1b0378[_0x16a53e(0x333)]!==![])return log('Switching\x20to\x20limitTotalBitrateAll'),_0x1b0378['limitTotalBitrateAll'](_0x16954e,_0x17db2c),_0x16954e;if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd)return _0x16954e;var _0x19bee6=_0x16954e;if(_0x17db2c===![])_0x19bee6=0x0;else _0x19bee6<0x0&&(_0x19bee6=_0x1b0378['pcs'][_0x17db2c][_0x16a53e(0xb11)]||Math[_0x16a53e(0x446)](_0x1b0378[_0x16a53e(0x6ee)]||0x0||(_0x1b0378['pcs'][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4);var _0x4cbcb2=0x0;for(var _0x473df8 in _0x1b0378['pcs']){if(_0x17db2c===_0x473df8)continue;if(!_0x1b0378[_0x16a53e(0x71c)][_0x473df8]['guest'])continue;try{var _0x80d9e1=getSenders2(_0x473df8)['find'](function(_0x2f493a){var _0x54bd8a=_0x16a53e;return _0x2f493a[_0x54bd8a(0x29d)]&&_0x2f493a[_0x54bd8a(0x29d)][_0x54bd8a(0x759)]==_0x54bd8a(0xace);});if(!_0x80d9e1)continue;var _0xadcb16=_0x80d9e1[_0x16a53e(0xa8a)]();if(!_0xadcb16[_0x16a53e(0x508)]||_0xadcb16[_0x16a53e(0x508)][_0x16a53e(0x5a7)]==0x0){_0x1b0378['pcs'][_0x473df8][_0x16a53e(0xb11)]<0x0?_0x19bee6+=Math['min'](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4:_0x19bee6+=_0x1b0378[_0x16a53e(0x71c)][_0x473df8]['setBitrate']||Math[_0x16a53e(0x446)](_0x1b0378[_0x16a53e(0x6ee)]||0x0||(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4;warnlog(_0x19bee6),_0x4cbcb2+=0x1;continue;}if(_0xadcb16[_0x16a53e(0x508)][0x0][_0x16a53e(0x76d)]==![])continue;if(_0xadcb16['encodings'][0x0]['maxBitrate'])_0x16a53e(0x9f8)in _0x1b0378[_0x16a53e(0x71c)][_0x473df8]?_0x19bee6+=parseInt(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0x9f8)]):_0x19bee6+=parseInt(_0xadcb16[_0x16a53e(0x508)][0x0][_0x16a53e(0x1ff)])/0x400;else _0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0xb11)]<0x0?_0x19bee6+=Math['min'](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4:(_0x19bee6+=_0x1b0378['pcs'][_0x473df8][_0x16a53e(0xb11)]||Math['min'](_0x1b0378[_0x16a53e(0x6ee)]||0x0||(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4,warnlog(_0x19bee6));_0x4cbcb2+=0x1;}catch(_0x5853d4){errorlog(_0x5853d4);}}if(!_0x19bee6)return _0x19bee6;warnlog(_0x16a53e(0x9e1)+_0x19bee6);var _0x222b8d=parseFloat(_0x19bee6/_0x1b0378[_0x16a53e(0x2f2)]);_0x222b8d<0x1&&(_0x222b8d=0x1);for(var _0x473df8 in _0x1b0378[_0x16a53e(0x71c)]){if(_0x17db2c===_0x473df8)continue;if(!_0x1b0378['pcs'][_0x473df8]['guest'])continue;try{var _0x80d9e1=getSenders2(_0x473df8)[_0x16a53e(0x5c7)](function(_0x4fd12a){var _0x79a536=_0x16a53e;return _0x4fd12a[_0x79a536(0x29d)]&&_0x4fd12a[_0x79a536(0x29d)]['kind']==_0x79a536(0xace);});if(!_0x80d9e1)continue;var _0xadcb16=_0x80d9e1['getParameters']();if(!_0xadcb16[_0x16a53e(0x508)]||_0xadcb16[_0x16a53e(0x508)][_0x16a53e(0x5a7)]==0x0){if(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0xb11)]<0x0)var _0x2cc260=Math[_0x16a53e(0x446)](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378[_0x16a53e(0x71c)][_0x473df8]['maxBandwidth']||0x0))||0x9c4;else var _0x2cc260=_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0xb11)]||Math[_0x16a53e(0x446)](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378['pcs'][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4;var _0x41ec7f=parseInt(_0x2cc260/_0x222b8d);_0x1b0378[_0x16a53e(0x3a5)](_0x473df8,_0x41ec7f,!![]);continue;}if(_0xadcb16[_0x16a53e(0x508)][0x0][_0x16a53e(0x76d)]==![])continue;if(_0xadcb16['encodings'][0x0][_0x16a53e(0x1ff)]){if(_0x16a53e(0x9f8)in _0x1b0378['pcs'][_0x473df8])var _0x2cc260=parseInt(_0x1b0378['pcs'][_0x473df8][_0x16a53e(0x9f8)]);else var _0x2cc260=parseInt(parseInt(_0xadcb16[_0x16a53e(0x508)][0x0][_0x16a53e(0x1ff)])/0x400);var _0x41ec7f=parseInt(_0x2cc260/_0x222b8d);_0x1b0378['limitBitrate'](_0x473df8,_0x41ec7f,!![]);}else{if(_0x1b0378[_0x16a53e(0x71c)][_0x473df8][_0x16a53e(0xb11)]<0x0)var _0x2cc260=Math[_0x16a53e(0x446)](_0x1b0378[_0x16a53e(0x6ee)]||0x0||(_0x1b0378[_0x16a53e(0x71c)][_0x473df8]['maxBandwidth']||0x0))||0x9c4;else var _0x2cc260=_0x1b0378[_0x16a53e(0x71c)][_0x473df8]['setBitrate']||Math[_0x16a53e(0x446)](_0x1b0378[_0x16a53e(0x6ee)]||0x0||(_0x1b0378['pcs'][_0x473df8][_0x16a53e(0x6b2)]||0x0))||0x9c4;var _0x41ec7f=parseInt(_0x2cc260/_0x222b8d);_0x1b0378[_0x16a53e(0x3a5)](_0x473df8,_0x41ec7f,!![]);}}catch(_0x5e097d){errorlog(_0x5e097d);}}return parseInt(_0x16954e/_0x222b8d);},_0x1b0378[_0x2f55f4(0x8dc)]=function(_0x5b3f84=0x0,_0x13d39e=![]){var _0x46e531=_0x2f55f4;if(!_0x1b0378[_0x46e531(0x2f2)])return _0x5b3f84;if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd)return _0x5b3f84;var _0x2f3ffa=_0x5b3f84;if(_0x13d39e===![])_0x2f3ffa=0x0;else _0x2f3ffa<0x0&&(_0x2f3ffa=_0x1b0378[_0x46e531(0x71c)][_0x13d39e][_0x46e531(0xb11)]||Math[_0x46e531(0x446)](_0x1b0378[_0x46e531(0x6ee)]||0x0||(_0x1b0378['pcs'][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4);var _0x3690c0=0x0;for(var _0x367b92 in _0x1b0378[_0x46e531(0x71c)]){if(_0x13d39e===_0x367b92)continue;try{var _0x52cde3=getSenders2(_0x367b92)[_0x46e531(0x5c7)](function(_0x17e3ba){var _0x571152=_0x46e531;return _0x17e3ba[_0x571152(0x29d)]&&_0x17e3ba[_0x571152(0x29d)][_0x571152(0x759)]==_0x571152(0xace);});if(!_0x52cde3)continue;var _0x4134e8=_0x52cde3[_0x46e531(0xa8a)]();if(!_0x4134e8[_0x46e531(0x508)]||_0x4134e8[_0x46e531(0x508)]['length']==0x0){_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]<0x0?_0x2f3ffa+=Math[_0x46e531(0x446)](_0x1b0378[_0x46e531(0x6ee)]||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4:_0x2f3ffa+=_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]||Math[_0x46e531(0x446)](_0x1b0378[_0x46e531(0x6ee)]||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4;warnlog(_0x2f3ffa),_0x3690c0+=0x1;continue;}if(_0x4134e8[_0x46e531(0x508)][0x0][_0x46e531(0x76d)]==![])continue;if(_0x4134e8[_0x46e531(0x508)][0x0][_0x46e531(0x1ff)])'preLimitedBitrate'in _0x1b0378['pcs'][_0x367b92]?_0x2f3ffa+=parseInt(_0x1b0378['pcs'][_0x367b92][_0x46e531(0x9f8)]):_0x2f3ffa+=parseInt(_0x4134e8[_0x46e531(0x508)][0x0]['maxBitrate'])/0x400;else _0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]<0x0?_0x2f3ffa+=Math['min'](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4:(_0x2f3ffa+=_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]||Math[_0x46e531(0x446)](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4,warnlog(_0x2f3ffa));_0x3690c0+=0x1;}catch(_0x3c5533){errorlog(_0x3c5533);}}if(!_0x2f3ffa)return _0x2f3ffa;warnlog(_0x46e531(0x9e1)+_0x2f3ffa);var _0xac17f=parseFloat(_0x2f3ffa/_0x1b0378[_0x46e531(0x2f2)]);_0xac17f<0x1&&(_0xac17f=0x1);for(var _0x367b92 in _0x1b0378['pcs']){if(_0x13d39e===_0x367b92)continue;try{var _0x52cde3=getSenders2(_0x367b92)[_0x46e531(0x5c7)](function(_0x523df9){var _0x2ef6b2=_0x46e531;return _0x523df9['track']&&_0x523df9[_0x2ef6b2(0x29d)][_0x2ef6b2(0x759)]==_0x2ef6b2(0xace);});if(!_0x52cde3)continue;var _0x4134e8=_0x52cde3['getParameters']();if(!_0x4134e8[_0x46e531(0x508)]||_0x4134e8['encodings'][_0x46e531(0x5a7)]==0x0){if(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]<0x0)var _0x4db5a4=Math[_0x46e531(0x446)](_0x1b0378['outboundVideoBitrate']||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4;else var _0x4db5a4=_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]||Math['min'](_0x1b0378[_0x46e531(0x6ee)]||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4;var _0x5d8969=parseInt(_0x4db5a4/_0xac17f);_0x1b0378[_0x46e531(0x3a5)](_0x367b92,_0x5d8969,!![]);continue;}if(_0x4134e8[_0x46e531(0x508)][0x0]['active']==![])continue;if(_0x4134e8[_0x46e531(0x508)][0x0][_0x46e531(0x1ff)]){if(_0x46e531(0x9f8)in _0x1b0378[_0x46e531(0x71c)][_0x367b92])var _0x4db5a4=parseInt(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x9f8)]);else var _0x4db5a4=parseInt(parseInt(_0x4134e8[_0x46e531(0x508)][0x0][_0x46e531(0x1ff)])/0x400);var _0x5d8969=parseInt(_0x4db5a4/_0xac17f);_0x1b0378[_0x46e531(0x3a5)](_0x367b92,_0x5d8969,!![]);}else{if(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0xb11)]<0x0)var _0x4db5a4=Math[_0x46e531(0x446)](_0x1b0378[_0x46e531(0x6ee)]||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92][_0x46e531(0x6b2)]||0x0))||0x9c4;else var _0x4db5a4=_0x1b0378['pcs'][_0x367b92]['setBitrate']||Math[_0x46e531(0x446)](_0x1b0378[_0x46e531(0x6ee)]||0x0||(_0x1b0378[_0x46e531(0x71c)][_0x367b92]['maxBandwidth']||0x0))||0x9c4;var _0x5d8969=parseInt(_0x4db5a4/_0xac17f);_0x1b0378['limitBitrate'](_0x367b92,_0x5d8969,!![]);}}catch(_0x55b897){errorlog(_0x55b897);}}return parseInt(_0x5b3f84/_0xac17f);},_0x1b0378[_0x2f55f4(0x699)]=function(_0x340389,_0x3e075a=![]){var _0x2a6880=_0x2f55f4,_0x36ea63={};_0x36ea63[_0x2a6880(0x734)]={},_0x36ea63[_0x2a6880(0x734)][_0x2a6880(0x5bf)]=[_0x340389],_0x1b0378[_0x2a6880(0x50a)](_0x36ea63,_0x3e075a),pokeIframeAPI(_0x2a6880(0x6e9),_0x340389);},_0x1b0378[_0x2f55f4(0x79c)]=function(_0x3b8061=null){var _0x23361b=_0x2f55f4;if(!_0x1b0378[_0x23361b(0x9f3)])return;_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xada)]&&(clearInterval(_0x1b0378['whipOut']['bitrateTimeout']),_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xada)]=null);if(_0x3b8061===null){if(_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x1a8)]===![])return;_0x3b8061=_0x1b0378['whipOut']['savedBitrate'];}_0x3b8061=parseInt(_0x3b8061);if(_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xb11)]&&_0x3b8061>_0x1b0378['whipOut'][_0x23361b(0xb11)])_0x3b8061=_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xb11)];else _0x1b0378[_0x23361b(0x9f3)]['setBitrate']===![]&&(_0x3b8061<0x0&&(_0x1b0378[_0x23361b(0x6ee)]?_0x3b8061=_0x1b0378[_0x23361b(0x6ee)]:_0x3b8061=0x9c4));_0x1b0378[_0x23361b(0x860)]&&(_0x3b8061>_0x1b0378[_0x23361b(0x860)]&&(_0x3b8061=_0x1b0378[_0x23361b(0x860)]));_0x1b0378['whipOut'][_0x23361b(0x1a8)]=_0x3b8061;_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x2f6)]!==![]&&(_0x1b0378[_0x23361b(0x9f3)]['obsState'][_0x23361b(0xb43)]===![]&&(_0x3b8061>_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x2f6)]&&(_0x1b0378[_0x23361b(0x9f3)]['savedBitrate']=_0x3b8061,_0x3b8061=parseInt(_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x2f6)])||0x0)));if(_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x6b2)]!==null){if(_0x1b0378[_0x23361b(0x9f3)]['maxBandwidth']<_0x3b8061)_0x3b8061=_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x6b2)],_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x36c)][_0x23361b(0x47d)]=_0x3b8061,warnlog(_0x23361b(0x5ce)+_0x3b8061+_0x23361b(0x38b));else _0x1b0378['whipOut'][_0x23361b(0x36c)]&&(_0x1b0378['whipOut']['stats'][_0x23361b(0x47d)]=![]);}else _0x23361b(0x47d)in _0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x36c)]&&(_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x36c)]['max_bandwidth_capped_kbps']=![]);if(_0x3b8061===0x0){var _0x55429f=Date[_0x23361b(0x56b)]()-_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xaf7)];_0x55429f<_0x1b0378[_0x23361b(0x941)]&&(_0x3b8061=_0x1b0378['preloadbitrate'],log(_0x23361b(0x2de)+(Date[_0x23361b(0x56b)]()-_0x1b0378[_0x23361b(0x9f3)]['startTime'])),_0x1b0378['whipOut'][_0x23361b(0xada)]=setTimeout(function(){var _0x4d1533=_0x23361b;try{warnlog('stopping\x20some\x20preload\x20bitrate\x20'+(Date[_0x4d1533(0x56b)]()-_0x1b0378['whipOut'][_0x4d1533(0xaf7)])),_0x1b0378[_0x4d1533(0x79c)](null);}catch(_0x5f40a6){}},_0x1b0378[_0x23361b(0x941)]-_0x55429f+0x5));}try{if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd){log(_0x23361b(0x352));var _0x4d506f=_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0x54b)]()[_0x23361b(0x5c7)](function(_0x43458f){var _0x17777a=_0x23361b;return _0x43458f[_0x17777a(0x29d)]&&_0x43458f['track'][_0x17777a(0x759)]=='video';});if(!_0x4d506f){warnlog(_0x23361b(0x5b3));return;}var _0x28ede7={};if(_0x3b8061<0x0)_0x28ede7[_0x23361b(0x76d)]=!![],_0x3b8061=0x9c4,_0x1b0378['bitrate']&&(_0x3b8061=_0x1b0378[_0x23361b(0x85a)]),_0x1b0378[_0x23361b(0x860)]&&(_0x3b8061>_0x1b0378[_0x23361b(0x860)]&&(_0x3b8061=_0x1b0378['maxvideobitrate'])),_0x28ede7[_0x23361b(0x1ff)]=_0x3b8061*0x400;else _0x3b8061===0x0?_0x28ede7[_0x23361b(0x76d)]=![]:(_0x28ede7[_0x23361b(0x76d)]=!![],_0x28ede7[_0x23361b(0x1ff)]=_0x3b8061*0x400);setEncodings(_0x4d506f,_0x28ede7,function(_0x305fd0){var _0xbd67b9=_0x23361b;pokeIframeAPI('set-meshcast-video-bitrate',_0x305fd0),log(_0xbd67b9(0x492)+_0x305fd0);},_0x3b8061);return;}else{if(_0x23361b(0x282)in window&&_0x23361b(0x873)in window[_0x23361b(0x282)][_0x23361b(0x29b)]){var _0x4d506f=_0x1b0378['whipOut']['getSenders']()[_0x23361b(0x5c7)](function(_0x52358c){var _0x54ac0c=_0x23361b;return _0x52358c[_0x54ac0c(0x29d)]&&_0x52358c[_0x54ac0c(0x29d)][_0x54ac0c(0x759)]==_0x54ac0c(0xace);});if(!_0x4d506f){log(_0x23361b(0x5b3));return;}var _0x28ede7={};if(_0x3b8061<0x0)_0x28ede7['active']==![]&&(_0x28ede7[_0x23361b(0x76d)]=!![]),_0x28ede7[_0x23361b(0x1ff)]=null;else _0x3b8061===0x0?(_0x28ede7[_0x23361b(0x76d)]=![],Firefox&&(_0x28ede7['maxBitrate']=0x1)):(_0x28ede7['active']=!![],_0x28ede7[_0x23361b(0x1ff)]=_0x3b8061*0x400);iPad||iOS||Firefox?_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xa2c)]?(clearInterval(_0x1b0378['whipOut'][_0x23361b(0xa2c)]),_0x1b0378[_0x23361b(0x9f3)][_0x23361b(0xa2c)]=setTimeout(function(){var _0x46c7c4=_0x23361b;log(_0x46c7c4(0x478)+_0x3b8061),_0x1b0378[_0x46c7c4(0x9f3)]['bitrateTimeoutFirefox']=![],_0x1b0378[_0x46c7c4(0x79c)](null);},0x1f4)):(_0x1b0378['whipOut']['bitrateTimeoutFirefox']=setTimeout(function(){var _0x3887e4=_0x23361b;_0x1b0378[_0x3887e4(0x9f3)][_0x3887e4(0xa2c)]=![];},0x1f4),setEncodings(_0x4d506f,_0x28ede7,function(_0x16821a){var _0x4ac5b9=_0x23361b;log(_0x4ac5b9(0x7cf)+_0x16821a),pokeIframeAPI(_0x4ac5b9(0x88e),_0x16821a);},_0x3b8061)):setEncodings(_0x4d506f,_0x28ede7,function(_0xc9e0d5){var _0x4d82ba=_0x23361b;log(_0x4d82ba(0x15b)+_0xc9e0d5),pokeIframeAPI(_0x4d82ba(0x88e),_0xc9e0d5);},_0x3b8061);return;}else warnlog('BROWER\x20DID\x20NOT\x20SUPPORT\x20LIMIT\x20BITRATE');}}catch(_0x528d00){errorlog(_0x528d00);}},_0x1b0378[_0x2f55f4(0x151)]=function(_0x272510,_0x4d8982){var _0xb3fb43=_0x2f55f4;_0x4d8982===![]?(_0x1b0378[_0xb3fb43(0x71c)][_0x272510][_0xb3fb43(0xb11)]=![],_0x1b0378[_0xb3fb43(0x3a5)](_0x272510,-0x1)):(_0x4d8982=parseInt(_0x4d8982)||-0x1,_0x4d8982>=0x0&&(_0x1b0378['pcs'][_0x272510][_0xb3fb43(0xb11)]=_0x4d8982,_0x1b0378['limitBitrate'](_0x272510,_0x4d8982)));},_0x1b0378[_0x2f55f4(0xa65)]=function(_0x315c06,_0x4e1340){var _0x1be368=_0x2f55f4;_0x4e1340===![]?(_0x1b0378['pcs'][_0x315c06][_0x1be368(0xa26)]=![],_0x1b0378['limitAudioBitrate'](_0x315c06,-0x1)):(_0x4e1340=parseInt(_0x4e1340)||-0x1,_0x4e1340>=0x0&&(_0x1b0378[_0x1be368(0x71c)][_0x315c06][_0x1be368(0xa26)]=_0x4e1340,_0x1b0378[_0x1be368(0x7fd)](_0x315c06,_0x4e1340)));},_0x1b0378[_0x2f55f4(0x3a5)]=function(_0x29b55b,_0x12fb77=null,_0x377cf2=![]){var _0x2edf41=_0x2f55f4;log(_0x2edf41(0x25d)+_0x12fb77);if(!(_0x29b55b in _0x1b0378['pcs']))return;_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xada)]&&(clearInterval(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xada)]),_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xada)]=null);var _0x3a63ec=!![];if(_0x12fb77===null){if(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x1a8)]===![]){if(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x6b2)]===null)return;else _0x12fb77=_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0x6b2)],_0x3a63ec=![];}else _0x12fb77=_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x1a8)];}_0x12fb77=parseInt(_0x12fb77);if(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xb11)]&&_0x12fb77>_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xb11)])_0x12fb77=_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xb11)];else _0x12fb77<0x0&&(_0x12fb77=_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xb11)]||_0x1b0378[_0x2edf41(0x6ee)]||0x9c4);let _0x21f4ab=_0x1b0378[_0x2edf41(0x860)];_0x1b0378[_0x2edf41(0x71c)][_0x29b55b]['guest']==!![]&&(_0x21f4ab!==![]?_0x1b0378[_0x2edf41(0x4e8)]!==![]&&(_0x1b0378[_0x2edf41(0x4e8)]<_0x21f4ab&&(_0x21f4ab=_0x1b0378[_0x2edf41(0x4e8)])):_0x21f4ab=_0x1b0378['roombitrate']);_0x21f4ab&&(_0x12fb77>_0x21f4ab&&(_0x12fb77=_0x21f4ab));_0x3a63ec&&!_0x377cf2&&(log(_0x2edf41(0xa9e)+_0x12fb77),_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x1a8)]=_0x12fb77);_0x1b0378['pcs'][_0x29b55b]['optimizedBitrate']!==![]&&(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x19e)][_0x2edf41(0xb43)]===![]&&(_0x12fb77>_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x2f6)]&&(_0x3a63ec&&(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x1a8)]=_0x12fb77),_0x12fb77=parseInt(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b]['optimizedBitrate'])||0x0)));if(_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0x6b2)]!==null){if(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x6b2)]<_0x12fb77)_0x12fb77=_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x6b2)],_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x36c)][_0x2edf41(0x47d)]=_0x12fb77,warnlog(_0x2edf41(0x5ce)+_0x12fb77+_0x2edf41(0x38b));else _0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x6b2)]===_0x12fb77&&!_0x3a63ec?(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x36c)][_0x2edf41(0x47d)]=_0x12fb77,warnlog('Max\x20bandwidth\x20controlling\x20bitrate:\x20'+_0x12fb77+_0x2edf41(0x38b))):(warnlog(_0x2edf41(0x2d4)+_0x12fb77+_0x2edf41(0x38b)),_0x1b0378[_0x2edf41(0x71c)][_0x29b55b]['stats'][_0x2edf41(0x47d)]=![]);}else _0x2edf41(0x47d)in _0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x36c)]&&(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x36c)]['max_bandwidth_capped_kbps']=![]);_0x377cf2===![]&&(_0x1b0378[_0x2edf41(0x2f2)]&&(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x9f8)]=_0x12fb77,_0x12fb77=_0x1b0378[_0x2edf41(0xa51)](_0x12fb77,_0x29b55b)));if(_0x12fb77===0x0){var _0x3f9330=Date[_0x2edf41(0x56b)]()-_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xaf7)];_0x3f9330<_0x1b0378[_0x2edf41(0x941)]&&(_0x12fb77=_0x1b0378[_0x2edf41(0x44d)],log(_0x2edf41(0x2de)+(Date[_0x2edf41(0x56b)]()-_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0xaf7)])),_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0xada)]=setTimeout(function(_0x48ebc2){var _0x2b1161=_0x2edf41;try{warnlog(_0x2b1161(0x4e7)+(Date[_0x2b1161(0x56b)]()-_0x1b0378[_0x2b1161(0x71c)][_0x48ebc2][_0x2b1161(0xaf7)])),_0x1b0378[_0x2b1161(0x3a5)](_0x48ebc2,null);}catch(_0x2979a6){}},_0x1b0378['rampUpTime']-_0x3f9330+0x5,_0x29b55b));}try{if((iOS||iPad)&&SafariVersion&&SafariVersion<=0xd){log('iOS\x20devices\x20do\x20not\x20support\x20dynamic\x20bitrates\x20correctly;\x20skipping');if(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xac6)]==!![]&&_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0x964)]==![])return;var _0x17f796=getSenders2(_0x29b55b)[_0x2edf41(0x5c7)](function(_0x2fc859){var _0x490ca0=_0x2edf41;return _0x2fc859[_0x490ca0(0x29d)]&&_0x2fc859[_0x490ca0(0x29d)][_0x490ca0(0x759)]=='video';});if(!_0x17f796){log('can\x27t\x20change\x20bitrate;\x20no\x20video\x20sender\x20found');return;}var _0x26a819={};_0x12fb77===0x0?_0x26a819[_0x2edf41(0x76d)]=![]:(_0x26a819[_0x2edf41(0x76d)]=!![],_0x26a819['maxBitrate']=_0x12fb77*0x400);setEncodings(_0x17f796,_0x26a819,function(_0x2eb0b8){var _0x4822d1=_0x2edf41;pokeIframeAPI('setVideoBitrate',_0x2eb0b8[0x0],_0x2eb0b8[0x1]),pokeIframeAPI(_0x4822d1(0x4cd),_0x2eb0b8[0x0],_0x2eb0b8[0x1]),log(_0x4822d1(0x5ae)+_0x2eb0b8[0x0]);},[_0x12fb77,_0x29b55b]);return;}else{if('RTCRtpSender'in window&&_0x2edf41(0x873)in window[_0x2edf41(0x282)][_0x2edf41(0x29b)]){var _0x17f796=getSenders2(_0x29b55b)[_0x2edf41(0x5c7)](function(_0x2d3283){var _0x4b8d87=_0x2edf41;return _0x2d3283[_0x4b8d87(0x29d)]&&_0x2d3283['track'][_0x4b8d87(0x759)]==_0x4b8d87(0xace);});if(!_0x17f796){log(_0x2edf41(0x5b3));return;}var _0x26a819={};_0x12fb77===0x0?(_0x26a819['active']=![],Firefox&&(_0x26a819['maxBitrate']=0x1,_0x26a819[_0x2edf41(0x445)]=0x3e8)):(_0x26a819['active']=!![],_0x26a819['maxBitrate']=_0x12fb77*0x400);if(_0x12fb77!==0x0){var _0xd252b9=_0x1b0378[_0x2edf41(0x86d)](_0x29b55b,_0x12fb77);if(_0xd252b9<=0x0||_0xd252b9==0x64){var _0x4d6197=getChromiumVersion();_0x4d6197>0x50?_0x26a819[_0x2edf41(0x445)]=null:_0x26a819[_0x2edf41(0x445)]=0x1;}else _0x26a819[_0x2edf41(0x445)]=0x64/_0xd252b9;iPad||iOS||Firefox?_0x1b0378['pcs'][_0x29b55b]['bitrateTimeoutFirefox']?(clearInterval(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b]['bitrateTimeoutFirefox']),_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0xa2c)]=setTimeout(function(_0x2e6f17,_0x2ff383){var _0x141de2=_0x2edf41;log(_0x141de2(0x478)+_0x12fb77),_0x1b0378[_0x141de2(0x71c)][_0x2e6f17][_0x141de2(0xa2c)]=![],_0x1b0378[_0x141de2(0x3a5)](_0x2e6f17,null,_0x2ff383);},0x1f4,_0x29b55b,_0x377cf2)):(_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0xa2c)]=setTimeout(function(_0x956da8){var _0x196181=_0x2edf41;_0x1b0378[_0x196181(0x71c)][_0x956da8][_0x196181(0xa2c)]=![];},0x1f4,_0x29b55b),setEncodings(_0x17f796,_0x26a819,function(_0x5f16e1){var _0x5cd37e=_0x2edf41;log(_0x5cd37e(0x94b)+_0x5f16e1[0x0]),_0x1b0378[_0x5cd37e(0x71c)][_0x5f16e1[0x1]][_0x5cd37e(0x36c)][_0x5cd37e(0xa34)]=parseInt(_0x5f16e1[0x2])+'%',pokeIframeAPI('setVideoBitrate',_0x5f16e1[0x0],_0x5f16e1[0x1]),pokeIframeAPI(_0x5cd37e(0x7c8),_0x5f16e1[0x2],_0x5f16e1[0x1]),pokeIframeAPI(_0x5cd37e(0x4cd),_0x5f16e1[0x0],_0x5f16e1[0x1]),pokeIframeAPI(_0x5cd37e(0x982),_0x5f16e1[0x2],_0x5f16e1[0x1]);},[_0x12fb77,_0x29b55b,_0xd252b9])):(warnlog(_0x26a819),setEncodings(_0x17f796,_0x26a819,function(_0x4e1301){var _0x1320e9=_0x2edf41;log(_0x1320e9(0xaee)+_0x4e1301[0x0]),_0x1b0378[_0x1320e9(0x71c)][_0x4e1301[0x1]][_0x1320e9(0x36c)][_0x1320e9(0xa34)]=parseInt(_0x4e1301[0x2])+'%',pokeIframeAPI(_0x1320e9(0x908),_0x4e1301[0x0],_0x4e1301[0x1]),pokeIframeAPI('setVideoScale',_0x4e1301[0x2],_0x4e1301[0x1]),pokeIframeAPI(_0x1320e9(0x4cd),_0x4e1301[0x0],_0x4e1301[0x1]),pokeIframeAPI(_0x1320e9(0x982),_0x4e1301[0x2],_0x4e1301[0x1]);},[_0x12fb77,_0x29b55b,_0xd252b9]));}else iPad||iOS||Firefox?_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xa2c)]?(clearInterval(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xa2c)]),_0x1b0378['pcs'][_0x29b55b][_0x2edf41(0xa2c)]=setTimeout(function(_0x46e941,_0x3a47fd){var _0x45372=_0x2edf41;log(_0x45372(0x478)+_0x12fb77),_0x1b0378[_0x45372(0x71c)][_0x46e941]['bitrateTimeoutFirefox']=![],_0x1b0378['limitBitrate'](_0x46e941,null,_0x3a47fd);},0x1f4,_0x29b55b,_0x377cf2)):(_0x1b0378[_0x2edf41(0x71c)][_0x29b55b][_0x2edf41(0xa2c)]=setTimeout(function(_0x32e6b1){var _0xa1238=_0x2edf41;_0x1b0378[_0xa1238(0x71c)][_0x32e6b1][_0xa1238(0xa2c)]=![];},0x1f4,_0x29b55b),setEncodings(_0x17f796,_0x26a819,function(_0x266cb8){var _0x5a9274=_0x2edf41;log(_0x5a9274(0x26f)+_0x266cb8[0x0]),pokeIframeAPI(_0x5a9274(0x908),_0x266cb8[0x0],_0x266cb8[0x1]),pokeIframeAPI(_0x5a9274(0x4cd),_0x266cb8[0x0],_0x266cb8[0x1]);},[_0x12fb77,_0x29b55b])):setEncodings(_0x17f796,_0x26a819,function(_0x4a8edd){var _0x58f166=_0x2edf41;log(_0x58f166(0xb3e)+_0x4a8edd[0x0]),pokeIframeAPI(_0x58f166(0x908),_0x4a8edd[0x0],_0x4a8edd[0x1]),pokeIframeAPI(_0x58f166(0x4cd),_0x4a8edd[0x0],_0x4a8edd[0x1]);},[_0x12fb77,_0x29b55b]);}else warnlog('BROWER\x20DID\x20NOT\x20SUPPORT\x20LIMIT\x20BITRATE');}}catch(_0x4037a5){errorlog(_0x4037a5);}};function _0x48dfd7(_0x3c0494,_0x3ae513,_0x502124){var _0x3868eb=_0x2f55f4;if(_0x1b0378[_0x3868eb(0x362)])return _0x3ae513;warnlog('getOptimizedScale:\x20'+_0x3ae513+_0x3868eb(0x6d4)+_0x502124);if(_0x502124<0x0)_0x1b0378['pcs'][_0x3c0494]['scaleDueToBitrate']=0x64;else{if(_0x502124>=0x259)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64;else{if('realUUID'in _0x1b0378[_0x3868eb(0x71c)][_0x3c0494])_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64;else{if(_0x1b0378['screenShareState'])_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64;else{var _0x5073b7=getNativeOutputResolution();if(_0x5073b7)try{_0x5073b7=_0x5073b7[_0x3868eb(0x57a)]*_0x5073b7[_0x3868eb(0x7bd)],_0x5073b7=Math[_0x3868eb(0x708)](_0x5073b7,0.5);}catch(_0x12cabd){_0x5073b7=![];}warnlog('dimension:\x20'+_0x5073b7);if(_0x502124>=0x15e){if(_0x5073b7&&_0x5073b7<=0x1e0)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64;else{if(_0x1b0378['mobile']){if(_0x5073b7&&_0x5073b7>=0x5a0)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x3;else _0x1b0378[_0x3868eb(0x35a)]?_0x5073b7&&_0x5073b7>=0x3c0?_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x2:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64/0x2;}else{if(_0x5073b7&&_0x5073b7>=0x5a0)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/2.5;else _0x5073b7&&_0x5073b7>=0x3c0?_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x2:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64;}}}else{if(_0x502124>=0xc9){if(_0x5073b7&&_0x5073b7<0x1e0)_0x1b0378['pcs'][_0x3c0494]['scaleDueToBitrate']=0x64;else{if(_0x1b0378[_0x3868eb(0x53f)]){if(_0x5073b7&&_0x5073b7>=0x5a0)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x4;else _0x1b0378[_0x3868eb(0x35a)]?_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x2:_0x1b0378['pcs'][_0x3c0494][_0x3868eb(0x7e1)]=0x64/2.5;}else _0x5073b7&&_0x5073b7>=0x5a0?_0x1b0378['pcs'][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x3:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64/0x2;}}else{if(_0x5073b7&&_0x5073b7<=0xf0)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64;else{if(_0x502124>=0x51){if(_0x1b0378['mobile']){if(_0x5073b7&&_0x5073b7>=0x5a0)_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64/0x6;else _0x1b0378['flagship']?_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x3:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x4;}else _0x5073b7&&_0x5073b7>=0x5a0?_0x1b0378['pcs'][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x4:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64/0x3;}else{if(_0x1b0378[_0x3868eb(0x53f)]){if(_0x5073b7&&_0x5073b7>=0x3c0)_0x1b0378['pcs'][_0x3c0494]['scaleDueToBitrate']=0x64/0x6;else _0x1b0378[_0x3868eb(0x35a)]?_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x4:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']=0x64/0x5;}else _0x5073b7&&_0x5073b7>=0x5a0?_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x5:_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]=0x64/0x4;}}}}}}}}return _0x1b0378[_0x3868eb(0x71c)][_0x3c0494]['scaleDueToBitrate']<_0x3ae513&&(_0x3ae513=_0x1b0378[_0x3868eb(0x71c)][_0x3c0494][_0x3868eb(0x7e1)]),_0x3ae513;}function _0x5cab5a(_0x4acbcb,_0x15836c=0x2710){var _0x48db2b=_0x2f55f4;_0x15836c=parseInt(_0x15836c);if(_0x1b0378[_0x48db2b(0x340)])_0x15836c+=_0x1b0378[_0x48db2b(0x340)];else{if(_0x1b0378[_0x48db2b(0x91b)]&&_0x1b0378[_0x48db2b(0x1b2)]==0x5)_0x15836c+=0x20;else _0x1b0378[_0x48db2b(0x1b2)]&&_0x1b0378[_0x48db2b(0x1b2)]!=0x3?_0x1b0378[_0x48db2b(0x7df)]&&_0x1b0378[_0x48db2b(0x7df)]==_0x48db2b(0xa09)?_0x15836c+=_0x1b0378[_0x48db2b(0x73e)]*0x2:_0x15836c+=_0x1b0378['audiobitratePRO']:_0x15836c+=0x20;}return log('actual\x20bitrate:'+_0x15836c),_0x15836c<0x1&&(_0x15836c=0x1),_0x4acbcb=CodecsHandler[_0x48db2b(0x4c6)](_0x4acbcb,{'min':parseInt(_0x15836c/0xa)||0x1,'max':_0x15836c||0x1},_0x1b0378[_0x48db2b(0x8a4)]),_0x4acbcb;}_0x1b0378[_0x2f55f4(0x6f2)]=function(_0x30ffec,_0x124ecb){var _0x483f09=_0x2f55f4;log(_0x30ffec),!_0x1b0378['mykey'][_0x483f09(0x851)]&&warnlog(_0x483f09(0x2a0)),window[_0x483f09(0x3a0)][_0x483f09(0x329)][_0x483f09(0x368)]({'name':'RSASSA-PKCS1-v1_5'},_0x1b0378[_0x483f09(0x3b4)]['privateKey'],_0x1b0378[_0x483f09(0x4a7)][_0x483f09(0x7ad)](_0x30ffec))[_0x483f09(0xb39)](function(_0x270cc6){var _0x151328=_0x483f09;_0x270cc6=new Uint8Array(_0x270cc6),_0x270cc6=_0x270cc6['reduce']((_0x4e0d75,_0x2a5832)=>_0x4e0d75+_0x2a5832[_0x151328(0x6f5)](0x10)['padStart'](0x2,'0'),''),_0x124ecb(_0x30ffec,_0x270cc6),log(JSON[_0x151328(0xaab)](_0x270cc6));})[_0x483f09(0x872)](errorlog);},_0x1b0378[_0x2f55f4(0x944)]=function(_0x1eb87e,_0x215dfb){var _0x4d796c=_0x2f55f4;_0x1eb87e['signature']=new Uint8Array(_0x1eb87e[_0x4d796c(0x8b8)][_0x4d796c(0x385)](/.{1,2}/g)[_0x4d796c(0x8ef)](_0x1234ed=>parseInt(_0x1234ed,0x10)));if(_0x1b0378['keys'][_0x215dfb][_0x4d796c(0x6e3)])return window[_0x4d796c(0x3a0)][_0x4d796c(0x329)][_0x4d796c(0xaa3)]({'name':_0x4d796c(0x8bb)},_0x1b0378['keys'][_0x215dfb][_0x4d796c(0x6e3)],_0x1eb87e['signature'],_0x1b0378[_0x4d796c(0x4a7)][_0x4d796c(0x7ad)](_0x1eb87e['data']))['then'](function(_0x590ff9){return _0x590ff9;})[_0x4d796c(0x872)](function(_0x1cf07a){return errorlog(_0x1cf07a),![];});},_0x1b0378['desaltStreamID']=function(_0x2aa463){var _0xc9dd99=_0x2f55f4;if(_0x1b0378[_0xc9dd99(0x625)])return _0x1b0378[_0xc9dd99(0x802)]!==![]?(_0x2aa463=_0x2aa463[_0xc9dd99(0x19a)](0x0,-0x1*_0x1b0378[_0xc9dd99(0x802)][_0xc9dd99(0x5a7)]),pokeIframeAPI('stream-id-detected',_0x2aa463),_0x2aa463):generateHash(_0x1b0378[_0xc9dd99(0x625)]+_0x1b0378[_0xc9dd99(0x491)],0x6)[_0xc9dd99(0xb39)](function(_0x5665a5){var _0x1488a5=_0xc9dd99;return _0x1b0378['hash']=_0x5665a5,_0x2aa463=_0x2aa463['slice'](0x0,-0x1*_0x1b0378[_0x1488a5(0x802)][_0x1488a5(0x5a7)]),pokeIframeAPI(_0x1488a5(0x198),_0x2aa463),_0x2aa463;})['catch'](errorlog);return pokeIframeAPI(_0xc9dd99(0x198),_0x2aa463),_0x2aa463;},_0x1b0378[_0x2f55f4(0x2fe)]=function(){var _0x4e9a3b=_0x2f55f4;if(_0x1b0378[_0x4e9a3b(0x937)])return;clearTimeout(_0x1b0378[_0x4e9a3b(0x5b8)]);if(!_0x1b0378['ws']||_0x1b0378['ws'][_0x4e9a3b(0x240)]!==0x1)return;_0x1b0378[_0x4e9a3b(0x5b8)]=setTimeout(function(){var _0x1b8a65=_0x4e9a3b;log(_0x1b8a65(0x741));var _0x5d11bd={};_0x5d11bd[_0x1b8a65(0x169)]=_0x1b8a65(0x2fe),_0x1b0378[_0x1b8a65(0x4a5)](_0x5d11bd);},0xbb8);},_0x1b0378[_0x2f55f4(0x797)]=async function(_0x162e51){var _0x2e9b61=_0x2f55f4;await _0x1b0378[_0x2e9b61(0x9df)]();if(_0x162e51['length']>0x0){if(_0x162e51===_0x1b0378[_0x2e9b61(0x791)]){warnlog(_0x2e9b61(0x3d5));return;}var _0x261b3b={};_0x261b3b['request']=_0x2e9b61(0x8da),_0x261b3b['streamID']=_0x162e51,_0x1b0378[_0x2e9b61(0x4a5)](_0x261b3b),_0x1b0378[_0x2e9b61(0x9cc)][_0x162e51]=!![],pokeIframeAPI(_0x2e9b61(0x516),_0x162e51);}else log(_0x2e9b61(0x94c));},_0x1b0378[_0x2f55f4(0x637)]=async function _0x23e8d2(_0xd6f879){var _0x47975a=_0x2f55f4;_0x1b0378[_0x47975a(0x9d9)]===![]&&(_0x1b0378[_0x47975a(0x9d9)]=!![]);await _0x1b0378['connect']();var _0x21d902={};_0x21d902[_0x47975a(0x169)]=_0x47975a(0x2f7);_0x1b0378[_0x47975a(0x91b)]&&!_0x1b0378[_0x47975a(0x92c)]&&(_0x21d902[_0x47975a(0x2e9)]=!![]);_0x1b0378[_0x47975a(0x937)]&&_0x1b0378[_0x47975a(0x333)]===![]&&(_0x21d902[_0x47975a(0x791)]=_0x1b0378[_0x47975a(0x791)]);var _0x4ce6f8='';return _0x1b0378[_0x47975a(0x9a1)]&&(_0x4ce6f8=_0x1b0378[_0x47975a(0x9a1)]),_0x1b0378[_0x47975a(0x625)]?_0x1b0378[_0x47975a(0x802)]?generateHash(_0xd6f879+_0x1b0378[_0x47975a(0x625)]+_0x1b0378[_0x47975a(0x491)]+_0x4ce6f8,0x10)[_0x47975a(0xb39)](function(_0x2191a8){var _0x207d2e=_0x47975a;return _0x1b0378[_0x207d2e(0x937)]&&(_0x1b0378['roomenc']=_0x2191a8),_0x21d902[_0x207d2e(0x85b)]=_0x2191a8,_0x1b0378[_0x207d2e(0x4a5)](_0x21d902),_0x1b0378[_0x207d2e(0x6dd)]=_0x5d8a58(),log('deferring\x20with\x20a\x20promise;\x20hashed\x20room'),pokeIframeAPI(_0x207d2e(0x454),_0xd6f879),_0x1b0378[_0x207d2e(0x6dd)];})[_0x47975a(0x872)](errorlog):generateHash(_0x1b0378[_0x47975a(0x625)]+_0x1b0378[_0x47975a(0x491)],0x6)['then'](function(_0x35d951){var _0x345eaa=_0x47975a;return _0x1b0378[_0x345eaa(0x802)]=_0x35d951,log(_0x345eaa(0x4f1)+_0x35d951),log(_0x345eaa(0x2c2)),_0x1b0378['joinRoom'](_0xd6f879);})[_0x47975a(0x872)](errorlog):(_0x1b0378[_0x47975a(0x937)]&&(_0x1b0378['roomenc']=_0xd6f879),_0x21d902[_0x47975a(0x85b)]=_0xd6f879,_0x1b0378[_0x47975a(0x4a5)](_0x21d902),_0x1b0378[_0x47975a(0x6dd)]=_0x5d8a58(),log(_0x47975a(0x9d5)),pokeIframeAPI(_0x47975a(0x454),_0xd6f879),_0x1b0378['listPromise']);},_0x1b0378[_0x2f55f4(0x4a5)]=function(_0x2e0b5c,_0x23a967=![]){var _0x25feca=_0x2f55f4;_0x23a967&&(_0x2e0b5c[_0x25feca(0x7b3)]=_0x23a967);if(_0x1b0378['customWSS']){_0x1b0378[_0x25feca(0x7b3)]?_0x2e0b5c['from']=_0x1b0378[_0x25feca(0x7b3)]:(_0x1b0378[_0x25feca(0x7b3)]=_0x1b0378[_0x25feca(0x4b9)](0x14),_0x2e0b5c[_0x25feca(0x922)]=_0x1b0378[_0x25feca(0x7b3)]);if(_0x2e0b5c[_0x25feca(0x7b3)]&&_0x2e0b5c['from']===_0x2e0b5c[_0x25feca(0x7b3)])return;_0x1b0378[_0x25feca(0x91b)]&&(_0x2e0b5c['director']=!![]),!(_0x25feca(0x85b)in _0x2e0b5c)&&(_0x1b0378[_0x25feca(0x8f4)]&&(_0x2e0b5c['roomid']=_0x1b0378[_0x25feca(0x8f4)]));}clearTimeout(_0x1b0378[_0x25feca(0x5b8)]);try{if(_0x1b0378[_0x25feca(0x625)]){if(_0x2e0b5c[_0x25feca(0x791)]){if(_0x1b0378[_0x25feca(0x802)]!==![]){if(!_0x1b0378['ws']||typeof _0x1b0378['ws']!==_0x25feca(0x506)||_0x1b0378['ws'][_0x25feca(0x240)]!==0x1)log(_0x2e0b5c,_0x25feca(0x65d)),_0x1b0378['msg'][_0x25feca(0x285)](_0x2e0b5c);else{_0x2e0b5c[_0x25feca(0x791)]=_0x2e0b5c['streamID']['substring'](0x0,0x2c)+_0x1b0378[_0x25feca(0x802)][_0x25feca(0x7ec)](0x0,0x6);var _0x28047b=JSON['stringify'](_0x2e0b5c);if((_0x2e0b5c[_0x25feca(0x5c9)]||_0x2e0b5c['candidates'])&&_0x28047b[_0x25feca(0x5a7)]<0x88b8){}else{if(_0x28047b[_0x25feca(0x5a7)]>0x2710){errorlog(_0x25feca(0x8ad)),errorlog(_0x2e0b5c),errorlog(_0x28047b[_0x25feca(0x5a7)]);return;}}_0x1b0378['ws'][_0x25feca(0x8b0)](_0x28047b);}}else return generateHash(_0x1b0378[_0x25feca(0x625)]+_0x1b0378[_0x25feca(0x491)],0x6)[_0x25feca(0xb39)](function(_0x5ad7b1){var _0x2a369a=_0x25feca;_0x1b0378[_0x2a369a(0x802)]=_0x5ad7b1;if(typeof _0x1b0378['ws']!=='object'||_0x1b0378['ws']['readyState']!==0x1)log(_0x2e0b5c,_0x2a369a(0x65d)),_0x1b0378['msg']['push'](_0x2e0b5c);else{_0x2e0b5c['streamID']=_0x2e0b5c[_0x2a369a(0x791)][_0x2a369a(0x7ec)](0x0,0x2c)+_0x1b0378['hash'][_0x2a369a(0x7ec)](0x0,0x6);var _0x3c5f4a=JSON['stringify'](_0x2e0b5c);if((_0x2e0b5c[_0x2a369a(0x5c9)]||_0x2e0b5c['candidates'])&&_0x3c5f4a[_0x2a369a(0x5a7)]<0x88b8){}else{if(_0x3c5f4a[_0x2a369a(0x5a7)]>0x2710){errorlog('msg\x20size\x20error');return;}}_0x1b0378['ws'][_0x2a369a(0x8b0)](_0x3c5f4a);}})[_0x25feca(0x872)](errorlog);}else{if(!_0x1b0378['ws']||typeof _0x1b0378['ws']!=='object'||_0x1b0378['ws'][_0x25feca(0x240)]!==0x1)log(_0x2e0b5c,_0x25feca(0x65d)),_0x1b0378[_0x25feca(0x1a7)][_0x25feca(0x285)](_0x2e0b5c);else{var _0x28047b=JSON['stringify'](_0x2e0b5c);if((_0x2e0b5c[_0x25feca(0x5c9)]||_0x2e0b5c[_0x25feca(0x88f)])&&_0x28047b['length']<0x88b8){}else{if(_0x28047b['length']>0x2710){errorlog(_0x25feca(0x8ad));return;}}_0x1b0378['ws'][_0x25feca(0x8b0)](_0x28047b);}}}else{if(typeof _0x1b0378['ws']!==_0x25feca(0x506)||_0x1b0378['ws'][_0x25feca(0x240)]!==0x1)warnlog(_0x25feca(0xa01)),_0x1b0378[_0x25feca(0x1a7)][_0x25feca(0x285)](_0x2e0b5c);else{var _0x28047b=JSON[_0x25feca(0xaab)](_0x2e0b5c);if(_0x28047b[_0x25feca(0x5a7)]>0x61a8){errorlog(_0x25feca(0x8ad));return;}_0x1b0378['ws']['send'](_0x28047b);}}}catch(_0xa012e5){errorlog(_0xa012e5);}},_0x1b0378['sendPeers']=function(_0x4b1b97,_0x1aff6b=![],_0x2221f7=![]){var _0x5860ac=_0x2f55f4;if(_0x1b0378[_0x5860ac(0x4ca)]){log('requesting\x20via\x20relaywss'),_0x4b1b97[_0x5860ac(0x315)]=++_0x1b0378['mid'];if(!_0x1aff6b){}else _0x1b0378[_0x5860ac(0x7cc)][_0x1aff6b]&&_0x5860ac(0x42b)in _0x1b0378[_0x5860ac(0x7cc)][_0x1aff6b]?_0x1b0378[_0x5860ac(0x4a5)]({..._0x4b1b97,'altUUID':!![]},_0x1b0378[_0x5860ac(0x7cc)][_0x1aff6b][_0x5860ac(0x42b)]):_0x1b0378[_0x5860ac(0x4a5)]({..._0x4b1b97},_0x1aff6b);}var _0x2e46f5=[],_0x22360f=JSON[_0x5860ac(0xaab)](_0x4b1b97);for(var _0x4752d6 in _0x1b0378[_0x5860ac(0x71c)]){if(_0x2221f7&&_0x2221f7===_0x4752d6)continue;if(_0x1aff6b&&_0x1aff6b!==_0x4752d6)continue;_0x1b0378[_0x5860ac(0x4ca)]&&!_0x1aff6b&&_0x1b0378[_0x5860ac(0x4a5)]({..._0x4b1b97},_0x4752d6);try{_0x1b0378[_0x5860ac(0x71c)][_0x4752d6][_0x5860ac(0x780)][_0x5860ac(0x8b0)](_0x22360f),_0x2e46f5[_0x5860ac(0x285)](_0x4752d6);}catch(_0x2fc229){_0x1b0378[_0x5860ac(0x71c)][_0x4752d6]['startTime']+_0x1b0378[_0x5860ac(0xb1f)][0x1]_0x29ed65&&(_0x29ed65=_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x697)],_0x2f20c4=_0x570080)),_0x1b0378['rpcs'][_0x570080][_0x40ed9a(0x753)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x753)][_0x40ed9a(0x697)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x570080]['iframeEle'][_0x40ed9a(0x697)]>_0x29ed65&&(_0x29ed65=_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x753)][_0x40ed9a(0x697)],_0x2f20c4=_0x570080)));}_0x2f20c4&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4]['mutedStateScene']=![],applyMuteState(_0x2f20c4),_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x601)]&&(_0x1b0378['rpcs'][_0x2f20c4]['videoElement'][_0x40ed9a(0xb48)]&&clearInterval(_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]),_0x1b0378['rpcs'][_0x2f20c4][_0x40ed9a(0x601)][_0x40ed9a(0x177)]=![],_0x1b0378[_0x40ed9a(0x265)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]=setTimeout(showControlBar[_0x40ed9a(0x1e0)](null,_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x601)]),0x3e8)),_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4]['videoElement'][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]=_0x40ed9a(0x99e),_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4]['videoElement'][_0x40ed9a(0x697)]=Date[_0x40ed9a(0x56b)](),_0x5ba0e3=!![])),_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4]['iframeEle']&&_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378['rpcs'][_0x2f20c4][_0x40ed9a(0x753)][_0x40ed9a(0x90b)]['display']=_0x40ed9a(0x99e),_0x1b0378[_0x40ed9a(0x7cc)][_0x2f20c4][_0x40ed9a(0x753)][_0x40ed9a(0x697)]=Date[_0x40ed9a(0x56b)](),_0x5ba0e3=!![]));}else{for(var _0x570080 in _0x1b0378['rpcs']){_0x570080!==_0x5d4f2a&&(_0x1b0378['rpcs'][_0x570080]['mutedStateScene']=!![],applyMuteState(_0x570080),_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x90b)]['display']!==_0x40ed9a(0x3ef)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]=_0x40ed9a(0x3ef),_0x5ba0e3=!![])),_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x753)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x570080]['iframeEle']['style'][_0x40ed9a(0x985)]!==_0x40ed9a(0x3ef)&&(_0x1b0378['rpcs'][_0x570080][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]='none',_0x5ba0e3=!![]));}_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x9a2)]=![],applyMuteState(_0x5d4f2a),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]?(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]&&clearInterval(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x177)]=![],_0x1b0378[_0x40ed9a(0x265)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]['controlTimer']=setTimeout(showControlBar['bind'](null,_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement']),0x3e8)),_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]['style'][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378['rpcs'][_0x5d4f2a]['videoElement'][_0x40ed9a(0x90b)]['display']=_0x40ed9a(0x99e),_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x697)]=Date[_0x40ed9a(0x56b)](),_0x5ba0e3=!![])):_0x283c19=![],_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]&&_0x1b0378['rpcs'][_0x5d4f2a]['iframeEle'][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]['style'][_0x40ed9a(0x985)]=_0x40ed9a(0x99e),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]['sceneType2']=Date['now'](),_0x5ba0e3=!![]);}}else{if(_0x1b0378['sceneType']==0x1){if(_0x12a4d1[_0x40ed9a(0x75b)]==0x0)_0x1b0378['rpcs'][_0x5d4f2a]['videoElement']&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x3ef)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]['style'][_0x40ed9a(0x985)]='none',_0x5ba0e3=!![])),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)]['display']&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x3ef)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)]['display']=_0x40ed9a(0x3ef),_0x5ba0e3=!![]);else{for(var _0x570080 in _0x1b0378[_0x40ed9a(0x7cc)]){_0x570080!==_0x5d4f2a&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x3ef)&&(_0x1b0378['rpcs'][_0x570080][_0x40ed9a(0x601)][_0x40ed9a(0x90b)]['display']=_0x40ed9a(0x3ef),_0x5ba0e3=!![])),_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x753)]&&_0x1b0378['rpcs'][_0x570080][_0x40ed9a(0x753)]['style'][_0x40ed9a(0x985)]&&_0x1b0378['rpcs'][_0x570080][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!=='none'&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x570080][_0x40ed9a(0x753)]['style']['display']=_0x40ed9a(0x3ef),_0x5ba0e3=!![]));}_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]?(_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]&&clearInterval(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]['controlTimer']),_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x177)]=![],_0x1b0378['showControls']&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]=setTimeout(showControlBar[_0x40ed9a(0x1e0)](null,_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement']),0x3e8)),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement'][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378['rpcs'][_0x5d4f2a]['videoElement']['style'][_0x40ed9a(0x985)]='block',_0x5ba0e3=!![])):_0x283c19=![],_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x753)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['iframeEle']['style'][_0x40ed9a(0x985)]!=='block'&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]['style']['display']='block',_0x5ba0e3=!![]);}}else _0x12a4d1[_0x40ed9a(0x75b)]==0x0?(_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x9a2)]=!![],applyMuteState(_0x5d4f2a),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement'][_0x40ed9a(0x90b)]['display']&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement']['style']['display']!==_0x40ed9a(0x3ef)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement'][_0x40ed9a(0x90b)]['display']=_0x40ed9a(0x3ef),_0x5ba0e3=!![])),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x3ef)&&(_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]='none',_0x5ba0e3=!![])):(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x9a2)]=![],applyMuteState(_0x5d4f2a),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement']?(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement'][_0x40ed9a(0xb48)]&&clearInterval(_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a]['videoElement'][_0x40ed9a(0x177)]=![],_0x1b0378[_0x40ed9a(0x265)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0xb48)]=setTimeout(showControlBar['bind'](null,_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)]),0x3e8)),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)]['style'][_0x40ed9a(0x985)]&&_0x1b0378['rpcs'][_0x5d4f2a]['videoElement'][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]=_0x40ed9a(0x99e),_0x5ba0e3=!![])):(warnlog(_0x40ed9a(0x6f4)),_0x283c19=![]),_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)]&&_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]&&_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x753)][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]!==_0x40ed9a(0x99e)&&(_0x1b0378['rpcs'][_0x5d4f2a]['iframeEle'][_0x40ed9a(0x90b)][_0x40ed9a(0x985)]=_0x40ed9a(0x99e),_0x5ba0e3=!![]));}}_0x1b0378['sceneSync'](_0x5d4f2a);}else _0x12a4d1[_0x40ed9a(0xae0)]==_0x40ed9a(0x96f)&&(log(parseInt(_0x12a4d1['value'])/0x64),_0x1b0378['rpcs'][_0x5d4f2a][_0x40ed9a(0x601)]&&(_0x1b0378[_0x40ed9a(0x7cc)][_0x5d4f2a][_0x40ed9a(0x601)][_0x40ed9a(0x96f)]=parseInt(_0x12a4d1[_0x40ed9a(0x75b)])/0x64,log(_0x40ed9a(0x2f5))));}}}}!_0x283c19&&!_0x4ff8fa&&(warnlog('Target\x20for\x20scene\x20not\x20found;\x20retrying\x20in\x203\x20seconds'),_0x1b0378[_0x40ed9a(0x272)][_0x12a4d1[_0x40ed9a(0xa69)]]&&clearTimeout(_0x1b0378[_0x40ed9a(0x272)][_0x12a4d1['target']]),_0x1b0378[_0x40ed9a(0x272)][_0x12a4d1['target']]=setTimeout(function(_0x3129de){var _0x1584c5=_0x40ed9a;log('retrying..'),_0x1b0378[_0x1584c5(0xa25)](_0x12a4d1,!![]);},0xbb8,_0x12a4d1['target'])),_0x5ba0e3&&updateMixer();}}else{if(_0x12a4d1[_0x40ed9a(0xae0)]==_0x40ed9a(0x59a)){}else{if(_0x12a4d1[_0x40ed9a(0xae0)]=='hangup'){}}}}else _0x12a4d1['action']===_0x40ed9a(0x33d)&&(warnlog('custom\x20layout\x20being\x20applied'),log(_0x12a4d1),_0x1b0378[_0x40ed9a(0x33d)]=_0x12a4d1[_0x40ed9a(0x75b)],pokeIframeAPI(_0x40ed9a(0x2e5),_0x1b0378[_0x40ed9a(0x33d)]),updateMixer());}},_0x1b0378[_0x2f55f4(0x2ce)]=function(){var _0x257ca0=_0x2f55f4;log(_0x257ca0(0x59d)),_0x1b0378[_0x257ca0(0x63e)]in _0x1b0378[_0x257ca0(0x71c)]&&(_0x1b0378[_0x257ca0(0x71c)][_0x1b0378[_0x257ca0(0x63e)]][_0x257ca0(0x36c)]&&_0x1b0378[_0x257ca0(0x71c)][_0x1b0378[_0x257ca0(0x63e)]][_0x257ca0(0x36c)][_0x257ca0(0x3fe)]&&(_0x1b0378[_0x257ca0(0x71c)][_0x1b0378[_0x257ca0(0x63e)]][_0x257ca0(0x36c)][_0x257ca0(0x3fe)][_0x257ca0(0x91b)]=!![])),_0x1b0378['directorUUID']in _0x1b0378[_0x257ca0(0x7cc)]&&(_0x1b0378['rpcs'][_0x1b0378['directorUUID']][_0x257ca0(0x36c)]&&_0x1b0378[_0x257ca0(0x7cc)][_0x1b0378['directorUUID']][_0x257ca0(0x36c)]['info']&&(_0x1b0378[_0x257ca0(0x7cc)][_0x1b0378[_0x257ca0(0x63e)]][_0x257ca0(0x36c)][_0x257ca0(0x3fe)]['director']=!![]),_0x1b0378[_0x257ca0(0x91b)]&&(getById(_0x257ca0(0x539)+_0x1b0378[_0x257ca0(0x63e)])[_0x257ca0(0xb06)][_0x257ca0(0x34e)](_0x257ca0(0x5e2)),_0x1b0378['rpcs'][_0x1b0378[_0x257ca0(0x63e)]][_0x257ca0(0x4a1)]===![]&&miniTranslate(getById('label_'+_0x1b0378[_0x257ca0(0x63e)]),_0x257ca0(0x412)))),_0x1b0378[_0x257ca0(0xad1)](),updateUserList(),pokeIframeAPI('new-main-director',_0x1b0378[_0x257ca0(0x63e)]);},_0x1b0378[_0x2f55f4(0x9df)]=async function _0x139fce(_0x58c533=![]){var _0x3f20af=_0x2f55f4;if(_0x1b0378[_0x3f20af(0x82c)]===!![]){log(_0x3f20af(0xa7f));return;}if(_0x1b0378['ws']!==null){log(_0x3f20af(0x444));return;}_0x1b0378[_0x3f20af(0x1c1)]==![]&&(_0x1b0378['proxy']!==![]?_0x1b0378[_0x3f20af(0x1c1)]=_0x3f20af(0x68f):_0x1b0378[_0x3f20af(0x1c1)]=_0x3f20af(0x25f));if(!RTCPeerConnection){console['error'](getTranslation(_0x3f20af(0x15f)));!_0x1b0378[_0x3f20af(0x379)]&&warnUser(getTranslation(_0x3f20af(0x15f)),![],![]);return;}_0x1b0378['ws']===null&&(_0x1b0378['ws']=![],await chooseBestTURN());if(_0x1b0378[_0x3f20af(0x937)]===![]){_0x1b0378[_0x3f20af(0x991)]=_0x1b0378[_0x3f20af(0x4b9)](0xc);for(var _0x3ad6f1 in _0x1b0378[_0x3f20af(0x7cc)]){warnlog('Checking\x20to\x20see\x20if\x20reconnectino\x20to\x20ws\x20lost\x20any\x20peers'),_0x1b0378[_0x3f20af(0x7cc)][_0x3ad6f1][_0x3f20af(0x71a)]===_0x3f20af(0xa21)&&(warnlog(_0x3f20af(0x469)),_0x1b0378['closeRPC'](_0x3ad6f1));}}_0x1b0378[_0x3f20af(0x6c9)]?(_0x1b0378['ws']={},_0x1b0378['ws']['close']=function(_0x244230){},_0x1b0378['ws'][_0x3f20af(0x240)]=0x1,_0x1b0378['ws']['send']=function(_0x22bcc3){var _0x21e675=_0x3f20af;parent[_0x21e675(0x512)]({'bypass':_0x22bcc3},_0x1b0378[_0x21e675(0x4aa)]);},setTimeout(function(){var _0x5e8124=_0x3f20af;_0x1b0378['ws'][_0x5e8124(0x799)]();},0xa)):_0x1b0378['ws']=new WebSocket(_0x1b0378[_0x3f20af(0x1c1)]),_0x58c533==![]&&(_0x1b0378['showTime']===!![]&&(_0x1b0378['showTime']=null,toggleClock()),_0x1b0378[_0x3f20af(0x9e5)]=setTimeout(function(){var _0x41611d=_0x3f20af;pokeIframeAPI(_0x41611d(0xa12),_0x41611d(0x9e5)),pokeIframeAPI(_0x41611d(0x48e),_0x41611d(0x9e5)),errorlog(_0x41611d(0x27c)+Math['max'](_0x1b0378[_0x41611d(0xb1f)][0x3],0x2710)+_0x41611d(0x9b0)),!_0x1b0378[_0x41611d(0x379)]&&(!_0x1b0378['studioSoftware']&&(_0x1b0378['warnUserTriggered']=!![],warnUser(getTranslation(_0x41611d(0x897)),Math[_0x41611d(0x1b8)](_0x1b0378[_0x41611d(0xb1f)][0x3],0x2710),![])));},Math[_0x3f20af(0x1b8)](_0x1b0378['reconnectSpeed'][0x3],0x2710))),_0x1b0378['ws'][_0x3f20af(0x799)]=function _0xb90dc4(){var _0x27d645=_0x3f20af;if(_0x1b0378[_0x27d645(0x5a1)])try{_0x1b0378[_0x27d645(0x4a5)]({'auth':_0x1b0378['auth']});}catch(_0x378d41){errorlog(_0x378d41);}_0x1b0378[_0x27d645(0x530)]&&closeModal();_0x1b0378['onceConnected']=!![],clearTimeout(_0x1b0378[_0x27d645(0x5b8)]),clearTimeout(_0x1b0378[_0x27d645(0x9e5)]),log(_0x27d645(0xa23)),checkConnection();if(_0x1b0378[_0x27d645(0x81f)]){errorlog('RECONNECTING\x20to\x20HSS;\x20DISCONNECTING\x20FROM\x20TRANSFERRED\x20ROOM');for(_0x10fce5 in _0x1b0378[_0x27d645(0x7cc)]){try{_0x1b0378[_0x27d645(0x7cc)][_0x10fce5][_0x27d645(0x791)]?!_0x1b0378[_0x27d645(0x386)][_0x27d645(0x8a3)](_0x1b0378['rpcs'][_0x10fce5][_0x27d645(0x791)])&&_0x1b0378[_0x27d645(0x14e)](_0x10fce5):_0x1b0378[_0x27d645(0x14e)](_0x10fce5);}catch(_0x46f21b){}}for(_0x10fce5 in _0x1b0378['pcs']){try{_0x1b0378['closePC'](_0x10fce5);}catch(_0x5368a3){}}_0x1b0378['transferred']=![],_0x1b0378[_0x27d645(0xa83)]=![],_0x1b0378[_0x27d645(0x9b7)]&&(!_0x1b0378[_0x27d645(0x9b7)][_0x27d645(0x354)]&&(_0x1b0378[_0x27d645(0x9b7)][_0x27d645(0x635)](),_0x1b0378[_0x27d645(0x9b7)]=null));}if(_0x1b0378[_0x27d645(0x1a7)]&&_0x1b0378[_0x27d645(0x1a7)][_0x27d645(0x5a7)]>0x0)try{var _0x477394=_0x1b0378[_0x27d645(0x1a7)][_0x27d645(0x19a)](-0x1e);_0x1b0378[_0x27d645(0x1a7)]=[],_0x477394[_0x27d645(0x6fb)](function(_0x39fc41){var _0x5efe37=_0x27d645;log('resending\x20message'),_0x1b0378[_0x5efe37(0x4a5)](_0x39fc41);});}catch(_0x2038d4){errorlog(_0x2038d4);}if(_0x58c533==!![]){pokeIframeAPI(_0x27d645(0xa12),_0x27d645(0x8ab)),pokeIframeAPI(_0x27d645(0x48e),_0x27d645(0x8ab));_0x1b0378['seeding']&&_0x1b0378[_0x27d645(0xad7)]();if(_0x1b0378['roomid']){log(_0x27d645(0x72a)),log('Update\x20Mixer\x20Event\x20on\x20Resize\x20SET'),joinRoom(_0x1b0378[_0x27d645(0x85b)]);if(_0x1b0378[_0x27d645(0x386)][_0x27d645(0x5a7)]){var _0x153a00=Object[_0x27d645(0x69e)](_0x1b0378['waitingWatchList']);for(var _0x10fce5=0x0;_0x10fce5<_0x153a00[_0x27d645(0x5a7)];_0x10fce5++){_0x1b0378['include']['includes'](_0x153a00[_0x10fce5])&&(log(_0x27d645(0x210)+_0x153a00[_0x10fce5]),_0x1b0378[_0x27d645(0x797)](_0x153a00[_0x10fce5]));}}}else{var _0x153a00=Object[_0x27d645(0x69e)](_0x1b0378['waitingWatchList']);for(var _0x10fce5=0x0;_0x10fce5<_0x153a00[_0x27d645(0x5a7)];_0x10fce5++){log(_0x27d645(0x210)+_0x153a00[_0x10fce5]),_0x1b0378[_0x27d645(0x797)](_0x153a00[_0x10fce5]);}}}else pokeIframeAPI('hssConnection',_0x27d645(0x457)),pokeIframeAPI(_0x27d645(0x48e),_0x27d645(0x457));},_0x1b0378[_0x3f20af(0x9d1)]=function(_0x4e4907){var _0x1d3c5c=_0x3f20af;for(var _0x2961f6 in _0x1b0378['rpcs']){if(_0x1b0378[_0x1d3c5c(0x7cc)][_0x2961f6]['streamID']===_0x4e4907)return log(_0x1d3c5c(0x37b)),![];}if(_0x1b0378[_0x1d3c5c(0x9cc)][_0x4e4907])return log(_0x1d3c5c(0x82f)),![];return _0x1b0378['watchStream'](_0x4e4907),log(_0x1d3c5c(0x181)),!![];},_0x1b0378['ws']['onmessage']=async function(_0x584d60){var _0x183eb0=_0x3f20af;clearTimeout(_0x1b0378['pingTimeout']);try{var _0x316fc1=JSON[_0x183eb0(0x5da)](_0x584d60[_0x183eb0(0x778)]);}catch(_0x56aa07){try{var _0x316fc1=JSON[_0x183eb0(0x5da)](_0x584d60[_0x183eb0(0x778)][_0x183eb0(0x6f5)]());}catch(_0x3b0cd8){errorlog(_0x3b0cd8);return;}}_0x316fc1[_0x183eb0(0x791)]&&(_0x316fc1[_0x183eb0(0x791)]=_0x1b0378[_0x183eb0(0x83e)](_0x316fc1[_0x183eb0(0x791)]));if('remote'in _0x316fc1){_0x316fc1=await _0x1b0378[_0x183eb0(0xaf4)](_0x316fc1);if(!_0x316fc1)return;}if(_0x1b0378[_0x183eb0(0x937)]){if(_0x183eb0(0x922)in _0x316fc1&&_0x1b0378[_0x183eb0(0x7b3)]&&_0x316fc1['from']===_0x1b0378['UUID'])return;else log(_0x316fc1);if(_0x183eb0(0x7b3)in _0x316fc1){if(_0x1b0378[_0x183eb0(0x7b3)]){if(_0x316fc1[_0x183eb0(0x7b3)]!==_0x1b0378[_0x183eb0(0x7b3)])return;}else return;delete _0x316fc1[_0x183eb0(0x7b3)];}if(_0x183eb0(0x85b)in _0x316fc1){if(!_0x1b0378['roomenc'])return;if(_0x183eb0(0x169)in _0x316fc1){if(_0x316fc1[_0x183eb0(0x169)]===_0x183eb0(0x59a)){if(_0x183eb0(0x85b)in _0x316fc1){if(_0x183eb0(0xa69)in _0x316fc1){if(_0x316fc1['target']==_0x1b0378[_0x183eb0(0x7b3)]){_0x316fc1[_0x183eb0(0x169)]=_0x183eb0(0x81f),_0x1b0378[_0x183eb0(0x8f4)]=_0x316fc1[_0x183eb0(0x85b)];var _0x42af2e={};_0x42af2e['request']='joinroom',_0x42af2e[_0x183eb0(0x85b)]=_0x1b0378[_0x183eb0(0x8f4)],_0x42af2e[_0x183eb0(0x791)]=_0x1b0378[_0x183eb0(0x791)],_0x1b0378[_0x183eb0(0x4a5)](_0x42af2e);}else return;}else return;}else return;}else{if(_0x316fc1['roomid']!==_0x1b0378[_0x183eb0(0x8f4)])return;}}else{if(_0x316fc1[_0x183eb0(0x85b)]!==_0x1b0378[_0x183eb0(0x8f4)])return;}delete _0x316fc1['roomid'];}if(_0x183eb0(0x91b)in _0x316fc1){if(_0x1b0378['token']||_0x1b0378[_0x183eb0(0x7b2)])await checkToken();else _0x316fc1[_0x183eb0(0x922)]&&(_0x1b0378[_0x183eb0(0x63e)]=_0x316fc1[_0x183eb0(0x922)],_0x1b0378[_0x183eb0(0x7fe)]=![],_0x1b0378[_0x183eb0(0x27e)]=[],_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x285)](_0x1b0378[_0x183eb0(0x63e)]),_0x1b0378[_0x183eb0(0x2ce)]());delete _0x316fc1[_0x183eb0(0x91b)];}'from'in _0x316fc1&&(_0x316fc1[_0x183eb0(0x7b3)]=_0x316fc1[_0x183eb0(0x922)],delete _0x316fc1['from']);if(_0x183eb0(0x169)in _0x316fc1){if(_0x316fc1['request']===_0x183eb0(0x8da)){if(_0x183eb0(0x791)in _0x316fc1){if(_0x316fc1[_0x183eb0(0x791)]===_0x1b0378[_0x183eb0(0x791)])_0x316fc1['request']='offerSDP';else return;}}else{if(_0x316fc1['request']==='seed'){if(_0x1b0378[_0x183eb0(0x41c)]){if(_0x1b0378[_0x183eb0(0x41c)][_0x183eb0(0x8a3)](_0x316fc1[_0x183eb0(0x791)])){play(_0x316fc1['streamID']);return;}else return;}}else{if(_0x316fc1['request']===_0x183eb0(0x2f7)){if(_0x183eb0(0x791)in _0x316fc1){if(_0x1b0378[_0x183eb0(0x41c)]){if(_0x1b0378[_0x183eb0(0x41c)][_0x183eb0(0x8a3)](_0x316fc1[_0x183eb0(0x791)]))play(_0x316fc1[_0x183eb0(0x791)]);else{}}else play(_0x316fc1['streamID']);}_0x316fc1['request']=_0x183eb0(0x1d3);}}}}else{if(_0x183eb0(0x791)in _0x316fc1){if(_0x1b0378[_0x183eb0(0x41c)]){if(_0x1b0378[_0x183eb0(0x41c)][_0x183eb0(0x8a3)](_0x316fc1[_0x183eb0(0x791)])){}else return;}else{if(_0x1b0378[_0x183eb0(0x8c4)]){if(_0x1b0378['view']!==_0x316fc1['streamID'])return;else{}}}}}}if(_0x316fc1[_0x183eb0(0x9fd)]||_0x316fc1[_0x183eb0(0x315)]||_0x316fc1[_0x183eb0(0x99f)]){let _0x35abf8=_0x316fc1[_0x183eb0(0x9fd)]||_0x316fc1[_0x183eb0(0x315)]||_0x316fc1[_0x183eb0(0x99f)];if(_0x1b0378['mids'][_0x316fc1['UUID']]){if(_0x1b0378[_0x183eb0(0x7da)][_0x316fc1[_0x183eb0(0x7b3)]][_0x183eb0(0x8a3)](_0x35abf8))return;else _0x1b0378['mids'][_0x316fc1['UUID']][_0x183eb0(0x285)](_0x35abf8);}else _0x1b0378[_0x183eb0(0x7da)][_0x316fc1[_0x183eb0(0x7b3)]]=[_0x35abf8];}if(_0x316fc1[_0x183eb0(0x169)]){if(_0x316fc1['request']==_0x183eb0(0x1d3)){if(_0x1b0378['queue']){if(_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x7ce)](_0x316fc1[_0x183eb0(0x7b3)])>=0x0)_0x1b0378[_0x183eb0(0x1d3)](_0x316fc1['UUID']);else{if(_0x1b0378[_0x183eb0(0x91b)])_0x316fc1[_0x183eb0(0x7b3)]in _0x1b0378[_0x183eb0(0x7cc)]&&_0x1b0378['offerSDP'](_0x316fc1[_0x183eb0(0x7b3)]);else return;}}else _0x1b0378[_0x183eb0(0x1d3)](_0x316fc1[_0x183eb0(0x7b3)]);}else{if(_0x316fc1[_0x183eb0(0x169)]==_0x183eb0(0x20f)){log(_0x316fc1);if(_0x1b0378[_0x183eb0(0x9a1)]||_0x1b0378['mainDirectorPassword'])await checkToken();else _0x183eb0(0x91b)in _0x316fc1?(_0x1b0378[_0x183eb0(0x63e)]=_0x316fc1[_0x183eb0(0x91b)],_0x1b0378['directorStreamID']=![],_0x1b0378[_0x183eb0(0x8c5)](),_0x1b0378['directorList'][_0x183eb0(0x285)](_0x1b0378[_0x183eb0(0x63e)]),_0x1b0378[_0x183eb0(0x2ce)]()):(_0x1b0378['directorUUID']=![],_0x1b0378[_0x183eb0(0x7fe)]=![],_0x1b0378['cleanDirectorList']());if(_0x1b0378['mainDirectorPassword']){}else{if('claim'in _0x316fc1){if(_0x1b0378[_0x183eb0(0x9a1)]||_0x316fc1[_0x183eb0(0x2e9)]==![]){if(!_0x1b0378['cleanOutput']){miniTranslate(getById(_0x183eb0(0xb38)),'not-the-director');if(_0x1b0378[_0x183eb0(0x830)])_0x1b0378['directorState']===null&&warnUser(getTranslation(_0x183eb0(0x18e)),![],![]);else _0x1b0378['token']?setTimeout(function(){var _0x2ac6a3=_0x183eb0;warnUser(getTranslation(_0x2ac6a3(0x5d6)),![],![]);},0x1):setTimeout(function(){var _0x153491=_0x183eb0;warnUser(getTranslation(_0x153491(0x1dc)),![],![]);},0x1);}_0x1b0378[_0x183eb0(0x32d)]=![],pokeAPI('director',![]),pokeIframeAPI('director',![]);}else _0x1b0378[_0x183eb0(0x32d)]=!![],pokeAPI(_0x183eb0(0x91b),!![]),pokeIframeAPI('director',!![]);}}_0x1b0378[_0x183eb0(0x4cc)]=_0x316fc1['list'],_0x1b0378[_0x183eb0(0x6dd)][_0x183eb0(0x2b4)](_0x316fc1[_0x183eb0(0xa74)]);}else{if(_0x316fc1['request']==_0x183eb0(0x81f)){_0x1b0378[_0x183eb0(0x631)]=[],_0x1b0378[_0x183eb0(0x81f)]=!![],_0x1b0378['broadcastIFrame']=![],log(_0x183eb0(0xabb)),pokeIframeAPI(_0x183eb0(0x81f));let _0x20eeb2=![];if(!_0x1b0378[_0x183eb0(0x91b)]){if(_0x1b0378['queue']==0x2)_0x1b0378[_0x183eb0(0x9cd)]=!![],_0x1b0378[_0x183eb0(0x81f)]=!![];else _0x1b0378[_0x183eb0(0x9cd)]==0x3?(_0x1b0378[_0x183eb0(0x9cd)]=![],_0x20eeb2=!![]):(_0x1b0378[_0x183eb0(0x9cd)]=![],_0x1b0378[_0x183eb0(0x81f)]=!![]);}else _0x1b0378[_0x183eb0(0x81f)]=!![];if(!_0x20eeb2){for(_0x571571 in _0x1b0378[_0x183eb0(0x7cc)]){try{!_0x1b0378[_0x183eb0(0x386)][_0x183eb0(0x8a3)](_0x1b0378[_0x183eb0(0x7cc)][_0x571571]['streamID'])&&(warnlog('transferred\x20and\x20closing'),_0x1b0378[_0x183eb0(0x14e)](_0x571571));}catch(_0x24fee9){}}for(_0x571571 in _0x1b0378[_0x183eb0(0x71c)]){try{log(_0x183eb0(0x78e)),_0x1b0378[_0x183eb0(0x6eb)](_0x571571);}catch(_0x559dd9){}}_0x1b0378[_0x183eb0(0x9b7)]&&(!_0x1b0378[_0x183eb0(0x9b7)]['closed']&&(_0x1b0378[_0x183eb0(0x9b7)]['close'](),_0x1b0378['popupChat']=null));}if(!_0x20eeb2){if(_0x1b0378[_0x183eb0(0x9a1)]||_0x1b0378[_0x183eb0(0x7b2)])await checkToken();else _0x183eb0(0x91b)in _0x316fc1?(_0x1b0378['directorUUID']=_0x316fc1[_0x183eb0(0x91b)],_0x1b0378[_0x183eb0(0x7fe)]=![],_0x1b0378['directorList']=[],_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x285)](_0x1b0378[_0x183eb0(0x63e)]),_0x1b0378[_0x183eb0(0x2ce)]()):(_0x1b0378[_0x183eb0(0x63e)]=![],_0x1b0378['directorStreamID']=![],_0x1b0378[_0x183eb0(0x27e)]=[]);youveBeenTransferred(),_0x1b0378[_0x183eb0(0x9f7)]=_0x1b0378[_0x183eb0(0x239)],updateMixer();}else youveBeenActivated();log(_0x183eb0(0x288)),log(_0x316fc1[_0x183eb0(0xa74)]);for(var _0x571571 in _0x316fc1['list']){if(_0x183eb0(0x7b3)in _0x316fc1[_0x183eb0(0xa74)][_0x571571]){if(_0x316fc1[_0x183eb0(0xa74)][_0x571571]['streamID']){if(_0x316fc1[_0x183eb0(0xa74)][_0x571571][_0x183eb0(0x7b3)]in _0x1b0378[_0x183eb0(0x7cc)])log(_0x183eb0(0x900));else{var _0xe6c679=_0x1b0378[_0x183eb0(0x83e)](_0x316fc1['list'][_0x571571][_0x183eb0(0x791)]);log('STREAM\x20ID\x20desalted\x202:'+_0xe6c679);if(_0x1b0378['queue']){if(_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x7ce)](_0x316fc1[_0x183eb0(0xa74)][_0x571571][_0x183eb0(0x7b3)])>=0x0)_0x1b0378[_0x183eb0(0xa29)]==0x2&&play(_0xe6c679,_0x316fc1['list'][_0x571571][_0x183eb0(0x7b3)]);else{if(_0x1b0378[_0x183eb0(0x41c)]&&_0x1b0378[_0x183eb0(0x41c)]['includes'](_0xe6c679))play(_0xe6c679,_0x316fc1[_0x183eb0(0xa74)][_0x571571]['UUID']);else _0x1b0378['queueList']['length']<0x1388&&(!(_0xe6c679 in _0x1b0378[_0x183eb0(0x22b)])&&!_0x1b0378[_0x183eb0(0x631)][_0x183eb0(0x8a3)](_0xe6c679)&&_0x1b0378[_0x183eb0(0x631)][_0x183eb0(0x285)](_0xe6c679));}}else play(_0xe6c679,_0x316fc1[_0x183eb0(0xa74)][_0x571571][_0x183eb0(0x7b3)]);}}}}updateQueue();}else{if(_0x316fc1['request']=='roomclaimed'){log(_0x316fc1);if(_0x1b0378[_0x183eb0(0x9a1)]||_0x1b0378[_0x183eb0(0x7b2)])await checkToken();else _0x183eb0(0x91b)in _0x316fc1?(_0x1b0378['directorUUID']=_0x316fc1[_0x183eb0(0x91b)],_0x1b0378[_0x183eb0(0x7fe)]=![],_0x1b0378[_0x183eb0(0x27e)]=[],_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x285)](_0x1b0378[_0x183eb0(0x63e)]),_0x1b0378[_0x183eb0(0x2ce)]()):(_0x1b0378[_0x183eb0(0x63e)]=![],_0x1b0378['directorList']=[],errorlog(_0x183eb0(0x97a)));updateUserList();}else{if(_0x316fc1['request']==_0x183eb0(0x390)){if(_0x1b0378['token']||_0x1b0378[_0x183eb0(0x7b2)])await checkToken();else _0x316fc1[_0x183eb0(0x91b)]&&(_0x1b0378[_0x183eb0(0x63e)]=_0x316fc1[_0x183eb0(0x7b3)],_0x1b0378['directorStreamID']=![],_0x1b0378[_0x183eb0(0x8c5)](),_0x1b0378['directorList'][_0x183eb0(0x285)](_0x1b0378[_0x183eb0(0x63e)]),_0x1b0378['newMainDirectorSetup']());if('streamID'in _0x316fc1){log(_0x183eb0(0x5f2));if(_0x1b0378[_0x183eb0(0x9cd)]){if(_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x7ce)](_0x316fc1[_0x183eb0(0x7b3)])>=0x0)_0x1b0378[_0x183eb0(0xa29)]==0x2&&play(_0xe6c679,_0x316fc1[_0x183eb0(0x7b3)]);else{if(_0x1b0378[_0x183eb0(0x41c)]&&_0x1b0378[_0x183eb0(0x41c)][_0x183eb0(0x8a3)](_0xe6c679))play(_0xe6c679,_0x316fc1[_0x183eb0(0x7b3)]);else _0x1b0378[_0x183eb0(0x631)][_0x183eb0(0x5a7)]<0x1388&&(!(_0x316fc1[_0x183eb0(0x791)]in _0x1b0378[_0x183eb0(0x22b)])&&!_0x1b0378[_0x183eb0(0x631)][_0x183eb0(0x8a3)](_0x316fc1['streamID'])&&(_0x1b0378[_0x183eb0(0x631)][_0x183eb0(0x285)](_0x316fc1[_0x183eb0(0x791)]),updateQueue(!![])));}}else play(_0x316fc1[_0x183eb0(0x791)]);}else log(_0x183eb0(0x4d6));}else{if(_0x316fc1[_0x183eb0(0x169)]==_0x183eb0(0x97d)){log('Someone\x20published\x20a\x20video\x20to\x20the\x20Room'),log(_0x316fc1);if(_0x1b0378[_0x183eb0(0x9cd)]){if(_0x1b0378[_0x183eb0(0x27e)][_0x183eb0(0x7ce)](_0x316fc1[_0x183eb0(0x7b3)])>=0x0)_0x1b0378['queueType']==0x2&&play(_0xe6c679,_0x316fc1['UUID']);else{if(_0x1b0378[_0x183eb0(0x41c)]&&_0x1b0378[_0x183eb0(0x41c)][_0x183eb0(0x8a3)](_0xe6c679))play(_0xe6c679,_0x316fc1[_0x183eb0(0x7b3)]);else _0x1b0378['queueList'][_0x183eb0(0x5a7)]<0x1388&&(!(_0x316fc1[_0x183eb0(0x791)]in _0x1b0378['watchTimeoutList'])&&!_0x1b0378['queueList'][_0x183eb0(0x8a3)](_0x316fc1[_0x183eb0(0x791)])&&(_0x1b0378[_0x183eb0(0x631)][_0x183eb0(0x285)](_0x316fc1[_0x183eb0(0x791)]),updateQueue(!![])));}}else play(_0x316fc1[_0x183eb0(0x791)]);}else{if(_0x316fc1[_0x183eb0(0x169)]=='alert'){errorlog(_0x316fc1),pokeIframeAPI(_0x183eb0(0x604),_0x316fc1[_0x183eb0(0x5d0)]);if(_0x1b0378[_0x183eb0(0x333)]===![]){if('message'in _0x316fc1){if(_0x316fc1[_0x183eb0(0x5d0)]===_0x183eb0(0x39f))_0x1b0378[_0x183eb0(0x162)]<0x2?(_0x1b0378[_0x183eb0(0x162)]=parseInt(_0x1b0378[_0x183eb0(0x162)])+0x1,setTimeout(function(){var _0x21d8e1=_0x183eb0;_0x1b0378[_0x21d8e1(0xad7)]();},0x1388)):(hangup(),!_0x1b0378['cleanOutput']?_0x1b0378[_0x183eb0(0x2a4)]&&(_0x1b0378[_0x183eb0(0x2a4)]['length']<0x3||_0x1b0378[_0x183eb0(0x2a4)]==='test')&&_0x1b0378['password']===_0x1b0378['defaultPassword']?setTimeout(function(){var _0x56e126=_0x183eb0;warnUser(getTranslation(_0x56e126(0x9a3)),![],![]);},0x1):setTimeout(function(){var _0x1a3100=_0x183eb0;warnUser(getTranslation(_0x1a3100(0x1fb)),![],![]);},0x1):console['warn'](getTranslation(_0x183eb0(0x1fb))));else{if(_0x316fc1[_0x183eb0(0x5d0)]===_0x183eb0(0x9ea))!_0x1b0378[_0x183eb0(0x379)]&&setTimeout(()=>{var _0x529079=_0x183eb0;warnUser(_0x529079(0x95e));},0x1);else{if(_0x1b0378[_0x183eb0(0x9a1)]||_0x1b0378[_0x183eb0(0x8d9)]){}else _0x316fc1[_0x183eb0(0x5d0)]==='Room\x20is\x20already\x20claimed\x20by\x20someone\x20else.'?(!_0x1b0378[_0x183eb0(0x379)]&&(miniTranslate(getById(_0x183eb0(0xb38)),'not-the-director'),_0x1b0378[_0x183eb0(0x830)]?_0x1b0378['directorState']===null&&warnUser(getTranslation(_0x183eb0(0x18e)),![],![]):setTimeout(function(){warnUser(getTranslation('room-is-claimed'),![],![]);},0x1)),_0x1b0378[_0x183eb0(0x32d)]=![],pokeAPI(_0x183eb0(0x91b),![]),pokeIframeAPI(_0x183eb0(0x91b),![])):!_0x1b0378[_0x183eb0(0x379)]&&setTimeout(()=>{var _0x484026=_0x183eb0;warnUser(_0x316fc1[_0x484026(0x5d0)]);},0x1);}}}}}else _0x316fc1['request']==_0x183eb0(0xafd)?_0x183eb0(0x5d0)in _0x316fc1&&warnlog(_0x316fc1['message']):log(_0x316fc1);}}}}}}}else{if(_0x316fc1[_0x183eb0(0x5c9)])_0x183eb0(0x791)in _0x316fc1&&(_0x316fc1['streamID']in _0x1b0378[_0x183eb0(0x22b)]&&(clearTimeout(_0x1b0378[_0x183eb0(0x22b)][_0x316fc1[_0x183eb0(0x791)]]),delete _0x1b0378[_0x183eb0(0x22b)][_0x316fc1['streamID']])),_0x1b0378[_0x183eb0(0xaff)](_0x316fc1);else{if(_0x316fc1[_0x183eb0(0x250)])log(_0x183eb0(0x66f)),_0x1b0378[_0x183eb0(0x4df)](_0x316fc1);else{if(_0x316fc1[_0x183eb0(0x88f)])log(_0x183eb0(0x5d5)),_0x1b0378[_0x183eb0(0x41f)](_0x316fc1);else{if(_0x316fc1[_0x183eb0(0x638)]||_0x316fc1[_0x183eb0(0x169)]==_0x183eb0(0x885))warnlog(_0x183eb0(0x8a0)),_0x316fc1['UUID']in _0x1b0378['pcs']&&(log('closing\x204'),_0x1b0378['closePC'](_0x316fc1['UUID'])),_0x316fc1['UUID']in _0x1b0378[_0x183eb0(0x7cc)]&&(warnlog(_0x183eb0(0x82e)),_0x1b0378[_0x183eb0(0x14e)](_0x316fc1['UUID']));else{if(_0x1b0378[_0x183eb0(0x99d)]&&_0x316fc1[_0x183eb0(0x9a1)])_0x1b0378[_0x183eb0(0x197)]=_0x316fc1['token'],updateReshareLink();else{if(_0x316fc1[_0x183eb0(0x9fd)]&&_0x316fc1['UUID'])try{_0x183eb0(0x3fc)in _0x316fc1?await _0x1b0378[_0x183eb0(0xa24)](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]+_0x183eb0(0x906)):await _0x1b0378[_0x183eb0(0xa24)](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]);}catch(_0x54c6da){warnlog('mystery-message-recieved-2'),warnlog(_0x54c6da[_0x183eb0(0x778)]);}else{if(_0x316fc1[_0x183eb0(0x99f)]&&_0x316fc1[_0x183eb0(0x7b3)])try{_0x183eb0(0x3fc)in _0x316fc1?await _0x1b0378[_0x183eb0(0x77f)](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]+'_screen',_0x316fc1['UUID']):await _0x1b0378[_0x183eb0(0x77f)](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]);}catch(_0x169f59){warnlog(_0x183eb0(0x6b7)),warnlog(_0x169f59['data']);}else{if(_0x316fc1['mid']&&_0x316fc1[_0x183eb0(0x7b3)])try{if(_0x1b0378['pcs'][_0x316fc1['UUID']])_0x183eb0(0x3fc)in _0x316fc1?await _0x1b0378[_0x183eb0(0x77f)](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]+'_screen',_0x316fc1[_0x183eb0(0x7b3)]):await _0x1b0378[_0x183eb0(0x77f)](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]);else _0x1b0378[_0x183eb0(0x7cc)][_0x316fc1[_0x183eb0(0x7b3)]]?'altUUID'in _0x316fc1?await _0x1b0378['processRPCSOnMessage'](_0x316fc1,_0x316fc1[_0x183eb0(0x7b3)]+'_screen'):await _0x1b0378[_0x183eb0(0xa24)](_0x316fc1,_0x316fc1['UUID']):warnlog(_0x183eb0(0x593));}catch(_0x499c8c){warnlog(_0x183eb0(0x6b7)),warnlog(_0x499c8c[_0x183eb0(0x778)]);}else log(_0x183eb0(0x760));}}}}}}}}},_0x1b0378['ws'][_0x3f20af(0x83b)]=async function(_0xc1481e){warnlog(_0xc1481e);},_0x1b0378['ws'][_0x3f20af(0x7ee)]=async function(_0x128323){var _0x482e5e=_0x3f20af;clearTimeout(_0x1b0378[_0x482e5e(0x5b8)]),pokeIframeAPI('hssConnection',_0x482e5e(0x354)),pokeIframeAPI(_0x482e5e(0x48e),_0x482e5e(0x354));try{_0x482e5e(0x51a)in _0x128323&&(_0x128323[_0x482e5e(0x51a)]==0x1f7&&(_0x58c533==![]&&(clearTimeout(_0x1b0378['timeout']),!_0x1b0378[_0x482e5e(0x379)]&&warnUser(_0x482e5e(0x654),0x7530,![]))));}catch(_0x170b74){errorlog(_0x170b74);}warnlog('Connection\x20to\x20Control\x20Server\x20lost.\x0a\x0aWill\x20try\x20to\x20reconnect\x20in\x202\x20seconds.');if(_0x1b0378[_0x482e5e(0xaa4)]==![])try{_0x1b0378['ws']['readyState']===WebSocket[_0x482e5e(0x2a6)]&&(_0x1b0378['ws']=null,setTimeout(()=>{try{_0x1b0378['connect'](!![]);}catch(_0x2545ea){}},0x1388));}catch(_0x3c4cb7){errorlog(_0x3c4cb7);}};},_0x1b0378[_0x2f55f4(0x7ff)]=function(_0x27b47c,_0x21b386=null){var _0xe0a0ea=_0x2f55f4;_0x1b0378[_0xe0a0ea(0x4ca)]&&(log(_0xe0a0ea(0x57d)),_0x27b47c['smid']=++_0x1b0378[_0xe0a0ea(0x315)],!_0x21b386?_0x1b0378[_0xe0a0ea(0x4a5)](_0x27b47c):(_0x27b47c[_0xe0a0ea(0x7b3)]=_0x21b386,_0x1b0378['sendMsg'](_0x27b47c,_0x21b386)));if(_0x21b386==null){_0x27b47c=JSON[_0xe0a0ea(0xaab)](_0x27b47c);for(var _0x19e543 in _0x1b0378[_0xe0a0ea(0x71c)]){try{if(!_0x1b0378['pcs'][_0x19e543][_0xe0a0ea(0x780)])continue;_0x1b0378['pcs'][_0x19e543][_0xe0a0ea(0x780)]['send'](_0x27b47c);}catch(_0x4e7ad4){_0x1b0378['pcs'][_0x19e543][_0xe0a0ea(0xaf7)]+_0x1b0378[_0xe0a0ea(0xb1f)][0x1]{var _0x469e89=_0x55419b;_0x126b67['track']&&(_0x126b67[_0x469e89(0x29d)]['enabled']=![]);});}try{document[_0x55419b(0x1bb)](_0x55419b(0x72b))&&(!_0x1b0378['syncState']&&(_0x1b0378['syncState']={}),_0x1b0378['streamID']&&(_0x1b0378[_0x55419b(0x731)][_0x1b0378[_0x55419b(0x791)]]=getDetailedState(_0x1b0378[_0x55419b(0x791)])),getById(_0x55419b(0x72b))[_0x55419b(0xa95)][_0x55419b(0x31b)](getById(_0x55419b(0x72b))),updateLockedElements());}catch(_0x271db5){warnlog(_0x271db5);}var _0x13ea47={};_0x13ea47[_0x55419b(0x283)]=!![],_0x13ea47[_0x55419b(0x27b)]=!![],_0x1b0378['sendMessage'](_0x13ea47),getById(_0x55419b(0x3d9))[_0x55419b(0x6ce)](),_0x1b0378[_0x55419b(0x9f3)]&&_0x1b0378[_0x55419b(0x9f3)][_0x55419b(0x74b)]&&warnlog('I\x27m\x20not\x20sure\x20if\x20I\x20should\x20hang\x20up\x20the\x20whip\x20Output\x20or\x20not');}catch(_0x3475c3){errorlog(_0x55419b(0x895));}log('HANG\x20UP\x202\x20COMPLETE');},_0x1b0378[_0x2f55f4(0x2a3)]=function(_0x3e83d6,_0x13dacb=![]){var _0x1bb065=_0x2f55f4;_0x1b0378['pcs'][_0x3e83d6][_0x1bb065(0x2a3)]({'iceRestart':_0x13dacb})[_0x1bb065(0xb39)](_0x104e2d=>{var _0x566aa3=_0x1bb065;log(_0x566aa3(0x371));if(SafariVersion&&SafariVersion<=0xd&&(iOS||iPad)){}else{if(_0x1b0378[_0x566aa3(0x1b2)]==0x3||_0x1b0378[_0x566aa3(0x1b2)]==0x5||_0x1b0378[_0x566aa3(0x1b2)]==0x1)_0x104e2d[_0x566aa3(0x668)]=CodecsHandler['setOpusAttributes'](_0x104e2d['sdp'],{'stereo':0x1}),log(_0x566aa3(0x560));else{if(iOS||iPad){}else _0x1b0378[_0x566aa3(0x1b2)]==0x4&&(_0x104e2d[_0x566aa3(0x668)]=CodecsHandler[_0x566aa3(0x40f)](_0x104e2d[_0x566aa3(0x668)],{'stereo':0x2}),log(_0x566aa3(0x560)));}}(iOS||iPad)&&(_0x1b0378[_0x566aa3(0x31c)]&&_0x104e2d[_0x566aa3(0x668)][_0x566aa3(0x8a3)](_0x566aa3(0xb16))&&(_0x104e2d[_0x566aa3(0x668)]=_0x104e2d[_0x566aa3(0x668)]['replace'](_0x566aa3(0xb16),'')));if(_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0xac8)])try{_0x104e2d[_0x566aa3(0x668)]=CodecsHandler[_0x566aa3(0x9e6)](_0x104e2d['sdp'],_0x1b0378['pcs'][_0x3e83d6][_0x566aa3(0xac8)],_0x1b0378[_0x566aa3(0x357)]),log(_0x566aa3(0xa91)+_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0xac8)]+_0x566aa3(0x365));}catch(_0x3afbff){errorlog(_0x3afbff),warnlog(_0x566aa3(0x191));}if(_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0x3f6)])try{if(_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0x3f6)]===_0x566aa3(0x8d8))_0x104e2d[_0x566aa3(0x668)]=CodecsHandler['modifyDescLyra'](_0x104e2d[_0x566aa3(0x668)]);else{if(_0x1b0378['pcs'][_0x3e83d6][_0x566aa3(0x3f6)]===_0x566aa3(0x50b)){if(_0x1b0378[_0x566aa3(0x3f9)]&&_0x1b0378[_0x566aa3(0x3f9)]==0x1)_0x104e2d[_0x566aa3(0x668)]=CodecsHandler[_0x566aa3(0x57f)](_0x104e2d[_0x566aa3(0x668)],_0x1b0378[_0x566aa3(0x50c)]||0xbb80,![]);else _0x1b0378[_0x566aa3(0x1b2)]?_0x104e2d[_0x566aa3(0x668)]=CodecsHandler['modifyDescPCM'](_0x104e2d[_0x566aa3(0x668)],_0x1b0378[_0x566aa3(0x50c)]||0xbb80,!![]):_0x104e2d[_0x566aa3(0x668)]=CodecsHandler[_0x566aa3(0x57f)](_0x104e2d[_0x566aa3(0x668)],_0x1b0378[_0x566aa3(0x50c)]||0xbb80,![]);}else _0x104e2d[_0x566aa3(0x668)]=CodecsHandler[_0x566aa3(0x3f6)](_0x104e2d[_0x566aa3(0x668)],_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0x3f6)],_0x1b0378[_0x566aa3(0xb01)],_0x1b0378[_0x566aa3(0x27d)]);}log('Trying\x20to\x20set\x20'+_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0x3f6)]+_0x566aa3(0x855));}catch(_0x3d7ceb){errorlog(_0x3d7ceb),warnlog('couldn\x27t\x20set\x20preferred\x20audio\x20codec');}Android&&_0x1b0378[_0x566aa3(0xae6)]!==![]&&_0x1b0378['AndroidFix']&&(_0x104e2d[_0x566aa3(0x668)]=_0x104e2d[_0x566aa3(0x668)][_0x566aa3(0x4d3)](/42e01f/gi,_0x566aa3(0x627))),_0x1b0378[_0x566aa3(0x4ff)]&&(_0x104e2d[_0x566aa3(0x668)]=filterSDPLAN(_0x104e2d['sdp'])),_0x1b0378['stunOnly']&&(_0x104e2d[_0x566aa3(0x668)]=filterStunOnly(_0x104e2d[_0x566aa3(0x668)])),_0x1b0378[_0x566aa3(0x71c)][_0x3e83d6][_0x566aa3(0x443)](_0x104e2d)[_0x566aa3(0xb39)](async function(){var _0x227d94=_0x566aa3;if(_0x1b0378[_0x227d94(0x7d6)]){if(_0x1b0378[_0x227d94(0x71c)][_0x3e83d6][_0x227d94(0x62e)]===null){let _0x5cc991;const _0x393a0a=new Promise(_0xd23f82=>{_0x5cc991=_0xd23f82;});_0x1b0378['pcs'][_0x3e83d6][_0x227d94(0x62e)]={'promise':_0x393a0a,'resolve':_0x5cc991},await _0x1b0378[_0x227d94(0x71c)][_0x3e83d6]['iceCandidatesPromise'][_0x227d94(0x413)];if(!_0x1b0378[_0x227d94(0x71c)][_0x3e83d6])return;}}log(_0x227d94(0x8e9)+_0x3e83d6),_0x1b0378[_0x227d94(0x46c)](_0x3e83d6);var _0x31bfa0={};_0x31bfa0[_0x227d94(0x7b3)]=_0x3e83d6,_0x31bfa0[_0x227d94(0x791)]=_0x1b0378['streamID'],_0x31bfa0[_0x227d94(0x5c9)]=_0x1b0378[_0x227d94(0x71c)][_0x3e83d6][_0x227d94(0x576)],_0x31bfa0['session']=_0x1b0378[_0x227d94(0x71c)][_0x3e83d6]['session'];_0x1b0378[_0x227d94(0x937)]&&(_0x31bfa0[_0x227d94(0xa61)]=_0x1b0378[_0x227d94(0x333)]);_0x1b0378['slot']!==![]&&(_0x31bfa0[_0x227d94(0x166)]=_0x1b0378[_0x227d94(0x166)]);if(_0x1b0378[_0x227d94(0x591)]!==![]){var _0x4d0e47=_0x1b0378[_0x227d94(0x591)]['getTracks'](),_0x249cf0=_0x1b0378[_0x227d94(0x71c)][_0x3e83d6][_0x227d94(0x54b)](),_0x194b1b=[];for(var _0x4b845a=0x0;_0x4b845a<_0x249cf0[_0x227d94(0x5a7)];_0x4b845a++){for(var _0x8a1774=0x0;_0x8a1774<_0x4d0e47[_0x227d94(0x5a7)];_0x8a1774++){_0x249cf0[_0x4b845a]['track']&&_0x249cf0[_0x4b845a][_0x227d94(0x29d)]['id']==_0x4d0e47[_0x8a1774]['id']&&_0x249cf0[_0x4b845a][_0x227d94(0x29d)][_0x227d94(0x759)]==_0x4d0e47[_0x8a1774][_0x227d94(0x759)]&&_0x194b1b[_0x227d94(0x285)](_0x4b845a);}}_0x194b1b[_0x227d94(0x5a7)]&&(_0x31bfa0[_0x227d94(0x629)]=_0x194b1b);}_0x1b0378[_0x227d94(0x625)]?_0x1b0378['encryptMessage'](JSON[_0x227d94(0xaab)](_0x31bfa0['description']))['then'](function(_0xc92ce2){var _0x463626=_0x227d94;_0x31bfa0['description']=_0xc92ce2[0x0],_0x31bfa0[_0x463626(0x7fc)]=_0xc92ce2[0x1],_0x1b0378[_0x463626(0x17b)](_0x31bfa0);})[_0x227d94(0x872)](errorlog):_0x1b0378[_0x227d94(0x17b)](_0x31bfa0);})[_0x566aa3(0x872)](errorlog);})[_0x1bb065(0x872)](errorlog);},_0x1b0378[_0x2f55f4(0x9c8)]=function(){var _0x51599e=_0x2f55f4;for(var _0x2c223a in _0x1b0378[_0x51599e(0x71c)]){_0x1b0378['pcs'][_0x2c223a]['scene']!==![]?(_0x1b0378[_0x51599e(0x8b5)](_0x2c223a),log('FORCE\x20KEYFRAME\x20FOR\x20SCENE')):log(_0x51599e(0x5a4));}},_0x1b0378['closePC']=function(_0x20b754,_0x1fa4eb=!![]){var _0x11e4c5=_0x2f55f4;log(_0x11e4c5(0x6eb));if(!(_0x20b754 in _0x1b0378[_0x11e4c5(0x71c)]))return;clearTimeout(_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]['iceTimer']),clearTimeout(_0x1b0378['pcs'][_0x20b754][_0x11e4c5(0x757)]),clearInterval(_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]['requestedStatsInterval']),pokeIframeAPI(_0x11e4c5(0x4ee),![],_0x20b754);try{_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]['canvasOverlay']&&_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]['canvasOverlay'][_0x11e4c5(0x885)]&&_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]['canvasOverlay'][_0x11e4c5(0x885)](),_0x1b0378[_0x11e4c5(0x5e4)]&&_0x1b0378['soloChatUUID'][_0x11e4c5(0x8a3)](_0x20b754)&&(_0x1b0378[_0x11e4c5(0x5e4)][_0x11e4c5(0xa4a)](_0x1b0378[_0x11e4c5(0x5e4)][_0x11e4c5(0x7ce)](_0x20b754),0x1),_0x1b0378[_0x11e4c5(0x515)](![]));}catch(_0xb6b7be){errorlor(_0xb6b7be);}if('realUUID'in _0x1b0378[_0x11e4c5(0x71c)][_0x20b754]){delete _0x1b0378[_0x11e4c5(0x71c)][_0x20b754],applySceneState();return;}if(_0x20b754+_0x11e4c5(0x906)in _0x1b0378[_0x11e4c5(0x71c)]&&_0x1b0378[_0x11e4c5(0x71c)][_0x20b754+_0x11e4c5(0x906)][_0x11e4c5(0x42b)]&&_0x1b0378['pcs'][_0x20b754+'_screen'][_0x11e4c5(0x42b)]===_0x20b754){clearTimeout(_0x1b0378[_0x11e4c5(0x71c)][_0x20b754+'_screen'][_0x11e4c5(0xb27)]),clearTimeout(_0x1b0378[_0x11e4c5(0x71c)][_0x20b754+_0x11e4c5(0x906)][_0x11e4c5(0x757)]),clearInterval(_0x1b0378[_0x11e4c5(0x71c)][_0x20b754+_0x11e4c5(0x906)]['requestedStatsInterval']);try{_0x1b0378['pcs'][_0x20b754+'_screen']['canvasOverlay']&&_0x1b0378[_0x11e4c5(0x71c)][_0x20b754+_0x11e4c5(0x906)][_0x11e4c5(0x7bf)][_0x11e4c5(0x885)]&&_0x1b0378[_0x11e4c5(0x71c)][_0x20b754+_0x11e4c5(0x906)][_0x11e4c5(0x7bf)]['cleanup']();}catch(_0x318462){errorlor(_0x318462);}_0x1b0378['pcs'][_0x20b754+'_screen']=null,delete _0x1b0378[_0x11e4c5(0x71c)][_0x20b754+_0x11e4c5(0x906)];}try{_0x1b0378[_0x11e4c5(0x7ff)]({'bye':!![]},_0x20b754);}catch(_0x4df906){}try{_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]['close']();}catch(_0x96c665){}_0x1b0378[_0x11e4c5(0x71c)][_0x20b754][_0x11e4c5(0xac6)]&&(_0x1b0378['beepToNotify']&&(_0x1fa4eb&&(warnlog(_0x11e4c5(0x1e9)),playtone(![],_0x11e4c5(0x3c7))))),_0x1b0378[_0x11e4c5(0x71c)][_0x20b754]=null,_0x1b0378[_0x11e4c5(0xaa4)]&&(!_0x1b0378[_0x11e4c5(0x379)]&&setTimeout(function _0x47fd40(){var _0x35f8ff=_0x11e4c5;warnUser(_0x35f8ff(0x2d6));},0x1)),delete _0x1b0378[_0x11e4c5(0x71c)][_0x20b754],_0x1b0378[_0x11e4c5(0x515)](),applySceneState();},_0x1b0378[_0x2f55f4(0x85c)]={},_0x1b0378[_0x2f55f4(0x14e)]=function(_0x2085fd,_0x317bba=![],_0x2d6976=![]){var _0x5f5ce7=_0x2f55f4;if(!(_0x2085fd in _0x1b0378['rpcs']))return log(_0x5f5ce7(0xa19)),![];warnlog('closeRPC'),clearInterval(_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]['closeTimeout']);if(_0x1b0378[_0x5f5ce7(0x5e4)]&&_0x1b0378[_0x5f5ce7(0x5e4)]['includes'](_0x2085fd))try{_0x1b0378[_0x5f5ce7(0x5e4)]['splice'](_0x1b0378[_0x5f5ce7(0x5e4)][_0x5f5ce7(0x7ce)](_0x2085fd),0x1),_0x1b0378['applySoloChat'](![]);}catch(_0x1b7aae){}if(_0x1b0378[_0x5f5ce7(0x4ca)]&&_0x2d6976)_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x3d7)]=!![];else{if(_0x1b0378['rpcs'][_0x2085fd][_0x5f5ce7(0x3d7)]&&!_0x317bba)return!![];else{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x3d7)]=![];try{_0x1b0378['sendRequest']({'bye':!![]},_0x2085fd),warnlog(_0x5f5ce7(0x597));}catch(_0x23b5e4){}}}try{var _0x3244ee=_0x1b0378['rpcs'][_0x2085fd][_0x5f5ce7(0x791)];}catch(_0x142c59){}try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x635)]();}catch(_0x4923cb){warnlog(_0x5f5ce7(0x2d8));}if(_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x3d7)])return!![];_0x1b0378['rpcs'][_0x2085fd]['motionDetectionInterval']&&clearInterval(_0x1b0378['rpcs'][_0x2085fd]['motionDetectionInterval']);try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x97f)]&&_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x97f)][_0x5f5ce7(0xa5c)]()['forEach'](function(_0x41d3f1){_0x41d3f1['stop'](),log('Track\x20stopped');});}catch(_0x206b69){}if(_0x1b0378[_0x5f5ce7(0x91b)])try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]['videoElement']&&_0x5f5ce7(0x426)in _0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x601)]&&_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x601)]['recorder'][_0x5f5ce7(0x336)]();}catch(_0x8212ec){warnlog(_0x8212ec);}else!_0x1b0378[_0x5f5ce7(0x85b)]&&(_0x1b0378[_0x5f5ce7(0x657)]&&playtone(![],_0x5f5ce7(0x3c7)));try{document[_0x5f5ce7(0x1bb)]('container_'+_0x2085fd)&&(!_0x1b0378[_0x5f5ce7(0x731)]&&(_0x1b0378[_0x5f5ce7(0x731)]={}),_0x3244ee&&(_0x1b0378[_0x5f5ce7(0x731)][_0x3244ee]=getDetailedState(_0x3244ee)),getById(_0x5f5ce7(0x539)+_0x2085fd)[_0x5f5ce7(0xa95)][_0x5f5ce7(0x31b)](getById('container_'+_0x2085fd)),updateLockedElements());}catch(_0x2a0d6b){warnlog(_0x2a0d6b);}try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x601)]&&_0x1b0378['rpcs'][_0x2085fd][_0x5f5ce7(0x601)][_0x5f5ce7(0x6ce)]();}catch(_0x195a99){}try{if(_0x1b0378[_0x5f5ce7(0x259)]!==![]){if(_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x753)]){try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x753)][_0x5f5ce7(0x6ce)]();}catch(_0x1b8888){errorlog(_0x1b8888);}_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]['iframeEle'][_0x5f5ce7(0x6ce)]();}}}catch(_0x5035e5){}try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0xb20)]&&_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0xb20)][_0x5f5ce7(0x6ce)]();}catch(_0x48a688){}try{_0x1b0378['rpcs'][_0x2085fd][_0x5f5ce7(0x8ec)]&&_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]['imageElement'][_0x5f5ce7(0x6ce)]();}catch(_0x262368){}_0x5f5ce7(0x1cb)in _0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]&&clearInterval(_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x1cb)]);pokeIframeAPI(_0x5f5ce7(0x8a2),![],_0x2085fd),pokeAPI('endViewConnection',_0x1b0378['rpcs'][_0x2085fd][_0x5f5ce7(0x791)]);if(_0x1b0378['discordHook'])try{pokeDiscord(_0x5f5ce7(0xa9f),{'streamID':_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x791)],'label':_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]['label'],'session':_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x7c9)],'startTime':_0x1b0378['rpcs'][_0x2085fd]['startTime'],'hangup':_0x317bba});}catch(_0x1944be){console[_0x5f5ce7(0xafd)](_0x1944be);}_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd][_0x5f5ce7(0x73a)]&&(_0x3244ee=![]);try{_0x1b0378[_0x5f5ce7(0x7cc)][_0x2085fd]=null,delete _0x1b0378['rpcs'][_0x2085fd];}catch(_0x3779b2){}try{_0x1b0378['closeRPC'](_0x2085fd+_0x5f5ce7(0x906));}catch(_0x46df08){}(!_0x1b0378[_0x5f5ce7(0x91b)]||_0x1b0378[_0x5f5ce7(0xa63)])&&setTimeout(function(){updateMixer();},0x1);if(typeof _0x3244ee==_0x5f5ce7(0x666))return![];try{warnlog('Should\x20we\x20ask\x20to\x20play\x20the\x20stream\x20Again?'),_0x3244ee&&(_0x3244ee in _0x1b0378['watchTimeoutList']&&(log('watchTimeoutList:'+_0x3244ee),clearTimeout(_0x1b0378[_0x5f5ce7(0x22b)][_0x3244ee]),delete _0x1b0378[_0x5f5ce7(0x22b)][_0x3244ee]),_0x1b0378[_0x5f5ce7(0x22b)][_0x3244ee]=setTimeout(function(_0x5cf254){var _0x384d07=_0x5f5ce7;try{delete _0x1b0378[_0x384d07(0x22b)][_0x5cf254];}catch(_0x1ec85e){return warnlog(_0x384d07(0x2c4)),![];}log('watchTimeoutList2:'+_0x5cf254);try{for(var _0x1e3d6a in _0x1b0378[_0x384d07(0x7cc)]){if(_0x1b0378[_0x384d07(0x7cc)][_0x1e3d6a]['streamID']===_0x5cf254){if(_0x1b0378[_0x384d07(0x7cc)][_0x1e3d6a][_0x384d07(0x71a)]===_0x384d07(0x457))return warnlog(_0x384d07(0x59f)),![];}}}catch(_0x41add8){errorlog(_0x41add8);}warnlog(_0x384d07(0x18c)),_0x1b0378[_0x384d07(0x797)](_0x5cf254);},_0x1b0378[_0x5f5ce7(0x2b8)],_0x3244ee));}catch(_0x461098){errorlog(_0x461098);}return pokeIframeAPI(_0x5f5ce7(0x6fe),![],_0x2085fd),_0x3244ee!==null?pokeIframeAPI('end-view-connection',_0x3244ee,_0x2085fd):pokeIframeAPI(_0x5f5ce7(0xac0),!![],_0x2085fd),updateUserList(),![];},_0x1b0378[_0x2f55f4(0x68c)]=null,_0x1b0378[_0x2f55f4(0x45a)]=function(){var _0x5457fe=_0x2f55f4,_0x47c0d0=![];if(_0x1b0378[_0x5457fe(0x8c4)]){_0x1b0378[_0x5457fe(0xb56)]&&clearTimeout(_0x1b0378[_0x5457fe(0x68c)]);if(_0x1b0378['ws']===null||typeof _0x1b0378['ws']!==_0x5457fe(0x506)||_0x1b0378['ws'][_0x5457fe(0x240)]!==0x1){}else{var _0x2a3ec7=_0x1b0378['view'][_0x5457fe(0x2f9)](',');for(var _0x108ea6 in _0x2a3ec7){if(_0x2a3ec7[_0x108ea6]){var _0x16423d=![];for(var _0x3804c9 in _0x1b0378[_0x5457fe(0x7cc)]){if(_0x1b0378[_0x5457fe(0x7cc)][_0x3804c9]['streamID']&&_0x1b0378[_0x5457fe(0x7cc)][_0x3804c9][_0x5457fe(0x791)]===_0x2a3ec7[_0x108ea6]){_0x16423d=!![];break;}}_0x2a3ec7[_0x108ea6]in _0x1b0378['watchTimeoutList']&&(_0x16423d=!![]);if(_0x16423d)continue;_0x1b0378[_0x5457fe(0x797)](_0x2a3ec7[_0x108ea6]),_0x47c0d0=!![];}}}_0x1b0378[_0x5457fe(0xb56)]&&_0x1b0378[_0x5457fe(0xb56)]<0xa&&(_0x1b0378[_0x5457fe(0xb56)]=0xa),_0x1b0378[_0x5457fe(0xb56)]&&(_0x1b0378['forceRetryTimeout']=setTimeout(function(){var _0x4dc61d=_0x5457fe;log(_0x4dc61d(0xa20)),_0x1b0378[_0x4dc61d(0x45a)]();},_0x1b0378[_0x5457fe(0xb56)]*0x3e8));}return _0x47c0d0;},_0x1b0378[_0x2f55f4(0x1d3)]=async function(_0x2fe69f){var _0x1fad2=_0x2f55f4;if(_0x2fe69f in _0x1b0378[_0x1fad2(0x71c)]){if(_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x71a)]===_0x1fad2(0xa21)||_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x71a)]===_0x1fad2(0x354))log(_0x1fad2(0x461)),_0x1b0378[_0x1fad2(0x6eb)](_0x2fe69f),warnlog('cleaning\x20up\x20lost\x20connection');else{if(iPad||iOS)log('closing\x207'),_0x1b0378[_0x1fad2(0x6eb)](_0x2fe69f),warnlog('cleaning\x20up\x20lost\x20connection\x20--\x20disconnected\x20-\x20iOS\x20specific');else{if(_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x71a)]!==_0x1fad2(0x457)){await sleep(_0x1b0378['reconnectSpeed'][0x4]);if(_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]){if(_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x71a)]!==_0x1fad2(0x457))log('closing\x206'),_0x1b0378[_0x1fad2(0x6eb)](_0x2fe69f),warnlog('cleaning\x20up\x20lost\x20connection');else{warnlog(_0x1fad2(0x8ea)+_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x71a)]);return;}}}else{warnlog(_0x1fad2(0x8ea)+_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x71a)]);return;}}}}else log('Create\x20a\x20new\x20RTC\x20connection;\x20offering\x20SDP\x20on\x20request');if(_0x1b0378[_0x1fad2(0x608)]!==![]){if(Object[_0x1fad2(0x69e)](_0x1b0378[_0x1fad2(0x71c)])[_0x1fad2(0x5a7)]>_0x1b0378[_0x1fad2(0x608)]){log('closing\x201'),log(_0x1fad2(0x62a)),_0x1b0378[_0x1fad2(0x6eb)](_0x2fe69f);return;}}else{if(_0x1b0378[_0x1fad2(0x2a5)]!==![]){if(Object[_0x1fad2(0x69e)](_0x1b0378[_0x1fad2(0x7cc)])[_0x1fad2(0x5a7)]+Object[_0x1fad2(0x69e)](_0x1b0378[_0x1fad2(0x71c)])[_0x1fad2(0x5a7)]>_0x1b0378[_0x1fad2(0x2a5)]){log(_0x1fad2(0x790)),log('closing\x209'),_0x1b0378[_0x1fad2(0x6eb)](_0x2fe69f);return;}}}!_0x1b0378[_0x1fad2(0x85f)]&&await chooseBestTURN();_0x1b0378[_0x1fad2(0x73d)]&&(_0x1b0378['configuration'][_0x1fad2(0x73d)]=!![]);_0x1b0378[_0x1fad2(0x5f7)]&&(_0x1b0378[_0x1fad2(0x85f)][_0x1fad2(0x5f7)]=_0x1b0378[_0x1fad2(0x5f7)]);try{_0x1b0378['pcs'][_0x2fe69f]=new RTCPeerConnection(_0x1b0378[_0x1fad2(0x85f)]);}catch(_0x2641ae){!_0x1b0378['cleanOutput']&&warnUser(_0x1fad2(0x464));errorlog(_0x2641ae);return;}if(_0x1b0378[_0x1fad2(0xaa4)]){if(Object[_0x1fad2(0x69e)](_0x1b0378[_0x1fad2(0x71c)])['length']>0x1){log(_0x1fad2(0x99a)),log('closing\x2010'),_0x1b0378[_0x1fad2(0x6eb)](_0x2fe69f);return;}}_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['stats']={},_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x7c9)]=_0x1b0378[_0x1fad2(0x6bf)]+_0x1b0378['generateStreamID'](0x5),_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x267)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x7a0)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x19e)]={},_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x19e)]['visibility']=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x19e)][_0x1fad2(0x4e4)]=null,_0x1b0378['pcs'][_0x2fe69f]['obsState'][_0x1fad2(0x868)]=null,_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x19e)]['recording']=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x19e)]['virtualcam']=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x2f6)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x1a8)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x7b8)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x33d)]=null,_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0xada)]=null,_0x1b0378['pcs'][_0x2fe69f]['maxBandwidth']=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x4bb)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xa2c)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x458)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xb11)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xa26)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xac6)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x9f9)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x3af)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0xad2)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0xb32)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x964)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['allowVideo']=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x9ff)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['allowDrawing']=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x883)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x9b3)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x71f)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x2dd)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xa11)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x61d)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x6da)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['allowResources']=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0xb3b)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['allowScreenAudio']=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x69f)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x7b3)]=_0x2fe69f,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['scale']=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['rotation']=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['scaleDueToBitrate']=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x5c0)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x58c)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x20a)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x53e)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x69d)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x4ce)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x333)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xa16)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['keyframeTimeout']=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['label']=![],_0x1b0378['pcs'][_0x2fe69f]['order']=![],_0x1b0378['pcs'][_0x2fe69f]['preferVideoCodec']=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x3f6)]=![],_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x757)]=null,_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x991)]=_0x1b0378[_0x1fad2(0x991)],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x2fb)]=![],_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0xaf7)]=Date[_0x1fad2(0x56b)](),_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x225)]=null;function _0x38cc81(_0x231c11=![]){var _0x1eee6b=_0x1fad2;if(_0x231c11)return;_0x1b0378['pcs'][_0x2fe69f][_0x1eee6b(0x780)]=_0x1b0378[_0x1eee6b(0x71c)][_0x2fe69f]['createDataChannel'](_0x1eee6b(0x780)),_0x1b0378[_0x1eee6b(0x71c)][_0x2fe69f][_0x1eee6b(0x780)][_0x1eee6b(0x7b3)]=_0x2fe69f,_0x1b0378[_0x1eee6b(0x71c)][_0x2fe69f][_0x1eee6b(0x780)][_0x1eee6b(0x83b)]=_0x46b89e=>{var _0x3c4572=_0x1eee6b;_0x46b89e['error']&&_0x46b89e['error']['sctpCauseCode']&&_0x46b89e[_0x3c4572(0x479)][_0x3c4572(0x850)]!==0xc&&warnlog(_0x46b89e),log(_0x3c4572(0x659)+_0x2fe69f);},_0x1b0378[_0x1eee6b(0x71c)][_0x2fe69f][_0x1eee6b(0x780)]['onopen']=()=>{var _0x39c38a=_0x1eee6b;if(_0x231c11)return;_0x1b0378[_0x39c38a(0x71c)][_0x2fe69f][_0x39c38a(0x957)]=0x0,log(_0x39c38a(0x686)),msg={},msg[_0x39c38a(0x3fe)]={},msg[_0x39c38a(0x3fe)][_0x39c38a(0x4a1)]=_0x1b0378[_0x39c38a(0x4a1)],msg['info'][_0x39c38a(0x9de)]=_0x1b0378[_0x39c38a(0x9de)],msg['info'][_0x39c38a(0x305)]=_0x1b0378[_0x39c38a(0x305)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x5cd)]=_0x1b0378['muted'],msg[_0x39c38a(0x3fe)][_0x39c38a(0x23d)]=_0x1b0378['queue'];try{(_0x1b0378['group'][_0x39c38a(0x5a7)]||_0x1b0378[_0x39c38a(0x641)])&&(msg['info'][_0x39c38a(0x26c)]=_0x1b0378[_0x39c38a(0x77c)][_0x39c38a(0x31f)](','));}catch(_0x1bfa95){}msg[_0x39c38a(0x3fe)][_0x39c38a(0x810)]=_0x1b0378[_0x39c38a(0x810)],msg['info']['directorDisplayMuted']=_0x1b0378[_0x39c38a(0x3ea)],msg[_0x39c38a(0x3fe)]['directorVideoMuted']=_0x1b0378[_0x39c38a(0x66d)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x300)]=_0x1b0378[_0x39c38a(0x651)],msg[_0x39c38a(0x3fe)][_0x39c38a(0xb3f)]=_0x1b0378[_0x39c38a(0x283)];_0x1b0378[_0x39c38a(0x85b)]?msg[_0x39c38a(0x3fe)][_0x39c38a(0x1cd)]=!![]:msg[_0x39c38a(0x3fe)][_0x39c38a(0x1cd)]=![];_0x1b0378[_0x39c38a(0x75d)]&&(msg[_0x39c38a(0x3fe)][_0x39c38a(0x6a9)]=_0x1b0378[_0x39c38a(0x75d)]);if(_0x1b0378[_0x39c38a(0x91b)]){if(!_0x1b0378[_0x39c38a(0x7b2)]&&_0x1b0378['directorUUID']&&_0x1b0378[_0x39c38a(0x63e)]===_0x2fe69f)_0x1b0378[_0x39c38a(0x2ce)]();else{msg[_0x39c38a(0x734)]={};_0x1b0378['mainDirectorPassword']&&(msg[_0x39c38a(0x734)][_0x39c38a(0x213)]=!![]);msg[_0x39c38a(0x734)][_0x39c38a(0x9f7)]=_0x1b0378[_0x39c38a(0x9f7)];_0x1b0378[_0x39c38a(0x5e4)][_0x39c38a(0x5a7)]&&!_0x1b0378[_0x39c38a(0x5e4)]['includes'](_0x2fe69f)&&(msg[_0x39c38a(0x3fe)][_0x39c38a(0x5cd)]=!![]);var _0x4fb865=[];for(var _0x266432 in _0x1b0378['pcs']){_0x1b0378[_0x39c38a(0x71c)][_0x266432]['coDirector']===!![]&&_0x4fb865[_0x39c38a(0x285)](_0x266432);}_0x1b0378[_0x39c38a(0x7c5)]&&(msg[_0x39c38a(0x734)][_0x39c38a(0xaa5)]=!![]),_0x4fb865[_0x39c38a(0x5a7)]&&(msg[_0x39c38a(0x734)][_0x39c38a(0x5bf)]=_0x4fb865);}_0x1b0378['autoSyncObject']&&(msg['info']['autoSync']=_0x1b0378[_0x39c38a(0x6c7)]);}_0x1b0378[_0x39c38a(0x259)]!==![]?msg[_0x39c38a(0x3fe)]['broadcast_mode']=!![]:msg[_0x39c38a(0x3fe)][_0x39c38a(0x4ed)]=![];_0x1b0378[_0x39c38a(0x2fb)]?msg[_0x39c38a(0x3fe)]['remote']=!![]:msg[_0x39c38a(0x3fe)][_0x39c38a(0x2fb)]=![];_0x1b0378[_0x39c38a(0x566)]?msg[_0x39c38a(0x3fe)][_0x39c38a(0x1ec)]=!![]:msg[_0x39c38a(0x3fe)]['allowdrawing']=![];if(_0x1b0378[_0x39c38a(0x249)])msg['info'][_0x39c38a(0x605)]=_0x1b0378[_0x39c38a(0x249)];else{if(_0x1b0378['obsControls']===![])msg[_0x39c38a(0x3fe)][_0x39c38a(0x605)]=![];else _0x1b0378[_0x39c38a(0x85b)]&&!_0x1b0378[_0x39c38a(0x91b)]?msg[_0x39c38a(0x3fe)][_0x39c38a(0x605)]=![]:msg[_0x39c38a(0x3fe)][_0x39c38a(0x605)]=null;}_0x1b0378[_0x39c38a(0x84c)]&&(msg['info']['consent']=!![]);msg[_0x39c38a(0x3fe)][_0x39c38a(0x6af)]=_0x1b0378[_0x39c38a(0x52e)];!_0x1b0378[_0x39c38a(0xab7)]&&(msg['info'][_0x39c38a(0x6e1)]=!![]);_0x1b0378[_0x39c38a(0xab7)]&&!_0x1b0378['screenStream']?msg[_0x39c38a(0x3fe)]['screenShareState']=_0x1b0378[_0x39c38a(0xb10)]:msg[_0x39c38a(0x3fe)][_0x39c38a(0xb10)]=![];msg[_0x39c38a(0x3fe)][_0x39c38a(0x416)]=_0x1b0378[_0x39c38a(0x57a)],msg[_0x39c38a(0x3fe)]['height_url']=_0x1b0378['height'];try{if(_0x1b0378[_0x39c38a(0x97f)]){let _0x1c40bb=_0x1b0378[_0x39c38a(0x97f)][_0x39c38a(0x527)]();if(_0x1c40bb['length']){let _0x51d67d=_0x1c40bb[0x0][_0x39c38a(0x6e2)]();msg['info'][_0x39c38a(0x7bb)]=_0x51d67d[_0x39c38a(0x57a)]||![],msg['info'][_0x39c38a(0x5df)]=_0x51d67d['height']||![],msg[_0x39c38a(0x3fe)][_0x39c38a(0x993)]=parseInt(_0x51d67d[_0x39c38a(0x42c)])||![];}}if(_0x1b0378['screenStream']&&_0x1b0378[_0x39c38a(0x591)]['srcObject']){let _0xd7d936=_0x1b0378[_0x39c38a(0x591)][_0x39c38a(0x318)][_0x39c38a(0x527)]();if(_0xd7d936[_0x39c38a(0x5a7)]){let _0xf5a7df=_0xd7d936[0x0][_0x39c38a(0x6e2)]();msg[_0x39c38a(0x3fe)][_0x39c38a(0x3da)]=_0xf5a7df['width']||![],msg[_0x39c38a(0x3fe)][_0x39c38a(0x4c8)]=_0xf5a7df[_0x39c38a(0x7bd)]||![],msg[_0x39c38a(0x3fe)][_0x39c38a(0x1ed)]=parseInt(_0xf5a7df[_0x39c38a(0x42c)])||![];}}}catch(_0x26bec0){errorlog(_0x26bec0);}msg[_0x39c38a(0x3fe)][_0x39c38a(0x86c)]=_0x1b0378['quality'],msg[_0x39c38a(0x3fe)][_0x39c38a(0x433)]=_0x1b0378[_0x39c38a(0x860)],msg[_0x39c38a(0x3fe)]['maxviewers_url']=_0x1b0378[_0x39c38a(0x608)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x5fe)]=_0x1b0378[_0x39c38a(0x1b2)],msg['info']['aec_url']=_0x1b0378[_0x39c38a(0x378)],msg[_0x39c38a(0x3fe)]['agc_url']=_0x1b0378[_0x39c38a(0x55e)],msg['info']['denoise_url']=_0x1b0378[_0x39c38a(0x687)],msg['info'][_0x39c38a(0x94d)]=_0x1b0378[_0x39c38a(0x58e)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x588)]=_0x1b0378['version'],msg[_0x39c38a(0x3fe)][_0x39c38a(0xa9d)]=_0x1b0378['audioGain'],msg['info'][_0x39c38a(0x99c)]=_0x1b0378[_0x39c38a(0x8a8)],msg[_0x39c38a(0x3fe)]['recording_audio_mic_delay']=_0x1b0378[_0x39c38a(0xa4e)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x794)]=_0x1b0378[_0x39c38a(0x160)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x96e)]=!_0x1b0378[_0x39c38a(0x3df)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x854)]=_0x1b0378[_0x39c38a(0x75c)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x3ce)]=_0x1b0378[_0x39c38a(0x4e1)],msg[_0x39c38a(0x3fe)][_0x39c38a(0x6b1)]=_0x1b0378[_0x39c38a(0x3fd)];_0x1b0378[_0x39c38a(0x41e)]&&(msg[_0x39c38a(0x3fe)][_0x39c38a(0x41e)]=_0x1b0378[_0x39c38a(0x41e)]);_0x1b0378['stats'][_0x39c38a(0x4d0)]&&(msg[_0x39c38a(0x3fe)]['conn_type']=_0x1b0378['stats']['network_type']);_0x1b0378[_0x39c38a(0x823)]!==![]?_0x1b0378[_0x39c38a(0x4da)]?msg[_0x39c38a(0x3fe)][_0x39c38a(0x7cb)]=_0x1b0378['forceRotate']+parseInt(_0x1b0378[_0x39c38a(0x4da)]):msg[_0x39c38a(0x3fe)][_0x39c38a(0x7cb)]=_0x1b0378[_0x39c38a(0x823)]:msg[_0x39c38a(0x3fe)][_0x39c38a(0x7cb)]=_0x1b0378[_0x39c38a(0x4da)];msg[_0x39c38a(0x3fe)]['rotate_video']&&msg[_0x39c38a(0x3fe)]['rotate_video']>=0x168&&(msg[_0x39c38a(0x3fe)]['rotate_video']-=0x168);try{navigator&&navigator[_0x39c38a(0xa71)]&&(msg[_0x39c38a(0x3fe)]['useragent']=navigator[_0x39c38a(0xa71)]);navigator&&navigator[_0x39c38a(0x5d3)]&&(msg[_0x39c38a(0x3fe)][_0x39c38a(0x5d3)]=navigator[_0x39c38a(0x5d3)]);gpgpuSupport&&(msg['info'][_0x39c38a(0x46f)]=gpgpuSupport);cpuSupport&&(msg['info'][_0x39c38a(0x44a)]=cpuSupport);iOS&&(msg[_0x39c38a(0x3fe)]['iPhone12Up']=iPhone12Up);if(SafariVersion)msg[_0x39c38a(0x3fe)]['Browser']=_0x39c38a(0x171)+SafariVersion;else{if(getChromiumVersion()>0x3c)msg[_0x39c38a(0x3fe)][_0x39c38a(0x847)]='Chromium-based\x20v'+getChromiumVersion();else{if(Firefox)msg[_0x39c38a(0x3fe)][_0x39c38a(0x847)]='Firefox';else navigator['userAgent'][_0x39c38a(0x7ce)]('CriOS')>=0x0?msg['info'][_0x39c38a(0x847)]=_0x39c38a(0x711):msg[_0x39c38a(0x3fe)]['Browser']=_0x39c38a(0x486);}}}catch(_0x23ffe5){}_0x1b0378[_0x39c38a(0x6c3)]&&(_0x39c38a(0x434)in _0x1b0378['batteryState']&&(typeof _0x1b0378[_0x39c38a(0x6c3)][_0x39c38a(0x434)]=='number'?msg[_0x39c38a(0x3fe)][_0x39c38a(0x764)]=parseInt(_0x1b0378['batteryState'][_0x39c38a(0x434)]*0x64):msg[_0x39c38a(0x3fe)][_0x39c38a(0x764)]=_0x1b0378['batteryState'][_0x39c38a(0x434)]),'charging'in _0x1b0378['batteryState']&&(msg[_0x39c38a(0x3fe)][_0x39c38a(0x6ef)]=_0x1b0378[_0x39c38a(0x6c3)][_0x39c38a(0xa10)]));_0x1b0378['cpuLimited']&&(msg[_0x39c38a(0x3fe)]['cpuLimited']=_0x1b0378[_0x39c38a(0x6a1)]);try{_0x1b0378[_0x39c38a(0x3fe)][_0x39c38a(0x5d1)]&&(msg[_0x39c38a(0x647)]={},msg[_0x39c38a(0x647)][_0x39c38a(0x5d1)]={},msg[_0x39c38a(0x647)][_0x39c38a(0x5d1)]['c']=_0x1b0378[_0x39c38a(0x3fe)][_0x39c38a(0x5d1)]['c']);}catch(_0x56e845){}_0x1b0378['sendMessage'](msg,_0x2fe69f),pokeIframeAPI('new-push-connection',!![],_0x2fe69f),pokeIframeAPI(_0x39c38a(0x4ee),!![],_0x2fe69f),updateUserList();},_0x1b0378[_0x1eee6b(0x71c)][_0x2fe69f][_0x1eee6b(0x780)][_0x1eee6b(0x7ee)]=()=>{var _0x291066=_0x1eee6b;pokeIframeAPI(_0x291066(0x843),![],_0x2fe69f),_0x1b0378[_0x291066(0x2fe)](),warnlog(_0x291066(0x1c7));return;},_0x1b0378[_0x1eee6b(0x71c)][_0x2fe69f][_0x1eee6b(0x780)][_0x1eee6b(0x745)]=async _0x4f9753=>{var _0x491ccf=_0x1eee6b;log('received\x20data\x20from\x20viewer');try{var _0x22afa1=JSON[_0x491ccf(0x5da)](_0x4f9753['data']);}catch(_0x4d271b){warnlog(_0x491ccf(0x698)),log(_0x4f9753[_0x491ccf(0x778)]);try{var _0x2b6fd8=new TextDecoder()[_0x491ccf(0x223)](_0x4f9753['data']),_0x22afa1=JSON['parse'](_0x2b6fd8);}catch(_0x2915b2){try{var _0x22afa1=await new Response(_0x4f9753['data'])[_0x491ccf(0x33e)]();_0x22afa1=JSON[_0x491ccf(0x5da)](_0x22afa1);}catch(_0x1c64f5){return;}}}log(_0x22afa1);if(_0x491ccf(0x2fb)in _0x22afa1)try{_0x22afa1=await _0x1b0378[_0x491ccf(0xaf4)](_0x22afa1);if(!_0x22afa1)return;}catch(_0x12da67){errorlog(_0x12da67);}if(_0x22afa1[_0x491ccf(0x99f)]||_0x22afa1[_0x491ccf(0x315)]){let _0x37d527=_0x22afa1[_0x491ccf(0x99f)]||_0x22afa1[_0x491ccf(0x315)];if(_0x1b0378[_0x491ccf(0x7da)][_0x2fe69f]){if(_0x1b0378['mids'][_0x2fe69f][_0x491ccf(0x8a3)](_0x37d527))return;else _0x1b0378['mids'][_0x2fe69f][_0x491ccf(0x285)](_0x37d527);}else _0x1b0378[_0x491ccf(0x7da)][_0x2fe69f]=[_0x37d527];}_0x491ccf(0x3fc)in _0x22afa1?await _0x1b0378[_0x491ccf(0x77f)](_0x22afa1,_0x2fe69f+_0x491ccf(0x906),_0x2fe69f):await _0x1b0378[_0x491ccf(0x77f)](_0x22afa1,_0x2fe69f);};}!_0x1b0378[_0x1fad2(0x3ab)]&&_0x38cc81(![]),_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['ondatachannel']=_0x47eb3e=>{var _0x1c9279=_0x1fad2;warnlog(_0x1c9279(0x3b9)),warnlog(_0x47eb3e);if(_0x47eb3e[_0x1c9279(0x462)][_0x1c9279(0x4a1)]&&_0x47eb3e[_0x1c9279(0x462)]['label']!==_0x1c9279(0x780)){_0x1b0378[_0x1c9279(0x8e3)](_0x1b0378[_0x1c9279(0x7cc)],_0x2fe69f,_0x47eb3e[_0x1c9279(0x462)]);return;}},_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x6a8)]=_0x2297c8=>{var _0x2e7001=_0x1fad2;log(_0x2e7001(0x17f)),_0x1b0378[_0x2e7001(0x2a3)](_0x2fe69f);},_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x170)]=_0x634100=>{errorlog('Publisher\x20is\x20being\x20sent\x20a\x20video\x20stream???\x20NOT\x20EXPECTED!');},_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0xb27)]=null,_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x9ca)]=[],_0x1b0378['pcs'][_0x2fe69f]['delayIceSend']=0xa,_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x62e)]=null,_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x858)]=_0xa5d2e3=>{var _0x34e7c0=_0x1fad2;if(_0xa5d2e3[_0x34e7c0(0x250)]==null){log(_0x34e7c0(0x3c4));_0x1b0378['waitForCandidates']&&_0x1b0378['pcs'][_0x2fe69f][_0x34e7c0(0x62e)]&&(_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f][_0x34e7c0(0x62e)][_0x34e7c0(0x2b4)](),_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f][_0x34e7c0(0x62e)]=![]);return;}else{if(_0x1b0378[_0x34e7c0(0x7d6)]&&_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f][_0x34e7c0(0x62e)])return;}log(_0xa5d2e3);try{if(_0x1b0378[_0x34e7c0(0x86e)]){if(_0xa5d2e3['candidate'][_0x34e7c0(0x250)]['indexOf'](_0x1b0378[_0x34e7c0(0x86e)])===-0x1){log(_0x34e7c0(0xb28));return;}else log(_0xa5d2e3[_0x34e7c0(0x250)]);}}catch(_0x22c8d6){errorlog(_0x22c8d6);}try{if(_0x1b0378['localNetworkOnly']){if(!filterIceLAN(_0xa5d2e3['candidate']))return;}if(_0x1b0378[_0x34e7c0(0x89e)]){if(!filterStunOnly(_0xa5d2e3[_0x34e7c0(0x250)]))return;}}catch(_0x56fc60){errorlog(_0x56fc60);}if(_0x1b0378['pcs'][_0x2fe69f][_0x34e7c0(0xb27)]!==null){_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f][_0x34e7c0(0x9ca)][_0x34e7c0(0x285)](_0xa5d2e3[_0x34e7c0(0x250)]);return;}_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f]['iceBundle']['push'](_0xa5d2e3['candidate']),_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f][_0x34e7c0(0xb27)]=setTimeout(function(_0x345579){var _0x4dda92=_0x34e7c0;try{_0x1b0378['pcs'][_0x345579][_0x4dda92(0xb27)]=null;}catch(_0xf698b9){warnlog(_0x4dda92(0x441));return;}var _0x530ffc={};_0x530ffc[_0x4dda92(0x7b3)]=_0x345579,_0x530ffc[_0x4dda92(0x7a5)]='local',_0x530ffc[_0x4dda92(0x88f)]=_0x1b0378[_0x4dda92(0x71c)][_0x345579][_0x4dda92(0x9ca)],_0x530ffc['session']=_0x1b0378[_0x4dda92(0x71c)][_0x345579][_0x4dda92(0x7c9)],_0x1b0378[_0x4dda92(0x71c)][_0x345579][_0x4dda92(0x9ca)]=[],_0x1b0378[_0x4dda92(0x71c)][_0x2fe69f][_0x4dda92(0x957)]=0x3e8,_0x1b0378[_0x4dda92(0x625)]?_0x1b0378[_0x4dda92(0x1c8)](JSON[_0x4dda92(0xaab)](_0x530ffc[_0x4dda92(0x88f)]))[_0x4dda92(0xb39)](function(_0xc17f83){var _0x21d534=_0x4dda92;_0x530ffc[_0x21d534(0x88f)]=_0xc17f83[0x0],_0x530ffc[_0x21d534(0x7fc)]=_0xc17f83[0x1],_0x1b0378['anysend'](_0x530ffc);})['catch'](errorlog):_0x1b0378[_0x4dda92(0x17b)](_0x530ffc);},_0x1b0378[_0x34e7c0(0x71c)][_0x2fe69f][_0x34e7c0(0x957)],_0x2fe69f);},_0x1b0378[_0x1fad2(0x77f)]=async function(_0x2491a5,_0x42026f,_0x57ce35=![]){var _0x51e4b2=_0x1fad2;_0x2491a5[_0x51e4b2(0x7b3)]=_0x42026f;if(_0x2491a5[_0x51e4b2(0x5c9)]){_0x1b0378['processDescription'](_0x2491a5);return;}else{if(_0x2491a5[_0x51e4b2(0x250)]){log('GOT\x20ICE!!'),_0x1b0378[_0x51e4b2(0x4df)](_0x2491a5);return;}else{if(_0x2491a5[_0x51e4b2(0x88f)]){log(_0x51e4b2(0xa9a)),_0x1b0378['processIceBundle'](_0x2491a5);return;}else{if(_0x51e4b2(0x2fe)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0xaec)]=_0x2491a5[_0x51e4b2(0x2fe)],_0x1b0378['sendMessage'](_0x445adc,_0x42026f),warnlog('PINGED');return;}else{if('pong'in _0x2491a5){warnlog(_0x51e4b2(0x1d0));return;}else{if(_0x51e4b2(0x638)in _0x2491a5){warnlog(_0x51e4b2(0x399)),log(_0x51e4b2(0x1fc)),_0x1b0378[_0x51e4b2(0x6eb)](_0x42026f);return;}}}}}}if(_0x1b0378[_0x51e4b2(0x91b)]){if('requestCoDirector'in _0x2491a5&&_0x51e4b2(0x7fc)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x830)])_0x1b0378[_0x51e4b2(0x877)]?_0x1b0378[_0x51e4b2(0x8ed)](_0x2491a5['requestCoDirector'],_0x2491a5[_0x51e4b2(0x7fc)],_0x1b0378[_0x51e4b2(0x877)])[_0x51e4b2(0xb39)](function(_0x2e73f2){var _0x27ae2c=_0x51e4b2;if(_0x2e73f2===_0x1b0378['directorHash']){_0x1b0378['pcs'][_0x42026f]['coDirector']=!![],_0x1b0378[_0x27ae2c(0x27e)][_0x27ae2c(0x285)](_0x42026f),getById(_0x27ae2c(0x539)+_0x42026f)[_0x27ae2c(0xb06)][_0x27ae2c(0x34e)]('directorBlue'),_0x1b0378['announceCoDirector'](_0x42026f);var _0x4558d0={};_0x4558d0[_0x27ae2c(0x809)]=_0x27ae2c(0xad1),_0x1b0378[_0x27ae2c(0x7ff)](_0x4558d0,_0x42026f);}else{warnlog(_0x27ae2c(0x18a));var _0x4558d0={};_0x4558d0[_0x27ae2c(0x839)]=_0x27ae2c(0xad1),_0x1b0378[_0x27ae2c(0x7ff)](_0x4558d0,_0x42026f);}})[_0x51e4b2(0x872)](function(){var _0x58c529=_0x51e4b2;warnlog(_0x58c529(0x511));var _0x21d96e={};_0x21d96e[_0x58c529(0x839)]=_0x58c529(0xad1),_0x1b0378[_0x58c529(0x7ff)](_0x21d96e,_0x42026f);}):generateHash(_0x1b0378[_0x51e4b2(0x830)]+_0x1b0378['salt']+_0x51e4b2(0x274),0xc)[_0x51e4b2(0xb39)](function(_0xdcddfc){var _0x4c84ff=_0x51e4b2;_0x1b0378['directorHash']=_0xdcddfc,_0x1b0378[_0x4c84ff(0x8ed)](_0x2491a5[_0x4c84ff(0xad1)],_0x2491a5['vector'],_0x1b0378['directorHash'])[_0x4c84ff(0xb39)](function(_0x3213b0){var _0xfe6886=_0x4c84ff;if(_0x3213b0===_0x1b0378[_0xfe6886(0x877)]){_0x1b0378[_0xfe6886(0x71c)][_0x42026f][_0xfe6886(0x458)]=!![],_0x1b0378[_0xfe6886(0x27e)]['push'](_0x42026f),getById(_0xfe6886(0x539)+_0x42026f)['classList'][_0xfe6886(0x34e)](_0xfe6886(0x67b)),_0x1b0378[_0xfe6886(0x699)](_0x42026f);var _0x23c95e={};_0x23c95e[_0xfe6886(0x809)]=_0xfe6886(0xad1),_0x1b0378['sendRequest'](_0x23c95e,_0x42026f);}else{warnlog(_0xfe6886(0x18a));var _0x23c95e={};_0x23c95e['rejected']=_0xfe6886(0xad1),_0x1b0378[_0xfe6886(0x32f)](_0x23c95e,_0x42026f);}})[_0x4c84ff(0x872)](function(){var _0x3c70c1=_0x4c84ff;warnlog(_0x3c70c1(0x511));var _0x12b42a={};_0x12b42a[_0x3c70c1(0x839)]=_0x3c70c1(0xad1),_0x1b0378[_0x3c70c1(0x32f)](_0x12b42a,_0x42026f);});return;})[_0x51e4b2(0x872)](errorlog);else{warnlog(_0x51e4b2(0x97b));var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0xad1),_0x1b0378[_0x51e4b2(0x32f)](_0x445adc,_0x42026f);}}if(_0x51e4b2(0x59a)in _0x2491a5&&_0x51e4b2(0x85b)in _0x2491a5){log(_0x51e4b2(0x286));if(_0x1b0378[_0x51e4b2(0x7c4)]){if(_0x42026f in _0x1b0378[_0x51e4b2(0x71c)]&&_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x458)]===!![]){log(_0x51e4b2(0x836));var _0x445adc={};if(_0x2491a5[_0x51e4b2(0x86f)]&&_0x2491a5[_0x51e4b2(0x86f)][_0x51e4b2(0x36a)])_0x445adc[_0x51e4b2(0x169)]='migrate',_0x445adc[_0x51e4b2(0x86f)]=_0x2491a5[_0x51e4b2(0x86f)],log(_0x445adc),_0x1b0378[_0x51e4b2(0x32f)](_0x445adc,_0x2491a5['migrate']['toString'](),function(){var _0x453bdc=_0x51e4b2,_0x3d5097={};_0x3d5097['request']='migrate',_0x3d5097[_0x453bdc(0x85b)]=_0x2491a5[_0x453bdc(0x85b)],_0x3d5097[_0x453bdc(0xa69)]=_0x2491a5[_0x453bdc(0x59a)]['toString'](),_0x1b0378[_0x453bdc(0x4a5)](_0x3d5097);}),log(_0x445adc);else{if(_0x2491a5['transferSettings']&&_0x51e4b2(0x259)in _0x2491a5[_0x51e4b2(0x86f)])_0x445adc[_0x51e4b2(0x169)]='migrate',_0x445adc[_0x51e4b2(0x86f)]=_0x2491a5['transferSettings'],delete _0x445adc[_0x51e4b2(0x86f)][_0x51e4b2(0x85b)],delete _0x445adc['transferSettings'][_0x51e4b2(0x8f4)],log(_0x445adc),_0x1b0378[_0x51e4b2(0x32f)](_0x445adc,_0x2491a5['migrate']['toString'](),function(){var _0x103099=_0x51e4b2,_0xa767ca={};_0xa767ca[_0x103099(0x169)]=_0x103099(0x59a),_0xa767ca[_0x103099(0x85b)]=_0x2491a5[_0x103099(0x85b)],_0xa767ca[_0x103099(0xa69)]=_0x2491a5[_0x103099(0x59a)][_0x103099(0x6f5)](),_0x1b0378[_0x103099(0x4a5)](_0xa767ca);}),log(_0x445adc);else Object[_0x51e4b2(0x69e)](_0x2491a5[_0x51e4b2(0x86f)])[_0x51e4b2(0x5a7)]?(_0x445adc[_0x51e4b2(0x169)]='migrate',_0x445adc[_0x51e4b2(0x86f)]=_0x2491a5[_0x51e4b2(0x86f)],delete _0x445adc[_0x51e4b2(0x86f)][_0x51e4b2(0x85b)],delete _0x445adc[_0x51e4b2(0x86f)][_0x51e4b2(0x8f4)],log(_0x445adc),_0x1b0378[_0x51e4b2(0x32f)](_0x445adc,_0x2491a5['migrate'][_0x51e4b2(0x6f5)](),function(){var _0x20712d=_0x51e4b2,_0xc603={};_0xc603['request']=_0x20712d(0x59a),_0xc603[_0x20712d(0x85b)]=_0x2491a5[_0x20712d(0x85b)],_0xc603[_0x20712d(0xa69)]=_0x2491a5[_0x20712d(0x59a)][_0x20712d(0x6f5)](),_0x1b0378['sendMsg'](_0xc603);}),log(_0x445adc)):(_0x445adc[_0x51e4b2(0x169)]=_0x51e4b2(0x59a),_0x445adc[_0x51e4b2(0x85b)]=_0x2491a5[_0x51e4b2(0x85b)],_0x445adc[_0x51e4b2(0xa69)]=_0x2491a5[_0x51e4b2(0x59a)]['toString'](),_0x1b0378['sendMsg'](_0x445adc));}pokeIframeAPI(_0x51e4b2(0x35b),_0x2491a5[_0x51e4b2(0x85b)],_0x2491a5[_0x51e4b2(0x59a)][_0x51e4b2(0x6f5)]());}}else{var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x76c),_0x1b0378['sendRequest'](_0x445adc,_0x42026f);}}}if('requestAs'in _0x2491a5){if(!_0x2491a5[_0x51e4b2(0x7b3)]){log(_0x51e4b2(0xa64));return;}var _0x50fb46=_0x2491a5[_0x51e4b2(0x6c4)];if(!_0x1b0378[_0x51e4b2(0x71c)][_0x50fb46]){log(_0x51e4b2(0x9aa));return;}if(_0x1b0378[_0x51e4b2(0x27e)]['indexOf'](_0x50fb46)>=0x0){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x6c4),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x2491a5[_0x51e4b2(0x7b3)]),warnlog(_0x51e4b2(0x1c6));return;}if(_0x1b0378[_0x51e4b2(0x2fb)]){if('remote'in _0x2491a5&&_0x2491a5['remote']===_0x1b0378[_0x51e4b2(0x2fb)]&&_0x1b0378['remote']){}else{if(_0x1b0378[_0x51e4b2(0x2fb)]===!![]){}}}else{if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x2491a5[_0x51e4b2(0x7b3)])>=0x0){}else return;}_0x51e4b2(0x151)in _0x2491a5&&_0x1b0378['targetBitrate'](_0x50fb46,_0x2491a5[_0x51e4b2(0x151)]);_0x51e4b2(0xa65)in _0x2491a5&&_0x1b0378[_0x51e4b2(0xa65)](_0x50fb46,_0x2491a5[_0x51e4b2(0xa65)]);if(_0x51e4b2(0x60d)in _0x2491a5)try{_0x1b0378[_0x51e4b2(0xae9)](_0x50fb46,_0x2491a5['requestResolution']['w'],_0x2491a5[_0x51e4b2(0x60d)]['h'],_0x2491a5['requestResolution']['s'],_0x2491a5['requestResolution']['c']);}catch(_0xa1b88f){errorlog(_0xa1b88f);}return;}manageSceneState(_0x2491a5,_0x42026f);try{if(_0x51e4b2(0x3fe)in _0x2491a5){_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x36c)][_0x51e4b2(0x3fe)]=_0x2491a5[_0x51e4b2(0x3fe)];'label'in _0x2491a5['info']&&(typeof _0x2491a5['info'][_0x51e4b2(0x4a1)]=='string'?_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4a1)]=sanitizeLabel(_0x2491a5[_0x51e4b2(0x3fe)][_0x51e4b2(0x4a1)]):_0x1b0378['pcs'][_0x42026f]['label']=![]);if(_0x57ce35){if(_0x57ce35===_0x1b0378[_0x51e4b2(0x63e)])try{_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x36c)][_0x51e4b2(0x3fe)][_0x51e4b2(0x91b)]=!![];}catch(_0x301b0a){}else{if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35)>=0x0)try{_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x36c)]['info']['coDirector']=!![];}catch(_0x151db1){}}}else{if(_0x42026f===_0x1b0378[_0x51e4b2(0x63e)])try{_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x36c)][_0x51e4b2(0x3fe)][_0x51e4b2(0x91b)]=!![];}catch(_0x4d3399){}else{if(_0x1b0378[_0x51e4b2(0x27e)]['indexOf'](_0x42026f)>=0x0)try{_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x36c)][_0x51e4b2(0x3fe)][_0x51e4b2(0x458)]=!![];}catch(_0x2bce62){}}}_0x1b0378[_0x51e4b2(0x395)]&&_0x1b0378[_0x51e4b2(0x91b)]&&_0x51e4b2(0x766)in _0x2491a5[_0x51e4b2(0x3fe)]&&_0x2491a5[_0x51e4b2(0x3fe)][_0x51e4b2(0x766)]&&(broadcastSlotUpdate(_0x42026f),_0x1b0378[_0x51e4b2(0x995)]?_0x1b0378[_0x51e4b2(0x7ff)]({'obsSceneTriggers':_0x1b0378['obsSceneTriggers'],'layouts':_0x1b0378[_0x51e4b2(0x395)]},_0x42026f):_0x1b0378[_0x51e4b2(0x7ff)]({'layouts':_0x1b0378['layouts']},_0x42026f));if(Firefox||_0x2491a5[_0x51e4b2(0x3fe)][_0x51e4b2(0x9e0)])try{_0x51e4b2(0x14d)in _0x2491a5[_0x51e4b2(0x3fe)]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x1a8)]===![]&&(_0x2491a5[_0x51e4b2(0x3fe)][_0x51e4b2(0x14d)]&&parseInt(_0x2491a5[_0x51e4b2(0x3fe)][_0x51e4b2(0x14d)])>0x0&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['savedBitrate']=parseInt(_0x2491a5[_0x51e4b2(0x3fe)][_0x51e4b2(0x14d)]),_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xada)]&&clearTimeout(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['bitrateTimeout']),_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xada)]=setTimeout(function(_0x4b2e2e){_0x1b0378['limitBitrate'](_0x4b2e2e,null);},0x3e8,_0x42026f))));}catch(_0x2ee0a9){errorlog(_0x2ee0a9);}pokeIframeAPI('push-connection-info',_0x2491a5['info'],_0x42026f);}if(_0x51e4b2(0xabc)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x9b4)])try{_0x1b0378[_0x51e4b2(0x9b4)][_0x51e4b2(0x23c)](_0x51e4b2(0x564))&&processIframeSyncFeedback(_0x2491a5[_0x51e4b2(0xabc)],_0x42026f);}catch(_0x4b2c1d){errorlog(_0x4b2c1d);}}_0x51e4b2(0x257)in _0x2491a5&&_0x1b0378[_0x51e4b2(0x6a5)](_0x2491a5[_0x51e4b2(0x257)],_0x42026f);if(_0x51e4b2(0xb12)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x566)]){!_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['canvasOverlay']&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['realUUID']?_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x7bf)]=receiveDrawingOnVideo(_0x1b0378[_0x51e4b2(0x20b)],_0x42026f):_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['canvasOverlay']=receiveDrawingOnVideo(_0x1b0378['videoElement'],_0x42026f));if(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x7bf)]){if(typeof _0x2491a5[_0x51e4b2(0xb12)]==_0x51e4b2(0x22a)){if(_0x2491a5[_0x51e4b2(0xb12)]==_0x51e4b2(0x252))_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x7bf)][_0x51e4b2(0x68d)]();else{if(_0x2491a5[_0x51e4b2(0xb12)]==_0x51e4b2(0x885))_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x7bf)][_0x51e4b2(0x885)]();else _0x2491a5[_0x51e4b2(0xb12)]==_0x51e4b2(0x1b7)&&_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['canvasOverlay']['updateDrawing'](_0x51e4b2(0x1b7));}}else _0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x7bf)][_0x51e4b2(0x8cb)](_0x2491a5[_0x51e4b2(0xb12)]);}}return;}_0x51e4b2(0x914)in _0x2491a5&&(_0x1b0378[_0x51e4b2(0x6c7)]=_0x2491a5[_0x51e4b2(0x914)],_0x1b0378['autoSyncCallback'](_0x42026f));'optimizedBitrate'in _0x2491a5&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['optimizedBitrate']=parseInt(_0x2491a5[_0x51e4b2(0x2f6)]));_0x51e4b2(0x52b)in _0x2491a5&&_0x1b0378['limitAudioBitrate'](_0x42026f,_0x2491a5[_0x51e4b2(0x52b)]);_0x51e4b2(0x85a)in _0x2491a5&&_0x1b0378[_0x51e4b2(0x3a5)](_0x42026f,_0x2491a5[_0x51e4b2(0x85a)]);_0x51e4b2(0x151)in _0x2491a5&&_0x1b0378[_0x51e4b2(0x151)](_0x42026f,_0x2491a5['targetBitrate']);'targetAudioBitrate'in _0x2491a5&&_0x1b0378[_0x51e4b2(0xa65)](_0x42026f,_0x2491a5[_0x51e4b2(0xa65)]);if('hangup'in _0x2491a5){if(_0x51e4b2(0x2fb)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)]&&_0x1b0378['remote']||_0x1b0378[_0x51e4b2(0x2fb)]===!![]){_0x1b0378['hangup']();return;}}}if(_0x51e4b2(0x85d)in _0x2491a5){if(_0x51e4b2(0x2fb)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)]&&_0x1b0378[_0x51e4b2(0x2fb)]||_0x1b0378[_0x51e4b2(0x2fb)]===!![]){_0x1b0378[_0x51e4b2(0x174)](!![]);return;}}}if(_0x51e4b2(0x787)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0){var _0x4395cc={};if(_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)])_0x4395cc[_0x51e4b2(0x9f3)]=_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)];else for(var _0x1fc3f8 in _0x1b0378['pcs']){if(_0x1fc3f8===_0x42026f)continue;_0x4395cc[_0x1fc3f8]=_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x36c)];}var _0x445adc={};_0x445adc[_0x51e4b2(0x800)]=_0x4395cc,_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if('remote'in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)]&&_0x1b0378[_0x51e4b2(0x2fb)]||_0x1b0378[_0x51e4b2(0x2fb)]===!![]){var _0x4395cc={};if(_0x1b0378[_0x51e4b2(0x9f3)]['stats'])_0x4395cc['whipOut']=_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)];else for(var _0x1fc3f8 in _0x1b0378['pcs']){if(_0x1fc3f8===_0x42026f)continue;_0x4395cc[_0x1fc3f8]=_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x36c)];}var _0x445adc={};_0x445adc[_0x51e4b2(0x800)]=_0x4395cc,_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}}else{var _0x4395cc={};if(_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)])_0x4395cc['whipOut']=_0x1b0378['whipOut'][_0x51e4b2(0x36c)];else for(var _0x1fc3f8 in _0x1b0378[_0x51e4b2(0x71c)]){if(_0x1fc3f8===_0x42026f)continue;if(!_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats'])continue;if(_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0xac6)])continue;if(_0x1b0378[_0x51e4b2(0x85b)]){if(_0x51e4b2(0x333)in _0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]){if(_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x333)]===![])continue;}else continue;}_0x4395cc[_0x1fc3f8]={},_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x35e)]&&(_0x4395cc[_0x1fc3f8]['video_bitrate_kbps']=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats'][_0x51e4b2(0x35e)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats'][_0x51e4b2(0x51c)]&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x51c)]=_0x1b0378['pcs'][_0x1fc3f8]['stats'][_0x51e4b2(0x51c)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]['available_outgoing_bitrate_kbps']&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x6ca)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x6ca)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]['scene']&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x333)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats']['scene']),_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x4a1)]&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x4a1)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x4a1)]),_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x618)]&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x618)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x618)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]['video_encoder']&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x3fa)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats']['video_encoder']);}var _0x445adc={};_0x445adc[_0x51e4b2(0x800)]=_0x4395cc,_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}}}if(_0x51e4b2(0x90a)in _0x2491a5){clearInterval(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x96a)]);if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0){if(_0x2491a5[_0x51e4b2(0x90a)]){_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x96a)]=setInterval(function(_0x1bace0){var _0x515e37=_0x51e4b2,_0x3bbfd2={};if(_0x1b0378[_0x515e37(0x9f3)][_0x515e37(0x36c)])_0x3bbfd2['whipOut']=_0x1b0378[_0x515e37(0x9f3)][_0x515e37(0x36c)];else for(var _0x46c7e2 in _0x1b0378[_0x515e37(0x71c)]){if(_0x46c7e2===_0x1bace0)continue;if(!_0x1b0378[_0x515e37(0x71c)][_0x46c7e2]['stats'])continue;if(_0x1b0378[_0x515e37(0x71c)][_0x46c7e2][_0x515e37(0xac6)])continue;_0x3bbfd2[_0x46c7e2]=_0x1b0378[_0x515e37(0x71c)][_0x46c7e2][_0x515e37(0x36c)];}var _0x49e461={};_0x49e461[_0x515e37(0x800)]=_0x3bbfd2,_0x1b0378['sendMessage'](_0x49e461,_0x1bace0);},0xbb8,_0x42026f);var _0x4395cc={};if(_0x1b0378['whipOut']['stats'])_0x4395cc[_0x51e4b2(0x9f3)]=_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)];else for(var _0x1fc3f8 in _0x1b0378[_0x51e4b2(0x71c)]){if(_0x1fc3f8===_0x42026f)continue;if(!_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)])continue;if(_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0xac6)])continue;_0x4395cc[_0x1fc3f8]=_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x36c)];}var _0x445adc={};_0x445adc[_0x51e4b2(0x800)]=_0x4395cc,_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}}else{if(_0x51e4b2(0x2fb)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)]&&_0x1b0378[_0x51e4b2(0x2fb)]||_0x1b0378[_0x51e4b2(0x2fb)]===!![]){if(_0x2491a5['requestStatsContinuous']){_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x96a)]=setInterval(function(_0x46f154){var _0x3f8fc4=_0x51e4b2,_0x1b5484={};if(_0x1b0378[_0x3f8fc4(0x9f3)]['stats'])_0x1b5484[_0x3f8fc4(0x9f3)]=_0x1b0378[_0x3f8fc4(0x9f3)][_0x3f8fc4(0x36c)];else for(var _0x15a2ea in _0x1b0378[_0x3f8fc4(0x71c)]){if(_0x15a2ea===_0x46f154)continue;if(!_0x1b0378['pcs'][_0x15a2ea][_0x3f8fc4(0x36c)])continue;if(_0x1b0378[_0x3f8fc4(0x71c)][_0x15a2ea]['guest'])continue;_0x1b5484[_0x15a2ea]=_0x1b0378[_0x3f8fc4(0x71c)][_0x15a2ea][_0x3f8fc4(0x36c)];}var _0x5cd8f3={};_0x5cd8f3[_0x3f8fc4(0x800)]=_0x1b5484,_0x1b0378[_0x3f8fc4(0x7ff)](_0x5cd8f3,_0x46f154);},0xbb8,_0x42026f);var _0x4395cc={};if(_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)])_0x4395cc[_0x51e4b2(0x9f3)]=_0x1b0378[_0x51e4b2(0x9f3)][_0x51e4b2(0x36c)];else for(var _0x1fc3f8 in _0x1b0378['pcs']){if(_0x1fc3f8===_0x42026f)continue;if(!_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x36c)])continue;if(_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['guest'])continue;_0x4395cc[_0x1fc3f8]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)];}var _0x445adc={};_0x445adc[_0x51e4b2(0x800)]=_0x4395cc,_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}}}else{if(_0x2491a5[_0x51e4b2(0x90a)]){_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x96a)]=setInterval(function(_0x1e0d0c){var _0x4bf313=_0x51e4b2,_0x4dc4fe={};if(_0x1b0378['whipOut'][_0x4bf313(0x36c)])_0x4dc4fe['whipOut']=_0x1b0378[_0x4bf313(0x9f3)]['stats'];else for(var _0x2d6aff in _0x1b0378['pcs']){if(_0x2d6aff===_0x1e0d0c)continue;if(!_0x1b0378['pcs'][_0x2d6aff][_0x4bf313(0x36c)])continue;if(_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0xac6)])continue;if(_0x1b0378['roomid']){if('scene'in _0x1b0378[_0x4bf313(0x71c)][_0x2d6aff]['stats']){if(_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x333)]===![])continue;}else continue;}_0x4dc4fe[_0x2d6aff]={},_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff]['stats'][_0x4bf313(0x35e)]&&(_0x4dc4fe[_0x2d6aff]['video_bitrate_kbps']=_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x35e)]),_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff]['stats'][_0x4bf313(0x51c)]&&(_0x4dc4fe[_0x2d6aff]['nacks_per_second']=_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff]['stats']['nacks_per_second']),_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x6ca)]&&(_0x4dc4fe[_0x2d6aff]['available_outgoing_bitrate_kbps']=_0x1b0378['pcs'][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x6ca)]),_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x333)]&&(_0x4dc4fe[_0x2d6aff]['scene']=_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)]['scene']),_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff]['label']&&(_0x4dc4fe[_0x2d6aff][_0x4bf313(0x4a1)]=_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff]['label']),_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)]['resolution']&&(_0x4dc4fe[_0x2d6aff][_0x4bf313(0x618)]=_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x618)]),_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)][_0x4bf313(0x3fa)]&&(_0x4dc4fe[_0x2d6aff]['video_encoder']=_0x1b0378[_0x4bf313(0x71c)][_0x2d6aff][_0x4bf313(0x36c)]['video_encoder']);}var _0x3e110f={};_0x3e110f[_0x4bf313(0x800)]=_0x4dc4fe,_0x1b0378[_0x4bf313(0x7ff)](_0x3e110f,_0x1e0d0c);},0xbb8,_0x42026f);var _0x4395cc={};if(_0x1b0378['whipOut'][_0x51e4b2(0x36c)])_0x4395cc['whipOut']=_0x1b0378['whipOut']['stats'];else for(var _0x1fc3f8 in _0x1b0378['pcs']){if(_0x1fc3f8===_0x42026f)continue;if(!_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)])continue;if(_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0xac6)])continue;if(_0x1b0378['roomid']){if(_0x51e4b2(0x333)in _0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]){if(_0x1b0378['pcs'][_0x1fc3f8]['stats'][_0x51e4b2(0x333)]===![])continue;}else continue;}_0x4395cc[_0x1fc3f8]={},_0x1b0378['pcs'][_0x1fc3f8]['stats'][_0x51e4b2(0x35e)]&&(_0x4395cc[_0x1fc3f8]['video_bitrate_kbps']=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x35e)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]['nacks_per_second']&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x51c)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats'][_0x51e4b2(0x51c)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]['available_outgoing_bitrate_kbps']&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x6ca)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x6ca)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats'][_0x51e4b2(0x333)]&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x333)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)]['scene']),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['label']&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x4a1)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x4a1)]),_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x618)]&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x618)]=_0x1b0378['pcs'][_0x1fc3f8][_0x51e4b2(0x36c)][_0x51e4b2(0x618)]),_0x1b0378['pcs'][_0x1fc3f8]['stats'][_0x51e4b2(0x3fa)]&&(_0x4395cc[_0x1fc3f8][_0x51e4b2(0x3fa)]=_0x1b0378[_0x51e4b2(0x71c)][_0x1fc3f8]['stats'][_0x51e4b2(0x3fa)]);}var _0x445adc={};_0x445adc[_0x51e4b2(0x800)]=_0x4395cc,_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}}}}if(_0x51e4b2(0x60d)in _0x2491a5)try{_0x1b0378['setResolution'](_0x42026f,_0x2491a5[_0x51e4b2(0x60d)]['w'],_0x2491a5[_0x51e4b2(0x60d)]['h'],_0x2491a5[_0x51e4b2(0x60d)]['s'],_0x2491a5[_0x51e4b2(0x60d)]['c']);}catch(_0x3b3690){errorlog(_0x3b3690);}'keyframe'in _0x2491a5&&(_0x2491a5[_0x51e4b2(0x333)]?_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0?_0x1b0378[_0x51e4b2(0x9c8)]():errorlog(_0x51e4b2(0x403)):_0x1b0378['forcePLI'](_0x42026f));if(_0x51e4b2(0x3d4)in _0x2491a5){var _0x39edc3=![],_0x174f7c=![];_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0&&(_0x39edc3=!![],_0x51e4b2(0x299)in _0x2491a5&&(_0x2491a5[_0x51e4b2(0x299)]==!![]&&(_0x174f7c=!![]))),log(_0x51e4b2(0x628)+_0x39edc3),getChatMessage(_0x2491a5['chat'],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4a1)],_0x39edc3,_0x174f7c);}if(_0x51e4b2(0x305)in _0x2491a5){_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['order']=parseInt(_0x2491a5['order'])||0x0;_0x42026f in _0x1b0378[_0x51e4b2(0x7cc)]&&(_0x1b0378[_0x51e4b2(0x7cc)][_0x42026f][_0x51e4b2(0x305)]=_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x305)]);if(_0x1b0378['director']){var _0x5dc2a6=document[_0x51e4b2(0x480)](_0x51e4b2(0x9ae)+_0x42026f+'\x22]');log(_0x5dc2a6),_0x5dc2a6[0x0]&&(_0x5dc2a6[0x0]['innerText']=parseInt(_0x2491a5[_0x51e4b2(0x305)])||0x0);}updateMixer();}_0x51e4b2(0x864)in _0x2491a5&&_0x1b0378[_0x51e4b2(0x316)](_0x42026f,_0x2491a5['scale']);if(_0x1b0378[_0x51e4b2(0x91b)]&&_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x458)]&&_0x51e4b2(0x32d)in _0x2491a5){log(_0x2491a5),_0x1b0378[_0x51e4b2(0x731)]=_0x2491a5[_0x51e4b2(0x32d)];for(var _0x1fc013 in _0x1b0378[_0x51e4b2(0x731)]){syncSceneState(_0x1fc013),syncOtherState(_0x1fc013);}pokeAPI('details',_0x2491a5[_0x51e4b2(0x32d)]);}if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)==-0x1){if(_0x51e4b2(0x158)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x158),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x5fa)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x5fa),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0xaaf)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0xaaf),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if('changeURL'in _0x2491a5){var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0xadf),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x620)in _0x2491a5){var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0x620),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x3e2)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x3e2),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x674)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]='requestChangeGating',_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if('requestChangeCompressor'in _0x2491a5){var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0x6a0),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x828)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x828),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if('remoteVideoMuted'in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]='remoteVideoMuted',_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x34a)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x34a),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x4cb)in _0x2491a5){var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0x4cb),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x174)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x174),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x8d5)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x8d5),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if('speakerMute'in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x89d),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x96f)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x96f),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x3b7)in _0x2491a5){var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0x3b7),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x52c)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x52c),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if('stopClock'in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x2bc),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x194)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x194),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x253)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x253),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x7ab)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]='hideClock',_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if('showClock'in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x692),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x4cf)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x4cf),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x5e9)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x5e9),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if('showTime'in _0x2491a5){var _0x445adc={};_0x445adc['rejected']='showTime',_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x77c)in _0x2491a5){var _0x445adc={};_0x445adc['rejected']=_0x51e4b2(0x77c),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x4da)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x4da),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}else{if(_0x51e4b2(0x38a)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x38a),_0x1b0378['sendMessage'](_0x445adc,_0x42026f);}else{if('changeMicrophone'in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x839)]=_0x51e4b2(0x7b1),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x42026f);}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}else{if('requestAudioHack'in _0x2491a5){var _0x16e39d=_0x1b0378['streamSrc'][_0x51e4b2(0x834)]();_0x16e39d[_0x51e4b2(0x5a7)]&&(_0x51e4b2(0x785)in _0x2491a5?applyAudioHack(_0x2491a5[_0x51e4b2(0x1a0)],_0x2491a5[_0x51e4b2(0x75b)],_0x2491a5[_0x51e4b2(0x785)]):applyAudioHack(_0x2491a5[_0x51e4b2(0x1a0)],_0x2491a5['value']));}if(_0x51e4b2(0x5fa)in _0x2491a5){if(_0x2491a5['requestVideoRecord']){_0x2491a5[_0x51e4b2(0xa31)]&&(_0x1b0378[_0x51e4b2(0x9a0)]={},_0x1b0378[_0x51e4b2(0x9a0)][_0x51e4b2(0x642)]=_0x2491a5[_0x51e4b2(0xa31)]);if(_0x1b0378[_0x51e4b2(0x601)]){var _0xb7ddc6=0x1770;if(_0x2491a5[_0x51e4b2(0x298)])_0xb7ddc6=_0x2491a5[_0x51e4b2(0x298)];else _0x2491a5[_0x51e4b2(0x75b)]&&(_0xb7ddc6=parseInt(_0x2491a5[_0x51e4b2(0x75b)]));recordLocalVideo(_0x51e4b2(0x417),_0xb7ddc6,![],_0x2491a5[_0x51e4b2(0x3fc)]||![]);}}else _0x1b0378['videoElement']&&recordLocalVideo(_0x51e4b2(0x336),![],![],_0x2491a5[_0x51e4b2(0x3fc)]||![]);}if(_0x51e4b2(0xaaf)in _0x2491a5){_0x1b0378[_0x51e4b2(0x305)]==![]&&(_0x1b0378[_0x51e4b2(0x305)]=0x0);_0x1b0378[_0x51e4b2(0x305)]+=parseInt(_0x2491a5[_0x51e4b2(0xaaf)])||0x0;var _0x445adc={};_0x445adc={},_0x445adc[_0x51e4b2(0x305)]=_0x1b0378[_0x51e4b2(0x305)],_0x1b0378[_0x51e4b2(0x50a)](_0x445adc),updateMixer();}_0x51e4b2(0xadf)in _0x2491a5&&changeURL(_0x2491a5[_0x51e4b2(0xadf)]);if(_0x51e4b2(0x4da)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x4da)]===!![])_0x1b0378[_0x51e4b2(0x4da)]===![]?_0x1b0378[_0x51e4b2(0x4da)]=0x5a:_0x1b0378[_0x51e4b2(0x4da)]+=0x5a,_0x1b0378[_0x51e4b2(0x4da)]>=0x168&&(_0x1b0378[_0x51e4b2(0x4da)]-=0x168),_0x1b0378[_0x51e4b2(0x4da)]===0x0&&(_0x1b0378[_0x51e4b2(0x4da)]=![]);else _0x2491a5[_0x51e4b2(0x4da)]===!![]?_0x1b0378['rotate']=![]:_0x1b0378[_0x51e4b2(0x4da)]=parseInt(_0x2491a5[_0x51e4b2(0x4da)])||![];updateForceRotate(),updateMixer();}_0x51e4b2(0x2bc)in _0x2491a5&&stopClock();'resumeClock'in _0x2491a5&&resumeClock();'setClock'in _0x2491a5&&setClock(_0x2491a5[_0x51e4b2(0x253)]);_0x51e4b2(0x7ab)in _0x2491a5&&hideClock();_0x51e4b2(0x692)in _0x2491a5&&showClock();_0x51e4b2(0x4cf)in _0x2491a5&&startClock();_0x51e4b2(0x5e9)in _0x2491a5&&pauseClock();if(_0x51e4b2(0x781)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x781)]!==![]){if(_0x2491a5[_0x51e4b2(0x781)]&&!_0x1b0378[_0x51e4b2(0x781)])toggleClock(_0x2491a5[_0x51e4b2(0x863)]||![]);else!_0x2491a5['showTime']&&_0x1b0378['showTime']&&toggleClock(_0x2491a5['clock24']||![]);}}_0x51e4b2(0x52c)in _0x2491a5&&toggleFileshare(_0x42026f);if('group'in _0x2491a5)try{_0x57ce35?(_0x2491a5[_0x51e4b2(0x77c)]?_0x1b0378[_0x51e4b2(0x484)]=_0x2491a5[_0x51e4b2(0x77c)][_0x51e4b2(0x2f9)](','):_0x1b0378[_0x51e4b2(0x484)]=[],_0x1b0378[_0x51e4b2(0x7ff)]({'group':_0x2491a5[_0x51e4b2(0x77c)],'altUUID':!![]})):(_0x2491a5['group']?_0x1b0378[_0x51e4b2(0x77c)]=_0x2491a5[_0x51e4b2(0x77c)]['split'](','):_0x1b0378['group']=[],_0x1b0378['sendMessage']({'group':_0x2491a5[_0x51e4b2(0x77c)]})),updateMixer(),pokeIframeAPI(_0x51e4b2(0x254),_0x1b0378[_0x51e4b2(0x77c)]);}catch(_0x1261cd){}if(_0x51e4b2(0x620)in _0x2491a5){if(_0x51e4b2(0x75b)in _0x2491a5){if(typeof _0x2491a5[_0x51e4b2(0x75b)]==_0x51e4b2(0x22a)){_0x1b0378[_0x51e4b2(0x4a1)]=sanitizeLabel(_0x2491a5[_0x51e4b2(0x75b)]),log(_0x51e4b2(0x499)+_0x1b0378[_0x51e4b2(0x4a1)]);if(_0x1b0378[_0x51e4b2(0x91b)]){var _0x5dc2a6=getById(_0x51e4b2(0xb54)+_0x42026f);if(_0x1b0378[_0x51e4b2(0x4a1)])_0x5dc2a6[_0x51e4b2(0x557)]=_0x1b0378[_0x51e4b2(0x4a1)],_0x5dc2a6[_0x51e4b2(0xb06)]['remove'](_0x51e4b2(0x16d));else _0x1b0378[_0x51e4b2(0x63e)]===(_0x57ce35||_0x42026f)?(miniTranslate(_0x5dc2a6[_0x51e4b2(0x716)],_0x51e4b2(0x412)),_0x5dc2a6[_0x51e4b2(0xb06)][_0x51e4b2(0x6ce)](_0x51e4b2(0x16d))):(miniTranslate(_0x5dc2a6['innerHTML'],_0x51e4b2(0x2dc)),_0x5dc2a6['classList'][_0x51e4b2(0x34e)](_0x51e4b2(0x16d)));}else _0x1b0378['showlabels']&&updateMixer();!_0x1b0378[_0x51e4b2(0x91b)]&&(_0x1b0378[_0x51e4b2(0x4a1)]?document[_0x51e4b2(0x382)]=_0x1b0378[_0x51e4b2(0x4a1)]:document[_0x51e4b2(0x382)]=location[_0x51e4b2(0xaf9)]);var _0x51fb5a=encodeURIComponent(_0x1b0378[_0x51e4b2(0x4a1)]);urlParams[_0x51e4b2(0x30c)]('l')?updateURL('l='+_0x51fb5a,!![],![]):updateURL(_0x51e4b2(0x7d2)+_0x51fb5a,!![],![]);var _0x445adc={};_0x445adc[_0x51e4b2(0x620)]=!![],_0x445adc['value']=_0x1b0378[_0x51e4b2(0x4a1)],_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc);}else{_0x1b0378[_0x51e4b2(0x4a1)]=![];var _0x445adc={};_0x445adc['changeLabel']=!![],_0x445adc[_0x51e4b2(0x75b)]=_0x1b0378[_0x51e4b2(0x4a1)],_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc);if(_0x1b0378[_0x51e4b2(0x91b)]){var _0x5dc2a6=getById(_0x51e4b2(0xb54)+_0x42026f);_0x1b0378['directorUUID']===(_0x57ce35||_0x42026f)?(miniTranslate(_0x5dc2a6['innerHTML'],_0x51e4b2(0x412)),_0x5dc2a6['classList'][_0x51e4b2(0x6ce)]('addALabel')):(miniTranslate(_0x5dc2a6[_0x51e4b2(0x716)],_0x51e4b2(0x2dc)),_0x5dc2a6['classList']['add'](_0x51e4b2(0x16d)));}else _0x1b0378['showlabels']?(document[_0x51e4b2(0x382)]=location[_0x51e4b2(0xaf9)],updateMixer()):document[_0x51e4b2(0x382)]=location[_0x51e4b2(0xaf9)];}}}if(_0x51e4b2(0x3e2)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x1a0)]==_0x51e4b2(0x70e))changeLowEQ(parseFloat(_0x2491a5['value']),_0x2491a5[_0x51e4b2(0x29d)]);else{if(_0x2491a5[_0x51e4b2(0x1a0)]==_0x51e4b2(0x315))changeMidEQ(parseFloat(_0x2491a5['value']),_0x2491a5[_0x51e4b2(0x29d)]);else _0x2491a5[_0x51e4b2(0x1a0)]=='high'&&changeHighEQ(parseFloat(_0x2491a5[_0x51e4b2(0x75b)]),_0x2491a5[_0x51e4b2(0x29d)]);}}if(_0x51e4b2(0x674)in _0x2491a5){var _0x46a11f=_0x1b0378[_0x51e4b2(0xa45)];if(_0x2491a5[_0x51e4b2(0x75b)]===_0x51e4b2(0x48f))_0x1b0378[_0x51e4b2(0xa45)]=![],log('noise\x20gate\x20off');else _0x2491a5[_0x51e4b2(0x75b)]==='true'?(_0x1b0378[_0x51e4b2(0xa45)]=!![],log(_0x51e4b2(0x808))):_0x1b0378[_0x51e4b2(0xa45)]=_0x2491a5['value'];_0x1b0378[_0x51e4b2(0xa45)]!==_0x46a11f&&senderAudioUpdate();}if(_0x51e4b2(0x6a0)in _0x2491a5){var _0x46a11f=_0x1b0378['compressor'];if(_0x2491a5[_0x51e4b2(0x75b)]===_0x51e4b2(0x48f))_0x1b0378[_0x51e4b2(0x8a8)]=![],log('noise\x20gate\x20off');else{if(_0x2491a5['value']==='1')_0x1b0378[_0x51e4b2(0x8a8)]=0x1,log('noise\x20gate\x20on');else _0x2491a5[_0x51e4b2(0x75b)]==='2'?(_0x1b0378['compressor']=0x2,log('noise\x20gate\x20on')):_0x1b0378['compressor']=parseInt(_0x2491a5[_0x51e4b2(0x75b)])||![];}_0x1b0378[_0x51e4b2(0x8a8)]!==_0x46a11f&&senderAudioUpdate();}_0x51e4b2(0x34a)in _0x2491a5&&(_0x1b0378[_0x51e4b2(0xa4e)]===![]?(_0x1b0378['micDelay']=parseInt(_0x2491a5['value'])||0x0,senderAudioUpdate()):(_0x1b0378['micDelay']=parseInt(_0x2491a5[_0x51e4b2(0x75b)])||0x0,changeMicDelay(_0x1b0378[_0x51e4b2(0xa4e)],_0x2491a5[_0x51e4b2(0x785)])));'requestChangeSubGain'in _0x2491a5&&changeSubGain(parseFloat(_0x2491a5[_0x51e4b2(0x75b)]),_0x2491a5[_0x51e4b2(0x785)]);'lowerhand'in _0x2491a5&&(_0x1b0378[_0x51e4b2(0x801)]&&lowerhand());if('mirrorGuestState'in _0x2491a5&&_0x51e4b2(0x72d)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x72d)]&&_0x2491a5[_0x51e4b2(0x72d)]===!![])_0x1b0378[_0x51e4b2(0x651)]=_0x2491a5[_0x51e4b2(0xa9c)],applyMirror(_0x1b0378[_0x51e4b2(0x5c4)]);else _0x2491a5['mirrorGuestTarget']&&_0x2491a5[_0x51e4b2(0x72d)]in _0x1b0378[_0x51e4b2(0x7cc)]&&(_0x1b0378[_0x51e4b2(0x7cc)][_0x2491a5[_0x51e4b2(0x72d)]][_0x51e4b2(0xa5f)]=_0x2491a5['mirrorGuestState'],_0x1b0378[_0x51e4b2(0x7cc)][_0x2491a5[_0x51e4b2(0x72d)]][_0x51e4b2(0x601)]&&applyMirrorGuest(_0x2491a5[_0x51e4b2(0xa9c)],_0x1b0378[_0x51e4b2(0x7cc)][_0x2491a5[_0x51e4b2(0x72d)]][_0x51e4b2(0x601)]));}if(_0x51e4b2(0x463)in _0x2491a5){var _0x445adc={};_0x445adc[_0x51e4b2(0x7b3)]=_0x42026f,_0x445adc[_0x51e4b2(0xa49)]=listAudioSettingsPrep(),sendMediaDevices(_0x445adc['UUID']),_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc,_0x445adc[_0x51e4b2(0x7b3)]);}if(_0x51e4b2(0x87d)in _0x2491a5){var _0x445adc={};_0x445adc['UUID']=_0x42026f,_0x445adc[_0x51e4b2(0x57b)]=listVideoSettingsPrep(),sendMediaDevices(_0x445adc[_0x51e4b2(0x7b3)]),_0x1b0378['sendMessage'](_0x445adc,_0x445adc[_0x51e4b2(0x7b3)]);}_0x51e4b2(0xa92)in _0x2491a5&&changeAudioOutputDeviceById(_0x2491a5[_0x51e4b2(0xa92)],_0x42026f);_0x51e4b2(0x7b1)in _0x2491a5&&changeAudioDeviceById(_0x2491a5[_0x51e4b2(0x7b1)],_0x42026f);'refreshMicrophone'in _0x2491a5&&refreshMicrophoneDevice(_0x42026f);_0x51e4b2(0x650)in _0x2491a5&&changeVideoDeviceById(_0x2491a5[_0x51e4b2(0x650)],_0x42026f);_0x51e4b2(0x179)in _0x2491a5&&changeLowCut(parseFloat(_0x2491a5[_0x51e4b2(0x75b)]),_0x2491a5[_0x51e4b2(0x29d)]);_0x51e4b2(0x179)in _0x2491a5&&changeLowCut(parseFloat(_0x2491a5[_0x51e4b2(0x75b)]),_0x2491a5['track']);_0x51e4b2(0x174)in _0x2491a5&&(_0x1b0378[_0x51e4b2(0x63e)]&&_0x1b0378[_0x51e4b2(0x174)]());if(_0x51e4b2(0x2e1)in _0x2491a5){}if(_0x51e4b2(0x96f)in _0x2491a5){var _0x4031c4=parseInt(_0x2491a5[_0x51e4b2(0x96f)])/0x64||0x0;_0x1b0378[_0x51e4b2(0x8f9)]=parseInt(_0x2491a5[_0x51e4b2(0x96f)])||0x0;try{for(var _0x51b60d in _0x1b0378[_0x51e4b2(0x314)]){log(_0x51e4b2(0xb42)),_0x1b0378[_0x51e4b2(0x314)][_0x51b60d]['gainNode'][_0x51e4b2(0x3d8)][_0x51e4b2(0x45f)](_0x4031c4,_0x1b0378[_0x51e4b2(0x314)][_0x51b60d][_0x51e4b2(0x999)][_0x51e4b2(0x6f8)]);}}catch(_0x410b2e){}updateVolume(!![]);}if(_0x51e4b2(0xa04)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0xa04)])_0x1b0378[_0x51e4b2(0x27e)]['indexOf'](_0x57ce35||_0x42026f)>=0x0&&(_0x1b0378['micIsolated'][_0x51e4b2(0x285)](_0x42026f),_0x1b0378['applyIsolatedChat']());else{var _0x9ac81a=_0x1b0378[_0x51e4b2(0x3b7)][_0x51e4b2(0x7ce)](_0x42026f);_0x9ac81a>-0x1&&(_0x1b0378['micIsolated'][_0x51e4b2(0xa4a)](_0x9ac81a,0x1),_0x1b0378['applyIsolatedChat']());}}if(_0x51e4b2(0x981)in _0x2491a5){if(_0x2491a5['lowerVolume'])_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0&&(_0x1b0378['lowerVolume']['push'](_0x42026f),_0x1b0378[_0x51e4b2(0x65c)]());else{var _0x9ac81a=_0x1b0378['lowerVolume'][_0x51e4b2(0x7ce)](_0x42026f);_0x9ac81a>-0x1&&(_0x1b0378[_0x51e4b2(0x981)][_0x51e4b2(0xa4a)](_0x9ac81a,0x1),_0x1b0378[_0x51e4b2(0x65c)]());}}_0x51e4b2(0x89d)in _0x2491a5&&(_0x2491a5[_0x51e4b2(0x89d)]?(_0x1b0378['directorSpeakerMuted']=!![],_0x1b0378[_0x51e4b2(0x670)]()):(_0x1b0378[_0x51e4b2(0x810)]=![],_0x1b0378['directorSpeakerMute']()));_0x51e4b2(0x8d5)in _0x2491a5&&(_0x2491a5[_0x51e4b2(0x8d5)]?(_0x1b0378[_0x51e4b2(0x3ea)]=!![],_0x1b0378['directorDisplayMute']()):(_0x1b0378[_0x51e4b2(0x3ea)]=![],_0x1b0378[_0x51e4b2(0x513)]()));if(_0x51e4b2(0x24d)in _0x2491a5){_0x1b0378[_0x51e4b2(0x24d)]=_0x2491a5[_0x51e4b2(0x24d)],toggleVideoMute(!![]);if(!_0x1b0378['videoMuted']){var _0x445adc={};_0x445adc[_0x51e4b2(0x283)]=_0x1b0378[_0x51e4b2(0x24d)],_0x1b0378[_0x51e4b2(0x7ff)](_0x445adc);}}_0x51e4b2(0x66e)in _0x2491a5&&applyNewParams(_0x2491a5['changeParams']);}if(_0x1b0378[_0x51e4b2(0x63e)]===(_0x57ce35||_0x42026f)){_0x2491a5[_0x51e4b2(0x169)]===_0x51e4b2(0x59a)&&(warnlog(_0x51e4b2(0x923)),_0x51e4b2(0x86f)in _0x2491a5&&(_0x51e4b2(0x8f4)in _0x2491a5[_0x51e4b2(0x86f)]&&(_0x1b0378[_0x51e4b2(0x8f4)]=_0x2491a5['roomenc']),_0x51e4b2(0x259)in _0x2491a5['transferSettings']&&(_0x2491a5[_0x51e4b2(0x86f)][_0x51e4b2(0x259)]===!![]||_0x2491a5[_0x51e4b2(0x86f)]['broadcast']===null?(_0x1b0378[_0x51e4b2(0x259)]=null,_0x1b0378[_0x51e4b2(0x91e)]===![]&&(_0x1b0378[_0x51e4b2(0x91e)]=0x2),_0x1b0378['style']===![]&&(_0x1b0378[_0x51e4b2(0x90b)]=0x1),_0x1b0378[_0x51e4b2(0x519)]===null&&(_0x1b0378[_0x51e4b2(0x519)]=!![])):_0x1b0378[_0x51e4b2(0x259)]=_0x2491a5[_0x51e4b2(0x86f)][_0x51e4b2(0x259)],_0x2491a5[_0x51e4b2(0x86f)][_0x51e4b2(0x36a)]&&(_0x1b0378[_0x51e4b2(0x259)]!==![]?_0x1b0378['broadcast']===null?updateURL('broadcast',!![]):updateURL(_0x51e4b2(0x2f8)+_0x1b0378['broadcast'],!![]):updateURL('broadcast=false',!![]))),'roomid'in _0x2491a5[_0x51e4b2(0x86f)]&&(_0x1b0378[_0x51e4b2(0x85b)]=_0x2491a5[_0x51e4b2(0x86f)][_0x51e4b2(0x85b)],_0x2491a5[_0x51e4b2(0x86f)]['updateurl']&&updateURL(_0x51e4b2(0xa39)+_0x1b0378[_0x51e4b2(0x85b)],!![])),_0x51e4b2(0x9cd)in _0x2491a5['transferSettings']&&(_0x1b0378['queue']=_0x2491a5[_0x51e4b2(0x86f)]['queue'],_0x1b0378[_0x51e4b2(0x9cd)]&&(_0x1b0378['queue']=0x2),_0x2491a5['transferSettings'][_0x51e4b2(0x36a)]&&(_0x1b0378['queue']?updateURL(_0x51e4b2(0x9cd),!![]):updateURL(_0x51e4b2(0x967),!![]))),_0x51e4b2(0xa08)in _0x2491a5[_0x51e4b2(0x86f)]&&(_0x1b0378[_0x51e4b2(0x9cd)]&&(_0x1b0378[_0x51e4b2(0x9cd)]=0x3,_0x2491a5['transferSettings'][_0x51e4b2(0x36a)]&&updateURL('queue=false',!![])))),_0x1b0378[_0x51e4b2(0xad5)]&&_0x1b0378['layout']&&(_0x1b0378[_0x51e4b2(0x33d)]=![],_0x1b0378[_0x51e4b2(0xad5)]=![],updateMixer()));try{if('directorSettings'in _0x2491a5&&_0x51e4b2(0x5bf)in _0x2491a5['directorSettings'])for(var _0x47f9c0=0x0;_0x47f9c0<_0x2491a5[_0x51e4b2(0x734)][_0x51e4b2(0x5bf)]['length'];_0x47f9c0++){if(!_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x8a3)](_0x2491a5['directorSettings'][_0x51e4b2(0x5bf)][_0x47f9c0][_0x51e4b2(0x6f5)])){_0x1b0378[_0x51e4b2(0x27e)]['push'](_0x2491a5[_0x51e4b2(0x734)][_0x51e4b2(0x5bf)][_0x47f9c0][_0x51e4b2(0x6f5)]());var _0x5232ee=getById(_0x51e4b2(0x539)+_0x2491a5[_0x51e4b2(0x734)][_0x51e4b2(0x5bf)][_0x47f9c0][_0x51e4b2(0x6f5)]());_0x5232ee&&_0x5232ee['classList'][_0x51e4b2(0x34e)](_0x51e4b2(0x67b));}}}catch(_0x42f667){errorlog(_0x42f667);}if(_0x51e4b2(0x814)in _0x2491a5)try{_0x1b0378[_0x51e4b2(0x7ff)]({'cbid':_0x2491a5[_0x51e4b2(0x814)]},_0x42026f);}catch(_0x3fcdbf){errorlog(_0x3fcdbf);}}if('requestVideoHack'in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0||_0x1b0378[_0x51e4b2(0x2fb)]===!![]||_0x1b0378[_0x51e4b2(0x2fb)]&&_0x51e4b2(0x2fb)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)])_0x51e4b2(0x2fd)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x2fd)]?updateCameraConstraints(_0x2491a5[_0x51e4b2(0x1a0)],_0x2491a5['value'],!![],_0x42026f):updateCameraConstraints(_0x2491a5[_0x51e4b2(0x1a0)],_0x2491a5[_0x51e4b2(0x75b)],![],![]);else return;}if(_0x51e4b2(0x396)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x27e)]['indexOf'](_0x57ce35||_0x42026f)>=0x0||_0x1b0378[_0x51e4b2(0x2fb)]===!![]||_0x1b0378['remote']&&_0x51e4b2(0x2fb)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)])_0x1b0378[_0x51e4b2(0x317)](parseFloat(_0x2491a5[_0x51e4b2(0x396)]),_0x2491a5[_0x51e4b2(0x3b8)]||![]);else return;}if(_0x51e4b2(0x9c1)in _0x2491a5){if(_0x1b0378['directorList']['indexOf'](_0x57ce35||_0x42026f)>=0x0||_0x1b0378[_0x51e4b2(0x2fb)]===!![]||_0x1b0378[_0x51e4b2(0x2fb)]&&'remote'in _0x2491a5&&_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378['remote'])_0x1b0378[_0x51e4b2(0xab2)](parseFloat(_0x2491a5[_0x51e4b2(0x9c1)]));else return;}if(_0x51e4b2(0x377)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x27e)][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0||_0x1b0378['remote']===!![]||_0x1b0378[_0x51e4b2(0x2fb)]&&_0x51e4b2(0x2fb)in _0x2491a5&&_0x2491a5['remote']===_0x1b0378['remote'])_0x1b0378[_0x51e4b2(0x175)](parseFloat(_0x2491a5[_0x51e4b2(0x377)]));else return;}if(_0x51e4b2(0x8b3)in _0x2491a5){if(_0x1b0378['directorList'][_0x51e4b2(0x7ce)](_0x57ce35||_0x42026f)>=0x0||_0x1b0378['remote']===!![]||_0x1b0378[_0x51e4b2(0x2fb)]&&_0x51e4b2(0x2fb)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)])_0x1b0378['remoteTilt'](parseFloat(_0x2491a5[_0x51e4b2(0x8b3)]));else return;}if(_0x51e4b2(0x4fa)in _0x2491a5){if(_0x1b0378[_0x51e4b2(0x27e)]['indexOf'](_0x57ce35||_0x42026f)>=0x0||_0x1b0378[_0x51e4b2(0x2fb)]===!![]||_0x1b0378[_0x51e4b2(0x2fb)]&&'remote'in _0x2491a5&&_0x2491a5[_0x51e4b2(0x2fb)]===_0x1b0378[_0x51e4b2(0x2fb)])_0x1b0378[_0x51e4b2(0x833)](parseFloat(_0x2491a5[_0x51e4b2(0x4fa)]));else return;}if(_0x51e4b2(0x53a)in _0x2491a5){log(_0x51e4b2(0x53a));try{_0x1b0378[_0x51e4b2(0x70a)](_0x42026f,_0x2491a5['requestFile']);}catch(_0x29376a){errorlog(_0x29376a);}}_0x51e4b2(0x706)in _0x2491a5&&playbackMIDI(_0x2491a5[_0x51e4b2(0x706)],!![],_0x42026f);}catch(_0x5e40cd){errorlog(_0x5e40cd);}if('rejected'in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x839)]==_0x51e4b2(0x65b)){if(_0x1b0378['remote'])warnUser(getTranslation(_0x51e4b2(0x841)),0xbb8);else document[_0x51e4b2(0x55d)]('#obsRemotePassword>input')&&document[_0x51e4b2(0x55d)](_0x51e4b2(0xa0a))[_0x51e4b2(0x75b)]?warnUser(getTranslation('invalid-remote-code-obs'),0x1b58):warnUser(getTranslation('request-rejected-obs'),0x2710);getById(_0x51e4b2(0xa5d))[_0x51e4b2(0xb06)][_0x51e4b2(0x6ce)](_0x51e4b2(0xa37));}else{if(_0x1b0378['director'])!_0x1b0378[_0x51e4b2(0x379)]&&warnUser(_0x51e4b2(0x60f)+_0x2491a5['rejected']+_0x51e4b2(0x43d),0x1388);else!_0x1b0378[_0x51e4b2(0x379)]&&(_0x1b0378['remote']?warnUser(_0x51e4b2(0x9ac),0x1388):warnUser(_0x51e4b2(0x951),0x1388));}errorlog(_0x51e4b2(0x60e)+_0x2491a5[_0x51e4b2(0x839)]+_0x51e4b2(0x6fa)+_0x1b0378[_0x51e4b2(0x91b)]),pokeIframeAPI(_0x51e4b2(0x839),_0x2491a5['rejected'],_0x42026f);return;}else{if(_0x51e4b2(0x809)in _0x2491a5){log(_0x51e4b2(0x4e3)+_0x2491a5[_0x51e4b2(0x809)]),pokeIframeAPI(_0x51e4b2(0x809),_0x2491a5['approved'],_0x42026f);return;}}if(_0x51e4b2(0x95b)in _0x2491a5||_0x51e4b2(0xace)in _0x2491a5){log('ASKING\x20FOR\x20AUDIO\x20AND\x20VIDEO?');_0x2491a5[_0x51e4b2(0x95b)]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9ff)]=_0x2491a5[_0x51e4b2(0x95b)]);if(_0x1b0378[_0x51e4b2(0x974)]&&_0x51e4b2(0x975)in _0x2491a5&&_0x2491a5['allowwebp']!==![])_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x2dd)]=_0x2491a5[_0x51e4b2(0x975)],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x345)]=![],setTimeout(function(){makeImages(!![]);},0x3e8);else _0x2491a5['video']&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x345)]=_0x2491a5['video']);_0x51e4b2(0x259)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x259)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowBroadcast']=_0x2491a5['broadcast']);'allowchunked'in _0x2491a5&&_0x2491a5[_0x51e4b2(0x5fb)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x71f)]=_0x2491a5[_0x51e4b2(0x5fb)]);if(_0x51e4b2(0x1ec)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x1ec)]){_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x566)]=_0x2491a5[_0x51e4b2(0x1ec)];try{_0x1b0378[_0x51e4b2(0x601)]&&_0x1b0378['videoElement'][_0x51e4b2(0xacd)]&&_0x1b0378['videoElement'][_0x51e4b2(0xacd)]();}catch(_0x369350){errorlog(_0x369350);}}_0x51e4b2(0x812)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x812)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x883)]=_0x2491a5[_0x51e4b2(0x812)]);'widget'in _0x2491a5&&_0x2491a5[_0x51e4b2(0x856)]!==![]&&(_0x1b0378['pcs'][_0x42026f]['allowWidget']=_0x2491a5[_0x51e4b2(0x856)]);'allowmidi'in _0x2491a5&&_0x2491a5['allowmidi']!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x61d)]=_0x2491a5[_0x51e4b2(0xa43)]);_0x51e4b2(0x96c)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x96c)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowResources']=_0x2491a5['allowresources']);'downloads'in _0x2491a5&&_0x2491a5[_0x51e4b2(0x328)]!==![]&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0xa11)]=_0x2491a5[_0x51e4b2(0x328)]);_0x51e4b2(0x816)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x816)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x8c2)]=!![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0xb3b)]=!![]);_0x51e4b2(0x580)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x580)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xb3b)]=!![]);_0x51e4b2(0x1d2)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x1d2)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x8c2)]=!![]);_0x51e4b2(0xac8)in _0x2491a5&&_0x2491a5[_0x51e4b2(0xac8)]!==![]&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0xac8)]=_0x2491a5['preferVideoCodec'][_0x51e4b2(0xaf5)]());if(_0x1b0378['preferAudioCodec'])_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x3f6)]=_0x1b0378[_0x51e4b2(0x3f6)];else _0x51e4b2(0x3f6)in _0x2491a5&&_0x2491a5[_0x51e4b2(0x3f6)]!==![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['preferAudioCodec']=_0x2491a5['preferAudioCodec'][_0x51e4b2(0xaf5)]());if(_0x51e4b2(0x869)in _0x2491a5&&_0x2491a5['allowmeshcast']===![])_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x69f)]=![];else{if(_0x51e4b2(0x6ac)in _0x2491a5&&_0x2491a5['allowwhipout']===![])_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x69f)]=![];else{if(_0x1b0378[_0x51e4b2(0x9b6)]){if(_0x1b0378[_0x51e4b2(0x9b6)]==_0x51e4b2(0xace))_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x345)]=![];else{if(_0x1b0378[_0x51e4b2(0x9b6)]=='audio')_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x9ff)]=![];else _0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x345)]==![]?_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x69f)]=![]:(_0x1b0378['pcs'][_0x42026f]['allowAudio']=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x345)]=![]);}}else _0x1b0378[_0x51e4b2(0x79b)]&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x9ff)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x345)]=![]);}}if(_0x1b0378[_0x51e4b2(0x7fa)]){window[_0x51e4b2(0x9c1)]();_0x1b0378[_0x51e4b2(0x657)]&&playtone();var _0x4f6ab6=![];_0x42026f in _0x1b0378[_0x51e4b2(0x7cc)]&&_0x1b0378[_0x51e4b2(0x7cc)][_0x42026f][_0x51e4b2(0x4a1)]&&(_0x4f6ab6=_0x1b0378[_0x51e4b2(0x7cc)][_0x42026f][_0x51e4b2(0x4a1)]||_0x1b0378['rpcs'][_0x42026f]['streamID']||![]);_0x4f6ab6=_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4a1)]||_0x4f6ab6||_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x791)]||_0x42026f||_0x51e4b2(0x6f7);var _0x18441b=await confirmAlt(_0x4f6ab6+getTranslation(_0x51e4b2(0x2f1)),!![]);if(!_0x18441b){try{log('closing\x2013'),_0x1b0378['closePC'](_0x42026f);}catch(_0x1949ee){}return;}}'guest'in _0x2491a5&&(_0x2491a5[_0x51e4b2(0xac6)]==!![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xac6)]=!![],_0x1b0378[_0x51e4b2(0x657)]&&(playtone(![],_0x51e4b2(0xa0d)),showNotification(_0x51e4b2(0xaca),'')),pokeIframeAPI(_0x51e4b2(0x65a),_0x2491a5['director'],_0x42026f)));_0x51e4b2(0x964)in _0x2491a5&&(_0x2491a5['forceios']===!![]&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x964)]=!![]));_0x51e4b2(0x2fb)in _0x2491a5&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x2fb)]=_0x2491a5['remote']);_0x51e4b2(0x8fb)in _0x2491a5&&(_0x2491a5[_0x51e4b2(0x8fb)]==!![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['limitAudio']=!![]));_0x51e4b2(0x742)in _0x2491a5&&(_0x2491a5[_0x51e4b2(0x742)]==!![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['enhanceAudio']=!![]));_0x2491a5[_0x51e4b2(0xa7e)]&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0xad2)]=_0x2491a5['degrade']);if(_0x51e4b2(0xa16)in _0x2491a5)try{_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xa16)]=_0x2491a5['keyframeRate'],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['keyframeRate']&&setTimeout(function(_0x20a7e4){var _0x23fccc=_0x51e4b2;_0x1b0378[_0x23fccc(0x8b5)](_0x20a7e4);},0x1388,_0x42026f);}catch(_0x46107c){warnlog(_0x46107c);}_0x51e4b2(0x7b8)in _0x2491a5&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x7b8)]=_0x2491a5[_0x51e4b2(0x7b8)]);_0x51e4b2(0x33d)in _0x2491a5&&(!_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['layout']&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x33d)]=_0x2491a5[_0x51e4b2(0x33d)]));if(_0x51e4b2(0x333)in _0x2491a5){if(_0x2491a5[_0x51e4b2(0x333)]!==![]){try{typeof _0x2491a5['scene']===_0x51e4b2(0x22a)?_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['scene']=_0x2491a5[_0x51e4b2(0x333)][_0x51e4b2(0x4d3)](/[\W]+/g,'_'):_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x333)]=(parseInt(_0x2491a5[_0x51e4b2(0x333)])||0x0)+'',_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x36c)][_0x51e4b2(0x333)]=_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['scene'],updateSceneList(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x333)]);}catch(_0x520142){errorlog(_0x520142);}_0x51e4b2(0x4ce)in _0x2491a5?_0x1b0378['pcs'][_0x42026f]['showDirector']=_0x2491a5[_0x51e4b2(0x4ce)]:_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4ce)]=_0x1b0378[_0x51e4b2(0x4ce)];if(_0x1b0378[_0x51e4b2(0x91b)]){if(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['showDirector']==![])_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9ff)]=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x345)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x883)]=![],_0x1b0378['pcs'][_0x42026f]['allowDrawing']=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9b3)]=![],_0x1b0378['pcs'][_0x42026f]['whipout']=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x2dd)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x8c2)]=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0xb3b)]=![];else{if(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['showDirector']==0x1)_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x883)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9b3)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowDrawing']=![];else{if(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4ce)]==0x2)_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9ff)]=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x8c2)]=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x883)]=![],_0x1b0378['pcs'][_0x42026f]['allowWidget']=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x566)]=![];else{if(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4ce)]==0x3)_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9ff)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowVideo']=![],_0x1b0378['pcs'][_0x42026f]['allowIframe']=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x9b3)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x69f)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x2dd)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowDrawing']=![];else{if(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x4ce)]==0x4){}}}}}broadcastSlotUpdate(_0x42026f);}_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x7b8)]?pokeIframeAPI(_0x51e4b2(0x246),_0x2491a5[_0x51e4b2(0x333)],_0x42026f):pokeIframeAPI('scene-connected',_0x2491a5['scene'],_0x42026f);}_0x1b0378[_0x51e4b2(0x58a)](_0x42026f);}else _0x2491a5[_0x51e4b2(0x91b)]&&((iOS||iPad)&&(_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x964)]==!![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xac6)]=!![])),_0x1b0378[_0x51e4b2(0x657)]&&(playtone(![],_0x51e4b2(0xa0d)),showNotification('A\x20director\x20joined\x20the\x20room',_0x51e4b2(0x896))),_0x1b0378['initialDirectorSync'](_0x42026f),pokeIframeAPI('director-connected',_0x2491a5[_0x51e4b2(0x91b)],_0x42026f));if(_0x1b0378['director'])'hidedirector'in _0x2491a5&&(_0x2491a5[_0x51e4b2(0xa15)]==!![]&&(_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9ff)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowVideo']=![],_0x1b0378['pcs'][_0x42026f][_0x51e4b2(0x883)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x9b3)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x69f)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowWebp']=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f]['allowScreenAudio']=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0xb3b)]=![],_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x566)]=![])),_0x1b0378[_0x51e4b2(0x747)](_0x42026f);else _0x1b0378[_0x51e4b2(0x9cd)]&&_0x1b0378[_0x51e4b2(0xa29)]==0x3&&!_0x1b0378[_0x51e4b2(0x91b)]?_0x1b0378[_0x51e4b2(0x71c)][_0x42026f][_0x51e4b2(0x225)]=!![]:_0x1b0378[_0x51e4b2(0x747)](_0x42026f);}},_0x1b0378[_0x1fad2(0x58a)]=function(_0x3f667a){var _0x5e5ece=_0x1fad2;if(!(_0x1b0378[_0x5e5ece(0x32d)]||_0x1b0378[_0x5e5ece(0x333)]))return;try{var _0x54c2a3={};_0x1b0378[_0x5e5ece(0x71c)][_0x3f667a]&&(_0x54c2a3[_0x5e5ece(0x734)]=getDirectorSettings(_0x1b0378[_0x5e5ece(0x71c)][_0x3f667a]['scene']));log(_0x5e5ece(0x33c)+_0x3f667a);var _0x3cd284=![];_0x1b0378['alreadyJoinedMembers']&&_0x1b0378[_0x5e5ece(0x4cc)][_0x5e5ece(0x6fb)](_0x561079=>{var _0x14ff6c=_0x5e5ece;_0x561079[_0x14ff6c(0x7b3)]===_0x3f667a&&(_0x3cd284=!![]);}),!_0x3cd284?_0x54c2a3[_0x5e5ece(0x32d)]=getDetailedState():warnlog(_0x5e5ece(0x42f)),Object[_0x5e5ece(0x69e)](_0x54c2a3)[_0x5e5ece(0x5a7)]&&_0x1b0378[_0x5e5ece(0x50a)](_0x54c2a3,_0x3f667a);}catch(_0x41a03e){}},_0x1b0378[_0x1fad2(0x71e)]=function(_0x538df6){var _0xfeea9c=_0x1fad2;log(_0xfeea9c(0x829));if(!_0x1b0378['hostedFiles']||!_0x1b0378['hostedFiles'][_0xfeea9c(0x5a7)])return;var _0x147ab0={},_0x18b04d=[];for(var _0x2a457a=0x0;_0x2a457a<_0x1b0378[_0xfeea9c(0x966)][_0xfeea9c(0x5a7)];_0x2a457a++){(_0x1b0378[_0xfeea9c(0x966)][_0x2a457a][_0xfeea9c(0x4af)]===![]||_0x1b0378[_0xfeea9c(0x966)][_0x2a457a][_0xfeea9c(0x4af)]===_0x538df6)&&_0x18b04d[_0xfeea9c(0x285)]({'id':_0x1b0378['hostedFiles'][_0x2a457a]['id'],'name':_0x1b0378[_0xfeea9c(0x966)][_0x2a457a]['name'],'size':_0x1b0378[_0xfeea9c(0x966)][_0x2a457a][_0xfeea9c(0x84f)]});}_0x147ab0[_0xfeea9c(0x59b)]=_0x18b04d;if(_0x538df6 in _0x1b0378[_0xfeea9c(0x71c)])_0x1b0378[_0xfeea9c(0x7ff)](_0x147ab0,_0x538df6);else _0x538df6 in _0x1b0378[_0xfeea9c(0x7cc)]&&_0x1b0378[_0xfeea9c(0x32f)](_0x147ab0,_0x538df6);log(_0x147ab0);},_0x1b0378['initialPublish']=function(_0x2d0190){var _0x49bc45=_0x1fad2;log('INITIAL\x20PUBLISH\x20START:\x20'+_0x2d0190);if(_0x2d0190 in _0x1b0378[_0x49bc45(0x71c)])_0x1b0378['pcs'][_0x2d0190]['needsPublishing']=![];else{errorlog('UUID\x20not\x20found\x20in\x20pcs');return;}getSenders2(_0x2d0190)[_0x49bc45(0x5a7)]&&errorlog(_0x49bc45(0x5ad)+getSenders2(_0x2d0190)[_0x49bc45(0x5a7)]);if(_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0x883)]===!![]){if(_0x1b0378['iframeSrc']){var _0x5e527c={};_0x5e527c[_0x49bc45(0x9b4)]=_0x1b0378[_0x49bc45(0x9b4)],_0x1b0378[_0x49bc45(0x753)]&&_0x1b0378[_0x49bc45(0x753)][_0x49bc45(0xabe)]&&(_0x1b0378[_0x49bc45(0x9b4)][_0x49bc45(0x23c)](_0x49bc45(0x564))&&(_0x5e527c[_0x49bc45(0x9b4)]+=_0x49bc45(0x62c)+parseInt(Math['ceil'](_0x1b0378['iframeEle'][_0x49bc45(0xabe)][_0x49bc45(0xabc)]['t']))+'')),_0x1b0378[_0x49bc45(0x7ff)](_0x5e527c,_0x2d0190);}}if(_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0x9b3)]===!![]){if(_0x1b0378[_0x49bc45(0x856)]&&_0x1b0378[_0x49bc45(0x91b)]){var _0x5e527c={};_0x5e527c[_0x49bc45(0x4db)]=_0x1b0378[_0x49bc45(0x856)],_0x1b0378[_0x49bc45(0x7ff)](_0x5e527c,_0x2d0190);}}_0x1b0378[_0x49bc45(0x71c)][_0x2d0190]['allowDownloads']===!![]&&_0x1b0378[_0x49bc45(0x71e)](_0x2d0190);_0x1b0378['pcs'][_0x2d0190][_0x49bc45(0x2cb)]===!![]&&_0x1b0378[_0x49bc45(0x2ad)](_0x2d0190);let _0x2afd48=![];if(_0x1b0378[_0x49bc45(0x861)]&&_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0x71f)]){_0x1b0378[_0x49bc45(0xa73)](_0x2d0190);if(_0x1b0378['pcs'][_0x2d0190]['allowChunked']!==0x2)return;_0x2afd48=!![];}var _0x1c8978=_0x1b0378[_0x49bc45(0x613)]();log(_0x49bc45(0x456)),log(_0x1c8978[_0x49bc45(0xa5c)]());if(_0x1b0378[_0x49bc45(0xa14)]&&_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0x69f)]===null){_0x1b0378['pcs'][_0x2d0190]['whipout']=!![];var _0x5e527c={};_0x5e527c[_0x49bc45(0x66a)]=_0x1b0378[_0x49bc45(0xa14)],_0x1b0378[_0x49bc45(0x7ff)](_0x5e527c,_0x2d0190),warnlog(_0x5e527c);}!_0x2afd48&&(_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0xb3b)]||_0x1b0378['pcs'][_0x2d0190]['allowScreenAudio'])&&createSecondStream2(_0x2d0190);var _0x57fbc3=![];!_0x2afd48&&_0x1c8978[_0x49bc45(0x527)]()[_0x49bc45(0x6fb)](async _0x343bd2=>{var _0x5c900d=_0x49bc45;try{if(_0x1b0378[_0x5c900d(0x71c)][_0x2d0190]['allowVideo']===!![]){if(_0x343bd2[_0x5c900d(0x759)]==_0x5c900d(0xace)){if(_0x1b0378[_0x5c900d(0x71c)][_0x2d0190][_0x5c900d(0xac6)]===!![]&&_0x1b0378['roombitrate']===0x0)log(_0x5c900d(0x931));else{let _0x24e852=_0x1b0378[_0x5c900d(0x71c)][_0x2d0190]['addTrack'](_0x343bd2,_0x1c8978);if(_0x24e852&&_0x1b0378['encodedInsertableStreams'])try{setupSenderTransform(_0x24e852,_0x2d0190);}catch(_0x1b24b6){errorlog(_0x1b24b6);}warnlog(_0x5c900d(0x152)),_0x57fbc3=!![],setTimeout(function(_0x13a7b0){var _0x3e856c=_0x5c900d;try{_0x1b0378[_0x3e856c(0x47b)](_0x13a7b0);}catch(_0x1e4de5){warnlog(_0x1e4de5);}},_0x1b0378[_0x5c900d(0x941)],_0x2d0190);}}}}catch(_0x79a6f5){errorlog(_0x79a6f5);}});_0x1b0378[_0x49bc45(0xa7c)]&&(_0x1c8978=mixMinusAudio(_0x2d0190));_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0x9ff)]&&(_0x1c8978[_0x49bc45(0x834)]()[_0x49bc45(0x6fb)](_0xac2252=>{var _0x281831=_0x49bc45;try{_0xac2252[_0x281831(0x759)]==_0x281831(0x95b)&&(_0x1b0378[_0x281831(0x71c)][_0x2d0190][_0x281831(0x428)](_0xac2252,_0x1c8978),warnlog(_0x281831(0x690)));}catch(_0x226e93){errorlog(_0x226e93);}}),log(_0x49bc45(0x153)),_0x1c8978[_0x49bc45(0x834)]()['length']&&(_0x1b0378[_0x49bc45(0x91b)]!==![]&&_0x1b0378[_0x49bc45(0x515)](),log('starting\x20kicker'),_0x1b0378['pcs'][_0x2d0190][_0x49bc45(0x9f9)]===!![]&&(warnlog('limiting\x20AudioEncoder'),setTimeout(_0x1b0378[_0x49bc45(0x80a)],0x3e8,_0x2d0190,0x7d00,0x0)),_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0x3af)]===!![]&&setTimeout(_0x1b0378['enhanceAudioEncoder'],0x3e8,_0x2d0190)));if(_0x1b0378['pcs'][_0x2d0190][_0x49bc45(0xad2)])setTimeout(_0x1b0378[_0x49bc45(0xad2)],0x3e8,_0x2d0190,_0x1b0378[_0x49bc45(0x71c)][_0x2d0190][_0x49bc45(0xad2)]);else{if(_0x1b0378[_0x49bc45(0x369)]&&SafariVersion){if(_0x1b0378[_0x49bc45(0x369)]==_0x49bc45(0x84b))setTimeout(_0x1b0378[_0x49bc45(0xad2)],0x3e8,_0x2d0190,_0x49bc45(0xb45));else _0x1b0378[_0x49bc45(0x369)]=='motion'&&setTimeout(_0x1b0378['degradationPreference'],0x3e8,_0x2d0190,_0x49bc45(0x360));}}if(iOS||iPad){if(SafariVersion&&SafariVersion<=0xd){}else _0x57fbc3&&(setTimeout(function(_0x50a181){_0x1b0378['setScale'](_0x50a181,null,!![]);},0x7d0,_0x2d0190),setTimeout(function(_0x2800fe){var _0x33a08d=_0x49bc45,_0x22fa64=_0x1b0378[_0x33a08d(0x537)](_0x2800fe);!_0x22fa64&&_0x1b0378[_0x33a08d(0x316)](_0x2800fe,0x64,!![]);},0x1388,_0x2d0190));}else setTimeout(function(_0x52844a){var _0x11b43c=_0x49bc45;_0x1b0378[_0x11b43c(0x537)](_0x52844a);},0x3e8,_0x2d0190);},_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x474)]=function(_0x5fb5f0){var _0xa4da5f=_0x1fad2;if(!(_0x2fe69f in _0x1b0378[_0xa4da5f(0x71c)]))return;try{if(this['iceConnectionState']===_0xa4da5f(0x354))log(_0xa4da5f(0x56e));else{if(this[_0xa4da5f(0x342)]===_0xa4da5f(0x795))log(_0xa4da5f(0x761));else{if(this['iceConnectionState']===_0xa4da5f(0xa21))log('ICE\x20FAILed.\x20bad?');else this[_0xa4da5f(0x342)]===_0xa4da5f(0x457)?log('iceConnectionState\x20==\x20connected'):log(this[_0xa4da5f(0x342)]);}}}catch(_0x5a3776){errorlog(_0x5a3776);}},_0x1b0378['pcs'][_0x2fe69f][_0x1fad2(0x275)]=function(_0x467a01){var _0x241dd0=_0x1fad2;switch(_0x1b0378['pcs'][_0x2fe69f][_0x241dd0(0x71a)]){case _0x241dd0(0x457):log(_0x241dd0(0xa0e)),clearTimeout(_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x757)]);if(_0x1b0378[_0x241dd0(0xaa4)]){if(_0x1b0378['ws'][_0x241dd0(0x240)]!==0x1){_0x1b0378['ws'][_0x241dd0(0x635)]();break;}_0x1b0378['ws'][_0x241dd0(0x635)](),setTimeout(function(){var _0x2025d4=_0x241dd0;_0x1b0378[_0x2025d4(0x379)]!=!![]&&warnUser(getTranslation(_0x2025d4(0x715)));},0x1);}break;case _0x241dd0(0x795):log(_0x241dd0(0x182)),clearTimeout(_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x757)]),_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f]['closeTimeout']=setTimeout(function(_0x236aa8){var _0x25bbf3=_0x241dd0;_0x236aa8 in _0x1b0378[_0x25bbf3(0x71c)]?(warnlog(_0x25bbf3(0xa76)),_0x1b0378[_0x25bbf3(0x6eb)](_0x236aa8)):errorlog('\x20---\x20PC\x20TIMED\x20OUT\x20and\x20already\x20deleted.\x20shouldn\x27t\x20happen');},_0x1b0378['reconnectSpeed'][0x0],_0x2fe69f);break;case _0x241dd0(0xa21):warnlog(_0x241dd0(0x98e));_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f]&&(_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x957)]=0x0,_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x757)]&&(log(_0x241dd0(0x7f7)),clearTimeout(_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x757)])),_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x7a1)]?(log('ice\x20restart\x20real'),_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x7a1)]()):(log(_0x241dd0(0x6c6)),_0x1b0378[_0x241dd0(0x2a3)](_0x2fe69f,!![])));break;case _0x241dd0(0x354):warnlog(_0x241dd0(0x51b)),log(_0x241dd0(0x932)),_0x1b0378[_0x241dd0(0x6eb)](_0x2fe69f);break;default:log(_0x241dd0(0x29f)+_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f][_0x241dd0(0x71a)]),clearTimeout(_0x1b0378[_0x241dd0(0x71c)][_0x2fe69f]['closeTimeout']);break;}},_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f][_0x1fad2(0x7ee)]=function(_0x135dc8){var _0x4c7738=_0x1fad2;warnlog(_0x4c7738(0xb2c)),log(_0x4c7738(0x876)),_0x1b0378[_0x4c7738(0x6eb)](_0x2fe69f);},_0x1b0378[_0x1fad2(0x71c)][_0x2fe69f]['onopen']=function _0x576635(){var _0x17736b=_0x1fad2;log(_0x17736b(0x6fd));};},_0x1b0378[_0x2f55f4(0x4fc)]=function(_0x4f06b7){var _0x41a49f=_0x2f55f4,_0x5c4675=_0x4f06b7['UUID'];if(_0x4f06b7['description'][_0x41a49f(0x7a5)]==_0x41a49f(0x907))_0x1b0378[_0x41a49f(0x8ff)](_0x4f06b7),_0x1b0378[_0x41a49f(0x2e6)](_0x4f06b7);else try{if(!(_0x4f06b7['UUID']in _0x1b0378[_0x41a49f(0x71c)]))return;var _0x35a995=_0x1b0378['maxvideobitrate'];if(_0x1b0378[_0x41a49f(0x53f)]&&_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['guest']==!![]&&_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x964)]==![]){if(_0x35a995===![]||_0x35a995>_0x1b0378['maxMobileBitrate']){var _0x51d011=Object['keys'](_0x1b0378['pcs'])['length'];if(_0x1b0378[_0x41a49f(0x35a)])_0x35a995=_0x1b0378[_0x41a49f(0x439)];else{if(_0x51d011>0x4)_0x35a995=_0x1b0378[_0x41a49f(0x2ba)];else(iOS||iPad)&&SafariVersion&&SafariVersion<=0xd?_0x35a995=_0x1b0378[_0x41a49f(0x2ba)]:_0x35a995=_0x1b0378[_0x41a49f(0x439)];}}if(iOS||iPad){if(_0x35a995!==![]){if(_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x1a8)]===![])_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb11)]=_0x35a995,_0x4f06b7[_0x41a49f(0x5c9)]['sdp']=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],_0x41a49f(0x4bc),_0x1b0378[_0x41a49f(0x357)]),_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x4c6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],{'min':parseInt(_0x35a995/0xa)||0x1,'max':_0x35a995});else _0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['savedBitrate']>_0x35a995&&(_0x1b0378['pcs'][_0x4f06b7['UUID']][_0x41a49f(0xb11)]=_0x35a995,_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],_0x41a49f(0x4bc),_0x1b0378[_0x41a49f(0x357)]),_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler['setVideoBitrates'](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],{'min':parseInt(_0x35a995/0xa)||0x1,'max':_0x35a995}));_0x35a995=![];}}}else{if(_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac6)]==!![])_0x35a995!==![]?_0x1b0378[_0x41a49f(0x4e8)]!==![]&&(_0x1b0378[_0x41a49f(0x4e8)]<_0x35a995&&(_0x35a995=_0x1b0378[_0x41a49f(0x4e8)])):_0x35a995=_0x1b0378['roombitrate'],(iOS||iPad)&&_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x964)]&&(_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb32)]=!![]);else{if(iOS||iPad){var _0x18794a=0x0;for(var _0x54f9ac in _0x1b0378[_0x41a49f(0x71c)]){_0x4f06b7[_0x41a49f(0x7b3)]!==_0x54f9ac&&(_0x1b0378[_0x41a49f(0x71c)][_0x54f9ac][_0x41a49f(0xb32)]===!![]&&(_0x18794a+=0x1));}if(_0x18794a>=0x3){if(_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['forceios'])_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb32)]=!![],_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]&&_0x1b0378['pcs'][_0x4f06b7['UUID']][_0x41a49f(0xac8)]==='h264'&&(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],_0x41a49f(0x6d8),_0x1b0378[_0x41a49f(0x357)]),log(_0x41a49f(0xa91)+_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['preferVideoCodec']+'\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API'));else _0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]&&_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]===_0x41a49f(0x8b6)?(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7['description'][_0x41a49f(0x668)],_0x41a49f(0x8b6),_0x1b0378[_0x41a49f(0x357)]),log(_0x41a49f(0xa91)+_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']][_0x41a49f(0xac8)]+_0x41a49f(0x227)),_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb32)]=![]):(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7['description'][_0x41a49f(0x668)],'vp8',_0x1b0378[_0x41a49f(0x357)]),log(_0x41a49f(0x824)),_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']][_0x41a49f(0xb32)]=![]);}else _0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]&&_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]!==_0x41a49f(0x6d8)?_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]===_0x41a49f(0x8b6)||_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]===_0x41a49f(0x4bc)?(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7['description']['sdp'],_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)],_0x1b0378['preferredVideoErrorCorrection']),log('Trying\x20to\x20set\x20'+_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]+_0x41a49f(0x227)),_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['encoder']=![]):_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb32)]=!![]:(_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb32)]=!![],_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']][_0x41a49f(0xac8)]&&_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]===_0x41a49f(0x6d8)&&(_0x4f06b7[_0x41a49f(0x5c9)]['sdp']=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],_0x41a49f(0x6d8),_0x1b0378[_0x41a49f(0x357)]),log('Trying\x20to\x20set\x20'+_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]+'\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API')));}else _0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']][_0x41a49f(0xac8)]&&(_0x4f06b7['description'][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x9e6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)],_0x1b0378[_0x41a49f(0x357)]),log(_0x41a49f(0xa91)+_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xac8)]+_0x41a49f(0x227)));}}if(_0x35a995){var _0x182336=CodecsHandler['getVideoBitrates'](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]);log('BITRATE\x201:\x20'+_0x182336);_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x1a8)]!==![]&&(_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']][_0x41a49f(0x1a8)]<_0x35a995&&(_0x35a995=![]));if(_0x35a995===![])_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['setBitrate']=_0x182336;else{if(_0x182336!==![]&&_0x182336>_0x35a995){var _0x1c931c=CodecsHandler[_0x41a49f(0x792)](_0x4f06b7['description']['sdp'])||0x0;_0x4f06b7['description'][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x4c6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],{'min':parseInt(_0x35a995/0xa)||0x1,'max':parseInt(_0x35a995+_0x1c931c/0x400)}),_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb11)]=_0x35a995;}else{if(_0x182336===![]){var _0x1c931c=CodecsHandler[_0x41a49f(0x792)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)])||0x0;_0x4f06b7[_0x41a49f(0x5c9)]['sdp']=CodecsHandler[_0x41a49f(0x4c6)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],{'min':parseInt(_0x35a995/0xa)||0x1,'max':parseInt(_0x35a995+_0x1c931c/0x400)});if(_0x1b0378[_0x41a49f(0x6ee)]&&_0x1b0378[_0x41a49f(0x6ee)]>_0x35a995)_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']][_0x41a49f(0xb11)]=_0x35a995;else _0x1b0378['outboundVideoBitrate']?_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb11)]=_0x1b0378[_0x41a49f(0x6ee)]:_0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x1a8)]=0x9c4;}else _0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb11)]=_0x182336;}}}else{if(_0x1b0378[_0x41a49f(0x6ee)]!==![]){var _0x182336=CodecsHandler[_0x41a49f(0x17d)](_0x4f06b7[_0x41a49f(0x5c9)]['sdp']);log(_0x41a49f(0x49d)+_0x182336);if(_0x182336===![]){var _0x1c931c=CodecsHandler[_0x41a49f(0x792)](_0x4f06b7[_0x41a49f(0x5c9)]['sdp'])||0x0;_0x4f06b7[_0x41a49f(0x5c9)]['sdp']=CodecsHandler[_0x41a49f(0x4c6)](_0x4f06b7['description'][_0x41a49f(0x668)],{'min':parseInt(_0x1b0378[_0x41a49f(0x6ee)]/0xa)||0x1,'max':parseInt(_0x1b0378[_0x41a49f(0x6ee)]+_0x1c931c/0x400)});}else _0x1b0378[_0x41a49f(0x71c)][_0x4f06b7['UUID']]['setBitrate']===![]&&(_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]]['setBitrate']=_0x182336);}else _0x1b0378['pcs'][_0x4f06b7[_0x41a49f(0x7b3)]]['setBitrate']===![]&&(_0x1b0378['pcs'][_0x4f06b7['UUID']][_0x41a49f(0xb11)]=CodecsHandler[_0x41a49f(0x17d)](_0x4f06b7['description'][_0x41a49f(0x668)]),log(_0x41a49f(0x8ae)+_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0xb11)]));}_0x1b0378[_0x41a49f(0x232)]&&(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=CodecsHandler[_0x41a49f(0x40f)](_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)],{'maxaveragebitrate':_0x1b0378[_0x41a49f(0x232)]*0x400,'cbr':_0x1b0378[_0x41a49f(0x3d0)]}));if(_0x41a49f(0x7c9)in _0x4f06b7&&_0x4f06b7[_0x41a49f(0x7c9)]!=_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x7c9)]){errorlog(_0x41a49f(0x376));return;}_0x1b0378[_0x41a49f(0x4ff)]&&(_0x4f06b7['description']['sdp']=filterSDPLAN(_0x4f06b7['description']['sdp'])),_0x1b0378['stunOnly']&&(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)]=filterStunOnly(_0x4f06b7[_0x41a49f(0x5c9)][_0x41a49f(0x668)])),_0x1b0378[_0x41a49f(0x71c)][_0x4f06b7[_0x41a49f(0x7b3)]][_0x41a49f(0x42d)](_0x4f06b7[_0x41a49f(0x5c9)])[_0x41a49f(0xb39)]()['catch'](errorlog);}catch(_0x4290b2){errorlog(_0x4290b2);}},_0x1b0378[_0x2f55f4(0xaff)]=function(_0x52835c){var _0x2f52d9=_0x2f55f4;_0x1b0378[_0x2f52d9(0x625)]&&_0x52835c[_0x2f52d9(0x7fc)]?_0x1b0378[_0x2f52d9(0x8ed)](_0x52835c[_0x2f52d9(0x5c9)],_0x52835c[_0x2f52d9(0x7fc)])[_0x2f52d9(0xb39)](function(_0x17f71b){var _0x487d11=_0x2f52d9;try{_0x52835c[_0x487d11(0x5c9)]=JSON[_0x487d11(0x5da)](_0x17f71b),_0x1b0378[_0x487d11(0x4fc)](_0x52835c);}catch(_0x26c890){errorlog(_0x26c890);}})['catch'](function(_0x420cce){var _0x16d30f=_0x2f52d9;errorlog(_0x16d30f(0x45d),_0x420cce);}):_0x1b0378[_0x2f52d9(0x4fc)](_0x52835c);},_0x1b0378[_0x2f55f4(0x4df)]=function(_0x54b546){var _0x352e41=_0x2f55f4;_0x1b0378[_0x352e41(0x625)]&&_0x54b546[_0x352e41(0x7fc)]?_0x1b0378[_0x352e41(0x8ed)](_0x54b546[_0x352e41(0x250)],_0x54b546['vector'])[_0x352e41(0xb39)](function(_0x4a7733){var _0x28f41c=_0x352e41;try{_0x54b546[_0x28f41c(0x250)]=JSON[_0x28f41c(0x5da)](_0x4a7733),_0x1b0378[_0x28f41c(0x4eb)](_0x54b546);}catch(_0x4c1f65){errorlog(_0x4c1f65);}})[_0x352e41(0x872)](function(_0x4ce020){var _0x358b81=_0x352e41;errorlog(_0x358b81(0x45d),_0x4ce020);}):_0x1b0378[_0x352e41(0x4eb)](_0x54b546);},_0x1b0378['processIce2']=function(_0x1f4a10){var _0x25c0a2=_0x2f55f4;try{if(_0x1b0378[_0x25c0a2(0x86e)]){if(_0x1f4a10[_0x25c0a2(0x250)][_0x25c0a2(0x250)]['indexOf'](_0x1b0378['icefilter'])===-0x1){log(_0x25c0a2(0xb28)),log(_0x1f4a10[_0x25c0a2(0x250)]);return;}else log(_0x25c0a2(0x43a)),log(_0x1f4a10[_0x25c0a2(0x250)]);}}catch(_0x55e5a3){errorlog(_0x55e5a3);}if(_0x1f4a10[_0x25c0a2(0x250)]&&'candidate'in _0x1f4a10[_0x25c0a2(0x250)]&&_0x1f4a10[_0x25c0a2(0x250)][_0x25c0a2(0x250)]=='')return;try{if(_0x1b0378['localNetworkOnly']){if(!filterIceLAN(_0x1f4a10[_0x25c0a2(0x250)]))return;}if(_0x1b0378[_0x25c0a2(0x89e)]){if(!filterStunOnly(event[_0x25c0a2(0x250)]))return;}}catch(_0x3ddcf9){errorlog(_0x3ddcf9);}if(_0x1f4a10['UUID']in _0x1b0378[_0x25c0a2(0x71c)]&&_0x1f4a10[_0x25c0a2(0x7a5)]=='remote'){log('PCS\x20WINS\x20ICE');if(_0x25c0a2(0x7c9)in _0x1f4a10&&_0x1b0378[_0x25c0a2(0x71c)][_0x1f4a10[_0x25c0a2(0x7b3)]][_0x25c0a2(0x7c9)]!=_0x1f4a10[_0x25c0a2(0x7c9)]){errorlog('Incoming\x20Ice\x20Offer\x20does\x20not\x20match\x20Session');return;}_0x1b0378[_0x25c0a2(0x71c)][_0x1f4a10[_0x25c0a2(0x7b3)]]['addIceCandidate'](_0x1f4a10[_0x25c0a2(0x250)])[_0x25c0a2(0xb39)]()[_0x25c0a2(0x872)](function(_0x48daef){});}else{if(_0x1f4a10[_0x25c0a2(0x7b3)]in _0x1b0378['rpcs']&&_0x1f4a10[_0x25c0a2(0x7a5)]==_0x25c0a2(0x945)){log('RPCS\x20WINS\x20ICE');if(_0x25c0a2(0x7c9)in _0x1f4a10&&_0x1b0378[_0x25c0a2(0x7cc)][_0x1f4a10[_0x25c0a2(0x7b3)]][_0x25c0a2(0x7c9)]!=_0x1f4a10[_0x25c0a2(0x7c9)]){errorlog(_0x25c0a2(0x62b));return;}if(_0x1b0378[_0x25c0a2(0x7cc)][_0x1f4a10[_0x25c0a2(0x7b3)]]===null)return;_0x1b0378[_0x25c0a2(0x7cc)][_0x1f4a10[_0x25c0a2(0x7b3)]]['addIceCandidate'](_0x1f4a10[_0x25c0a2(0x250)])['then']()[_0x25c0a2(0x872)](function(_0x1b245e){});}else warnlog(_0x1f4a10),errorlog('ICE\x20DID\x20NOT\x20FIND\x20A\x20PC\x20OPTION?\x20peer\x20might\x20have\x20left\x20before\x20ICE\x20complete?');}},_0x1b0378[_0x2f55f4(0x41f)]=function(_0x203326){var _0x31bee2=_0x2f55f4;if(_0x1b0378[_0x31bee2(0x625)]&&_0x203326[_0x31bee2(0x7fc)])_0x1b0378[_0x31bee2(0x8ed)](_0x203326[_0x31bee2(0x88f)],_0x203326[_0x31bee2(0x7fc)])[_0x31bee2(0xb39)](function(_0x4ad556){var _0x195917=_0x31bee2;_0x203326[_0x195917(0x88f)]=JSON[_0x195917(0x5da)](_0x4ad556);var _0x3166fe={};_0x3166fe[_0x195917(0x7b3)]=_0x203326['UUID'],_0x3166fe[_0x195917(0x7a5)]=_0x203326['type'];for(var _0x10e728=0x0;_0x10e728<_0x203326[_0x195917(0x88f)]['length'];_0x10e728++){_0x3166fe[_0x195917(0x250)]=_0x203326['candidates'][_0x10e728],_0x1b0378[_0x195917(0x4eb)](_0x3166fe);}});else{var _0x13d923={};_0x13d923[_0x31bee2(0x7b3)]=_0x203326[_0x31bee2(0x7b3)],_0x13d923[_0x31bee2(0x7a5)]=_0x203326[_0x31bee2(0x7a5)];for(var _0x3ce896=0x0;_0x3ce896<_0x203326['candidates'][_0x31bee2(0x5a7)];_0x3ce896++){_0x13d923[_0x31bee2(0x250)]=_0x203326[_0x31bee2(0x88f)][_0x3ce896],_0x1b0378[_0x31bee2(0x4eb)](_0x13d923);}}},_0x1b0378[_0x2f55f4(0x2e6)]=async function(_0x20a7b9){var _0x5eda56=_0x2f55f4;_0x5eda56(0x629)in _0x20a7b9&&(_0x1b0378[_0x5eda56(0x7cc)][_0x20a7b9[_0x5eda56(0x7b3)]][_0x5eda56(0x1ea)]=_0x20a7b9[_0x5eda56(0x629)],log(_0x5eda56(0x229)),log(_0x20a7b9[_0x5eda56(0x629)])),log(_0x20a7b9),_0x1b0378[_0x5eda56(0x31c)]&&_0x20a7b9[_0x5eda56(0x5c9)]&&_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)]&&_0x20a7b9['description'][_0x5eda56(0x668)][_0x5eda56(0x8a3)](_0x5eda56(0xb16))&&(_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)]=_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)][_0x5eda56(0x4d3)](_0x5eda56(0xb16),''),warnlog('removed\x20from\x20SDP:\x20\x27a=extmap:3\x20urn:3gpp:video-orientation\x0d\x0a\x27')),_0x1b0378[_0x5eda56(0x6df)]&&(_0x20a7b9['description'][_0x5eda56(0x668)]=CodecsHandler[_0x5eda56(0x477)](_0x20a7b9[_0x5eda56(0x5c9)]['sdp'])),_0x1b0378[_0x5eda56(0xad9)]&&(_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)]=CodecsHandler['disableREMB'](_0x20a7b9['description'][_0x5eda56(0x668)])),_0x1b0378['noNacks']&&(log(_0x20a7b9['description'][_0x5eda56(0x668)]),_0x20a7b9['description']['sdp']=CodecsHandler[_0x5eda56(0xb18)](_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)])),_0x1b0378[_0x5eda56(0x4ff)]&&(_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)]=filterSDPLAN(_0x20a7b9['description'][_0x5eda56(0x668)])),_0x1b0378[_0x5eda56(0x89e)]&&(_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)]=filterStunOnly(_0x20a7b9[_0x5eda56(0x5c9)][_0x5eda56(0x668)])),_0x1b0378[_0x5eda56(0x7cc)][_0x20a7b9[_0x5eda56(0x7b3)]]['setRemoteDescription'](_0x20a7b9['description'])['then'](async function(){var _0xb0d8b2=_0x5eda56;if(_0x1b0378[_0xb0d8b2(0x7cc)][_0x20a7b9[_0xb0d8b2(0x7b3)]][_0xb0d8b2(0x504)][_0xb0d8b2(0x7a5)]===_0xb0d8b2(0x907))_0x1b0378[_0xb0d8b2(0x7cc)][_0x20a7b9[_0xb0d8b2(0x7b3)]][_0xb0d8b2(0x2df)]()['then'](function(_0x3f95fb){var _0x1fcc72=_0xb0d8b2;log(_0x1fcc72(0x701));if(_0x1b0378[_0x1fcc72(0x7cc)][_0x20a7b9[_0x1fcc72(0x7b3)]]['whip']){if(_0x1b0378['stereo']&&_0x1b0378[_0x1fcc72(0x1b2)]==0x4)_0x3f95fb['sdp']=CodecsHandler[_0x1fcc72(0x40f)](_0x3f95fb[_0x1fcc72(0x668)],{'stereo':0x2},!![]);else _0x1b0378[_0x1fcc72(0x1b2)]&&!_0x1b0378[_0x1fcc72(0x186)]&&_0x1b0378['stereo']!=0x3&&(_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x40f)](_0x3f95fb[_0x1fcc72(0x668)],{'stereo':0x1},!![]));return _0x1b0378[_0x1fcc72(0x7cc)][_0x20a7b9['UUID']][_0x1fcc72(0x443)](_0x3f95fb);}var _0x5d880d=![];if(!_0x1b0378[_0x1fcc72(0x91b)]&&_0x1b0378[_0x1fcc72(0x1b2)]==0x5)_0x5d880d={'stereo':0x1,'maxaveragebitrate':(_0x1b0378[_0x1fcc72(0x340)]||_0x1b0378[_0x1fcc72(0x73e)])*0x400,'cbr':_0x1b0378[_0x1fcc72(0x3d0)],'useinbandfec':_0x1b0378[_0x1fcc72(0x1da)]?0x0:0x1,'maxptime':_0x1b0378['maxptime'],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378['ptime'],'dtx':_0x1b0378[_0x1fcc72(0xac2)]},log(_0x1fcc72(0x4c4));else{if(_0x1b0378[_0x1fcc72(0x186)]&&Firefox)_0x1b0378[_0x1fcc72(0x340)]?_0x5d880d={'stereo':0x0,'maxaveragebitrate':_0x1b0378[_0x1fcc72(0x340)]*0x400,'cbr':_0x1b0378[_0x1fcc72(0x3d0)],'useinbandfec':_0x1b0378[_0x1fcc72(0x1da)]?0x0:0x1,'maxptime':_0x1b0378[_0x1fcc72(0xa30)],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378[_0x1fcc72(0x677)],'dtx':_0x1b0378[_0x1fcc72(0xac2)]}:_0x5d880d={'stereo':0x0,'useinbandfec':_0x1b0378[_0x1fcc72(0x1da)]?0x0:0x1,'maxptime':_0x1b0378[_0x1fcc72(0xa30)],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378['ptime'],'dtx':_0x1b0378[_0x1fcc72(0xac2)]};else{if(_0x1b0378[_0x1fcc72(0x1b2)]==0x1||_0x1b0378[_0x1fcc72(0x1b2)]==0x2||_0x1b0378['stereo']==0x5)_0x5d880d={'stereo':0x1,'maxaveragebitrate':(_0x1b0378['audiobitrate']||_0x1b0378[_0x1fcc72(0x73e)])*0x400,'cbr':_0x1b0378[_0x1fcc72(0x3d0)],'useinbandfec':_0x1b0378[_0x1fcc72(0x1da)]?0x0:0x1,'maxptime':_0x1b0378[_0x1fcc72(0xa30)],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378[_0x1fcc72(0x677)],'dtx':_0x1b0378[_0x1fcc72(0xac2)]},log(_0x1fcc72(0x4c4));else{if(_0x1b0378[_0x1fcc72(0x1b2)]==0x4)_0x5d880d={'stereo':0x2,'maxaveragebitrate':(_0x1b0378[_0x1fcc72(0x340)]||_0x1b0378[_0x1fcc72(0x73e)])*0x400,'cbr':_0x1b0378['cbr'],'useinbandfec':_0x1b0378[_0x1fcc72(0x1da)]?0x0:0x1,'maxptime':_0x1b0378[_0x1fcc72(0xa30)],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378[_0x1fcc72(0x677)],'dtx':_0x1b0378[_0x1fcc72(0xac2)]};else{if(_0x1b0378[_0x1fcc72(0x340)])_0x5d880d={'maxaveragebitrate':_0x1b0378[_0x1fcc72(0x340)]*0x400,'cbr':_0x1b0378[_0x1fcc72(0x3d0)],'useinbandfec':_0x1b0378[_0x1fcc72(0x1da)]?0x0:0x1,'maxptime':_0x1b0378['maxptime'],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378[_0x1fcc72(0x677)],'dtx':_0x1b0378[_0x1fcc72(0xac2)]};else{if(_0x1b0378[_0x1fcc72(0x1da)])_0x5d880d={'useinbandfec':0x0,'maxptime':_0x1b0378['maxptime'],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378[_0x1fcc72(0x677)],'dtx':_0x1b0378[_0x1fcc72(0xac2)]};else _0x1b0378['dtx']&&(_0x5d880d={'maxptime':_0x1b0378['maxptime'],'minptime':_0x1b0378[_0x1fcc72(0x4c0)],'ptime':_0x1b0378[_0x1fcc72(0x677)],'dtx':_0x1b0378[_0x1fcc72(0xac2)]});}}}}}_0x1b0378[_0x1fcc72(0x1b2)]===0x6&&(!_0x5d880d?_0x5d880d={'stereo':0x1}:_0x5d880d[_0x1fcc72(0x1b2)]=0x1);_0x5d880d&&(_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler['setOpusAttributes'](_0x3f95fb[_0x1fcc72(0x668)],_0x5d880d));if(_0x1b0378[_0x1fcc72(0x7df)])try{if(_0x1b0378[_0x1fcc72(0x7df)]===_0x1fcc72(0x8d8))_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x421)](_0x3f95fb['sdp']);else{if(_0x1b0378['audioCodec']===_0x1fcc72(0x50b)){if(_0x1b0378[_0x1fcc72(0x186)])_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x57f)](_0x3f95fb['sdp'],_0x1b0378[_0x1fcc72(0x4e1)]||0xbb80,![],_0x1b0378[_0x1fcc72(0x677)]);else _0x1b0378[_0x1fcc72(0x1b2)]?_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x57f)](_0x3f95fb['sdp'],_0x1b0378[_0x1fcc72(0x4e1)]||0x7d00,!![],_0x1b0378[_0x1fcc72(0x677)]):_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x57f)](_0x3f95fb['sdp'],_0x1b0378[_0x1fcc72(0x4e1)]||0xbb80,![],_0x1b0378[_0x1fcc72(0x677)]);}else _0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler['preferAudioCodec'](_0x3f95fb[_0x1fcc72(0x668)],_0x1b0378[_0x1fcc72(0x7df)],_0x1b0378['redAudio'],_0x1b0378['fecAudio']);}}catch(_0x4708e2){errorlog(_0x4708e2),warnlog(_0x1fcc72(0xa46));}if(_0x1b0378[_0x1fcc72(0x990)]&&_0x1b0378['codecs'][_0x1fcc72(0x5a7)])for(var _0x4b6c40=_0x1b0378[_0x1fcc72(0x990)][_0x1fcc72(0x5a7)]-0x1;_0x4b6c40>=0x0;_0x4b6c40--){try{_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x9e6)](_0x3f95fb[_0x1fcc72(0x668)],_0x1b0378[_0x1fcc72(0x990)][_0x4b6c40],_0x1b0378[_0x1fcc72(0x578)]);}catch(_0x5f4a8a){errorlog(_0x5f4a8a);break;}}_0x1b0378[_0x1fcc72(0x8a4)]&&(_0x3f95fb['sdp']=CodecsHandler['preferCodec'](_0x3f95fb['sdp'],_0x1b0378[_0x1fcc72(0x8a4)],_0x1b0378['videoErrorCorrection']));_0x1b0378['h264profile']&&(log(_0x1fcc72(0x6e8)),_0x3f95fb['sdp']=_0x3f95fb[_0x1fcc72(0x668)][_0x1fcc72(0x4d3)](/42e01f/gi,_0x1b0378[_0x1fcc72(0xae6)]),_0x3f95fb[_0x1fcc72(0x668)]=_0x3f95fb[_0x1fcc72(0x668)]['replace'](/42001f/gi,_0x1b0378[_0x1fcc72(0xae6)]),_0x3f95fb['sdp']=_0x3f95fb[_0x1fcc72(0x668)][_0x1fcc72(0x4d3)](/420029/gi,_0x1b0378['h264profile']),_0x3f95fb[_0x1fcc72(0x668)]=_0x3f95fb[_0x1fcc72(0x668)][_0x1fcc72(0x4d3)](/42a01e/gi,_0x1b0378[_0x1fcc72(0xae6)]),_0x3f95fb[_0x1fcc72(0x668)]=_0x3f95fb[_0x1fcc72(0x668)][_0x1fcc72(0x4d3)](/42a014/gi,_0x1b0378[_0x1fcc72(0xae6)]),_0x3f95fb[_0x1fcc72(0x668)]=_0x3f95fb[_0x1fcc72(0x668)][_0x1fcc72(0x4d3)](/42a00b/gi,_0x1b0378[_0x1fcc72(0xae6)]),_0x3f95fb[_0x1fcc72(0x668)]=_0x3f95fb[_0x1fcc72(0x668)][_0x1fcc72(0x4d3)](/640c1f/gi,_0x1b0378[_0x1fcc72(0xae6)]));_0x1b0378[_0x1fcc72(0x6df)]&&(_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0x477)](_0x3f95fb[_0x1fcc72(0x668)]));_0x1b0378[_0x1fcc72(0xad9)]&&(_0x3f95fb[_0x1fcc72(0x668)]=CodecsHandler[_0x1fcc72(0xb50)](_0x3f95fb[_0x1fcc72(0x668)]));_0x1b0378[_0x1fcc72(0x9ba)]&&(log(_0x3f95fb['sdp']),_0x3f95fb['sdp']=CodecsHandler[_0x1fcc72(0xb18)](_0x3f95fb[_0x1fcc72(0x668)]));if(_0x1b0378[_0x1fcc72(0x7cc)][_0x20a7b9[_0x1fcc72(0x7b3)]][_0x1fcc72(0x25b)])log(_0x1fcc72(0x89c)),_0x3f95fb[_0x1fcc72(0x668)]=_0x5cab5a(_0x3f95fb[_0x1fcc72(0x668)],_0x1b0378[_0x1fcc72(0x7cc)][_0x20a7b9[_0x1fcc72(0x7b3)]]['manualBandwidth']);else _0x1b0378['bitrate']&&(log(_0x1fcc72(0x89c)),_0x3f95fb[_0x1fcc72(0x668)]=_0x5cab5a(_0x3f95fb['sdp'],_0x1b0378[_0x1fcc72(0x85a)]));return _0x1b0378[_0x1fcc72(0x4ff)]&&(_0x3f95fb[_0x1fcc72(0x668)]=filterSDPLAN(_0x3f95fb[_0x1fcc72(0x668)])),_0x1b0378[_0x1fcc72(0x89e)]&&(_0x3f95fb[_0x1fcc72(0x668)]=filterStunOnly(_0x3f95fb[_0x1fcc72(0x668)])),log(_0x3f95fb),_0x1b0378['rpcs'][_0x20a7b9['UUID']][_0x1fcc72(0x443)](_0x3f95fb);})[_0xb0d8b2(0xb39)](function _0x13219e(){var _0x859779=_0xb0d8b2;log('providing\x20answer');if(_0x1b0378['rpcs'][_0x20a7b9['UUID']]['whip']){_0x1b0378[_0x859779(0x7cc)][_0x20a7b9['UUID']][_0x859779(0xa27)]&&_0x1b0378['rpcs'][_0x20a7b9[_0x859779(0x7b3)]][_0x859779(0xa27)]();return;}var _0x2838ee={};_0x2838ee[_0x859779(0x7b3)]=_0x20a7b9[_0x859779(0x7b3)],_0x2838ee[_0x859779(0x5c9)]=_0x1b0378[_0x859779(0x7cc)][_0x20a7b9[_0x859779(0x7b3)]][_0x859779(0x576)],_0x2838ee[_0x859779(0x7c9)]=_0x1b0378['rpcs'][_0x20a7b9[_0x859779(0x7b3)]][_0x859779(0x7c9)],_0x1b0378[_0x859779(0x625)]&&_0x1b0378[_0x859779(0x7cc)][_0x20a7b9[_0x859779(0x7b3)]][_0x859779(0x7fc)]?_0x1b0378[_0x859779(0x1c8)](JSON['stringify'](_0x2838ee['description']))['then'](function(_0x23fd59){var _0x1dc1d9=_0x859779;_0x2838ee[_0x1dc1d9(0x5c9)]=_0x23fd59[0x0],_0x2838ee[_0x1dc1d9(0x7fc)]=_0x23fd59[0x1],_0x1b0378['anyrequest'](_0x2838ee);})[_0x859779(0x872)](errorlog):_0x1b0378[_0x859779(0x763)](_0x2838ee);})[_0xb0d8b2(0x872)](errorlog);else _0x1b0378[_0xb0d8b2(0x7cc)][_0x20a7b9[_0xb0d8b2(0x7b3)]][_0xb0d8b2(0x504)][_0xb0d8b2(0x7a5)]===_0xb0d8b2(0x2fa)&&errorlog('Someone\x20sent\x20us\x20an\x20ANSWER\x20sdp??');})[_0x5eda56(0x872)](function(_0x5aee74){var _0x2d03e4=_0x5eda56;errorlog(_0x5aee74),_0x20a7b9[_0x2d03e4(0x5c9)]&&errorlog(_0x20a7b9[_0x2d03e4(0x5c9)][_0x2d03e4(0x668)]);});},_0x1b0378[_0x2f55f4(0x44b)]=function(_0x1936f6){var _0x33710d=_0x2f55f4;const _0x1fa1be=_0x1b0378['rpcs'][_0x1936f6];if(!_0x1fa1be||!_0x1fa1be[_0x33710d(0x36c)])return 0xc8;const _0x35eaf2=_0x1fa1be[_0x33710d(0x36c)][_0x33710d(0x3c5)]||0x0,_0x4a694b=_0x1fa1be[_0x33710d(0x36c)][_0x33710d(0x8e6)]||0x0,_0x3e0cf5=_0x1fa1be['stats'][_0x33710d(0x2ea)]||0x0;let _0x13acc3=0xc8+_0x35eaf2*0x1f4+_0x4a694b*0x2+_0x3e0cf5*0x64;return Math[_0x33710d(0x1b8)](0xc8,Math[_0x33710d(0x446)](_0x13acc3,0x7d0));},_0x1b0378['restartChunkedMode']=async function(_0x2fa1cd){var _0x3c9225=_0x2f55f4;errorlog('Chunked\x20mode\x20failed.\x20Attempting\x20to\x20restart...'),await new Promise(_0x3c5a1c=>setTimeout(_0x3c5a1c,0x7d0));try{_0x1b0378[_0x3c9225(0x569)]=null,await _0x1b0378[_0x3c9225(0x5ed)](_0x2fa1cd),log(_0x3c9225(0x822));}catch(_0x3d6008){errorlog(_0x3c9225(0x915),_0x3d6008),!_0x1b0378['cleanOutput']&&warnUser(_0x3c9225(0x8e5));}},_0x1b0378[_0x2f55f4(0x613)]=function(){var _0x63949b=_0x2f55f4;if(_0x1b0378[_0x63949b(0x601)]&&_0x1b0378['videoElement'][_0x63949b(0x318)])return _0x1b0378['videoElement'][_0x63949b(0x318)];else return _0x1b0378[_0x63949b(0x601)]&&_0x1b0378['videoElement'][_0x63949b(0x8f3)]&&_0x1b0378['streamSrc']?_0x1b0378[_0x63949b(0x97f)]:(log(_0x63949b(0x8e1)),checkBasicStreamsExist(),_0x1b0378[_0x63949b(0x601)]['srcObject']);};var _0x213495=0x0,_0x3751d1=0x0;_0x1b0378['webCodec']=async function(_0xd8dde4=null){var _0x2359e3=_0x2f55f4;if(_0x1b0378[_0x2359e3(0x569)]!==null)return;else _0x1b0378[_0x2359e3(0x569)]=![];!_0xd8dde4&&_0x1b0378[_0x2359e3(0x36c)]['Chunked_video']&&(_0xd8dde4=_0x1b0378['stats'][_0x2359e3(0x5ca)]);let _0x49db69=0x0;var _0x596b2d=_0x1b0378[_0x2359e3(0x613)]()[_0x2359e3(0x527)]();if(!_0x596b2d||!_0x596b2d['length']){warnlog('NO\x20TRACKS'),_0x1b0378['chunkedVideoEnabled']=null;return;}_0x596b2d=_0x596b2d[0x0];var _0x4d2390=new MediaStreamTrackProcessor(_0x596b2d),_0x1979f3=_0x4d2390[_0x2359e3(0x1b9)];const _0x485a01=_0x1979f3['getReader']();_0x3751d1+=0x1,_0x485a01[_0x2359e3(0xaad)]=_0x3751d1;var _0x556f95=![],_0x210700=-0x1,_0x229df8=-0x1;const _0x5902e9={'output':async _0x495258=>{var _0x13c8cf=_0x2359e3;if(!_0x1b0378[_0x13c8cf(0x3bb)]||!_0x1b0378[_0x13c8cf(0x3bb)][_0x13c8cf(0x8e4)]){}else{if(_0x495258[_0x13c8cf(0x870)][_0x13c8cf(0x709)]==_0x13c8cf(0x758)){let _0x53f375=new Uint8Array(_0x495258[_0x13c8cf(0x180)]);_0x495258[_0x13c8cf(0x3e7)](_0x53f375),_0x1b0378[_0x13c8cf(0x5e5)][_0x13c8cf(0x285)]([_0x495258[_0x13c8cf(0x238)]-_0x229df8,_0x495258[_0x13c8cf(0x7a5)]]),_0x1b0378[_0x13c8cf(0x5e5)][_0x13c8cf(0x285)](_0x53f375);_0x1b0378['chunkIframe']&&pokeIframeAPI(_0x13c8cf(0x3cf),{'type':_0x495258[_0x13c8cf(0x7a5)],'ts':_0x495258[_0x13c8cf(0x238)]-_0x229df8});try{await _0x1b0378[_0x13c8cf(0x3bb)][_0x13c8cf(0x8e4)]('video');}catch(_0x257e13){errorlog(_0x257e13);if(!_0x1b0378[_0x13c8cf(0x3bb)]){}}}}},'error':_0xa12ef1=>{var _0x55f948=_0x2359e3;errorlog(_0xa12ef1),_0x1b0378[_0x55f948(0xad4)](_0xd8dde4);}};let _0x1fa249=new VideoEncoder(_0x5902e9);_0x1fa249['config']=_0xd8dde4,_0x1fa249[_0x2359e3(0x18f)](_0xd8dde4),_0x1b0378[_0x2359e3(0x36c)]['Chunked_video']=_0xd8dde4,_0x1b0378['chunkedRecorder'][_0x2359e3(0x269)]=_0x1fa249;var _0x27f004,_0x3ebae8=new Promise((_0x9a93b2,_0xeceedf)=>{_0x27f004=_0x9a93b2;});return _0x3ebae8[_0x2359e3(0x2b4)]=_0x27f004,_0x485a01['read']()['then'](function _0x4901c2({done:_0x11441d,value:_0x5b5e8a}){var _0x287d03=_0x2359e3;if(_0x11441d||_0x556f95){_0x1fa249['close']();_0x5b5e8a&&_0x5b5e8a[_0x287d03(0x635)]();warnlog(_0x287d03(0x331));return;}else{if(_0x1fa249[_0x287d03(0x65f)]==_0x287d03(0x354)){_0x5b5e8a&&_0x5b5e8a[_0x287d03(0x635)]();warnlog(_0x287d03(0x23f));return;}}_0x229df8==-0x1&&(_0x229df8=_0x5b5e8a[_0x287d03(0x238)],_0x1b0378[_0x287d03(0x36c)]['Chunked_video'][_0x287d03(0x2bb)]=Date[_0x287d03(0x56b)](),_0x3ebae8[_0x287d03(0x2b4)]());_0x210700==_0x5b5e8a[_0x287d03(0x238)]&&(_0x5b5e8a[_0x287d03(0x238)]+=0x1,warnlog('Timestamp\x20duplicated'));if(!_0x556f95){_0x210700=_0x5b5e8a['timestamp'],_0x49db69++;if(_0x1b0378[_0x287d03(0x3bb)][_0x287d03(0x311)]){const _0x5c6f5b=_0x49db69>=0x3c;_0x5c6f5b&&(_0x49db69=0x0,_0x1b0378[_0x287d03(0x3bb)][_0x287d03(0x311)]=![],warnlog(_0x287d03(0x8ba)));try{_0x1fa249[_0x287d03(0x7ad)](_0x5b5e8a,{'keyFrame':_0x5c6f5b});}catch(_0x56ab99){errorlog(_0x56ab99);}}else try{_0x1fa249[_0x287d03(0x7ad)](_0x5b5e8a,{'keyFrame':![]});}catch(_0xbcd2e7){errorlog(_0xbcd2e7);}}_0x5b5e8a['close'](),_0x485a01[_0x287d03(0x447)]()[_0x287d03(0xb39)](_0x4901c2);}),_0x1b0378['chunkedVideoEnabled']=!![],_0x3ebae8;},_0x1b0378['webCodecAudio']=async function(_0x15eacb){var _0x28d2ca=_0x2f55f4;if(_0x1b0378[_0x28d2ca(0x7f6)]!==null)return;else _0x1b0378['chunkedAudioEnabled']=![];!_0x15eacb&&_0x1b0378[_0x28d2ca(0x36c)][_0x28d2ca(0xa82)]&&(_0x15eacb=_0x1b0378[_0x28d2ca(0x36c)][_0x28d2ca(0xa82)]);var _0x53b603=_0x1b0378[_0x28d2ca(0x613)](),_0x562d36=_0x53b603[_0x28d2ca(0x834)]();if(!_0x562d36||!_0x562d36['length']){_0x1b0378[_0x28d2ca(0x7f6)]=null;return;}_0x562d36=_0x562d36[0x0];var _0x448fbb=_0x562d36[_0x28d2ca(0x6e2)]();_0x15eacb[_0x28d2ca(0xa2f)]>_0x448fbb[_0x28d2ca(0x31e)]&&(_0x15eacb[_0x28d2ca(0xa2f)]=_0x448fbb[_0x28d2ca(0x31e)],_0x15eacb['channels']=_0x448fbb[_0x28d2ca(0x31e)]);if(_0x15eacb[_0x28d2ca(0x4e1)]!=_0x448fbb[_0x28d2ca(0x4e1)])try{_0x53b603=outboundAudioPipeline();}catch(_0x116cf7){errorlog(_0x116cf7);}var _0x5de3cd=new MediaStreamTrackProcessor(_0x53b603[_0x28d2ca(0x834)]()[0x0]),_0x297bfb=_0x5de3cd[_0x28d2ca(0x1b9)];const _0x15282b=_0x297bfb['getReader']();var _0x4b1c32=![],_0x2b103e=-0x1,_0x3f6d3a=-0x1;const _0x5c40a3={'output':async _0x232046=>{var _0x906b32=_0x28d2ca;if(!_0x1b0378[_0x906b32(0x3bb)]||!_0x1b0378['chunkedRecorder'][_0x906b32(0x8e4)]){}else{if(_0x232046['constructor']['name']=='EncodedAudioChunk'){let _0xab575c=new Uint8Array(_0x232046[_0x906b32(0x180)]);_0x232046[_0x906b32(0x3e7)](_0xab575c),_0x1b0378[_0x906b32(0x5e5)][_0x906b32(0x285)]([_0x232046[_0x906b32(0x238)]-_0x3f6d3a,_0x906b32(0x95b)]),_0x1b0378[_0x906b32(0x5e5)][_0x906b32(0x285)](_0xab575c);_0x1b0378[_0x906b32(0x3f1)]&&pokeIframeAPI('chunked-outbound',{'type':'audio','ts':_0x232046['timestamp']-_0x3f6d3a});try{await _0x1b0378[_0x906b32(0x3bb)][_0x906b32(0x8e4)]('audio');}catch(_0x5ea051){errorlog(_0x5ea051);if(!_0x1b0378[_0x906b32(0x3bb)]){}}}}},'error':_0x558884=>{errorlog(_0x558884);}};let _0x559c9f=new AudioEncoder(_0x5c40a3);_0x559c9f[_0x28d2ca(0x292)]=_0x15eacb,_0x559c9f['configure'](_0x15eacb),_0x1b0378[_0x28d2ca(0x36c)][_0x28d2ca(0xa82)]={},_0x1b0378[_0x28d2ca(0x36c)][_0x28d2ca(0xa82)]['codec']=_0x15eacb[_0x28d2ca(0x8a4)],_0x1b0378[_0x28d2ca(0x36c)][_0x28d2ca(0xa82)][_0x28d2ca(0xa2f)]=_0x15eacb[_0x28d2ca(0xa2f)],_0x1b0378['stats'][_0x28d2ca(0xa82)]['sampleRate']=_0x15eacb['sampleRate'],_0x1b0378['stats'][_0x28d2ca(0xa82)]['bitrate']=_0x15eacb[_0x28d2ca(0x74f)]['bitrate'];var _0x568ea6,_0xca96a8=new Promise((_0x475b58,_0x11753f)=>{_0x568ea6=_0x475b58;});return _0xca96a8[_0x28d2ca(0x2b4)]=_0x568ea6,_0x15282b[_0x28d2ca(0x447)]()['then'](function _0x1afae8({done:_0x290e91,value:_0x2f097b}){var _0x5bb78e=_0x28d2ca;if(_0x290e91||_0x4b1c32){_0x559c9f[_0x5bb78e(0x635)]();_0x2f097b&&_0x2f097b['close']();_0x1b0378['chunkedAudioEnabled']=null;return;}else{if(_0x559c9f[_0x5bb78e(0x65f)]=='closed'){_0x2f097b&&_0x2f097b['close']();_0x1b0378['chunkedAudioEnabled']=null;return;}}try{_0x3f6d3a==-0x1&&(_0x3f6d3a=_0x2f097b[_0x5bb78e(0x238)],_0x1b0378[_0x5bb78e(0x36c)][_0x5bb78e(0xa82)][_0x5bb78e(0x2bb)]=Date[_0x5bb78e(0x56b)](),_0xca96a8[_0x5bb78e(0x2b4)]());_0x2b103e==_0x2f097b[_0x5bb78e(0x238)]&&(_0x2f097b[_0x5bb78e(0x238)]+=0x1);if(!_0x4b1c32){_0x2b103e=_0x2f097b[_0x5bb78e(0x238)];try{_0x559c9f[_0x5bb78e(0x7ad)](_0x2f097b);}catch(_0x22d68f){errorlog(_0x22d68f);}}_0x2f097b[_0x5bb78e(0x635)](),_0x15282b[_0x5bb78e(0x447)]()[_0x5bb78e(0xb39)](_0x1afae8);}catch(_0x564d73){errorlog(_0x564d73),errorlog(_0x2f097b),errorlog(_0x290e91);}}),_0x1b0378[_0x28d2ca(0x7f6)]=!![],_0xca96a8;},_0x1b0378[_0x2f55f4(0x8cc)]=function(_0x545db1,_0x19b334={}){var _0x4ef72d=_0x2f55f4;warnlog(_0x4ef72d(0xab3));const _0x5cf1cd=new window[(_0x4ef72d(0xa68))]({'sampleRate':_0x19b334['sampleRate']||0xbb80}),_0x1efa70=_0x5cf1cd['createMediaStreamSource'](_0x545db1),_0x55048a=0x800,_0x131a70=(_0x5cf1cd['createScriptProcessor']||_0x5cf1cd[_0x4ef72d(0x3a7)])['call'](_0x5cf1cd,_0x55048a,0x1,0x1);return _0x131a70[_0x4ef72d(0x1a2)]=async function(_0x3eaead){var _0x5b93c6=_0x4ef72d,_0x2c8c7f=new Uint8Array(_0x3eaead[_0x5b93c6(0x6be)][_0x5b93c6(0x26a)](0x0)[_0x5b93c6(0xad0)]);_0x1b0378['chunksQueue'][_0x5b93c6(0x285)]([0x0,_0x5b93c6(0x50b)]),_0x1b0378['chunksQueue'][_0x5b93c6(0x285)](_0x2c8c7f);try{await _0x1b0378[_0x5b93c6(0x3bb)][_0x5b93c6(0x8e4)](_0x5b93c6(0x50b));}catch(_0xa7723d){errorlog(_0xa7723d),!_0x1b0378[_0x5b93c6(0x3bb)]&&encoder[_0x5b93c6(0x635)]();}},_0x1efa70[_0x4ef72d(0x9df)](_0x131a70),_0x131a70[_0x4ef72d(0x9df)](_0x5cf1cd[_0x4ef72d(0x4b3)]),_0x1b0378[_0x4ef72d(0x36c)][_0x4ef72d(0xa82)]={},_0x1b0378[_0x4ef72d(0x7f6)]=!![],_0x131a70;},_0x1b0378[_0x2f55f4(0x28c)]=async function(_0x3a3a2f=![],_0x5896b9=![]){var _0x52f490=_0x2f55f4;if(!_0x1b0378[_0x52f490(0x3bb)]){warnlog(_0x52f490(0x594));var _0x26382a=null;_0x1b0378[_0x52f490(0x3bb)]={},_0x1b0378[_0x52f490(0x98b)]=_0x3a3a2f||![],_0x1b0378[_0x52f490(0x98b)]&&(_0x1b0378[_0x52f490(0x3bb)][_0x52f490(0x535)]=_0x5896b9),_0x1b0378[_0x52f490(0x3bb)]['sendChunks']=async function(_0x2503fc=_0x52f490(0x772)){var _0x65f5bf=_0x52f490;if(_0x26382a)return;_0x26382a=!![];var _0xa40f1c=_0x2503fc;log(_0x65f5bf(0x8d6)+_0x1b0378[_0x65f5bf(0x5e5)][_0x65f5bf(0x5a7)]);while(_0x1b0378[_0x65f5bf(0x5e5)][_0x65f5bf(0x5a7)]){if(!Object[_0x65f5bf(0x69e)](_0x1b0378[_0x65f5bf(0x3aa)])['length']){_0x1b0378['chunksQueue']=[],_0x26382a=null,_0x1b0378[_0x65f5bf(0x36c)][_0x65f5bf(0x602)]=0x0;return;}_0x1b0378['stats'][_0x65f5bf(0x602)]=_0x1b0378[_0x65f5bf(0x5e5)]['length'];var _0x236138=0x0,_0x1c8f8c=_0x1b0378[_0x65f5bf(0x5e5)][_0x65f5bf(0xaea)]();if(_0x1c8f8c[_0x65f5bf(0x5a7)]===0x2){_0xa40f1c=_0x1c8f8c[0x1],_0x1c8f8c[_0x65f5bf(0x285)](_0x1b0378[_0x65f5bf(0x5e5)][_0x65f5bf(0x5a7)]);var _0x35bf32=JSON[_0x65f5bf(0xaab)](_0x1c8f8c);for(var _0x507172 in _0x1b0378[_0x65f5bf(0x3aa)]){if(!_0x1b0378[_0x65f5bf(0x3aa)][_0x507172])continue;if((_0xa40f1c==_0x65f5bf(0x92b)||_0xa40f1c=='delta'||_0xa40f1c==_0x65f5bf(0xace))&&!_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x345)])continue;if((_0xa40f1c==_0x65f5bf(0x95b)||_0xa40f1c==_0x65f5bf(0x50b))&&!_0x1b0378[_0x65f5bf(0x71c)][_0x507172]['allowAudio'])continue;if(!_0x1b0378['chunkedTransferChannels'][_0x507172]['keyframeSent']&&_0xa40f1c==_0x65f5bf(0x746)){warnlog(_0x65f5bf(0x820));continue;}try{if(_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x240)]===_0x65f5bf(0x216)){if(!_0x1b0378[_0x65f5bf(0x3aa)][_0x507172][_0x65f5bf(0x2e7)]){if(_0x1b0378['chunkedDetails']){var _0x3d5649={..._0x1b0378[_0x65f5bf(0x98b)]};_0x3d5649[_0x65f5bf(0x238)]=Date[_0x65f5bf(0x56b)](),_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x8b0)](JSON['stringify'](_0x3d5649)),_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x2e7)]=!![];}else continue;}_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x8b0)](_0x35bf32);if(_0xa40f1c==_0x65f5bf(0x92b)||_0xa40f1c==_0x65f5bf(0xace))_0x1b0378['chunkedTransferChannels'][_0x507172]['keyframeSent']=!![];else(_0xa40f1c==_0x65f5bf(0x95b)||_0xa40f1c==_0x65f5bf(0x50b))&&(_0x1b0378[_0x65f5bf(0x3aa)][_0x507172][_0x65f5bf(0x890)]=!![]);_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)]['bufferedAmount']=_0x1b0378['chunkedTransferChannels'][_0x507172]['bufferedAmount'],_0x236138<_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)]['bufferedAmount']&&(_0x236138=_0x1b0378['pcs'][_0x507172]['stats'][_0x65f5bf(0x6c1)]);}}catch(_0x18fcd2){}}}else{if(_0x1c8f8c[_0x65f5bf(0x180)]>0x40000){for(var _0x507172 in _0x1b0378[_0x65f5bf(0x3aa)]){if(!_0x1b0378['chunkedTransferChannels'][_0x507172])continue;if((_0xa40f1c=='key'||_0xa40f1c==_0x65f5bf(0x746)||_0xa40f1c=='video')&&!_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x345)])continue;if((_0xa40f1c==_0x65f5bf(0x95b)||_0xa40f1c=='pcm')&&!_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x9ff)])continue;if((_0xa40f1c==_0x65f5bf(0x92b)||_0xa40f1c==_0x65f5bf(0x746)||_0xa40f1c==_0x65f5bf(0xace))&&!_0x1b0378[_0x65f5bf(0x3aa)][_0x507172][_0x65f5bf(0x807)]){warnlog(_0x65f5bf(0x820));continue;}else{if(!_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x890)]&&(_0xa40f1c==_0x65f5bf(0x95b)||_0xa40f1c==_0x65f5bf(0x50b))){warnlog(_0x65f5bf(0x6cf));continue;}}try{if(_0x1b0378[_0x65f5bf(0x3aa)][_0x507172][_0x65f5bf(0x240)]===_0x65f5bf(0x216)){if(!_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x2e7)]){if(_0x1b0378[_0x65f5bf(0x98b)]){var _0x3d5649={..._0x1b0378[_0x65f5bf(0x98b)]};_0x3d5649[_0x65f5bf(0x238)]=Date[_0x65f5bf(0x56b)](),_0x1b0378[_0x65f5bf(0x3aa)][_0x507172][_0x65f5bf(0x8b0)](JSON[_0x65f5bf(0xaab)](_0x3d5649)),_0x1b0378[_0x65f5bf(0x3aa)][_0x507172]['detailsSent']=!![];}else continue;}_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x8b0)](_0x1c8f8c[_0x65f5bf(0x19a)](0x0,0x40000)),_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)][_0x65f5bf(0x6c1)]=_0x1b0378[_0x65f5bf(0x3aa)][_0x507172]['bufferedAmount'],_0x236138<_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)]['bufferedAmount']&&(_0x236138=_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)][_0x65f5bf(0x6c1)]);}}catch(_0x48f18f){}}_0x1b0378[_0x65f5bf(0x5e5)]['unshift'](_0x1c8f8c['slice'](0x40000));}else for(var _0x507172 in _0x1b0378[_0x65f5bf(0x3aa)]){if(!_0x1b0378[_0x65f5bf(0x3aa)][_0x507172])continue;if((_0xa40f1c==_0x65f5bf(0x92b)||_0xa40f1c=='delta'||_0xa40f1c==_0x65f5bf(0xace))&&!_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x345)])continue;if((_0xa40f1c==_0x65f5bf(0x95b)||_0xa40f1c==_0x65f5bf(0x50b))&&!_0x1b0378['pcs'][_0x507172][_0x65f5bf(0x9ff)])continue;try{if(_0x1b0378[_0x65f5bf(0x3aa)][_0x507172][_0x65f5bf(0x240)]==='open'){if(!_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x2e7)]){if(_0x1b0378[_0x65f5bf(0x98b)]){var _0x3d5649={..._0x1b0378['chunkedDetails']};_0x3d5649['timestamp']=Date[_0x65f5bf(0x56b)](),_0x1b0378['chunkedTransferChannels'][_0x507172]['send'](JSON[_0x65f5bf(0xaab)](_0x3d5649)),_0x1b0378['chunkedTransferChannels'][_0x507172]['detailsSent']=!![];}else continue;}_0x1b0378['chunkedTransferChannels'][_0x507172][_0x65f5bf(0x8b0)](_0x1c8f8c);}_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)][_0x65f5bf(0x6c1)]=_0x1b0378[_0x65f5bf(0x3aa)][_0x507172]['bufferedAmount'],_0x236138<_0x1b0378['pcs'][_0x507172]['stats']['bufferedAmount']&&(_0x236138=_0x1b0378[_0x65f5bf(0x71c)][_0x507172][_0x65f5bf(0x36c)][_0x65f5bf(0x6c1)]);}catch(_0x2b4c54){}}}_0x1b0378[_0x65f5bf(0x36c)][_0x65f5bf(0xb30)]=_0x236138;}_0x26382a=null,_0x1b0378['stats'][_0x65f5bf(0x602)]=0x0;};}for(var _0x41c0c7 in _0x1b0378['pcs']){if(_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7]){if(_0x1b0378[_0x52f490(0x98b)]){var _0x232734={..._0x1b0378[_0x52f490(0x98b)]};_0x232734[_0x52f490(0x238)]=Date[_0x52f490(0x56b)]();if(_0x3a3a2f)try{_0x1b0378['chunkedTransferChannels'][_0x41c0c7][_0x52f490(0x8b0)](JSON[_0x52f490(0xaab)](_0x232734)),_0x1b0378['chunkedTransferChannels'][_0x41c0c7][_0x52f490(0x2e7)]=!![];}catch(_0x4254a0){}else{if(!_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x2e7)])try{_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x8b0)](JSON[_0x52f490(0xaab)](_0x232734)),_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x2e7)]=!![];}catch(_0xc3f3e2){}}}}else{var _0x1275e6=_0x52f490(0x861);_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7]=_0x1b0378['pcs'][_0x41c0c7][_0x52f490(0xaef)](_0x1275e6,{'ordered':!![]}),_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x468)]=_0x52f490(0x9fa),_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x7f1)]=_0x52f490(0x6cc),_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x78c)]=![],_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x2e7)]=![],_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x5ec)]=null,_0x1b0378['chunkedTransferChannels'][_0x41c0c7][_0x52f490(0x807)]=![],_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x890)]=![],_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x799)]=()=>{var _0x376fee=_0x52f490;log(_0x376fee(0x770));if(_0x1b0378[_0x376fee(0x98b)]){var _0x25295a={..._0x1b0378[_0x376fee(0x98b)]};_0x25295a[_0x376fee(0x238)]=Date[_0x376fee(0x56b)](),_0x1b0378[_0x376fee(0x3aa)][_0x41c0c7][_0x376fee(0x8b0)](JSON[_0x376fee(0xaab)](_0x25295a)),_0x1b0378[_0x376fee(0x3aa)][_0x41c0c7][_0x376fee(0x2e7)]=!![];}},_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x7ee)]=()=>{var _0x480d16=_0x52f490;try{var _0x5dcc6f=_0x1b0378[_0x480d16(0x67d)][_0x480d16(0x7ce)](_0x1b0378[_0x480d16(0x3aa)][_0x41c0c7]);_0x5dcc6f>-0x1&&_0x1b0378[_0x480d16(0x67d)]['splice'](_0x5dcc6f,0x1);}catch(_0x34831c){errorlog(_0x34831c);}log('re-Transfer\x20ended'),_0x1b0378[_0x480d16(0x3aa)][_0x41c0c7]=null,delete _0x1b0378['chunkedTransferChannels'][_0x41c0c7];var _0x1919f4=![];for(var _0x4f0e02=0x0;_0x4f0e02<_0x1b0378['hostedTransfers'][_0x480d16(0x5a7)];_0x4f0e02++){if(_0x480d16(0x468)in _0x1b0378[_0x480d16(0x67d)][_0x4f0e02]&&_0x1b0378[_0x480d16(0x67d)][_0x4f0e02][_0x480d16(0x468)]==_0x480d16(0x9fa)){_0x1919f4=!![];break;}}},_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7][_0x52f490(0x745)]=_0x57d5c0=>{var _0x12908d=_0x52f490;if(_0x57d5c0[_0x12908d(0x778)])try{var _0x4f3556=JSON[_0x12908d(0x5da)](_0x57d5c0[_0x12908d(0x778)]);_0x4f3556['kf']&&(_0x1b0378[_0x12908d(0x3bb)][_0x12908d(0x535)]?(_0x1b0378[_0x12908d(0x3bb)][_0x12908d(0x535)][_0x12908d(0x8b0)](JSON[_0x12908d(0xaab)]({'kf':!![]})),warnlog(_0x12908d(0x8f1))):errorlog(_0x12908d(0xa5a)));}catch(_0x163a47){}},_0x1b0378[_0x52f490(0x67d)][_0x52f490(0x285)](_0x1b0378[_0x52f490(0x3aa)][_0x41c0c7]);}}await _0x1b0378[_0x52f490(0x3bb)][_0x52f490(0x8e4)]();};async function _0x1b8b14(_0x1e257d=0x500,_0x5bd519=0x2d0,_0x3c9cc7=0x1e){var _0x21db66=_0x2f55f4,_0x216521=['av01.0.04M.08',_0x21db66(0x45c),_0x21db66(0x4bc),'avc1.42001E'],_0x2cb579=['prefer-hardware',_0x21db66(0x37a)],_0x33b8a6=[];if(_0x1b0378[_0x21db66(0x969)]){var _0x8701c5=[],_0x163e64=_0x21db66(0x60b);for(var _0x1d12cd of _0x216521){for(var _0x2ace10 of _0x2cb579){_0x8701c5[_0x21db66(0x285)]({'codec':_0x1d12cd,'alpha':_0x163e64,'hardwareAcceleration':_0x2ace10,'width':_0x1e257d,'height':_0x5bd519,'bitrate':0x1e8480,'bitrateMode':_0x21db66(0xacb),'framerate':_0x3c9cc7,'latencyMode':'realtime'});}}for(var _0x5dad39=0x0;_0x5dad39<_0x8701c5[_0x21db66(0x5a7)];_0x5dad39++){var _0xaac7d2=await VideoEncoder[_0x21db66(0xb4f)](_0x8701c5[_0x5dad39]);_0xaac7d2&&_0xaac7d2[_0x21db66(0x2f4)]&&_0x33b8a6[_0x21db66(0x285)](_0xaac7d2);}!_0x33b8a6[_0x21db66(0x5a7)]&&(!_0x1b0378[_0x21db66(0x379)]&&warnUser(_0x21db66(0x8aa),0x1770));}if(!_0x33b8a6[_0x21db66(0x5a7)]){var _0x8701c5=[],_0x163e64=_0x21db66(0x44c);for(var _0x1d12cd of _0x216521){for(var _0x2ace10 of _0x2cb579){_0x8701c5[_0x21db66(0x285)]({'codec':_0x1d12cd,'alpha':_0x163e64,'hardwareAcceleration':_0x2ace10,'width':_0x1e257d,'height':_0x5bd519,'bitrate':0x1e8480,'bitrateMode':'constant','framerate':_0x3c9cc7,'latencyMode':_0x21db66(0x204)});}}for(var _0x5dad39=0x0;_0x5dad39<_0x8701c5[_0x21db66(0x5a7)];_0x5dad39++){var _0xaac7d2=await VideoEncoder['isConfigSupported'](_0x8701c5[_0x5dad39]);_0xaac7d2&&_0xaac7d2[_0x21db66(0x2f4)]&&_0x33b8a6[_0x21db66(0x285)](_0xaac7d2);}}return _0x33b8a6;}_0x1b0378['chunkedStream']=async function(_0x4a0d32=null){var _0x4d5164=_0x2f55f4;if(_0x4a0d32&&!_0x1b0378[_0x4d5164(0x71c)][_0x4a0d32][_0x4d5164(0x71f)])return;!_0x1b0378['chunkedVideoEnabled']&&_0x1b0378['chunkedRecorder']&&_0x1b0378['chunkedRecorder']['configVideo']&&await _0x1b0378[_0x4d5164(0x5ed)](_0x1b0378['stats']['Chunked_video']);!_0x1b0378[_0x4d5164(0x7f6)]&&_0x1b0378['chunkedRecorder']&&_0x1b0378[_0x4d5164(0x3bb)]['configAudio']&&await _0x1b0378[_0x4d5164(0x46a)](_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x4fe)]);if(_0x4a0d32){if(_0x4a0d32 in _0x1b0378[_0x4d5164(0x3aa)]){warnlog(_0x4d5164(0x3b2));return;}else _0x1b0378['chunkedTransferChannels'][_0x4a0d32]=null;}if(!_0x1b0378['chunkedRecorder']){var _0x39c5c0=_0x1b0378[_0x4d5164(0x613)](),_0x4e7450=_0x1b0378[_0x4d5164(0x861)],_0x5a04b1=null;_0x1b0378['maxvideobitrate']&&_0x1b0378[_0x4d5164(0x860)]<_0x4e7450&&(_0x4e7450=_0x1b0378[_0x4d5164(0x860)]);var _0x3da061={'codec':_0x4d5164(0x45c),'width':0x780,'height':0x438,'bitrate':parseInt(_0x4e7450*0x3e8),'frameRate':0x1e,'latencyMode':'realtime'},_0x4a871f=_0x39c5c0['getVideoTracks']();if(_0x4a871f['length']){var _0xaf8235=_0x4a871f[0x0][_0x4d5164(0x6e2)]();_0xaf8235[_0x4d5164(0x57a)]&&(_0x3da061[_0x4d5164(0x57a)]=_0xaf8235['width']),_0xaf8235[_0x4d5164(0x7bd)]&&(_0x3da061[_0x4d5164(0x7bd)]=_0xaf8235['height']),_0xaf8235[_0x4d5164(0x42c)]&&(_0x3da061[_0x4d5164(0x42c)]=_0xaf8235[_0x4d5164(0x42c)]);}else _0x3da061=![];if(_0x4e7450<0x259){var _0xa93921=_0x3da061[_0x4d5164(0x57a)]*_0x3da061[_0x4d5164(0x7bd)]/(0x280*0x168);if(_0xa93921>=0x2)_0x3da061[_0x4d5164(0x57a)]=parseInt(_0x3da061[_0x4d5164(0x57a)]/0x2),_0x3da061[_0x4d5164(0x7bd)]=parseInt(_0x3da061[_0x4d5164(0x7bd)]/0x2);else _0xa93921>=1.5&&(_0x3da061[_0x4d5164(0x57a)]=parseInt(_0x3da061[_0x4d5164(0x57a)]/1.5),_0x3da061[_0x4d5164(0x7bd)]=parseInt(_0x3da061['height']/1.5));}try{var _0x64abad=await _0x1b8b14(_0x3da061[_0x4d5164(0x57a)],_0x3da061[_0x4d5164(0x7bd)],_0x3da061[_0x4d5164(0x42c)]);_0x64abad&&_0x64abad[_0x4d5164(0x5a7)]&&(_0x3da061['codec']=_0x64abad[0x0][_0x4d5164(0x292)][_0x4d5164(0x8a4)],_0x3da061[_0x4d5164(0x969)]=_0x64abad[0x0][_0x4d5164(0x292)][_0x4d5164(0x969)]),console[_0x4d5164(0x1fd)](_0x64abad);}catch(_0x41a73b){errorlog(_0x41a73b);}warnlog(_0x3da061);_0x3da061[_0x4d5164(0x57a)]==_0x3da061[_0x4d5164(0x7bd)]&&(_0x3da061[_0x4d5164(0x57a)]=0x280,_0x3da061['height']=0x280);var _0x1040b4={'codec':'opus','numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80,'bitrate':0xfa00,'tuning':{'bitrate':0xfa00}};if(_0x4e7450>0xbb8)_0x1040b4={'codec':_0x4d5164(0x61b),'numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80,'tuning':{'bitrate':0x1f400}};else _0x4e7450<0x259&&(_0x1040b4={'codec':'opus','numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80,'tuning':{'bitrate':0x7d00}});_0x1b0378[_0x4d5164(0x50b)]&&(_0x1040b4={'codec':_0x4d5164(0x50b),'numberOfChannels':0x2,'channels':0x2,'sampleRate':0xbb80});!_0x39c5c0[_0x4d5164(0x834)]()[_0x4d5164(0x5a7)]&&(_0x1040b4=![]);if(!_0x1040b4&&!_0x3da061){warnlog('no\x20video/audio\x20config');return;}warnlog(_0x4d5164(0x817)),_0x1b0378[_0x4d5164(0x3bb)]={},_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x311)]=!![],_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0xa13)]=_0x3da061||![],_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x4fe)]=_0x1040b4||![],_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x39a)]=[],_0x1b0378[_0x4d5164(0x36c)][_0x4d5164(0x633)]=_0x1b0378[_0x4d5164(0x861)];function _0x4631a8(){var _0x1139bb=_0x4d5164;const _0x26c7f5='room123';let _0x11c60=![];var _0x212916=new WebSocket(_0x1139bb(0x16f)+_0x26c7f5+'/publisher');_0x212916[_0x1139bb(0x879)]=null,_0x212916['binaryType']=_0x1139bb(0x6cc),_0x212916[_0x1139bb(0x799)]=()=>{var _0xc26022=_0x1139bb;console['log']('Connected\x20to\x20Chunkcast');if(_0x1b0378[_0xc26022(0x7f6)]&&_0x1b0378[_0xc26022(0x569)]){let _0x15863b={'timestamp':Date[_0xc26022(0x56b)](),'type':'chunkedtransfer','realTimeVideo':_0x1b0378[_0xc26022(0x36c)][_0xc26022(0x5ca)][_0xc26022(0x2bb)]||0x0,'realTimeAudio':_0x1b0378['stats'][_0xc26022(0xa82)][_0xc26022(0x2bb)]||0x0,'size':0x5af3107a3fff,'configVideo':_0x1b0378[_0xc26022(0x3bb)][_0xc26022(0xa13)],'configAudio':_0x1b0378['chunkedRecorder'][_0xc26022(0x4fe)],'recordType':_0x1b0378[_0xc26022(0x861)],'filename':_0x43908d+_0xc26022(0xac9),'id':_0x43908d};log(_0x15863b),_0x212916[_0xc26022(0x258)](_0x15863b),_0x11c60=!![];}else{if(_0x1b0378['chunkedAudioEnabled']){let _0x19d0e0={'timestamp':Date['now'](),'type':_0xc26022(0x7a3),'realTimeAudio':_0x1b0378[_0xc26022(0x36c)][_0xc26022(0xa82)][_0xc26022(0x2bb)]||0x0,'size':0x5af3107a3fff,'configAudio':_0x1b0378[_0xc26022(0x3bb)][_0xc26022(0x4fe)],'recordType':_0x1b0378[_0xc26022(0x861)],'filename':_0x43908d+_0xc26022(0xac9),'id':_0x43908d};log(_0x19d0e0),_0x212916['sendHeader'](_0x19d0e0),_0x11c60=!![];}else{if(_0x1b0378['chunkedVideoEnabled']){let _0x39f9c0={'timestamp':Date[_0xc26022(0x56b)](),'type':'chunkedtransfer','realTimeVideo':_0x1b0378[_0xc26022(0x36c)][_0xc26022(0x5ca)][_0xc26022(0x2bb)]||0x0,'size':0x5af3107a3fff,'configVideo':_0x1b0378['chunkedRecorder']['configVideo'],'recordType':_0x1b0378['chunked'],'filename':_0x43908d+_0xc26022(0xac9),'id':_0x43908d};log(_0x39f9c0),_0x212916[_0xc26022(0x258)](_0x39f9c0),_0x11c60=!![];}}}console[_0xc26022(0x1fd)](_0xc26022(0x95d)),_0x1b0378[_0xc26022(0x3bb)]&&_0x1b0378[_0xc26022(0x3bb)]['sendChunks']&&_0x1b0378[_0xc26022(0x3bb)][_0xc26022(0x8e4)](),_0x1cee87();},_0x212916['sendObject']=function(_0x5621c5){var _0x10dcb2=_0x1139bb;if(!_0x11c60)return;if(Array[_0x10dcb2(0x6b9)](_0x5621c5))_0x212916[_0x10dcb2(0x258)](_0x5621c5);else{if(typeof _0x5621c5===_0x10dcb2(0x506))_0x212916[_0x10dcb2(0x16c)](_0x5621c5);else return _0x10dcb2(0x41b);}},_0x212916[_0x1139bb(0x258)]=function(_0x1fb425){var _0xfbea7b=_0x1139bb;try{const _0x49676a=JSON[_0xfbea7b(0xaab)](_0x1fb425),_0x562ab1=new TextEncoder()[_0xfbea7b(0x7ad)](_0x49676a),_0x3216ae=new Uint8Array([0x0]),_0x2f1e4b=new Uint8Array(_0x3216ae[_0xfbea7b(0x5a7)]+_0x562ab1[_0xfbea7b(0x5a7)]);_0x2f1e4b[_0xfbea7b(0xb07)](_0x3216ae,0x0),_0x2f1e4b[_0xfbea7b(0xb07)](_0x562ab1,_0x3216ae[_0xfbea7b(0x5a7)]),this[_0xfbea7b(0x8b0)](_0x2f1e4b);}catch(_0x3ae397){errorlog(_0x3ae397);}},_0x212916['sendVideoChunk']=function(_0x2ace51){var _0x1346e7=_0x1139bb;try{const _0x57c336=new Uint8Array([0x1]),_0x10f01f=new Uint8Array(_0x57c336[_0x1346e7(0x5a7)]+_0x2ace51['byteLength']);_0x10f01f[_0x1346e7(0xb07)](_0x57c336,0x0),_0x10f01f[_0x1346e7(0xb07)](new Uint8Array(_0x2ace51),_0x57c336[_0x1346e7(0x5a7)]),this['send'](_0x10f01f);}catch(_0x204daf){errorlog(_0x204daf);}},_0x212916[_0x1139bb(0x745)]=function(_0x172a90){var _0x31dbf8=_0x1139bb;const _0x69203e=new Uint8Array(_0x172a90[_0x31dbf8(0x778)]),_0x4f1fce=_0x69203e[0x0];if(_0x4f1fce===0x3){const _0x41ab63=new DataView(_0x69203e['buffer'])[_0x31dbf8(0x2a1)](0x1,!![]),_0x1259b6=new DataView(_0x69203e['buffer'])[_0x31dbf8(0x2a1)](0x5,!![]),_0x5e119d=_0x69203e[0x9]===0x1;console[_0x31dbf8(0x1fd)]('Total\x20viewers:\x20'+_0x41ab63),console[_0x31dbf8(0x1fd)](_0x31dbf8(0x3bc)+_0x1259b6),_0x5e119d&&(console['log'](_0x31dbf8(0x8b9)),_0x1b0378['chunkedRecorder'][_0x31dbf8(0x311)]=!![]);}},_0x212916[_0x1139bb(0x509)]=function(){var _0x5d35a2=_0x1139bb;const _0x32adb7=new Uint8Array([0x2]);this[_0x5d35a2(0x8b0)](_0x32adb7);};function _0x1cee87(){var _0x4055ed=_0x1139bb;_0x1b0378['ws']['readyState']===0x1&&(_0x212916[_0x4055ed(0x509)](),clearTimeout(_0x212916[_0x4055ed(0x879)]),_0x212916[_0x4055ed(0x879)]=setTimeout(_0x1cee87,0x1388));}return _0x212916['onclose']=()=>{var _0x4cdbcd=_0x1139bb;console[_0x4cdbcd(0x1fd)](_0x4cdbcd(0x1d1));},_0x212916[_0x1139bb(0x83b)]=_0x287efa=>{var _0xc7c183=_0x1139bb;console['error'](_0xc7c183(0x9c9),_0x287efa);},_0x212916;}_0x1b0378['chunkedRecorder'][_0x4d5164(0x1c1)]=![],_0x1b0378['chunkedRecorder'][_0x4d5164(0x8e4)]=async function(_0xa788b9=_0x4d5164(0x772)){var _0x3b2484=_0x4d5164;if(_0x5a04b1)return;_0x5a04b1=!![];if(_0x1b0378[_0x3b2484(0x825)]){!_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x1c1)]&&(_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x1c1)]=_0x4631a8());if(_0x1b0378[_0x3b2484(0x3bb)]['wss']){if(_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x1c1)][_0x3b2484(0x240)]===0x1)while(_0x1b0378[_0x3b2484(0x5e5)][_0x3b2484(0x5a7)]){try{_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x1c1)][_0x3b2484(0x853)](_0x1b0378['chunksQueue'][_0x3b2484(0xaea)]());}catch(_0x250ecf){break;}}else _0x1b0378[_0x3b2484(0x5e5)]=[];_0x5a04b1=null;return;}}var _0x29b33e=_0xa788b9;while(_0x1b0378[_0x3b2484(0x5e5)][_0x3b2484(0x5a7)]){if(!Object[_0x3b2484(0x69e)](_0x1b0378[_0x3b2484(0x3aa)])[_0x3b2484(0x5a7)]){_0x1b0378[_0x3b2484(0x5e5)]=[],_0x5a04b1=null,_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x602)]=0x0,_0x1b0378['chunkedRecorder']['chunkRates']=[];return;}_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x602)]=_0x1b0378[_0x3b2484(0x5e5)][_0x3b2484(0x5a7)];var _0x3087c2=0x0,_0x2e4347=_0x1b0378[_0x3b2484(0x5e5)]['shift']();if(_0x2e4347[_0x3b2484(0x5a7)]===0x2){_0x29b33e=_0x2e4347[0x1],_0x2e4347['push'](_0x1b0378[_0x3b2484(0x5e5)][_0x3b2484(0x5a7)]);var _0x4055bd=JSON['stringify'](_0x2e4347);for(var _0x24bf4d in _0x1b0378[_0x3b2484(0x3aa)]){if(!_0x1b0378['chunkedTransferChannels'][_0x24bf4d])continue;if((_0x29b33e=='key'||_0x29b33e==_0x3b2484(0x746)||_0x29b33e==_0x3b2484(0xace))&&!_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x345)])continue;if(!_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d])continue;if((_0x29b33e==_0x3b2484(0x95b)||_0x29b33e==_0x3b2484(0x50b))&&(!_0x1b0378['pcs'][_0x24bf4d][_0x3b2484(0x9ff)]||_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x71f)]==0x2))continue;try{_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d][_0x3b2484(0x240)]===_0x3b2484(0x216)&&_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d][_0x3b2484(0x8b0)](_0x4055bd),_0x1b0378['pcs'][_0x24bf4d]['stats'][_0x3b2484(0x6c1)]=_0x1b0378['chunkedTransferChannels'][_0x24bf4d][_0x3b2484(0x6c1)],_0x3087c2<_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d]['stats']['bufferedAmount']&&(_0x3087c2=_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x36c)]['bufferedAmount']);}catch(_0x208148){}}}else{if(_0x2e4347[_0x3b2484(0x180)]>0x40000){for(var _0x24bf4d in _0x1b0378[_0x3b2484(0x3aa)]){if(!_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d])continue;if((_0x29b33e==_0x3b2484(0x92b)||_0x29b33e=='delta'||_0x29b33e=='video')&&!_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d]['allowVideo'])continue;if(!_0x1b0378['pcs'][_0x24bf4d])continue;if((_0x29b33e=='audio'||_0x29b33e=='pcm')&&(!_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x9ff)]||_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x71f)]==0x2))continue;try{_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d][_0x3b2484(0x240)]===_0x3b2484(0x216)&&_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d][_0x3b2484(0x8b0)](_0x2e4347[_0x3b2484(0x19a)](0x0,0x40000)),_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x36c)][_0x3b2484(0x6c1)]=_0x1b0378['chunkedTransferChannels'][_0x24bf4d][_0x3b2484(0x6c1)],_0x3087c2<_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x36c)]['bufferedAmount']&&(_0x3087c2=_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x36c)]['bufferedAmount']);}catch(_0x16ebf0){}}_0x1b0378['chunksQueue'][_0x3b2484(0x987)](_0x2e4347[_0x3b2484(0x19a)](0x40000)),_0x1b0378['chunkedRecorder'][_0x3b2484(0x39a)]['push']({'bufferSize':_0x3087c2,'byteLength':0x40000,'timestamp':Date[_0x3b2484(0x56b)]()});}else{for(var _0x24bf4d in _0x1b0378['chunkedTransferChannels']){if(!_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d])continue;if((_0x29b33e==_0x3b2484(0x92b)||_0x29b33e==_0x3b2484(0x746)||_0x29b33e==_0x3b2484(0xace))&&!_0x1b0378['pcs'][_0x24bf4d][_0x3b2484(0x345)])continue;if(!_0x1b0378['pcs'][_0x24bf4d])continue;if((_0x29b33e==_0x3b2484(0x95b)||_0x29b33e==_0x3b2484(0x50b))&&(!_0x1b0378['pcs'][_0x24bf4d][_0x3b2484(0x9ff)]||_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x71f)]==0x2))continue;try{_0x1b0378['chunkedTransferChannels'][_0x24bf4d][_0x3b2484(0x240)]===_0x3b2484(0x216)&&_0x1b0378['chunkedTransferChannels'][_0x24bf4d]['send'](_0x2e4347),_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d][_0x3b2484(0x36c)][_0x3b2484(0x6c1)]=_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d][_0x3b2484(0x6c1)],_0x3087c2<_0x1b0378['pcs'][_0x24bf4d][_0x3b2484(0x36c)]['bufferedAmount']&&(_0x3087c2=_0x1b0378[_0x3b2484(0x71c)][_0x24bf4d]['stats'][_0x3b2484(0x6c1)]);}catch(_0x3acd38){}}_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x39a)]['push']({'bufferSize':_0x3087c2,'byteLength':_0x2e4347['byteLength'],'timestamp':Date[_0x3b2484(0x56b)]()});}}_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x39a)]=_0x1b0378['chunkedRecorder'][_0x3b2484(0x39a)][_0x3b2484(0x19a)](-0x3e8);let _0x5996ce=_0x1b0378['stats'][_0x3b2484(0x633)]||_0x1b0378[_0x3b2484(0x861)],_0x555f01=0x0,_0x3239cc=0x0,_0xf9b0e3=0x0;for(let _0x283277=_0x1b0378[_0x3b2484(0x3bb)]['chunkRates']['length']-0x1;_0x283277>0x0;_0x283277--){if(_0xf9b0e3>_0x1b0378['sendingBuffer']*0x2){_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x39a)][_0x3b2484(0xa4a)](_0x283277-0x1,0x1);continue;}const _0x46ab39=_0x1b0378['chunkedRecorder'][_0x3b2484(0x39a)][_0x283277-0x1],_0x4772f3=_0x1b0378[_0x3b2484(0x3bb)]['chunkRates'][_0x283277];_0x3239cc+=_0x4772f3['bufferSize']-_0x46ab39[_0x3b2484(0x3ac)],_0x555f01+=_0x4772f3['byteLength'],_0xf9b0e3+=_0x4772f3[_0x3b2484(0x238)]-_0x46ab39[_0x3b2484(0x238)];}let _0x44bd5c=_0x555f01-_0x3239cc;const _0xc522f3=_0x555f01/(_0xf9b0e3/0x3e8)*0x8/0x3e8,_0x3d6c2e=_0x44bd5c/(_0xf9b0e3/0x3e8)*0x8/0x3e8;_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x389)]=parseInt(0x8*_0x3087c2/_0x3d6c2e)+_0x3b2484(0x5a6)+_0x1b0378[_0x3b2484(0xac3)];let _0x550492=0x8*_0x3087c2/_0x3d6c2e/_0x1b0378[_0x3b2484(0xac3)];_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x837)]=_0x550492,_0x1b0378['stats'][_0x3b2484(0x649)]=parseInt(_0xc522f3)+_0x3b2484(0x6d4)+parseInt(_0x3d6c2e),_0x1b0378[_0x3b2484(0x36c)]['currentRate']=parseInt(_0x5996ce);if(_0xc522f3>_0x3d6c2e){if(_0x550492>0.2)_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]=_0x5996ce*0.95;else{if(_0x550492>0.5)_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]=_0x5996ce*0.9;else _0x550492>0x1&&(_0x1b0378[_0x3b2484(0x36c)]['adjustBitrate']=_0x5996ce*0.2);}}else _0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]=_0x5996ce*1.1;_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]<0xa&&(_0x1b0378[_0x3b2484(0x36c)]['adjustBitrate']=0xa);_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]>_0x1b0378[_0x3b2484(0x861)]&&(_0x1b0378['stats'][_0x3b2484(0x633)]=_0x1b0378[_0x3b2484(0x861)]);try{_0x1b0378[_0x3b2484(0x3bb)]&&_0x1b0378[_0x3b2484(0x3bb)]['videoEncoder']&&(_0x1b0378[_0x3b2484(0x3bb)]['videoEncoder'][_0x3b2484(0x65f)]==_0x3b2484(0x354)&&(console['log'](_0x3b2484(0x646)),delete _0x1b0378[_0x3b2484(0x3bb)]['videoEncoder'],_0x1b0378[_0x3b2484(0x569)]=null,await _0x1b0378['webCodec']()),_0x1b0378[_0x3b2484(0x3bb)]&&_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)]&&_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)]['configure']&&_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)][_0x3b2484(0x292)]&&(_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)][_0x3b2484(0x292)]['bitrate']&&_0x1b0378['stats']['adjustBitrate']&&(_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)][_0x3b2484(0x292)][_0x3b2484(0x85a)]=_0x1b0378['stats'][_0x3b2484(0x633)]*0x3e8),_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)][_0x3b2484(0x292)][_0x3b2484(0x74f)]&&_0x1b0378['stats'][_0x3b2484(0x633)]&&(_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)][_0x3b2484(0x292)][_0x3b2484(0x74f)]['bitrate']=_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]*0x3e8),_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)][_0x3b2484(0x18f)](_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)]['config'])),_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x633)]=parseInt(_0x1b0378['stats']['adjustBitrate'])),_0x1b0378[_0x3b2484(0x3bb)]&&_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x585)]&&(_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x585)][_0x3b2484(0x65f)]==_0x3b2484(0x354)&&(console[_0x3b2484(0x1fd)]('Video\x20encdoder\x20closed'),delete _0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x585)],_0x1b0378[_0x3b2484(0x7f6)]=null,await _0x1b0378[_0x3b2484(0x46a)]()),_0x1b0378[_0x3b2484(0x3bb)]&&_0x1b0378['chunkedRecorder'][_0x3b2484(0x585)]&&_0x1b0378['chunkedRecorder'][_0x3b2484(0x585)][_0x3b2484(0x18f)]&&_0x1b0378['chunkedRecorder']['audioEncoder']['config']&&_0x1b0378['chunkedRecorder'][_0x3b2484(0x585)]['configure'](_0x1b0378[_0x3b2484(0x3bb)]['audioEncoder'][_0x3b2484(0x292)]));}catch(_0x21d9e6){errorlog(_0x21d9e6);if(_0x1b0378['chunkedTransferChannels'])for(var _0x24bf4d in _0x1b0378['chunkedTransferChannels']){_0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d]['close']();_0x24bf4d in _0x1b0378[_0x3b2484(0x3aa)]&&delete _0x1b0378[_0x3b2484(0x3aa)][_0x24bf4d];_0x1b0378[_0x3b2484(0x569)]=null,_0x1b0378['chunkedAudioEnabled']=null;if(_0x1b0378['chunkedRecorder']&&_0x1b0378['chunkedRecorder'][_0x3b2484(0x269)]){try{_0x1b0378['chunkedRecorder'][_0x3b2484(0x269)][_0x3b2484(0x635)]();}catch(_0x495f3f){}delete _0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x269)],await _0x1b0378[_0x3b2484(0x5ed)]();}if(_0x1b0378['chunkedRecorder']&&_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x585)])try{_0x1b0378[_0x3b2484(0x3bb)][_0x3b2484(0x585)][_0x3b2484(0x635)](),delete _0x1b0378['chunkedRecorder']['audioEncoder'];}catch(_0x3c09f9){}setTimeout(function(_0x32f978){var _0x23d39c=_0x3b2484;_0x1b0378[_0x23d39c(0xa73)](_0x32f978);},0x3e8,_0x24bf4d);}return;}}_0x5a04b1=null,_0x1b0378[_0x3b2484(0x36c)][_0x3b2484(0x602)]=0x0;},_0x1b0378[_0x4d5164(0x3bb)]['configVideo']&&(_0x1b0378[_0x4d5164(0x3bb)]['videoPromise']=_0x1b0378[_0x4d5164(0x5ed)](_0x1b0378['chunkedRecorder'][_0x4d5164(0xa13)])),_0x1b0378['chunkedRecorder'][_0x4d5164(0x4fe)]&&(_0x1b0378[_0x4d5164(0x3bb)]['configAudio'][_0x4d5164(0x8a4)]==_0x4d5164(0x50b)?_0x1b0378[_0x4d5164(0x8cc)](_0x39c5c0,_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x4fe)]):_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x2d1)]=_0x1b0378[_0x4d5164(0x46a)](_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x4fe)])),_0x39c5c0[_0x4d5164(0x5a0)]=function(_0x58ad55){warnlog('STREAM\x20ENDED'),log(_0x58ad55);};}else warnlog('session.chunkedRecorder\x20is\x20not\x20false');_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x51d)]&&(await _0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x51d)],delete _0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x51d)]);_0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x2d1)]&&(await _0x1b0378[_0x4d5164(0x3bb)]['audioPromise'],delete _0x1b0378[_0x4d5164(0x3bb)][_0x4d5164(0x2d1)]);if(!_0x4a0d32)return;var _0x43908d=_0x4d5164(0x861);if(_0x4a0d32 in _0x1b0378[_0x4d5164(0x71c)]){if(!_0x1b0378['chunkedTransferChannels'][_0x4a0d32])_0x1b0378[_0x4d5164(0x3aa)][_0x4a0d32]=_0x1b0378[_0x4d5164(0x71c)][_0x4a0d32][_0x4d5164(0xaef)](_0x43908d,{'ordered':!![]});else{errorlog(_0x4d5164(0x49a));return;}}else{warnlog(_0x4d5164(0x934));return;}_0x1b0378['chunkedTransferChannels'][_0x4a0d32][_0x4d5164(0x468)]=_0x4d5164(0x9fa),_0x1b0378[_0x4d5164(0x3aa)][_0x4a0d32][_0x4d5164(0x7f1)]=_0x4d5164(0x6cc),_0x1b0378[_0x4d5164(0x3aa)][_0x4a0d32][_0x4d5164(0x78c)]=![],_0x1b0378['chunkedTransferChannels'][_0x4a0d32][_0x4d5164(0x799)]=()=>{var _0xf42d43=_0x4d5164;log(_0xf42d43(0x4a9));if(_0x1b0378[_0xf42d43(0x7f6)]&&_0x1b0378[_0xf42d43(0x569)]&&_0x1b0378[_0xf42d43(0x71c)][_0x4a0d32][_0xf42d43(0x9ff)]&&!(_0x1b0378[_0xf42d43(0x71c)][_0x4a0d32]['allowChunked']==0x2)&&_0x1b0378[_0xf42d43(0x71c)][_0x4a0d32][_0xf42d43(0x345)]){let _0x51aff4={'timestamp':Date['now'](),'type':_0xf42d43(0x7a3),'realTimeVideo':_0x1b0378[_0xf42d43(0x36c)][_0xf42d43(0x5ca)]['realTime']||0x0,'realTimeAudio':_0x1b0378[_0xf42d43(0x36c)]['Chunked_audio']['realTime']||0x0,'size':0x5af3107a3fff,'configVideo':_0x1b0378[_0xf42d43(0x3bb)]['configVideo'],'configAudio':_0x1b0378['chunkedRecorder']['configAudio'],'recordType':_0x1b0378['chunked'],'filename':_0x43908d+_0xf42d43(0xac9),'id':_0x43908d};log(_0x51aff4),_0x1b0378[_0xf42d43(0x3aa)][_0x4a0d32][_0xf42d43(0x8b0)](JSON[_0xf42d43(0xaab)](_0x51aff4));}else{if(_0x1b0378[_0xf42d43(0x7f6)]&&_0x1b0378[_0xf42d43(0x71c)][_0x4a0d32][_0xf42d43(0x9ff)]&&!(_0x1b0378[_0xf42d43(0x71c)][_0x4a0d32][_0xf42d43(0x71f)]==0x2)){let _0x3b86bf={'timestamp':Date[_0xf42d43(0x56b)](),'type':_0xf42d43(0x7a3),'realTimeAudio':_0x1b0378[_0xf42d43(0x36c)][_0xf42d43(0xa82)][_0xf42d43(0x2bb)]||0x0,'size':0x5af3107a3fff,'configAudio':_0x1b0378[_0xf42d43(0x3bb)][_0xf42d43(0x4fe)],'recordType':_0x1b0378[_0xf42d43(0x861)],'filename':_0x43908d+_0xf42d43(0xac9),'id':_0x43908d};log(_0x3b86bf),_0x1b0378[_0xf42d43(0x3aa)][_0x4a0d32][_0xf42d43(0x8b0)](JSON['stringify'](_0x3b86bf));}else{if(_0x1b0378['chunkedVideoEnabled']&&_0x1b0378[_0xf42d43(0x71c)][_0x4a0d32][_0xf42d43(0x345)]){let _0x36f295={'timestamp':Date['now'](),'type':_0xf42d43(0x7a3),'realTimeVideo':_0x1b0378['stats']['Chunked_video'][_0xf42d43(0x2bb)]||0x0,'size':0x5af3107a3fff,'configVideo':_0x1b0378[_0xf42d43(0x3bb)][_0xf42d43(0xa13)],'recordType':_0x1b0378[_0xf42d43(0x861)],'filename':_0x43908d+_0xf42d43(0xac9),'id':_0x43908d};log(_0x36f295),_0x1b0378[_0xf42d43(0x3aa)][_0x4a0d32]['send'](JSON[_0xf42d43(0xaab)](_0x36f295));}}}},_0x1b0378[_0x4d5164(0x3aa)][_0x4a0d32][_0x4d5164(0x7ee)]=()=>{var _0x5e3a84=_0x4d5164;try{var _0x5d2037=_0x1b0378[_0x5e3a84(0x67d)][_0x5e3a84(0x7ce)](_0x1b0378[_0x5e3a84(0x3aa)][_0x4a0d32]);_0x5d2037>-0x1&&_0x1b0378[_0x5e3a84(0x67d)][_0x5e3a84(0xa4a)](_0x5d2037,0x1);}catch(_0x2d807f){errorlog(_0x2d807f);}log('Transfer\x20ended'),_0x1b0378[_0x5e3a84(0x3aa)][_0x4a0d32]=null,delete _0x1b0378[_0x5e3a84(0x3aa)][_0x4a0d32];var _0x28f2c3=!![];for(var _0x2b87f9=0x0;_0x2b87f9<_0x1b0378['hostedTransfers'][_0x5e3a84(0x5a7)];_0x2b87f9++){if(_0x5e3a84(0x468)in _0x1b0378[_0x5e3a84(0x67d)][_0x2b87f9]&&_0x1b0378[_0x5e3a84(0x67d)][_0x2b87f9][_0x5e3a84(0x468)]=='chunks'){_0x28f2c3=![];break;}}if(_0x28f2c3){warnlog(_0x5e3a84(0x8e7));try{_0x1b0378[_0x5e3a84(0x3bb)][_0x5e3a84(0x336)]();}catch(_0x4b0e81){}_0x1b0378[_0x5e3a84(0x3bb)]=![];}},_0x1b0378[_0x4d5164(0x3aa)][_0x4a0d32]['onmessage']=_0x41c70f=>{var _0x135c5d=_0x4d5164;if(_0x41c70f[_0x135c5d(0x778)])try{var _0x228872=JSON[_0x135c5d(0x5da)](_0x41c70f[_0x135c5d(0x778)]);_0x228872['kf']&&(warnlog(_0x135c5d(0x30e)),_0x1b0378[_0x135c5d(0x3bb)][_0x135c5d(0x311)]=!![]);}catch(_0x1750b4){}},_0x1b0378['hostedTransfers'][_0x4d5164(0x285)](_0x1b0378[_0x4d5164(0x3aa)][_0x4a0d32]);},_0x1b0378[_0x2f55f4(0x8e3)]=async function(_0x25caf8,_0x1efbcb,_0x2e2982){var _0x53a92f=_0x2f55f4;log(_0x53a92f(0x528));var _0x25894=_0x2e2982;_0x25894[_0x53a92f(0x7f1)]=_0x53a92f(0x6cc);var _0x5990d4='',_0x10ed8b=0x0,_0x2defd1=![],_0x47b9bf=![],_0x12e8e=0x0,_0x1b4ce6={};_0x25894[_0x53a92f(0x799)]=_0x24ebf1=>{log('Opened\x20transfer\x20channel');},_0x25894[_0x53a92f(0x745)]=_0x4fc603=>{var _0x17efc0=_0x53a92f;if(!_0x2defd1)try{_0x2defd1=JSON[_0x17efc0(0x5da)](_0x4fc603[_0x17efc0(0x778)]);if(_0x2defd1[_0x17efc0(0x7a5)]==_0x17efc0(0x43c)){var {readable:_0x923f9d,writable:_0x1ce924}=new TransformStream({'transform':(_0x271c3a,_0x1336c1)=>_0x271c3a['arrayBuffer']()['then'](_0xe2a06e=>_0x1336c1[_0x17efc0(0x55c)](new Uint8Array(_0xe2a06e)))});_0x1b4ce6[_0x17efc0(0x4f8)]=_0x1ce924[_0x17efc0(0x29c)](),_0x923f9d[_0x17efc0(0xa1d)](streamSaver['createWriteStream'](_0x2defd1['filename']));for(var _0x1a44f6=0x0;_0x1a44f6{var _0x476f99=_0x53a92f;_0x12e8e<=0x0&&(_0x1b4ce6[_0x476f99(0x4f8)]&&setTimeout(function(_0xc3be0f,_0x1ad5d5){_0x1ad5d5<=0x0?(_0xc3be0f['close'](),_0xc3be0f=null):setTimeout(function(_0x5a4e63,_0x42e3fe){_0x5a4e63['close'](),_0x5a4e63=null;},0x1388,_0xc3be0f);},0x3e8,_0x1b4ce6[_0x476f99(0x4f8)],_0x12e8e));_0x25894=null;return;};return;};async function _0x3ff9eb(_0x464945,_0x265ef2=![]){var _0x4e3ef4=_0x2f55f4;try{_0x464945[_0x4e3ef4(0x553)][_0x4e3ef4(0x223)](_0x464945[_0x4e3ef4(0x9cd)][_0x4e3ef4(0xaea)]());}catch(_0x247f33){errorlog(_0x247f33);}if(_0x464945[_0x4e3ef4(0xb22)]===null&&!_0x265ef2)return;_0x464945[_0x4e3ef4(0xb22)]=setTimeout(function(_0x7448c9){_0x3ff9eb(_0x7448c9);},0x21,_0x464945);}return _0x1b0378['recieveChunkedStream']=async function(_0x20a658,_0x4bc783){var _0x1b2952=_0x2f55f4;log(_0x1b2952(0x528));if(!_0x1b0378[_0x1b2952(0x7cc)][_0x20a658]){errorlog(_0x1b2952(0x540));return;}!_0x1b0378[_0x1b2952(0x7cc)][_0x20a658][_0x1b2952(0xb3a)]?_0x1b0378['rpcs'][_0x20a658]['chunkedChannels']=[]:_0x1b0378[_0x1b2952(0x7cc)][_0x20a658][_0x1b2952(0xb3a)]['forEach'](_0x422ce7=>{var _0x3dfb76=_0x1b2952;_0x422ce7[_0x3dfb76(0x462)]&&_0x422ce7[_0x3dfb76(0x462)][_0x3dfb76(0x635)]();});var _0x3f29b3='',_0x11b810=0x0,_0x2a5c08=![],_0x15b7a1=![],_0x5e7cb8={};_0x5e7cb8['channel']=_0x4bc783,_0x1b0378[_0x1b2952(0x7cc)][_0x20a658][_0x1b2952(0xb3a)]['push'](_0x5e7cb8),_0x5e7cb8[_0x1b2952(0x462)][_0x1b2952(0x7f1)]=_0x1b2952(0x6cc),_0x5e7cb8[_0x1b2952(0x462)][_0x1b2952(0x799)]=_0x5b9463=>{log('Opened\x20transfer\x20channel');},_0x5e7cb8[_0x1b2952(0x462)][_0x1b2952(0x7ee)]=async function(_0x3553db){var _0x111721=_0x1b2952;if(_0x5e7cb8&&_0x5e7cb8[_0x111721(0xa02)]){if(_0x5e7cb8&&_0x5e7cb8[_0x111721(0x601)][_0x111721(0x70b)]){await delay(0x3e8);try{await _0x5e7cb8[_0x111721(0x601)][_0x111721(0x70b)]();}catch(_0x192ee1){}}}_0x1b0378[_0x111721(0x7cc)][_0x20a658]&&(delete _0x1b0378[_0x111721(0x7cc)][_0x20a658][_0x111721(0x36c)][_0x111721(0x36b)],delete _0x1b0378[_0x111721(0x7cc)][_0x20a658][_0x111721(0x36c)][_0x111721(0x83d)]);return;};async function _0x5ba2c2(){var _0x542232=_0x1b2952,_0x328503=await window[_0x542232(0x989)]({'startIn':_0x542232(0x9a5),'suggestedName':'myVideo.webm','types':[{'description':_0x542232(0x9fe),'accept':{'video/webm':[_0x542232(0xac9)]}}]}),_0x144b9f=await _0x328503[_0x542232(0x188)]();return _0x5e7cb8[_0x542232(0x82d)]['fileWriter']=_0x144b9f,_0x5e7cb8[_0x542232(0xa02)]=new WebMWriter(_0x5e7cb8[_0x542232(0x82d)]),_0x5e7cb8[_0x542232(0x601)][_0x542232(0x70b)]=async function(_0x4d34aa=![]){var _0x1fd229=_0x542232;_0x4d34aa?(_0x5e7cb8[_0x1fd229(0x82d)][_0x1fd229(0x281)][_0x1fd229(0x635)](),_0x5e7cb8[_0x1fd229(0x601)][_0x1fd229(0x70b)]=![],clearInterval(_0x5e7cb8['updateTime']),_0x5e7cb8[_0x1fd229(0xadb)]=null,await _0x5e7cb8[_0x1fd229(0xa02)][_0x1fd229(0x96b)]()):(_0x5e7cb8[_0x1fd229(0x601)][_0x1fd229(0x70b)]=![],clearInterval(_0x5e7cb8[_0x1fd229(0xadb)]),_0x5e7cb8[_0x1fd229(0xadb)]=null,await _0x5e7cb8[_0x1fd229(0xa02)][_0x1fd229(0x96b)](),_0x5e7cb8[_0x1fd229(0x82d)]['fileWriter']['close']());},_0x5e7cb8[_0x542232(0xa02)];}_0x5e7cb8[_0x1b2952(0x462)][_0x1b2952(0x745)]=async function(_0xf8c473){var _0x246953=_0x1b2952;if(!_0x2a5c08)try{let _0x1cdbc5=JSON[_0x246953(0x5da)](_0xf8c473[_0x246953(0x778)]);if(_0x1cdbc5[_0x246953(0x7a5)]=='chunkedtransfer'){log('GOT\x20CHUNKED\x20DETAILS'),_0x2a5c08=_0x1cdbc5;_0x1b0378[_0x246953(0xa52)]&&_0x1b0378['retransmitChunkedStream'](_0x2a5c08,_0x5e7cb8[_0x246953(0x462)]);log('CHUNKED\x20DETAILS'),log(_0x2a5c08),_0x5e7cb8[_0x246953(0x630)]=_0x2a5c08,_0x5e7cb8[_0x246953(0x7b3)]=_0x20a658,_0x5e7cb8['completed']=0x0,_0x5e7cb8[_0x246953(0x337)]=0x2,_0x5e7cb8[_0x246953(0x75a)]=Date['now'](),_0x5e7cb8['theirtime']=_0x2a5c08[_0x246953(0x238)],_0x5e7cb8[_0x246953(0x4a2)]=_0x5e7cb8[_0x246953(0x75a)]-_0x2a5c08[_0x246953(0x238)],_0x5e7cb8['dc']=_0x5e7cb8[_0x246953(0x462)],_0x5e7cb8['id']=_0x2a5c08['id'],_0x5e7cb8[_0x246953(0xadb)]=null,_0x5e7cb8[_0x246953(0xad0)]=![];!_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)]&&(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)]=createVideoElement());_0x5e7cb8[_0x246953(0x601)]=_0x1b0378[_0x246953(0x7cc)][_0x20a658]['videoElement'];!_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)][_0x246953(0x318)]&&(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)][_0x246953(0x318)]=createMediaStream());!_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x97f)]&&(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x97f)]=createMediaStream());_0x5e7cb8['streamSrc']=_0x1b0378['rpcs'][_0x20a658][_0x246953(0x97f)],_0x5e7cb8['videoElement']['autoplay']=!![],_0x5e7cb8[_0x246953(0x601)][_0x246953(0x5cd)]=![],_0x5e7cb8[_0x246953(0x601)][_0x246953(0x8c8)](_0x246953(0xa4b),''),_0x5e7cb8[_0x246953(0x601)]['dataset'][_0x246953(0x7e8)]=_0x1b0378['rpcs'][_0x20a658]['streamID'],_0x5e7cb8[_0x246953(0x601)]['id']='videosource_'+_0x20a658,_0x5e7cb8[_0x246953(0x601)][_0x246953(0x970)][_0x246953(0x7b3)]=_0x20a658,_0x5e7cb8['videoElement']['chunkedtransfer']=!![];_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0xa5f)]&&applyMirrorGuest(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0xa5f)],_0x1b0378[_0x246953(0x7cc)][_0x20a658]['videoElement']);_0x1b0378[_0x246953(0x7cc)][_0x20a658]['rotate']!==![]&&(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)][_0x246953(0x301)]=_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x4da)],_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)][_0x246953(0x970)][_0x246953(0x301)]=_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x4da)]);_0x5e7cb8[_0x246953(0x601)][_0x246953(0x35f)](_0x246953(0x751),_0x16b5d6=>{var _0x8cdaf2=_0x246953;try{var _0x4a86c3=document['getElementById'](_0x8cdaf2(0x926));_0x4a86c3&&_0x4a86c3[_0x8cdaf2(0xa95)][_0x8cdaf2(0x31b)](_0x4a86c3);}catch(_0x3cf5f9){}_0x5e7cb8[_0x8cdaf2(0x751)]=!![];if(_0x5e7cb8[_0x8cdaf2(0x999)])_0x5e7cb8[_0x8cdaf2(0x999)][_0x8cdaf2(0x8e0)]();else _0x1b0378[_0x8cdaf2(0x4b4)]&&_0x1b0378[_0x8cdaf2(0x4b4)][_0x8cdaf2(0x8e0)]();try{_0x1b0378[_0x8cdaf2(0xac5)]&&(v[_0x8cdaf2(0x240)]>=0x3&&(!v[_0x8cdaf2(0xac5)]&&(v[_0x8cdaf2(0xac5)]=!![],toggleSystemPip(v,!![]))));}catch(_0xd319a1){}},{'once':!![]}),_0x5e7cb8[_0x246953(0x601)]['addEventListener'](_0x246953(0x479),function(_0xf428ef){errorlog(_0xf428ef);}),_0x5e7cb8['videoElement'][_0x246953(0x77e)]=_0x5ba2c2,_0x5e7cb8[_0x246953(0x601)][_0x246953(0x2c6)]=function(){updateMixer();},_0x5e7cb8[_0x246953(0xa02)]=![],_0x5e7cb8['frameMeta']=![],_0x5e7cb8[_0x246953(0x82d)]={},_0x5e7cb8['writer_config']['video']=![],_0x5e7cb8[_0x246953(0x82d)]['audio']=![],_0x5e7cb8[_0x246953(0x402)]=![],_0x5e7cb8[_0x246953(0x532)]=![],_0x5e7cb8['init_video']=![],_0x5e7cb8[_0x246953(0x26d)]=![],_0x5e7cb8[_0x246953(0xace)]=![],_0x5e7cb8[_0x246953(0x95b)]=![],_0x5e7cb8[_0x246953(0x291)]=![],_0x5e7cb8[_0x246953(0x751)]=![],_0x5e7cb8['video_session']=0x1;if(_0x2a5c08[_0x246953(0xa13)]){_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x36c)][_0x246953(0x36b)]=_0x2a5c08[_0x246953(0xa13)],_0x5e7cb8['stream_configVideo']={},_0x5e7cb8[_0x246953(0x402)]['width']=_0x2a5c08['configVideo'][_0x246953(0x57a)]+''||'1280',_0x5e7cb8[_0x246953(0x402)][_0x246953(0x7bd)]=_0x2a5c08['configVideo']['height']+''||_0x246953(0x4f0),_0x5e7cb8[_0x246953(0x402)][_0x246953(0x8a4)]=_0x2a5c08[_0x246953(0xa13)][_0x246953(0x8a4)]||_0x246953(0x45c),_0x5e7cb8[_0x246953(0x82d)][_0x246953(0xace)]=!![],_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x57a)]=parseInt(_0x5e7cb8[_0x246953(0x402)][_0x246953(0x57a)]),_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x7bd)]=parseInt(_0x5e7cb8[_0x246953(0x402)][_0x246953(0x7bd)]);if(_0x2a5c08['configVideo']['codec']==_0x246953(0x45c))_0x5e7cb8['writer_config'][_0x246953(0x8a4)]=_0x246953(0x555);else{if(_0x2a5c08[_0x246953(0xa13)]['codec']==_0x246953(0xa35))_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x8a4)]=_0x246953(0x4ec);else{if(_0x2a5c08[_0x246953(0xa13)][_0x246953(0x8a4)]==_0x246953(0x796))_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x8a4)]=_0x246953(0x4ec);else{if(_0x2a5c08['configVideo'][_0x246953(0x8a4)]==_0x246953(0x8b6))_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x8a4)]=_0x246953(0x234);else _0x2a5c08[_0x246953(0xa13)][_0x246953(0x8a4)]=='h264'?_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x8a4)]='H264':_0x5e7cb8[_0x246953(0x82d)]['codec']=_0x246953(0x555);}}}_0x5e7cb8[_0x246953(0xb4e)]={'output':_0x4bf3a1=>{var _0x5b96ae=_0x246953;try{_0x5e7cb8['video']['frameWriter'][_0x5b96ae(0x655)](_0x4bf3a1)[_0x5b96ae(0x872)](_0x53de1e=>{});}catch(_0x7dd5b8){}},'error':_0x3c44c0=>{var _0x4bedd8=_0x246953;_0x5e7cb8['video']['decoder'][_0x4bedd8(0x65f)]==_0x4bedd8(0x354)?(errorlog(_0x3c44c0[_0x4bedd8(0x5d0)]),warnlog(_0x4bedd8(0x2a6))):errorlog(_0x3c44c0[_0x4bedd8(0x5d0)]);}},_0x5e7cb8[_0x246953(0xace)]={},_0x5e7cb8[_0x246953(0xace)][_0x246953(0x59e)]=new MediaStreamTrackGenerator({'kind':_0x246953(0xace)}),_0x5e7cb8['video'][_0x246953(0x84a)]=new MediaStream([_0x5e7cb8[_0x246953(0xace)][_0x246953(0x59e)]]),_0x5e7cb8[_0x246953(0xace)][_0x246953(0x308)]=_0x5e7cb8['video'][_0x246953(0x59e)][_0x246953(0xa03)][_0x246953(0x29c)](),_0x5e7cb8['video'][_0x246953(0x553)]=new VideoDecoder(_0x5e7cb8[_0x246953(0xb4e)]),_0x5e7cb8['video'][_0x246953(0x553)][_0x246953(0x18f)](_0x5e7cb8[_0x246953(0x402)]),_0x5e7cb8[_0x246953(0xace)][_0x246953(0x9cd)]=[],_0x5e7cb8[_0x246953(0xace)]['nextQueue']=null,_0x5e7cb8[_0x246953(0xace)][_0x246953(0x21a)]=![],_0x5e7cb8['video'][_0x246953(0x78c)]=![],'realTimeVideo'in _0x2a5c08&&(_0x5e7cb8['video']['realTime']=_0x2a5c08[_0x246953(0x1ab)]),_0x5e7cb8[_0x246953(0x97f)][_0x246953(0x428)](_0x5e7cb8[_0x246953(0xace)][_0x246953(0x84a)][_0x246953(0x527)]()[0x0]);}_0x2a5c08[_0x246953(0x4fe)]&&(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x36c)]['chunked_mode_audio']=_0x2a5c08[_0x246953(0x4fe)],_0x5e7cb8[_0x246953(0x532)]=_0x2a5c08[_0x246953(0x4fe)],_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x95b)]=!![],_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x740)]=_0x2a5c08[_0x246953(0x4fe)][_0x246953(0x4e1)]||0xbb80,_0x5e7cb8[_0x246953(0x82d)][_0x246953(0x287)]=_0x2a5c08[_0x246953(0x4fe)][_0x246953(0xa2f)]||0x1,_0x5e7cb8[_0x246953(0x532)][_0x246953(0x8a4)]&&_0x5e7cb8[_0x246953(0x532)][_0x246953(0x8a4)]==_0x246953(0x50b)?(!_0x5e7cb8[_0x246953(0x4b3)]?_0x5e7cb8[_0x246953(0x4b3)]=_0x1b0378[_0x246953(0x4b4)]['createMediaStreamDestination']():_0x5e7cb8[_0x246953(0x97f)][_0x246953(0x834)]()[_0x246953(0x6fb)](_0x4f926c=>{var _0x4cece9=_0x246953;_0x5e7cb8[_0x4cece9(0x97f)]['removeTrack'](_0x4f926c);}),_0x5e7cb8[_0x246953(0x4b3)]['stream'][_0x246953(0x834)]()['forEach'](_0x270906=>{var _0x5e3405=_0x246953;_0x5e7cb8['streamSrc'][_0x5e3405(0x428)](_0x270906);}),_0x5e7cb8[_0x246953(0x1ee)]=!![]):(!_0x5e7cb8[_0x246953(0x95b)]&&(_0x5e7cb8[_0x246953(0x95b)]={}),_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x9cd)]=[],_0x5e7cb8[_0x246953(0x95b)][_0x246953(0xb22)]=null,'realTimeAudio'in _0x2a5c08?_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x2bb)]=_0x2a5c08[_0x246953(0x9b8)]:errorlog('No\x20realtime'),_0x5e7cb8[_0x246953(0x26d)]={'output':_0x2a93a7=>{var _0x21f485=_0x246953;_0x5e7cb8[_0x21f485(0x95b)]['frameWriter'][_0x21f485(0x655)](_0x2a93a7);if(_0x5e7cb8['audioTime'])return;if(!_0x2a93a7['timestamp'])warnlog(_0x2a93a7);else(!_0x5e7cb8[_0x21f485(0x4a2)]||!_0x5e7cb8[_0x21f485(0x95b)]['realTime'])&&warnlog(_0x5e7cb8);var _0x14ff99=(_0x2a93a7[_0x21f485(0x238)]||0x0)/0x3e8-(Date[_0x21f485(0x56b)]()-(_0x5e7cb8[_0x21f485(0x4a2)]||0x0)-(_0x5e7cb8[_0x21f485(0x95b)][_0x21f485(0x2bb)]||0x0));_0x14ff99=_0x14ff99-(_0x1b0378['audioCtx'][_0x21f485(0x438)]||0x0)*0x3e8-(_0x1b0378[_0x21f485(0x4b4)]['outputLatency']||0x0)*0x3e8;var _0x5a3093=0xc8;if(!_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8['UUID']])return;else{if(_0x1b0378['rpcs'][_0x5e7cb8['UUID']][_0x21f485(0xad0)]!==![])_0x5a3093=_0x1b0378['rpcs'][_0x5e7cb8[_0x21f485(0x7b3)]]['buffer'];else{if(_0x1b0378[_0x21f485(0x660)]!==![])_0x5a3093=_0x1b0378[_0x21f485(0x660)];else _0x1b0378[_0x21f485(0xad0)]!==![]?_0x5a3093=_0x1b0378[_0x21f485(0xad0)]:_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8[_0x21f485(0x7b3)]][_0x21f485(0xad0)]=_0x5a3093;}}_0x14ff99+=_0x5a3093-0x78,_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8[_0x21f485(0x7b3)]][_0x21f485(0x36c)][_0x21f485(0x83d)][_0x21f485(0x86a)]=Date[_0x21f485(0x56b)](),_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8['UUID']]['stats'][_0x21f485(0x83d)][_0x21f485(0x965)]=_0x5e7cb8[_0x21f485(0x4a2)],_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8[_0x21f485(0x7b3)]][_0x21f485(0x36c)][_0x21f485(0x83d)][_0x21f485(0x5db)]=_0x5e7cb8['audio'][_0x21f485(0x2bb)],_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8[_0x21f485(0x7b3)]]['stats']['chunked_mode_audio'][_0x21f485(0x63d)]=_0x2a93a7['timestamp'],_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8['UUID']][_0x21f485(0x36c)][_0x21f485(0x83d)][_0x21f485(0x481)]=_0x14ff99,_0x1b0378[_0x21f485(0x7cc)][_0x5e7cb8[_0x21f485(0x7b3)]][_0x21f485(0x36c)][_0x21f485(0x83d)]['buffer_buffer']=_0x5a3093,_0x1b0378['rpcs'][_0x5e7cb8['UUID']][_0x21f485(0x36c)][_0x21f485(0x83d)][_0x21f485(0x224)]=(_0x1b0378[_0x21f485(0x4b4)]['baseLatency']||0x0)*0x3e8,_0x1b0378['rpcs'][_0x5e7cb8[_0x21f485(0x7b3)]][_0x21f485(0x36c)][_0x21f485(0x83d)][_0x21f485(0x245)]=(_0x1b0378[_0x21f485(0x4b4)][_0x21f485(0x1cc)]||0x0)*0x3e8;_0x14ff99<=0x0&&(_0x14ff99=0x0);try{_0x5e7cb8[_0x21f485(0x70d)]['delayTime'][_0x21f485(0x45f)](parseFloat(_0x14ff99/0x3e8),_0x1b0378[_0x21f485(0x4b4)][_0x21f485(0x6f8)]);}catch(_0x4a0cb1){log(_0x14ff99),errorlog(_0x4a0cb1);}_0x5e7cb8['audioTime']=setTimeout(function(){var _0x3cc8cf=_0x21f485;_0x5e7cb8[_0x3cc8cf(0xa1f)]=null;},_0x14ff99);},'error':_0x25b9c0=>{var _0x2a9635=_0x246953;_0x5e7cb8[_0x2a9635(0x95b)][_0x2a9635(0x553)]['state']==_0x2a9635(0x354)?(errorlog(_0x25b9c0[_0x2a9635(0x5d0)]),warnlog('CLOSED')):errorlog(_0x25b9c0[_0x2a9635(0x5d0)]);}},_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x553)]=new AudioDecoder(_0x5e7cb8[_0x246953(0x26d)]),_0x5e7cb8['audio'][_0x246953(0x553)][_0x246953(0x18f)](_0x5e7cb8[_0x246953(0x532)]),_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x59e)]=new MediaStreamTrackGenerator({'kind':_0x246953(0x95b)}),_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x308)]=_0x5e7cb8[_0x246953(0x95b)]['generator']['writable'][_0x246953(0x29c)](),_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x84a)]=new MediaStream([_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x59e)]]),_0x5e7cb8['audio'][_0x246953(0x6f6)]=_0x1b0378[_0x246953(0x4b4)]['createMediaStreamSource'](_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x84a)]),_0x5e7cb8['delayNode']=_0x1b0378[_0x246953(0x4b4)]['createDelay'](0x1e),_0x5e7cb8[_0x246953(0x70d)]['delayTime']['value']=0x0,_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x6f6)][_0x246953(0x9df)](_0x5e7cb8[_0x246953(0x70d)]),_0x5e7cb8['destination']=_0x1b0378['audioCtx'][_0x246953(0x9af)](),_0x5e7cb8[_0x246953(0x70d)][_0x246953(0x9df)](_0x5e7cb8[_0x246953(0x4b3)]),_0x5e7cb8[_0x246953(0x4b3)][_0x246953(0x84a)][_0x246953(0x834)]()['forEach'](_0x1ac0cf=>{var _0x149008=_0x246953;_0x5e7cb8[_0x149008(0x97f)]['addTrack'](_0x1ac0cf);})));warnlog(_0x2a5c08),setupIncomingVideoTracking(_0x1b0378[_0x246953(0x7cc)][_0x20a658][_0x246953(0x601)],_0x20a658);if(_0x5e7cb8[_0x246953(0x95b)]&&_0x5e7cb8[_0x246953(0xace)])updateIncomingVideoElement(_0x20a658);else{if(_0x5e7cb8[_0x246953(0xace)])updateIncomingVideoElement(_0x20a658,!![],![]);else _0x5e7cb8[_0x246953(0x95b)]&&updateIncomingVideoElement(_0x20a658,![],!![]);}_0x5e7cb8[_0x246953(0x34d)]=async function(_0x341563){var _0x4d5309=_0x246953;_0x1b0378[_0x4d5309(0x3f1)]&&_0x4d5309(0x238)in _0x341563&&_0x1b0378[_0x4d5309(0x7cc)][_0x20a658]&&pokeIframeAPI(_0x4d5309(0xaa9),{'UUID':_0x20a658,'streamID':_0x1b0378[_0x4d5309(0x7cc)][_0x20a658]['streamID'],'type':_0x341563[_0x4d5309(0x7a5)],'ts':_0x341563[_0x4d5309(0x238)]});if(_0x341563[_0x4d5309(0x7a5)]=='audio'){try{_0x1b0378[_0x4d5309(0x7cc)][_0x5e7cb8[_0x4d5309(0x7b3)]]['stats'][_0x4d5309(0x83d)][_0x4d5309(0x231)]=parseInt(_0x341563[_0x4d5309(0x238)]/0x2710)/0x64;}catch(_0x3ada08){console[_0x4d5309(0x479)](_0x4d5309(0x671),_0x3ada08);return;}_0x5e7cb8[_0x4d5309(0x986)](_0x341563);}else{if(_0x341563[_0x4d5309(0x7a5)]=='pcm'){var _0x4c3c57=_0x1b0378[_0x4d5309(0x4b4)][_0x4d5309(0x8df)]();_0x4c3c57[_0x4d5309(0x9df)](_0x5e7cb8[_0x4d5309(0x4b3)]),_0x4c3c57[_0x4d5309(0x536)]=function(){var _0x3a60be=_0x4d5309;this[_0x3a60be(0x154)]();};var _0x2d683b=_0x1b0378[_0x4d5309(0x4b4)][_0x4d5309(0x562)](0x2,_0x341563[_0x4d5309(0x778)][_0x4d5309(0x5a7)],_0x1b0378[_0x4d5309(0x4b4)][_0x4d5309(0x4e1)]/0x2);_0x4c3c57[_0x4d5309(0xad0)]=_0x2d683b;var _0xe44384=_0x2d683b[_0x4d5309(0x26a)](0x0)[_0x4d5309(0xb07)](_0x341563['data']);_0x4c3c57[_0x4d5309(0x417)](0x0);}else _0x1b0378[_0x4d5309(0x7cc)][_0x5e7cb8[_0x4d5309(0x7b3)]][_0x4d5309(0x36c)][_0x4d5309(0x36b)]['time_seconds']=parseInt(_0x341563[_0x4d5309(0x238)]/0x2710)/0x64,_0x5e7cb8['processFrameVideo'](_0x341563);}},_0x5e7cb8[_0x246953(0x6a2)]=async function(_0x1f325b){var _0x1192bb=_0x246953;try{_0x1f325b[_0x1192bb(0x7a5)]?_0x1f325b=new EncodedVideoChunk(_0x1f325b):errorlog(_0x1192bb(0x442));}catch(_0x38934f){errorlog(_0x38934f),errorlog(_0x1f325b);return;}if(_0x5e7cb8[_0x1192bb(0xa02)]&&_0x5e7cb8[_0x1192bb(0x601)]['stopWriter']){if(!_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x78c)]&&_0x1f325b[_0x1192bb(0x7a5)]!==_0x1192bb(0x92b))log(_0x1192bb(0x6ba)),log(_0x1f325b),!_0x5e7cb8[_0x1192bb(0xadd)]&&(_0x5e7cb8['dc']['send'](JSON[_0x1192bb(0xaab)]({'kf':!![]})),_0x5e7cb8[_0x1192bb(0xadd)]=setTimeout(function(){var _0x4ea3c8=_0x1192bb;clearTimeout(_0x5e7cb8[_0x4ea3c8(0xadd)]),_0x5e7cb8[_0x4ea3c8(0xadd)]=null;},0x3e8));else!_0x5e7cb8['video']['header']?(_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x78c)]=Date[_0x1192bb(0x56b)](),_0x5e7cb8[_0x1192bb(0xa02)][_0x1192bb(0x4e9)](_0x1f325b),log('start\x20writing\x20frames'),_0x1b0378[_0x1192bb(0x91b)]&&!_0x5e7cb8[_0x1192bb(0xadb)]&&(_0x5e7cb8[_0x1192bb(0xadb)]=setInterval(function(_0x26b4c0){var _0x441435=_0x1192bb,_0x82132d=(Date[_0x441435(0x56b)]()-_0x5e7cb8[_0x441435(0xace)][_0x441435(0x78c)])/0x3e8,_0x2f8911=Math['floor'](_0x82132d/0x3c),_0x1bdc7a=Math[_0x441435(0x1a3)](_0x82132d-_0x2f8911*0x3c);try{document[_0x441435(0x55d)](_0x441435(0x600)+_0x26b4c0+'\x27]')[_0x441435(0x716)]='\x20'+_0x2f8911+'m\x20:\x20'+zpadTime(_0x1bdc7a)+'s';}catch(_0x1d497f){log(_0x441435(0x1d7));}},0x3e8,_0x5e7cb8[_0x1192bb(0x7b3)]))):_0x5e7cb8[_0x1192bb(0xa02)][_0x1192bb(0x4e9)](_0x1f325b);}_0x5e7cb8['video']['playbackheader']&&_0x5e7cb8['video']&&_0x5e7cb8['video'][_0x1192bb(0x553)][_0x1192bb(0x65f)]===_0x1192bb(0x354)&&(_0x5e7cb8[_0x1192bb(0x5cc)]+=0x1,warnlog(_0x1192bb(0x1e1)),_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x21a)]=![],_0x5e7cb8['video'][_0x1192bb(0x553)]=new VideoDecoder(_0x5e7cb8[_0x1192bb(0xb4e)]),await _0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x553)][_0x1192bb(0x18f)](_0x5e7cb8['stream_configVideo']),_0x5e7cb8['video'][_0x1192bb(0x21a)]=![]);if(_0x5e7cb8[_0x1192bb(0xace)]['playbackheader']||_0x1f325b[_0x1192bb(0x7a5)]==='key'){_0x5e7cb8[_0x1192bb(0xace)]['playbackheader']=!![];try{if(_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0xb22)])_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x9cd)][_0x1192bb(0x285)](_0x1f325b);else{if(_0x5e7cb8[_0x1192bb(0xace)]['queue'][_0x1192bb(0x5a7)])_0x5e7cb8['video'][_0x1192bb(0x9cd)][_0x1192bb(0x285)](_0x1f325b);else{if(_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x2bb)]){_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0xb22)]=!![];function _0x465730(_0xcafbd7){var _0xbb6cc9=_0x1192bb,_0x50a19f=_0x5e7cb8[_0xbb6cc9(0x5cc)],_0x155191=_0xcafbd7[_0xbb6cc9(0x238)]/0x3e8-(Date[_0xbb6cc9(0x56b)]()-_0x5e7cb8['timedelta']-_0x5e7cb8[_0xbb6cc9(0xace)][_0xbb6cc9(0x2bb)]),_0x27b398=0xc8;if(!_0x1b0378[_0xbb6cc9(0x7cc)][_0x5e7cb8[_0xbb6cc9(0x7b3)]]){clearTimeout(_0x5e7cb8[_0xbb6cc9(0xace)][_0xbb6cc9(0xb22)]),_0x5e7cb8[_0xbb6cc9(0xace)][_0xbb6cc9(0xb22)]=null,_0x5e7cb8[_0xbb6cc9(0xace)][_0xbb6cc9(0x9cd)]=[];return;}else{if(_0x1b0378['rpcs'][_0x5e7cb8[_0xbb6cc9(0x7b3)]]['buffer']!==![])_0x27b398=_0x1b0378['rpcs'][_0x5e7cb8[_0xbb6cc9(0x7b3)]]['buffer'];else _0x1b0378[_0xbb6cc9(0xad0)]!==![]?_0x27b398=_0x1b0378[_0xbb6cc9(0xad0)]:_0x1b0378[_0xbb6cc9(0x7cc)][_0x5e7cb8[_0xbb6cc9(0x7b3)]][_0xbb6cc9(0xad0)]=_0x27b398;}_0x155191+=_0x27b398,!_0x1b0378[_0xbb6cc9(0x7cc)][_0x5e7cb8[_0xbb6cc9(0x7b3)]][_0xbb6cc9(0x36c)][_0xbb6cc9(0x36b)]&&(_0x1b0378['rpcs'][_0x5e7cb8[_0xbb6cc9(0x7b3)]]['stats'][_0xbb6cc9(0x36b)]={}),_0x1b0378[_0xbb6cc9(0x7cc)][_0x5e7cb8['UUID']][_0xbb6cc9(0x36c)][_0xbb6cc9(0x36b)][_0xbb6cc9(0x481)]=parseInt(_0x155191),_0x1b0378[_0xbb6cc9(0x7cc)][_0x5e7cb8[_0xbb6cc9(0x7b3)]][_0xbb6cc9(0x36c)][_0xbb6cc9(0x36b)][_0xbb6cc9(0x727)]=parseInt(_0x27b398),_0x1b0378[_0xbb6cc9(0x7cc)][_0x5e7cb8[_0xbb6cc9(0x7b3)]][_0xbb6cc9(0x36c)][_0xbb6cc9(0x36b)][_0xbb6cc9(0xb2d)]=_0xcafbd7[_0xbb6cc9(0x238)]+':'+(Date['now']()-_0x5e7cb8[_0xbb6cc9(0x4a2)]-_0x5e7cb8[_0xbb6cc9(0xace)][_0xbb6cc9(0x2bb)])+':'+Date[_0xbb6cc9(0x56b)]()+':'+_0x5e7cb8['timedelta']+':'+_0x5e7cb8[_0xbb6cc9(0xace)][_0xbb6cc9(0x2bb)],!_0x1b0378['silence']&&(_0x1b0378[_0xbb6cc9(0x33b)]=_0x1b0378[_0xbb6cc9(0x4b4)][_0xbb6cc9(0x387)](),_0x1b0378[_0xbb6cc9(0x33b)][_0xbb6cc9(0x3d8)][_0xbb6cc9(0x75b)]=0x0,_0x1b0378[_0xbb6cc9(0x33b)][_0xbb6cc9(0x9df)](_0x1b0378['audioCtx'][_0xbb6cc9(0x4b3)])),!_0x5e7cb8[_0xbb6cc9(0x930)]&&(_0x155191<=0x0&&(_0x155191=0x0),_0x5e7cb8['vosc']=_0x1b0378[_0xbb6cc9(0x4b4)][_0xbb6cc9(0x296)](),_0x5e7cb8[_0xbb6cc9(0x930)][_0xbb6cc9(0x9df)](_0x1b0378[_0xbb6cc9(0x33b)]),_0x5e7cb8[_0xbb6cc9(0x930)]['start'](0x0),_0x5e7cb8[_0xbb6cc9(0x930)]['onended']=_0x448058=>{var _0x428709=_0xbb6cc9;_0x5e7cb8[_0x428709(0x930)][_0x428709(0x154)]();if(_0x50a19f===_0x5e7cb8[_0x428709(0x5cc)])try{_0x5e7cb8[_0x428709(0xace)]['decoder'][_0x428709(0x223)](_0xcafbd7);}catch(_0x182b86){errorlog(_0x182b86);}else console[_0x428709(0x1fd)](_0x50a19f,_0x5e7cb8[_0x428709(0x5cc)]);_0x5e7cb8[_0x428709(0x930)]=![],_0x5e7cb8[_0x428709(0xace)][_0x428709(0x9cd)][_0x428709(0x5a7)]?_0x465730(_0x5e7cb8['video'][_0x428709(0x9cd)][_0x428709(0xaea)]()):_0x5e7cb8[_0x428709(0xace)]['nextQueue']=null;},_0x5e7cb8[_0xbb6cc9(0x930)]['stop'](_0x1b0378[_0xbb6cc9(0x4b4)][_0xbb6cc9(0x6f8)]+_0x155191/0x3e8));}try{_0x465730(_0x1f325b);}catch(_0x286df2){errorlog(_0x286df2),_0x5e7cb8['video'][_0x1192bb(0xb22)]=null,!_0x5e7cb8[_0x1192bb(0xadd)]&&(_0x5e7cb8['dc'][_0x1192bb(0x8b0)](JSON['stringify']({'kf':!![]})),_0x5e7cb8['requestKeyframe']=setTimeout(function(){var _0x53fe8e=_0x1192bb;clearTimeout(_0x5e7cb8['requestKeyframe']),_0x5e7cb8[_0x53fe8e(0xadd)]=null;},0x3e8));}}else try{_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x553)][_0x1192bb(0x223)](_0x1f325b);}catch(_0x5357aa){errorlog(_0x5357aa);}}}}catch(_0x1487a5){errorlog(_0x1487a5),_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x21a)]=![];}}_0x5e7cb8['video'][_0x1192bb(0x553)][_0x1192bb(0x838)]&&console[_0x1192bb(0x1fd)]('decodeQueueSize:\x20'+_0x5e7cb8[_0x1192bb(0xace)][_0x1192bb(0x553)][_0x1192bb(0x838)]),!_0x5e7cb8['video']['playbackheader']&&(!_0x5e7cb8['requestKeyframe']&&(_0x5e7cb8['dc'][_0x1192bb(0x8b0)](JSON[_0x1192bb(0xaab)]({'kf':!![]})),_0x5e7cb8['requestKeyframe']=setTimeout(function(){var _0x14cf51=_0x1192bb;clearTimeout(_0x5e7cb8[_0x14cf51(0xadd)]),_0x5e7cb8[_0x14cf51(0xadd)]=null;},0x3e8)));},_0x5e7cb8[_0x246953(0x986)]=async function(_0x1c6c10){var _0x2f1b22=_0x246953;if(!_0x5e7cb8[_0x2f1b22(0x95b)]){errorlog(_0x2f1b22(0x1ae));return;}try{_0x1c6c10['type']=_0x2f1b22(0x92b),_0x1c6c10=new EncodedAudioChunk(_0x1c6c10);}catch(_0x27d5b7){return;}_0x5e7cb8[_0x2f1b22(0xa02)]&&_0x5e7cb8[_0x2f1b22(0xace)][_0x2f1b22(0x78c)]&&_0x5e7cb8[_0x2f1b22(0x601)]['stopWriter']&&_0x5e7cb8[_0x2f1b22(0xa02)][_0x2f1b22(0x4e9)](_0x1c6c10);_0x5e7cb8['audio'][_0x2f1b22(0x553)]['state']===_0x2f1b22(0x354)&&(_0x5e7cb8[_0x2f1b22(0x95b)]['decoder']=new AudioDecoder(_0x5e7cb8[_0x2f1b22(0x26d)]),_0x5e7cb8['audio'][_0x2f1b22(0x553)]['configure'](_0x5e7cb8[_0x2f1b22(0x532)]));try{_0x5e7cb8[_0x2f1b22(0x95b)][_0x2f1b22(0x553)]['decode'](_0x1c6c10);}catch(_0x5c2f1e){errorlog(_0x5c2f1e);}};}else{if(_0x5e7cb8[_0x246953(0x95b)]&&_0x2a5c08[_0x246953(0x9b8)])_0x5e7cb8[_0x246953(0x95b)][_0x246953(0x2bb)]=_0x2a5c08[_0x246953(0x9b8)];else _0x5e7cb8['video']&&_0x2a5c08[_0x246953(0x1ab)]?_0x5e7cb8[_0x246953(0xace)][_0x246953(0x2bb)]=_0x2a5c08[_0x246953(0x1ab)]:errorlog(_0x1cdbc5);}return;}catch(_0x28d144){errorlog(_0x28d144);}else _0x1b0378['retransmit']&&(_0x1b0378[_0x246953(0x5e5)]['push'](_0xf8c473[_0x246953(0x778)]),_0x1b0378[_0x246953(0xa52)]&&_0x1b0378[_0x246953(0x28c)]());try{var _0x15a18c=_0xf8c473[_0x246953(0x778)];if(typeof _0x15a18c==_0x246953(0x22a)){if(_0x5e7cb8[_0x246953(0xad0)]){var _0x12f230=new Int8Array(_0x15a18c['buffer']);_0x5e7cb8[_0x246953(0xad0)]=![],await _0x5e7cb8[_0x246953(0x34d)]({'data':_0x12f230,'timestamp':_0x5e7cb8[_0x246953(0x4d8)][0x0],'type':_0x5e7cb8[_0x246953(0x4d8)][0x1]});}_0x5e7cb8['frameMeta']=JSON['parse'](_0x15a18c);}else{try{if(_0x15a18c[_0x246953(0x180)]>=0x40000){if(_0x5e7cb8['buffer']){_0x15a18c=new Int8Array(_0x15a18c);var _0x12f230=new Int8Array(_0x5e7cb8['buffer']['length']+_0x15a18c[_0x246953(0x5a7)]);_0x12f230[_0x246953(0xb07)](_0x5e7cb8['buffer']),_0x12f230[_0x246953(0xb07)](_0x15a18c,_0x5e7cb8['buffer'][_0x246953(0x5a7)]),_0x5e7cb8[_0x246953(0xad0)]=_0x12f230;}else _0x5e7cb8[_0x246953(0xad0)]=new Int8Array(_0x15a18c);return;}else{if(_0x5e7cb8[_0x246953(0xad0)]){_0x15a18c=new Int8Array(_0x15a18c);var _0x12f230=new Int8Array(_0x5e7cb8['buffer']['length']+_0x15a18c[_0x246953(0x5a7)]);_0x12f230['set'](_0x5e7cb8['buffer']),_0x12f230[_0x246953(0xb07)](_0x15a18c,_0x5e7cb8[_0x246953(0xad0)][_0x246953(0x5a7)]),_0x5e7cb8[_0x246953(0xad0)]=![],await _0x5e7cb8[_0x246953(0x34d)]({'data':_0x12f230,'timestamp':_0x5e7cb8[_0x246953(0x4d8)][0x0],'type':_0x5e7cb8[_0x246953(0x4d8)][0x1]});}else await _0x5e7cb8[_0x246953(0x34d)]({'data':new Uint8Array(_0x15a18c),'timestamp':_0x5e7cb8[_0x246953(0x4d8)][0x0],'type':_0x5e7cb8[_0x246953(0x4d8)][0x1]}),_0x5e7cb8[_0x246953(0x493)]&&_0x5e7cb8[_0x246953(0x493)]();}}catch(_0xec848e){errorlog(_0xec848e);}return;}}catch(_0x4d490e){errorlog(_0x4d490e);}};return;},_0x1b0378[_0x2f55f4(0x8c5)]=function(){var _0xcd6056=_0x2f55f4;const _0x219e3b=new Set([...Object['keys'](_0x1b0378['pcs']),...Object[_0xcd6056(0x69e)](_0x1b0378['rpcs'])]),_0x40eaf0=_0x1b0378[_0xcd6056(0x27e)][_0xcd6056(0x5a7)];_0x1b0378[_0xcd6056(0x27e)]=_0x1b0378[_0xcd6056(0x27e)][_0xcd6056(0xb13)](_0x5064fb=>_0x219e3b[_0xcd6056(0x30c)](_0x5064fb));const _0x3278c8=_0x40eaf0-_0x1b0378[_0xcd6056(0x27e)]['length'];_0x3278c8&&console[_0xcd6056(0x1fd)](_0xcd6056(0x626)+_0x3278c8+_0xcd6056(0x968));},_0x1b0378[_0x2f55f4(0x8ff)]=async function(_0x20e0da){var _0x9089b0=_0x2f55f4;log(_0x9089b0(0x1b5));var _0x2013f3=_0x20e0da[_0x9089b0(0x7b3)];if(_0x2013f3 in _0x1b0378[_0x9089b0(0x7cc)]){if(_0x9089b0(0x7c9)in _0x20e0da&&_0x20e0da[_0x9089b0(0x7c9)]){if(_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x7c9)]==_0x20e0da[_0x9089b0(0x7c9)]){log(_0x9089b0(0x339));return;}warnlog(_0x9089b0(0x33a)),_0x1b0378[_0x9089b0(0x14e)](_0x2013f3,![],!![])||![];}}else log('MAKING\x20A\x20NEW\x20RPCS\x20RTC\x20CONNECTION');try{for(var _0x4348cd in _0x1b0378[_0x9089b0(0x7cc)]){_0x1b0378[_0x9089b0(0x7cc)][_0x4348cd][_0x9089b0(0x791)]==_0x20e0da[_0x9089b0(0x791)]&&(_0x1b0378[_0x9089b0(0x7cc)][_0x4348cd][_0x9089b0(0x73a)]&&errorlog('This\x20stream\x20token\x20is\x20already\x20connected.\x20Are\x20you\x20having\x20a\x20CORS\x20issue?\x20Also,\x20ensure\x20SSL\x20if\x20enforced\x20on\x20your\x20host\x20everywhere.'),_0x1b0378[_0x9089b0(0x7cc)][_0x4348cd][_0x9089b0(0x601)]&&(_0x1b0378[_0x9089b0(0x7cc)][_0x4348cd]['videoElement'][_0x9089b0(0x90b)][_0x9089b0(0x985)]='none'),warnlog(_0x9089b0(0x9e3)),_0x1b0378[_0x9089b0(0x14e)](_0x4348cd),_0x4348cd!==_0x2013f3&&(_0x4348cd in _0x1b0378[_0x9089b0(0x71c)]&&(_0x20e0da[_0x9089b0(0x7c9)]&&_0x20e0da[_0x9089b0(0x7c9)]['substring'](0x0,0x6)!==_0x1b0378[_0x9089b0(0x6bf)]?(warnlog('CLOSING\x20SECONDARY\x20CONNECTION;\x20matched\x20stream\x20ID\x20has\x20re-connected'),log(_0x9089b0(0x50f)),_0x1b0378[_0x9089b0(0x6eb)](_0x4348cd,![])):warnlog('Websocket\x20connection\x20failed\x20or\x20something;\x20this\x20is\x20a\x20split\x20connection.\x20not\x20ideal,\x20as\x20it\x20could\x20be\x20unstable.'))));}document[_0x9089b0(0x1bb)](_0x9089b0(0x14a))&&(document['getElementById'](_0x9089b0(0x14a))[_0x9089b0(0xa95)][_0x9089b0(0x31b)](document[_0x9089b0(0x1bb)]('mainmenu')),document['querySelectorAll'](_0x9089b0(0x1c9))[_0x9089b0(0x6fb)](_0x1d9f76=>{var _0x4d4ce9=_0x9089b0;_0x1d9f76['classList']['remove'](_0x4d4ce9(0x21f));}));}catch(_0x1716f3){errorlog(_0x1716f3);}if(_0x1b0378[_0x9089b0(0x8ac)]!==![]){if(Object[_0x9089b0(0x69e)](_0x1b0378['rpcs'])['length']>=_0x1b0378[_0x9089b0(0x8ac)]){warnlog(_0x9089b0(0x924));return;}}else{if(_0x1b0378[_0x9089b0(0x2a5)]!==![]){if(Object[_0x9089b0(0x69e)](_0x1b0378[_0x9089b0(0x7cc)])['length']+Object[_0x9089b0(0x69e)](_0x1b0378[_0x9089b0(0x71c)])[_0x9089b0(0x5a7)]>=_0x1b0378[_0x9089b0(0x2a5)]){warnlog(_0x9089b0(0x924));return;}}}if(_0x1b0378['queue']){if(_0x1b0378[_0x9089b0(0x91b)])!(_0x2013f3 in _0x1b0378[_0x9089b0(0x71c)])&&_0x1b0378['offerSDP'](_0x2013f3);else{if(_0x1b0378[_0x9089b0(0x27e)][_0x9089b0(0x7ce)](_0x2013f3)==-0x1){if(!(_0x20e0da[_0x9089b0(0x791)]&&_0x1b0378[_0x9089b0(0x41c)]&&_0x1b0378[_0x9089b0(0x41c)][_0x9089b0(0x8a3)](_0x20e0da['streamID'])))return;}}}!_0x1b0378[_0x9089b0(0x85f)]&&await chooseBestTURN();_0x1b0378[_0x9089b0(0x73d)]&&(_0x1b0378[_0x9089b0(0x85f)][_0x9089b0(0x73d)]=!![]);_0x1b0378[_0x9089b0(0x5f7)]&&(_0x1b0378[_0x9089b0(0x85f)][_0x9089b0(0x5f7)]=_0x1b0378[_0x9089b0(0x5f7)]);try{if(_0x1b0378['rpcs'][_0x2013f3]&&_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x3d7)]){let _0x270621=new RTCPeerConnection(_0x1b0378['configuration']);var _0x5278ac=Object[_0x9089b0(0x69e)](_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]);for(var _0x4348cd=0x0;_0x4348cd<_0x5278ac['length'];_0x4348cd++){var _0x15bacf=_0x5278ac[_0x4348cd];if(_0x270621[_0x9089b0(0x76f)](_0x15bacf))continue;_0x270621[_0x15bacf]=_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x15bacf],log(_0x9089b0(0x4d9)+_0x15bacf);}_0x1b0378['rpcs'][_0x2013f3]=_0x270621;}else _0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]=new RTCPeerConnection(_0x1b0378[_0x9089b0(0x85f)]);if(_0x1b0378['requireencryption']&&!_0x20e0da['vector']){errorlog(_0x9089b0(0x9a4)),errorlog(_0x20e0da);return;}else{if(!_0x20e0da[_0x9089b0(0x7fc)]&&!_0x1b0378[_0x9089b0(0x587)]&&_0x1b0378[_0x9089b0(0x625)]&&!_0x1b0378[_0x9089b0(0x79d)]){errorlog(_0x9089b0(0x4ea)),errorlog(_0x20e0da);return;}}}catch(_0x9e2bed){!_0x1b0378['cleanOutput']&&warnUser(_0x9089b0(0x8e2));errorlog(_0x9e2bed);return;}!_0x20e0da[_0x9089b0(0x7fc)]?(_0x1b0378['password']&&_0x1b0378['defaultPassword']&&(warnlog(_0x9089b0(0x9d6)),warnlog(_0x20e0da)),_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x7fc)]=![]):(!_0x1b0378[_0x9089b0(0x625)]&&(errorlog(_0x9089b0(0x43f)),errorlog(_0x20e0da)),_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x7fc)]=!![]);if(_0x1b0378[_0x9089b0(0xaa4)]){if(Object[_0x9089b0(0x69e)](_0x1b0378[_0x9089b0(0x7cc)])[_0x9089b0(0x5a7)]>0x1){warnlog(_0x9089b0(0xa84)),log(_0x1b0378[_0x9089b0(0x7cc)]),delete _0x1b0378[_0x9089b0(0x7cc)][_0x2013f3],updateUserList();return;}else warnlog(_0x9089b0(0x862));}_0x20e0da[_0x9089b0(0x791)]in _0x1b0378[_0x9089b0(0x9cc)]&&(log('deleting\x20watch\x20list'),delete _0x1b0378[_0x9089b0(0x9cc)][_0x20e0da['streamID']]);try{_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x791)]=_0x20e0da[_0x9089b0(0x791)],await checkDirectorStreamID();}catch(_0x1908dd){errorlog(_0x1908dd);return;}_0x20e0da['session']?_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['session']=_0x20e0da[_0x9089b0(0x7c9)]:_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['session']=null;_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x4d2)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x4bd)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['defaultSpeaker']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x64e)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x61d)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x60a)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x566)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x36c)]={},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x36c)][_0x9089b0(0x4f6)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['showDirector']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x20e)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x38e)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x277)]=-0x1,_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x255)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xad0)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['channelOffset']=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x3d3)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x36e)]=-0x1,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x25b)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x601)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x8ec)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x558)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['group']=[],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x283)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['iframeVideo']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['lockedVideoBitrate']=![],_0x1b0378['rpcs'][_0x2013f3]['lockedAudioBitrate']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x27b)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['remoteMuteState']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xb0d)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x757)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xa90)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x848)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['mutedStateMixer']=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['mutedStateScene']=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xa5f)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xa07)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x4da)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x956)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x58c)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['scaleWidth']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['scaleSnap']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x54a)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x189)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x97f)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x1ea)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0xb10)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['smallScreen']=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x41e)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['director']=null,_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x66d)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x4fd)]=0x64,_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x6b3)]=0x0,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['nackCount']=0x0,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x9d0)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x7a6)]='1',_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x3a9)]='1',_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x381)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x804)]=0x0,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x4a1)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['meta']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x305)]=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x405)]=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['canvas']=null,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x81a)]={},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['iframeSrc']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['iframeEle']=![],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['startTime']=Date[_0x9089b0(0x56b)](),_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0xa27)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x991)]=_0x1b0378[_0x9089b0(0x991)];(_0x1b0378[_0x9089b0(0x786)]==0x2||_0x1b0378[_0x9089b0(0x786)]==0x4)&&(_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x64e)]=!![]);if(_0x1b0378['showall']){var _0x5c4c36=createRichVideoElement(_0x2013f3);_0x5c4c36['style']['display']=_0x9089b0(0x99e);}if(_0x1b0378[_0x9089b0(0x91b)]){if(_0x1b0378[_0x9089b0(0x937)]&&'isScene'in _0x20e0da&&_0x20e0da[_0x9089b0(0xa61)]!==![]){}else{var _0x252c53=soloLinkGenerator(_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x791)]);_0x9089b0(0x166)in _0x20e0da?createControlBox(_0x2013f3,_0x252c53,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x791)],_0x20e0da[_0x9089b0(0x166)]):createControlBox(_0x2013f3,_0x252c53,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x791)]);}}_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x7b3)]=_0x2013f3;try{if(_0x1b0378[_0x9089b0(0x41c)]){if(_0x1b0378['view_set'][_0x9089b0(0x8a3)](_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x791)])){if(_0x1b0378[_0x9089b0(0x960)]!==![]){let _0x33a052=_0x1b0378[_0x9089b0(0x41c)][_0x9089b0(0x7ce)](_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x791)]);_0x1b0378[_0x9089b0(0x960)][_0x9089b0(0x5a7)]>_0x33a052&&(_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x25b)]=parseInt(_0x1b0378[_0x9089b0(0x960)][_0x33a052]),_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x25b)]<=0x0&&(_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x25b)]=![]));}}}}catch(_0x6d1a8e){errorlog(_0x6d1a8e);}_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x7ee)]=function(_0x1888c1){var _0x576fe8=_0x9089b0;log(_0x576fe8(0x7c6)),_0x1b0378[_0x576fe8(0x14e)](_0x2013f3);},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xb27)]=null,_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x9ca)]=[],_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['delayIceSend']=0xa,_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x858)]=function(_0x1c1402){var _0x2effb9=_0x9089b0;if(_0x1c1402[_0x2effb9(0x250)]==null){log(_0x2effb9(0xad6));_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3]&&_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3][_0x2effb9(0xa3b)]&&(_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3]['whipCallback2']([..._0x1b0378[_0x2effb9(0x7cc)][_0x2013f3][_0x2effb9(0x9ca)]]),clearTimeout(_0x1b0378['rpcs'][_0x2013f3]['iceTimer']),_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3][_0x2effb9(0xb27)]=null,_0x1b0378['rpcs'][_0x2013f3][_0x2effb9(0x9ca)]=[],_0x1b0378['rpcs'][_0x2013f3][_0x2effb9(0xa3b)]=null,console[_0x2effb9(0x1fd)](_0x2effb9(0x9ad)));return;}try{if(_0x1b0378[_0x2effb9(0x86e)]){if(_0x1c1402['candidate'][_0x2effb9(0x250)][_0x2effb9(0x7ce)](_0x1b0378[_0x2effb9(0x86e)])===-0x1){log(_0x2effb9(0xb28));return;}else log(_0x1c1402[_0x2effb9(0x250)]);}}catch(_0x54c8c3){errorlog(_0x54c8c3);}try{if(_0x1b0378[_0x2effb9(0x4ff)]){if(!filterIceLAN(_0x1c1402['candidate']))return;}if(_0x1b0378[_0x2effb9(0x89e)]){if(!filterStunOnly(_0x1c1402['candidate']))return;}}catch(_0x24a930){errorlog(_0x24a930);}_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3][_0x2effb9(0x9ca)][_0x2effb9(0x285)](_0x1c1402[_0x2effb9(0x250)]);if(_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3]&&(_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3][_0x2effb9(0xa3b)]||_0x1b0378['rpcs'][_0x2013f3]['iceTimer']!==null))return;_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3][_0x2effb9(0xb27)]=setTimeout(function(_0x193b89){var _0x33ecf2=_0x2effb9;if(!(_0x193b89 in _0x1b0378[_0x33ecf2(0x7cc)]))return;if(_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89][_0x33ecf2(0xa3b)])return;_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89][_0x33ecf2(0xb27)]=null;if(!_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89][_0x33ecf2(0x9ca)]||!_0x1b0378['rpcs'][_0x193b89][_0x33ecf2(0x9ca)][_0x33ecf2(0x5a7)]){errorlog(_0x33ecf2(0x9ec));return;}var _0x332e2c={};_0x332e2c['UUID']=_0x193b89,_0x332e2c[_0x33ecf2(0x7a5)]=_0x33ecf2(0x2fb),_0x332e2c['candidates']=_0x1b0378['rpcs'][_0x193b89]['iceBundle'],_0x332e2c[_0x33ecf2(0x7c9)]=_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89][_0x33ecf2(0x7c9)],_0x1b0378['rpcs'][_0x193b89][_0x33ecf2(0x9ca)]=[],_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89]['delayIceSend']=0x3e8;if(_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89][_0x33ecf2(0x73a)])return;_0x1b0378[_0x33ecf2(0x625)]&&_0x1b0378[_0x33ecf2(0x7cc)][_0x193b89][_0x33ecf2(0x7fc)]?_0x1b0378['encryptMessage'](JSON[_0x33ecf2(0xaab)](_0x332e2c['candidates']))[_0x33ecf2(0xb39)](function(_0x504836){var _0x47886e=_0x33ecf2;_0x332e2c[_0x47886e(0x88f)]=_0x504836[0x0],_0x332e2c[_0x47886e(0x7fc)]=_0x504836[0x1],_0x1b0378['anyrequest'](_0x332e2c);})['catch'](errorlog):_0x1b0378[_0x33ecf2(0x763)](_0x332e2c);},_0x1b0378[_0x2effb9(0x7cc)][_0x2013f3]['delayIceSend'],_0x2013f3);},_0x1b0378['rpcs'][_0x2013f3][_0x9089b0(0x275)]=function(_0x735dc7){var _0x470da0=_0x9089b0;switch(this[_0x470da0(0x71a)]){case _0x470da0(0x579):log(_0x470da0(0x579)),log('closeTimeout\x20cancelled;\x202'),clearInterval(_0x1b0378[_0x470da0(0x7cc)][this['UUID']][_0x470da0(0x757)]);case _0x470da0(0x497):log('checking'),log(_0x470da0(0x256)),clearInterval(_0x1b0378[_0x470da0(0x7cc)][this['UUID']][_0x470da0(0x757)]);case'connected':log(_0x470da0(0x3ec)),log(_0x470da0(0x5d9)),clearInterval(_0x1b0378['rpcs'][this[_0x470da0(0x7b3)]][_0x470da0(0x757)]);if(_0x1b0378[_0x470da0(0xaa4)]){if(_0x1b0378['ws'][_0x470da0(0x240)]!==0x1){_0x1b0378['ws']['close']();break;}_0x1b0378['ws'][_0x470da0(0x635)](),setTimeout(function(){var _0x5680c5=_0x470da0;_0x1b0378[_0x5680c5(0x379)]!=!![]&&warnUser(getTranslation(_0x5680c5(0x715)));},0x1);}break;case _0x470da0(0x795):log('closeTimeout\x20cancelled;\x205'),warnlog(_0x470da0(0x955));if(this[_0x470da0(0x7b3)]in _0x1b0378[_0x470da0(0x7cc)]){clearInterval(_0x1b0378[_0x470da0(0x7cc)][this[_0x470da0(0x7b3)]][_0x470da0(0x757)]),_0x1b0378[_0x470da0(0x7cc)][this['UUID']][_0x470da0(0x957)]=0x0;if(_0x1b0378[_0x470da0(0x7cc)][this[_0x470da0(0x7b3)]][_0x470da0(0xa27)])return;_0x1b0378['rpcs'][this['UUID']][_0x470da0(0x757)]=setTimeout(function(_0x23661b){var _0x58df7f=_0x470da0;log('disconnected;\x20no\x20reconnect\x20even\x20after\x205s;\x20closing'),_0x1b0378[_0x58df7f(0x14e)](_0x23661b);},_0x1b0378[_0x470da0(0xb1f)][0x5],this[_0x470da0(0x7b3)]);}else log(_0x470da0(0x37d));break;case _0x470da0(0xa21):warnlog(_0x470da0(0x91f)),log(_0x470da0(0x332));this['UUID']in _0x1b0378[_0x470da0(0x7cc)]?(clearInterval(_0x1b0378[_0x470da0(0x7cc)][this[_0x470da0(0x7b3)]]['closeTimeout']),_0x1b0378[_0x470da0(0x7cc)][this['UUID']]['delayIceSend']=0x0,_0x1b0378[_0x470da0(0x7cc)][this[_0x470da0(0x7b3)]][_0x470da0(0x757)]=setTimeout(function(_0x11bbdc){var _0x2958a9=_0x470da0;log(_0x2958a9(0x500)),_0x1b0378[_0x2958a9(0x14e)](_0x11bbdc);},_0x1b0378[_0x470da0(0xb1f)][0x2],this['UUID'])):log(_0x470da0(0x37d));break;case _0x470da0(0x354):warnlog(_0x470da0(0x94f)),_0x1b0378['closeRPC'](this[_0x470da0(0x7b3)]);break;default:log(_0x470da0(0x696)),log(_0x470da0(0x9f6)+this[_0x470da0(0x71a)]),clearInterval(_0x1b0378[_0x470da0(0x7cc)][this['UUID']]['closeTimeout']);break;}},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0xb1a)]=function(_0x244def){var _0x3b8870=_0x9089b0;let _0x2555f7=_0x244def[_0x3b8870(0xa69)];switch(_0x2555f7['iceGatheringState']){case _0x3b8870(0xb36):log(_0x3b8870(0x4d5));break;case _0x3b8870(0x96b):log('ICE\x20GATHER\x20COMPLETED');_0x1b0378[_0x3b8870(0x7cc)][_0x2013f3]['whipCallback2']&&(_0x1b0378[_0x3b8870(0x7cc)][_0x2013f3]['whipCallback2']([..._0x1b0378[_0x3b8870(0x7cc)][_0x2013f3][_0x3b8870(0x9ca)]]),clearTimeout(_0x1b0378[_0x3b8870(0x7cc)][_0x2013f3][_0x3b8870(0xb27)]),_0x1b0378[_0x3b8870(0x7cc)][_0x2013f3][_0x3b8870(0xb27)]=null,_0x1b0378[_0x3b8870(0x7cc)][_0x2013f3][_0x3b8870(0x9ca)]=[],_0x1b0378['rpcs'][_0x2013f3]['whipCallback2']=null);break;}},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x474)]=function(){var _0x1eb017=_0x9089b0;try{if(this['iceConnectionState']==_0x1eb017(0x354))errorlog(_0x1eb017(0x2a6));else{if(this[_0x1eb017(0x342)]==_0x1eb017(0x795)){if(_0x1b0378['rpcs'][_0x2013f3][_0x1eb017(0xa27)])return;warnlog(_0x1eb017(0x3a3)),_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x7a6)]='0',_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x601)][_0x1eb017(0x90b)][_0x1eb017(0x5be)]='0',_0x1b0378['rpcs'][_0x2013f3][_0x1eb017(0x1e6)]=setTimeout(function(_0x37a1fa){updateMixer();},0x1f4,_0x2013f3);}else this[_0x1eb017(0x342)]==_0x1eb017(0xa21)?errorlog(_0x1eb017(0x7c7)):(log(_0x1eb017(0x1f9)+this['iceConnectionState']),_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x1e6)]&&clearTimeout(_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x1e6)]),_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x601)]&&_0x1eb017(0x5be)in _0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x601)][_0x1eb017(0x90b)]?_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x7a6)]=='0'&&_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x3a9)]=='1'?(_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x601)]['style'][_0x1eb017(0x5be)]='1',_0x1b0378['rpcs'][_0x2013f3][_0x1eb017(0x7a6)]='1',updateMixer()):_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3][_0x1eb017(0x7a6)]='1':_0x1b0378[_0x1eb017(0x7cc)][_0x2013f3]['opacityDisconnect']='1');}}catch(_0x1ce701){}},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3]['ondatachannel']=function(_0x344533){var _0x488f0e=_0x9089b0;log(_0x344533);if(_0x344533[_0x488f0e(0x462)][_0x488f0e(0x4a1)]&&_0x344533[_0x488f0e(0x462)][_0x488f0e(0x4a1)]!==_0x488f0e(0x780)){if(_0x1b0378[_0x488f0e(0x514)][_0x488f0e(0x8a3)](_0x1b0378[_0x488f0e(0x7cc)][_0x2013f3][_0x488f0e(0x791)]))return;if(_0x344533[_0x488f0e(0x462)][_0x488f0e(0x4a1)]===_0x488f0e(0x861))_0x1b0378[_0x488f0e(0x832)](_0x2013f3,_0x344533[_0x488f0e(0x462)]);else _0x344533[_0x488f0e(0x462)][_0x488f0e(0x4a1)]===_0x488f0e(0x490)?_0x1b0378['recieveResourcesChannel'](_0x2013f3,_0x344533[_0x488f0e(0x462)]):_0x1b0378[_0x488f0e(0x8e3)](_0x1b0378[_0x488f0e(0x7cc)],_0x2013f3,_0x344533['channel']);return;}_0x1b0378[_0x488f0e(0x7cc)][_0x2013f3][_0x488f0e(0x215)]=_0x344533['channel'],_0x1b0378[_0x488f0e(0x7cc)][_0x2013f3][_0x488f0e(0x215)][_0x488f0e(0x7b3)]=_0x2013f3,_0x1b0378['rpcs'][_0x2013f3][_0x488f0e(0x215)][_0x488f0e(0x83b)]=_0x10aa20=>{var _0x3e0537=_0x488f0e;_0x10aa20[_0x3e0537(0x479)]&&_0x10aa20['error'][_0x3e0537(0x850)]&&_0x10aa20['error']['sctpCauseCode']!==0xc&&warnlog(_0x10aa20),log('rtc\x20data\x20channel\x20error\x202:\x20'+_0x2013f3);},_0x1b0378[_0x488f0e(0x7cc)][_0x2013f3][_0x488f0e(0x215)][_0x488f0e(0x799)]=_0x909c38=>{var _0x38f522=_0x488f0e;_0x1b0378['rpcs'][_0x2013f3][_0x38f522(0x957)]=0x0;var _0x33366b={};_0x33366b['downloads']=![],_0x33366b['allowmidi']=![],_0x33366b[_0x38f522(0x1ec)]=![],_0x33366b[_0x38f522(0x812)]=![],_0x33366b[_0x38f522(0x856)]=![],_0x33366b['audio']=![],_0x33366b[_0x38f522(0xace)]=![],_0x33366b[_0x38f522(0x259)]=![],_0x33366b[_0x38f522(0x975)]=![],_0x33366b[_0x38f522(0x1d2)]=![],_0x33366b[_0x38f522(0x580)]=![],_0x33366b[_0x38f522(0x5fb)]=![],_0x33366b[_0x38f522(0x96c)]=![];_0x1b0378[_0x38f522(0x7df)]&&(_0x1b0378[_0x38f522(0x7df)]===_0x38f522(0xa09)||_0x1b0378[_0x38f522(0x7df)]===_0x38f522(0x8d8))&&(_0x33366b[_0x38f522(0x3f6)]=_0x1b0378[_0x38f522(0x7df)]);try{if(_0x1b0378[_0x38f522(0x6d2)]!==![]){if(_0x1b0378[_0x38f522(0x6d2)]===!![])_0x33366b[_0x38f522(0x1d2)]=!![],_0x33366b[_0x38f522(0x580)]=!![];else _0x1b0378[_0x38f522(0x6d2)][_0x38f522(0x8a3)](_0x1b0378['rpcs'][_0x2013f3][_0x38f522(0x791)])?(_0x33366b[_0x38f522(0x1d2)]=!![],_0x33366b[_0x38f522(0x580)]=!![]):(_0x33366b[_0x38f522(0x1d2)]=![],_0x33366b['allowscreenvideo']=![]);}else _0x33366b[_0x38f522(0x1d2)]=!![],_0x33366b[_0x38f522(0x580)]=!![];if(_0x33366b[_0x38f522(0x580)]){if(_0x1b0378[_0x38f522(0xa0c)]!==![])!_0x1b0378[_0x38f522(0xa0c)][_0x38f522(0x8a3)](_0x1b0378['rpcs'][_0x2013f3][_0x38f522(0x791)]+':s')&&(_0x33366b['allowscreenvideo']=![]);else{if(_0x1b0378[_0x38f522(0x259)]!==![]){if(_0x1b0378['broadcast']!==null)_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]+':s'===_0x1b0378[_0x38f522(0x259)]?_0x33366b[_0x38f522(0x259)]=!![]:_0x33366b[_0x38f522(0x580)]=![];else _0x1b0378[_0x38f522(0x63e)]&&(_0x2013f3==_0x1b0378[_0x38f522(0x63e)]?_0x33366b['broadcast']=!![]:_0x33366b[_0x38f522(0x580)]=![]);}else _0x1b0378[_0x38f522(0x60c)]!==![]&&(_0x1b0378[_0x38f522(0x60c)]['includes'](_0x1b0378['rpcs'][_0x2013f3][_0x38f522(0x791)]+':s')&&(_0x33366b['video']=![]));}}if(_0x33366b[_0x38f522(0x1d2)]){if(_0x1b0378[_0x38f522(0x5ab)]!==![])!_0x1b0378['noaudio']['includes'](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]+':s')&&(_0x33366b[_0x38f522(0x1d2)]=![]);else _0x1b0378[_0x38f522(0x510)]&&(_0x1b0378[_0x38f522(0x510)][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]+':s')&&(_0x33366b['allowscreenaudio']=![]));}}catch(_0x1706f2){errorlog(_0x1706f2);}try{if(_0x1b0378[_0x38f522(0xa0c)]!==![]){if(_0x1b0378[_0x38f522(0xa0c)][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]))_0x33366b[_0x38f522(0xace)]=!![];else _0x1b0378[_0x38f522(0xa0c)][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]+':s')?_0x33366b[_0x38f522(0xace)]=0x2:_0x33366b['video']=![];}else{if(_0x1b0378['broadcast']!==![]){if(_0x1b0378[_0x38f522(0x259)]!==null)_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]===_0x1b0378[_0x38f522(0x259)]?(_0x33366b[_0x38f522(0x259)]=!![],_0x33366b[_0x38f522(0xace)]=!![]):_0x33366b['video']=![];else _0x1b0378[_0x38f522(0x63e)]&&(_0x2013f3==_0x1b0378[_0x38f522(0x63e)]?(_0x33366b['broadcast']=!![],_0x33366b[_0x38f522(0xace)]=!![]):_0x33366b[_0x38f522(0xace)]=![]);}else _0x1b0378[_0x38f522(0x60c)]!==![]?_0x1b0378['exclude'][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)])?_0x33366b[_0x38f522(0xace)]=![]:_0x33366b[_0x38f522(0xace)]=!![]:_0x33366b[_0x38f522(0xace)]=!![];}if(_0x1b0378[_0x38f522(0x5ab)]!==![]){if(_0x1b0378['noaudio'][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]))_0x33366b[_0x38f522(0x95b)]=!![];else _0x1b0378[_0x38f522(0x5ab)][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]+':s')?_0x33366b[_0x38f522(0x95b)]=0x2:_0x33366b[_0x38f522(0x95b)]=![];}else _0x1b0378[_0x38f522(0x510)]&&_0x1b0378[_0x38f522(0x510)][_0x38f522(0x8a3)](_0x1b0378['rpcs'][_0x2013f3][_0x38f522(0x791)])?_0x33366b[_0x38f522(0x95b)]=![]:_0x33366b[_0x38f522(0x95b)]=!![];_0x1b0378['nodirectoraudio']&&_0x1b0378[_0x38f522(0x27e)][_0x38f522(0x7ce)](_0x2013f3)>=0x0&&(_0x33366b[_0x38f522(0x95b)]=![]);_0x1b0378[_0x38f522(0x243)]&&_0x1b0378[_0x38f522(0x27e)]['indexOf'](_0x2013f3)>=0x0&&(_0x33366b[_0x38f522(0xace)]=![]);_0x1b0378[_0x38f522(0x22c)]!==![]?_0x1b0378['noiframe']['includes'](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)])?_0x33366b['iframe']=!![]:_0x33366b[_0x38f522(0x812)]=![]:_0x33366b[_0x38f522(0x812)]=!![];if(_0x1b0378[_0x38f522(0x3c8)]!==![])_0x1b0378[_0x38f522(0x3c8)]['includes'](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)])?_0x33366b[_0x38f522(0x856)]=!![]:_0x33366b[_0x38f522(0x856)]=![];else{if(_0x1b0378['scene']!==![])_0x33366b[_0x38f522(0x856)]=![];else _0x1b0378[_0x38f522(0x8c4)]&&!_0x1b0378[_0x38f522(0x91b)]&&_0x1b0378[_0x38f522(0x2a4)]===![]?_0x33366b[_0x38f522(0x856)]=![]:_0x33366b[_0x38f522(0x856)]=!![];}_0x1b0378[_0x38f522(0x150)]&&(_0x33366b[_0x38f522(0x869)]=![]),_0x1b0378[_0x38f522(0x247)]&&(_0x33366b['hidedirector']=_0x1b0378[_0x38f522(0x247)]),_0x1b0378['allowVideos']!==![]&&(!_0x1b0378[_0x38f522(0x565)][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)])&&(_0x33366b[_0x38f522(0xace)]=![],_0x33366b[_0x38f522(0x95b)]=![])),(_0x1b0378['midiIn']||_0x1b0378[_0x38f522(0x977)]||_0x1b0378[_0x38f522(0x718)]||_0x1b0378[_0x38f522(0x912)])&&(_0x33366b[_0x38f522(0xa43)]=_0x1b0378[_0x38f522(0x3dc)]||_0x1b0378[_0x38f522(0x977)]||_0x1b0378[_0x38f522(0x718)]||_0x1b0378['midiTimecode']),_0x33366b['downloads']=!![],_0x1b0378[_0x38f522(0x367)]&&(_0x33366b['downloads']=![]),_0x1b0378[_0x38f522(0x14f)]?_0x33366b['allowchunked']=![]:_0x33366b[_0x38f522(0x5fb)]=_0x1b0378[_0x38f522(0xa56)]?0x2:0x1,_0x1b0378[_0x38f522(0x2cb)]&&(_0x33366b[_0x38f522(0x96c)]=_0x1b0378[_0x38f522(0x2cb)]),_0x1b0378['allowDrawing']&&(_0x33366b['allowdrawing']=!![]),_0x1b0378[_0x38f522(0x8a4)]&&(_0x1b0378[_0x38f522(0x8a4)]==_0x38f522(0x974)||_0x1b0378['codec']==_0x38f522(0x582)||_0x1b0378[_0x38f522(0x8a4)]=='jpeg')&&(_0x33366b['allowwebp']=!![]),_0x1b0378['accept_layouts']&&(_0x33366b['layout']=!![]),_0x1b0378[_0x38f522(0x514)][_0x38f522(0x8a3)](_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)])&&(warnlog(_0x38f522(0x577)),_0x33366b['allowmeshcast']=![],_0x33366b[_0x38f522(0x5fb)]=![],_0x33366b[_0x38f522(0x1ec)]=![],_0x33366b[_0x38f522(0x96c)]=![],_0x33366b[_0x38f522(0x33d)]=![],_0x33366b[_0x38f522(0x328)]=![],_0x33366b[_0x38f522(0xa43)]=![],_0x33366b[_0x38f522(0x812)]=![],_0x33366b[_0x38f522(0x856)]=![],_0x33366b[_0x38f522(0x95b)]=![],_0x33366b['video']=![],_0x33366b[_0x38f522(0x259)]=![],_0x33366b[_0x38f522(0x975)]=![],_0x33366b['allowscreenaudio']=![],_0x33366b[_0x38f522(0x580)]=![]);}catch(_0xc080a6){errorlog(_0xc080a6);}try{_0x33366b[_0x38f522(0x3fe)]={},_0x33366b[_0x38f522(0x3fe)]['label']=_0x1b0378['label'],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x9de)]=_0x1b0378['meta'],_0x33366b[_0x38f522(0x3fe)]['order']=_0x1b0378[_0x38f522(0x305)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x5fe)]=_0x1b0378[_0x38f522(0x1b2)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x14d)]=_0x1b0378[_0x38f522(0x85a)],_0x33366b['info']['ab_url']=_0x1b0378[_0x38f522(0x340)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x840)]=_0x1b0378[_0x38f522(0x8a4)];_0x1b0378[_0x38f522(0x7df)]&&(_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x8bd)]=_0x1b0378[_0x38f522(0x7df)]);_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x588)]=_0x1b0378[_0x38f522(0x588)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x964)]=_0x1b0378[_0x38f522(0x964)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x3e9)]=_0x1b0378[_0x38f522(0x348)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x677)]=_0x1b0378[_0x38f522(0x677)],_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x4c0)]=_0x1b0378[_0x38f522(0x4c0)],_0x33366b['info']['maxptime']=_0x1b0378[_0x38f522(0xa30)];Firefox&&(_0x33366b['info']['firefox']=Firefox);ChromiumVersion&&(_0x33366b['info'][_0x38f522(0x7af)]=ChromiumVersion);SafariVersion&&(_0x33366b[_0x38f522(0x3fe)]['safari']=SafariVersion);navigator&&navigator['userAgent']&&(_0x33366b[_0x38f522(0x3fe)][_0x38f522(0xb09)]=navigator[_0x38f522(0xa71)]);navigator&&navigator[_0x38f522(0x5d3)]&&(_0x33366b[_0x38f522(0x3fe)]['platform']=navigator['platform']);gpgpuSupport&&(_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x46f)]=gpgpuSupport);cpuSupport&&(_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x44a)]=cpuSupport);if(_0x1b0378['disableOBS']===![]){if(window[_0x38f522(0x408)]){_0x33366b[_0x38f522(0x3fe)][_0x38f522(0x766)]=window[_0x38f522(0x408)]['pluginVersion'];try{_0x33366b=_0x1b0378[_0x38f522(0x47e)](_0x33366b,_0x2013f3);}catch(_0x53ceff){errorlog(_0x53ceff),warnUser(_0x53ceff[_0x38f522(0x5d0)]);}}else _0x33366b['info'][_0x38f522(0x766)]=![];}else _0x33366b[_0x38f522(0x3fe)][_0x38f522(0x766)]=![];}catch(_0x3dc471){}_0x33366b['guest']=![],_0x33366b[_0x38f522(0x333)]=![],_0x33366b[_0x38f522(0x91b)]=![],_0x33366b[_0x38f522(0x8fb)]=![],_0x33366b[_0x38f522(0x964)]=![];_0x1b0378[_0x38f522(0x2fb)]&&(_0x33366b[_0x38f522(0x2fb)]=!![]);_0x1b0378[_0x38f522(0x348)]&&(_0x33366b[_0x38f522(0x742)]=!![]);_0x1b0378[_0x38f522(0xa7e)]&&(_0x33366b['degrade']=_0x1b0378[_0x38f522(0xa7e)]);_0x1b0378['solo']&&(_0x33366b['solo']=_0x1b0378[_0x38f522(0x7b8)]);_0x1b0378[_0x38f522(0xa16)]!==![]&&(_0x33366b[_0x38f522(0xa16)]=_0x1b0378[_0x38f522(0xa16)]);if(_0x1b0378[_0x38f522(0x91b)]){_0x33366b[_0x38f522(0x91b)]=!![],_0x33366b['forceios']=_0x1b0378[_0x38f522(0x964)];if(_0x1b0378[_0x38f522(0x63e)]&&_0x1b0378[_0x38f522(0x63e)]===_0x2013f3)_0x1b0378[_0x38f522(0x2ce)]();else{var _0x82f9c5={};_0x82f9c5['addCoDirector']=[];for(var _0x43f5e5 in _0x1b0378['pcs']){_0x1b0378[_0x38f522(0x71c)][_0x43f5e5][_0x38f522(0x458)]===!![]&&_0x82f9c5['addCoDirector'][_0x38f522(0x285)](_0x43f5e5);}_0x82f9c5['addCoDirector'][_0x38f522(0x5a7)]&&(_0x33366b[_0x38f522(0x734)]=_0x82f9c5);}if(_0x1b0378[_0x38f522(0xa53)]&&_0x1b0378['roomTimer']>0x0)_0x33366b['setClock']=_0x1b0378[_0x38f522(0xa53)]-Date[_0x38f522(0x56b)]()/0x3e8,_0x33366b[_0x38f522(0x692)]=!![],_0x33366b[_0x38f522(0x4cf)]=!![];else _0x1b0378[_0x38f522(0xa53)]&&_0x1b0378['roomTimer']<0x0&&(_0x33366b[_0x38f522(0x253)]=_0x1b0378[_0x38f522(0xa53)]*-0x1,_0x33366b[_0x38f522(0x692)]=!![],_0x33366b['startClock']=!![],_0x33366b[_0x38f522(0x5e9)]=!![]);_0x1b0378[_0x38f522(0xb0b)]&&(_0x33366b[_0x38f522(0x781)]=!![]);}else{if(_0x1b0378[_0x38f522(0x333)]!==![])_0x33366b[_0x38f522(0x333)]=_0x1b0378[_0x38f522(0x333)],(_0x1b0378[_0x38f522(0x4ce)]||_0x1b0378[_0x38f522(0x7b8)])&&(_0x33366b[_0x38f522(0x4ce)]=_0x1b0378[_0x38f522(0x4ce)]||_0x1b0378[_0x38f522(0x7b8)]);else _0x1b0378[_0x38f522(0x85b)]!==![]&&_0x1b0378[_0x38f522(0x85b)]!==''&&(_0x33366b['forceios']=_0x1b0378[_0x38f522(0x964)],_0x33366b[_0x38f522(0xac6)]=!![]);}if(_0x1b0378[_0x38f522(0x864)])_0x33366b[_0x38f522(0x864)]=parseFloat(_0x1b0378[_0x38f522(0x864)]);else(_0x1b0378['viewheight']||_0x1b0378[_0x38f522(0x5dd)])&&(_0x33366b[_0x38f522(0x60d)]={},_0x33366b['requestResolution']['h']=null,_0x33366b[_0x38f522(0x60d)]['w']=null,_0x1b0378['viewheight']&&(_0x33366b[_0x38f522(0x60d)]['h']=_0x1b0378[_0x38f522(0x233)],_0x1b0378[_0x38f522(0x7cc)][_0x2013f3]['scaleHeight']=_0x1b0378[_0x38f522(0x233)]),_0x1b0378[_0x38f522(0x5dd)]&&(_0x33366b['requestResolution']['w']=_0x1b0378[_0x38f522(0x5dd)],_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x5c0)]=_0x1b0378['viewwidth']));!_0x1b0378[_0x38f522(0x85b)]&&(_0x1b0378['beepToNotify']&&(playtone(![],_0x38f522(0xa0d)),showNotification(_0x38f522(0x266)))),_0x1b0378[_0x38f522(0x7cc)][_0x2013f3]['settings']=_0x33366b,_0x1b0378[_0x38f522(0x32f)](_0x33366b,_0x2013f3)?log(_0x38f522(0x899)):errorlog(_0x38f522(0x917)),pokeIframeAPI(_0x38f522(0x6fe),!![],_0x2013f3),pokeIframeAPI(_0x38f522(0x8a2),!![],_0x2013f3),pokeAPI(_0x38f522(0x891),_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x791)]),_0x1b0378[_0x38f522(0x424)]&&(_0x1b0378['layout_array']&&(_0x1b0378[_0x38f522(0x33d)]=combinedLayout(_0x1b0378['layout_array'])),updateMixer()),clearTimeout(_0x1b0378[_0x38f522(0x7cc)][_0x2013f3][_0x38f522(0x4d2)]),_0x1b0378['rpcs'][_0x2013f3]['getStatsTimeout']=setTimeout(processStats,0x0,_0x2013f3);},_0x1b0378[_0x488f0e(0x7cc)][_0x2013f3]['receiveChannel'][_0x488f0e(0x745)]=async _0x393755=>{var _0x48b229=_0x488f0e;if(typeof _0x393755['data']==_0x48b229(0x506)){if(!_0x1b0378[_0x48b229(0x7cc)][_0x2013f3]['imageElement']){_0x1b0378[_0x48b229(0x7cc)][_0x2013f3]['imageElement']=document[_0x48b229(0x31a)](_0x48b229(0xa18)),_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x57a)]=0x10,_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x7bd)]=0x9,_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x90b)][_0x48b229(0x92f)]=_0x48b229(0x5de),_0x1b0378['rpcs'][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x970)][_0x48b229(0x7b3)]=_0x2013f3;try{_0x1b0378['rpcs'][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x970)][_0x48b229(0x7e8)]=_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x791)];}catch(_0x22746c){}_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0xa37)]=![],_0x1b0378['rpcs'][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x35f)](_0x48b229(0x691),function(_0x444a1f){var _0x10f4ee=_0x48b229;log(_0x10f4ee(0x28b));try{if(_0x444a1f[_0x10f4ee(0x5b5)]||_0x444a1f['metaKey']){_0x444a1f['preventDefault']();if(_0x1b0378[_0x10f4ee(0x93c)]!==![]){var _0x32f390=_0x444a1f[_0x10f4ee(0xaa8)][_0x10f4ee(0x970)][_0x10f4ee(0x7b3)];if(_0x10f4ee(0x36c)in _0x1b0378[_0x10f4ee(0x7cc)][_0x32f390]){var [_0x335b09,_0x3c0d4f]=statsMenuCreator();printViewStats(_0x3c0d4f,_0x32f390),_0x335b09[_0x10f4ee(0x589)]=setInterval(printViewStats,_0x1b0378[_0x10f4ee(0x739)],_0x3c0d4f,_0x32f390);}}return _0x444a1f[_0x10f4ee(0x7b4)](),![];}}catch(_0x49dc1e){errorlog(_0x49dc1e);}}),updateMixer();}else _0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0xa37)]&&(_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0xa37)]=![],_0x1b0378[_0x48b229(0x7cc)][_0x2013f3]['imageElement']['style'][_0x48b229(0xb43)]='visible');_0x1b0378[_0x48b229(0x7cc)][_0x2013f3][_0x48b229(0x8ec)][_0x48b229(0x8f3)]=window[_0x48b229(0x242)][_0x48b229(0x961)](new Blob([new Uint8Array(_0x393755[_0x48b229(0x778)])],{'type':'image/webp'}));return;}try{var _0x30d4e0=JSON[_0x48b229(0x5da)](_0x393755[_0x48b229(0x778)]);_0x30d4e0[_0x48b229(0x7b3)]=_0x2013f3;if(_0x30d4e0[_0x48b229(0x9fd)]||_0x30d4e0[_0x48b229(0x315)]){let _0x36e2f8=_0x30d4e0['smid']||_0x30d4e0[_0x48b229(0x315)];if(_0x1b0378[_0x48b229(0x7da)][_0x2013f3]){if(_0x1b0378[_0x48b229(0x7da)][_0x2013f3][_0x48b229(0x8a3)](_0x36e2f8))return;else _0x1b0378[_0x48b229(0x7da)][_0x2013f3]['push'](_0x36e2f8);}else _0x1b0378[_0x48b229(0x7da)][_0x2013f3]=[_0x36e2f8];}_0x48b229(0x3fc)in _0x30d4e0?await _0x1b0378[_0x48b229(0xa24)](_0x30d4e0,_0x2013f3+_0x48b229(0x906)):await _0x1b0378[_0x48b229(0xa24)](_0x30d4e0,_0x2013f3);}catch(_0x4eb7a2){warnlog('mystery-message-recieved'),warnlog(_0x4eb7a2[_0x48b229(0x778)]);}},_0x1b0378['processRPCSOnMessage']=async function(_0xbb8b63,_0x44f8ac){var _0x257e31=_0x488f0e;warnlog(_0xbb8b63);if(_0x257e31(0x638)in _0xbb8b63){warnlog(_0x257e31(0x9b1)),_0x1b0378[_0x257e31(0x14e)](_0x44f8ac,!![]);return;}else{if(_0x257e31(0x2fe)in _0xbb8b63){var _0x531345={};_0x531345[_0x257e31(0xaec)]=_0xbb8b63['ping'],_0x1b0378[_0x257e31(0x32f)](_0x531345,_0x44f8ac),warnlog(_0x257e31(0x53c));return;}else{if(_0x257e31(0xaec)in _0xbb8b63){warnlog(_0x257e31(0x1d0));return;}}}log('incoming\x20message\x20from\x20publisher');var _0x1d3c34=![],_0x55f563=![];if(_0x257e31(0x5c9)in _0xbb8b63)_0x1b0378[_0x257e31(0xaff)](_0xbb8b63);else{if('candidate'in _0xbb8b63)_0xbb8b63[_0x257e31(0x7b3)]=_0x44f8ac,log(_0x257e31(0x66f)),_0x1b0378['processIce'](_0xbb8b63);else _0x257e31(0x88f)in _0xbb8b63&&(_0xbb8b63[_0x257e31(0x7b3)]=_0x44f8ac,log(_0x257e31(0x5d5)),_0x1b0378['processIceBundle'](_0xbb8b63));}'cbid'in _0xbb8b63&&_0x3f5ca1(_0xbb8b63[_0x257e31(0x814)]);if(_0x257e31(0x839)in _0xbb8b63){if(_0xbb8b63[_0x257e31(0x839)]===_0x257e31(0xad1))_0x1b0378[_0x257e31(0x32d)]=![],!_0x1b0378[_0x257e31(0x379)]&&(warnUser(getTranslation(_0x257e31(0xa55))),miniTranslate(getById(_0x257e31(0xb38)),_0x257e31(0x682)));else{if(_0xbb8b63['rejected']===_0x257e31(0x76c))!_0x1b0378[_0x257e31(0x379)]&&warnUser(getTranslation(_0x257e31(0x2db)),0xbb8);else{if(!_0x1b0378['cleanOutput']){if(_0x1b0378[_0x257e31(0x63e)]===_0x44f8ac)warnUser(getTranslation(_0x257e31(0x33f)),0x1388);else _0x1b0378['remote']&&!_0x1b0378['director']?warnUser(getTranslation(_0x257e31(0x3b0)),0x1388):warnUser(getTranslation(_0x257e31(0x7b9)),0x1388);}else{if(_0x1b0378['director'])!_0x1b0378[_0x257e31(0x379)]&&warnUser(_0x257e31(0x60f)+_0xbb8b63['rejected']+_0x257e31(0x43d),0x1388);else{if(!_0x1b0378['cleanOutput'])_0x1b0378[_0x257e31(0x2fb)]?warnUser(getTranslation(_0x257e31(0x9ac)),0x1388):warnUser(getTranslation(_0x257e31(0x951)),0x1388);else{}}}}}errorlog('ACTION\x20REJECTED:\x20'+_0xbb8b63[_0x257e31(0x839)]+_0x257e31(0x6fa)+_0x1b0378['director']),pokeIframeAPI(_0x257e31(0x839),_0xbb8b63['rejected'],_0x44f8ac);return;}else{if('approved'in _0xbb8b63){if(_0xbb8b63[_0x257e31(0x809)]===_0x257e31(0xad1)){if(_0x1b0378[_0x257e31(0x91b)]){try{_0x1b0378['label']===![]&&(document['title']=getTranslation('control-room-co-director'));}catch(_0x4cb49e){errorlog(_0x4cb49e);}!_0x1b0378['cleanOutput']&&!_0x1b0378[_0x257e31(0x32d)]&&(warnUser(getTranslation(_0x257e31(0x806)),0xbb8),miniTranslate(getById('head4'),_0x257e31(0x183)),miniTranslate(getById(_0x257e31(0xa32)),_0x257e31(0x4a4))),!_0x1b0378[_0x257e31(0x32d)]&&(_0x1b0378[_0x257e31(0x32d)]=!![],pokeAPI(_0x257e31(0x2a2),!![]),_0x1b0378[_0x257e31(0x58a)](_0x44f8ac));}}log(_0x257e31(0x4e3)+_0xbb8b63[_0x257e31(0x809)]),pokeIframeAPI(_0x257e31(0x809),_0xbb8b63[_0x257e31(0x809)],_0x44f8ac);return;}}if(_0x257e31(0x9b4)in _0xbb8b63)try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x9b4)]=_0xbb8b63[_0x257e31(0x9b4)]||![];if(_0x1b0378[_0x257e31(0x91b)]){if(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x9b4)]){var _0xcd0a75=document[_0x257e31(0x31a)]('div');_0xcd0a75[_0x257e31(0x557)]=_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x9b4)],_0xcd0a75[_0x257e31(0x557)]=_0xcd0a75[_0x257e31(0x716)],_0xcd0a75=_0xcd0a75[_0x257e31(0x904)]||_0xcd0a75[_0x257e31(0x557)]||'',getById(_0x257e31(0x71b)+_0x44f8ac)[_0x257e31(0x716)]=_0x257e31(0x788)+_0xcd0a75+_0x257e31(0x4ab)+_0xcd0a75+_0x257e31(0x326),getById(_0x257e31(0x71b)+_0x44f8ac)[_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37));}else getById(_0x257e31(0x71b)+_0x44f8ac)[_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xa37)),getById('iframeDetails_'+_0x44f8ac)[_0x257e31(0x557)]='';}else{if(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x9b4)]==![]){try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)][_0x257e31(0x6ce)]();}catch(_0x36ffac){errorlog(_0x36ffac);}_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x710)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x710)][_0x257e31(0x6ce)](),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x710)]=![]);_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x753)]=![],_0x1d3c34=!![];if(_0x1b0378['broadcast']!==![]){if(_0x1b0378[_0x257e31(0x259)]!==null)_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x791)]===_0x1b0378[_0x257e31(0x259)]&&(_0x1b0378[_0x257e31(0xa83)]=![]);else _0x44f8ac==_0x1b0378[_0x257e31(0x63e)]&&(_0x1b0378[_0x257e31(0xa83)]=![]);}}else{if(_0x1b0378['broadcast']!==![]){if(_0x1b0378[_0x257e31(0x259)]!==null){if(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x791)]===_0x1b0378[_0x257e31(0x259)]){if(_0x1b0378['noiframe']===![])_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)]=loadIframe(_0xbb8b63['iframeSrc'],_0x44f8ac),_0x1d3c34=!![],_0x1b0378['broadcastIFrame']=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)],_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x791)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)][_0x257e31(0x970)][_0x257e31(0x7e8)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['streamID']);else _0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['streamID']in _0x1b0378[_0x257e31(0x22c)]&&(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x753)]=loadIframe(_0xbb8b63['iframeSrc'],_0x44f8ac),_0x1d3c34=!![],_0x1b0378[_0x257e31(0xa83)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)]['dataset'][_0x257e31(0x7e8)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]));}}else{if(_0x1b0378[_0x257e31(0x63e)]){if(_0x44f8ac==_0x1b0378[_0x257e31(0x63e)]){if(_0x1b0378[_0x257e31(0x22c)]===![])_0x1b0378['rpcs'][_0x44f8ac]['iframeEle']=loadIframe(_0xbb8b63[_0x257e31(0x9b4)],_0x44f8ac),_0x1d3c34=!![],_0x1b0378[_0x257e31(0xa83)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)]['dataset'][_0x257e31(0x7e8)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]);else _0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]in _0x1b0378[_0x257e31(0x22c)]&&(_0x1b0378['rpcs'][_0x44f8ac]['iframeEle']=loadIframe(_0xbb8b63[_0x257e31(0x9b4)],_0x44f8ac),_0x1d3c34=!![],_0x1b0378[_0x257e31(0xa83)]=_0x1b0378['rpcs'][_0x44f8ac]['iframeEle'],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]&&(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x753)][_0x257e31(0x970)][_0x257e31(0x7e8)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]));}}}}else{if(_0x1b0378['noiframe']===![])_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x753)]=loadIframe(_0xbb8b63[_0x257e31(0x9b4)],_0x44f8ac),_0x1d3c34=!![],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['streamID']&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x753)]['dataset']['sid']=_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x791)]);else _0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['streamID']in _0x1b0378[_0x257e31(0x22c)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['iframeEle']=loadIframe(_0xbb8b63[_0x257e31(0x9b4)],_0x44f8ac),_0x1d3c34=!![],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]&&(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x753)][_0x257e31(0x970)][_0x257e31(0x7e8)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]));}}}}catch(_0x9b55b1){errorlog(_0x9b55b1);}else{if(_0x257e31(0xabc)in _0xbb8b63){if(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['iframeEle'])try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x9b4)][_0x257e31(0x23c)](_0x257e31(0x564))&&processIframeSyncUpdates(_0xbb8b63[_0x257e31(0xabc)],_0x44f8ac);}catch(_0x1dc285){errorlog(_0x1dc285);}}}if('draw'in _0xbb8b63){if(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x601)]&&_0x1b0378[_0x257e31(0x566)]){!_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['canvasOverlay']&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['canvasOverlay']=receiveDrawingOnVideo(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)],_0x44f8ac));if(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x7bf)]){if(typeof _0xbb8b63[_0x257e31(0xb12)]=='string'){if(_0xbb8b63['draw']==_0x257e31(0x252))_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x7bf)]['clearDrawing']();else{if(_0xbb8b63['draw']==_0x257e31(0x885))_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x7bf)]['cleanup']();else _0xbb8b63[_0x257e31(0xb12)]=='undo'&&_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x7bf)][_0x257e31(0x8cb)](_0x257e31(0x1b7));}}else _0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x7bf)][_0x257e31(0x8cb)](_0xbb8b63[_0x257e31(0xb12)]);}}return;}if(_0x257e31(0x2fb)in _0xbb8b63)try{_0xbb8b63=await _0x1b0378[_0x257e31(0xaf4)](_0xbb8b63);if(!_0xbb8b63)return;}catch(_0x28031f){errorlog(_0x28031f);}_0x257e31(0x65b)in _0xbb8b63&&processOBSCommand(_0xbb8b63);if('chat'in _0xbb8b63){var _0x5bc711=![],_0x99e93a=![];_0x1b0378['directorUUID']===_0x44f8ac&&(_0x5bc711=!![],'overlay'in _0xbb8b63&&(_0x99e93a=_0xbb8b63[_0x257e31(0x299)]));if(_0x1b0378[_0x257e31(0x91b)]){if(_0xbb8b63[_0x257e31(0x3d4)]==_0x257e31(0xa33))_0x1b0378['beepToNotify']&&playtone(),getById(_0x257e31(0x544)+_0x44f8ac)[_0x257e31(0xb06)]['remove']('hidden'),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x27a)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37));else _0xbb8b63['chat']==_0x257e31(0x460)&&(getById(_0x257e31(0x544)+_0x44f8ac)[_0x257e31(0xb06)]['add'](_0x257e31(0xa37)),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x27a)][_0x257e31(0xb06)][_0x257e31(0x34e)]('hidden'));}log('isDirector\x20'+_0x5bc711),getChatMessage(_0xbb8b63['chat'],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a1)],_0x5bc711,_0x99e93a,_0x44f8ac);}'pipe'in _0xbb8b63&&_0x1b0378[_0x257e31(0x6a5)](_0xbb8b63[_0x257e31(0x257)],_0x44f8ac);'autoSync'in _0xbb8b63&&(_0x1b0378['autoSyncObject']=_0xbb8b63[_0x257e31(0x914)],_0x1b0378['autoSyncCallback'](_0x44f8ac));'effectsData'in _0xbb8b63&&log(_0xbb8b63);if(_0x257e31(0x77c)in _0xbb8b63){log(_0xbb8b63);_0xbb8b63['group']?_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x77c)]=_0xbb8b63['group'][_0x257e31(0x2f9)](','):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x77c)]=[];log(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]),_0x1d3c34=!![];if(_0x1b0378[_0x257e31(0x91b)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)])try{syncGroup(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x77c)],_0x44f8ac);}catch(_0x52b019){errorlog(_0x52b019);}pokeIframeAPI(_0x257e31(0x894),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x77c)],_0x44f8ac);}_0x257e31(0x610)in _0xbb8b63&&(log(_0xbb8b63),_0x1b0378[_0x257e31(0x80b)]&&updateClosedCaptions(_0xbb8b63,_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a1)],_0x44f8ac));_0x1b0378[_0x257e31(0x91b)]&&(_0x257e31(0xa49)in _0xbb8b63&&updateDirectorsAudio(_0xbb8b63[_0x257e31(0xa49)],_0x44f8ac),_0x257e31(0xaa2)in _0xbb8b63&&gotDevicesRemote(_0xbb8b63[_0x257e31(0xaa2)],_0x44f8ac),_0x257e31(0x57b)in _0xbb8b63&&updateDirectorsVideo(_0xbb8b63[_0x257e31(0x57b)],_0x44f8ac),_0x257e31(0x426)in _0xbb8b63&&updateRemoteRecordButton(_0x44f8ac,_0xbb8b63[_0x257e31(0x426)],_0xbb8b63['alt']||![]),_0x257e31(0x9a0)in _0xbb8b63&&updateGdriveButton(_0x44f8ac,_0xbb8b63[_0x257e31(0x9a0)],_0xbb8b63[_0x257e31(0x925)]||![]),'timer'in _0xbb8b63&&updateRemoteTimerButton(_0x44f8ac,_0xbb8b63[_0x257e31(0x879)]));if(_0x257e31(0x66a)in _0xbb8b63)whepWatch(_0x44f8ac,_0xbb8b63[_0x257e31(0x66a)]);else'meshcast'in _0xbb8b63&&(!_0x1b0378[_0x257e31(0x150)]&&meshcastWatch(_0x44f8ac,_0xbb8b63['meshcast']));_0x257e31(0x4cb)in _0xbb8b63&&(_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x7ce)](_0x44f8ac)>=0x0&&(_0x1b0378[_0x257e31(0x801)]&&lowerhand()));_0x257e31(0xb23)in _0xbb8b63&&(_0x1b0378['directorList']['indexOf'](_0x44f8ac)>=0x0&&isolateIncomingChannel(_0xbb8b63[_0x257e31(0xb23)],_0x44f8ac));!_0x1b0378[_0x257e31(0xb1b)]&&_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x7ce)](_0x44f8ac)>=0x0&&(_0x257e31(0x33d)in _0xbb8b63&&(_0x1b0378[_0x257e31(0x33d)]=_0xbb8b63[_0x257e31(0x33d)],pokeIframeAPI('layout-updated',_0x1b0378[_0x257e31(0x33d)]),_0x1d3c34=!![]),_0x257e31(0x64a)in _0xbb8b63&&(_0x1b0378[_0x257e31(0x64a)]=_0xbb8b63[_0x257e31(0x64a)]));if(_0x257e31(0x1c0)in _0xbb8b63){_0x1b0378[_0x257e31(0x1c0)]=![],_0x1b0378['infocus2']=![];if(_0x1b0378[_0x257e31(0x259)]===![]){log(_0xbb8b63);if(_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x7ce)](_0x44f8ac)>=0x0){if(_0xbb8b63[_0x257e31(0x1c0)]!==![]){if(_0xbb8b63['infocus']===_0x1b0378[_0x257e31(0x791)])_0x1b0378[_0x257e31(0x1c0)]=!![];else{if(_0x1b0378[_0x257e31(0x41c)][_0x257e31(0x5a7)]&&!(_0xbb8b63[_0x257e31(0x1c0)]in _0x1b0378[_0x257e31(0x41c)]))warnlog('NOT\x20IN\x20VIEW\x20SET'),_0x1b0378[_0x257e31(0x1c0)]=![];else{if(_0x1b0378['view']&&_0x1b0378[_0x257e31(0x8c4)]!==_0xbb8b63['infocus'])warnlog(_0x257e31(0x811)),_0x1b0378[_0x257e31(0x1c0)]=![];else{if(_0x1b0378[_0x257e31(0x333)]!==![]&&_0x1b0378[_0x257e31(0x63e)]&&_0x1b0378[_0x257e31(0x63e)]in _0x1b0378[_0x257e31(0x7cc)]&&!_0x1b0378['rpcs'][_0x1b0378[_0x257e31(0x63e)]][_0x257e31(0x4ce)]&&_0xbb8b63[_0x257e31(0x1c0)]===_0x1b0378['rpcs'][_0x1b0378[_0x257e31(0x63e)]][_0x257e31(0x791)])warnlog(_0x257e31(0x1a4)),_0x1b0378[_0x257e31(0x1c0)]=![];else{for(var _0xbe5923 in _0x1b0378['rpcs']){if(_0x1b0378[_0x257e31(0x7cc)][_0xbe5923][_0x257e31(0x791)]===_0xbb8b63[_0x257e31(0x1c0)]){_0x1b0378['infocus']=_0xbe5923;break;}}warnlog(_0x257e31(0x6aa));}}}}}else _0x1b0378[_0x257e31(0x1c0)]=![];_0x1d3c34=!![],_0x55f563=!![],_0x1b0378[_0x257e31(0x1c0)]?_0x1b0378['infocusForceMode']=!![]:_0x1b0378[_0x257e31(0x46d)]=![];}}}else{if(_0x257e31(0x185)in _0xbb8b63){_0x1b0378[_0x257e31(0x1c0)]=![],_0x1b0378[_0x257e31(0x185)]=![];if(_0x1b0378['broadcast']===![]){log(_0xbb8b63);if(_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x7ce)](_0x44f8ac)>=0x0){if(_0xbb8b63['infocus2']!==![]){if(_0xbb8b63[_0x257e31(0x185)]===_0x1b0378['streamID'])_0x1b0378[_0x257e31(0x185)]=!![];else{if(_0x1b0378[_0x257e31(0x41c)]['length']&&!(_0xbb8b63[_0x257e31(0x185)]in _0x1b0378[_0x257e31(0x41c)]))warnlog(_0x257e31(0x9e8)),_0x1b0378['infocus2']=![];else{if(_0x1b0378[_0x257e31(0x8c4)]&&_0x1b0378[_0x257e31(0x8c4)]!==_0xbb8b63['infocus2'])warnlog(_0x257e31(0x811)),_0x1b0378[_0x257e31(0x185)]=![];else{if(_0x1b0378[_0x257e31(0x333)]!==![]&&_0x1b0378[_0x257e31(0x63e)]&&_0x1b0378[_0x257e31(0x63e)]in _0x1b0378[_0x257e31(0x7cc)]&&!_0x1b0378[_0x257e31(0x7cc)][_0x1b0378['directorUUID']][_0x257e31(0x4ce)]&&_0xbb8b63[_0x257e31(0x185)]===_0x1b0378['rpcs'][_0x1b0378[_0x257e31(0x63e)]]['streamID'])warnlog(_0x257e31(0x1a4)),_0x1b0378[_0x257e31(0x185)]=![];else{for(var _0xbe5923 in _0x1b0378[_0x257e31(0x7cc)]){if(_0x1b0378[_0x257e31(0x7cc)][_0xbe5923][_0x257e31(0x791)]===_0xbb8b63[_0x257e31(0x185)]){_0x1b0378['infocus2']=_0xbe5923;break;}}warnlog(_0x257e31(0x6aa));}}}}}else _0x1b0378['infocus2']=![];_0x1b0378[_0x257e31(0x185)]?_0x1b0378[_0x257e31(0x46d)]=!![]:_0x1b0378[_0x257e31(0x46d)]=![],_0x1d3c34=!![],_0x55f563=!![];}}}}_0x257e31(0xa43)in _0xbb8b63&&_0xbb8b63[_0x257e31(0xa43)]!==![]&&(_0x1b0378['rpcs'][_0x44f8ac]['allowMIDI']=_0xbb8b63[_0x257e31(0xa43)]);_0x257e31(0x7d4)in _0xbb8b63&&(log(_0xbb8b63),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x36c)][_0x257e31(0x7d4)]=_0xbb8b63[_0x257e31(0x7d4)],isIFrame&&parent[_0x257e31(0x512)]({'sensors':_0xbb8b63[_0x257e31(0x7d4)]},_0x1b0378[_0x257e31(0x4aa)]));_0x257e31(0x706)in _0xbb8b63&&playbackMIDI(_0xbb8b63[_0x257e31(0x706)],![],_0x44f8ac);_0x257e31(0x59b)in _0xbb8b63&&_0xbb8b63[_0x257e31(0x59b)]&&addDownloadLink(_0xbb8b63[_0x257e31(0x59b)],_0x44f8ac,_0x1b0378[_0x257e31(0x7cc)]);_0x257e31(0x7cb)in _0xbb8b63&&(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x4da)]!==_0xbb8b63['rotate_video']&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4da)]=_0xbb8b63[_0x257e31(0x7cb)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)]&&(_0x1b0378['rpcs'][_0x44f8ac]['videoElement'][_0x257e31(0x301)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4da)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['videoElement'][_0x257e31(0x970)][_0x257e31(0x301)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4da)]),_0x1d3c34=!![]));if(_0x257e31(0x3fe)in _0xbb8b63){warnlog(_0xbb8b63),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x36c)][_0x257e31(0x3fe)]=_0xbb8b63[_0x257e31(0x3fe)];_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x914)]&&(!_0x1b0378['autoSyncObject']&&(_0x1b0378[_0x257e31(0x6c7)]=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x914)],_0x1b0378['autoSyncCallback'](_0x44f8ac)));_0x257e31(0x41e)in _0xbb8b63[_0x257e31(0x3fe)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x41e)]=_0xbb8b63['info'][_0x257e31(0x41e)]);_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x6e1)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x6e1)]=!![]);if(_0xbb8b63['info']['allowdrawing']){_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['allowDrawing']=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x1ec)];try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)][_0x257e31(0xacd)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)][_0x257e31(0xacd)]();}catch(_0x7425a4){errorlog(_0x7425a4);}}if(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x54a)]){if(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x36c)][_0x257e31(0x3fe)][_0x257e31(0x6a1)])_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['signalMeter']['dataset'][_0x257e31(0xa1b)]='1';else _0x257e31(0x6a1)in _0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x36c)][_0x257e31(0x3fe)]&&(_0x1b0378['rpcs'][_0x44f8ac]['signalMeter'][_0x257e31(0x970)][_0x257e31(0xa1b)]='0');}_0x257e31(0x605)in _0xbb8b63['info']&&(_0xbb8b63[_0x257e31(0x3fe)]['obs_control']!==![]?(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x381)]=_0xbb8b63['info'][_0x257e31(0x605)],_0x1b0378[_0x257e31(0x420)](_0x257e31(0x630),_0x44f8ac)):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x381)]=![]);if('meta'in _0xbb8b63[_0x257e31(0x3fe)])try{typeof _0xbb8b63['info'][_0x257e31(0x9de)]==_0x257e31(0x506)?_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x9de)]=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x9de)]:_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['meta']=![];}catch(_0x4faa06){errorlog(_0x4faa06);}if(_0x257e31(0x4a1)in _0xbb8b63[_0x257e31(0x3fe)])try{typeof _0xbb8b63[_0x257e31(0x3fe)]['label']==_0x257e31(0x22a)?_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['label']=sanitizeLabel(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x4a1)]):_0x1b0378['rpcs'][_0x44f8ac]['label']=![],applyStyleEffect(_0x44f8ac),_0x1b0378[_0x257e31(0x91b)]&&setupGuestLabelControl(_0x44f8ac);}catch(_0x9ad92a){errorlog(_0x9ad92a);}if('order'in _0xbb8b63['info'])try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x305)]=parseInt(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x305)])||0x0;if(_0x1b0378['director']){var _0x5367d5=document['querySelectorAll'](_0x257e31(0x9ae)+_0x44f8ac+'\x22]');_0x5367d5[0x0]&&(_0x5367d5[0x0][_0x257e31(0x557)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x305)]);}}catch(_0x19a6d4){errorlog(_0x19a6d4);}else _0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['order']=0x0;if(_0xbb8b63[_0x257e31(0x3fe)]['queued'])try{if(_0x1b0378[_0x257e31(0x91b)]&&!_0x1b0378[_0x257e31(0x9cd)]){var _0x5367d5=document[_0x257e31(0x480)](_0x257e31(0x916)+_0x44f8ac+'\x22]');_0x5367d5[0x0]&&_0x5367d5[0x0]['classList'][_0x257e31(0x6ce)](_0x257e31(0xa37));}}catch(_0x28b3b4){errorlog(_0x28b3b4);}if(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x4a3)])try{if(_0x257e31(0x764)in _0xbb8b63[_0x257e31(0x3fe)]){if(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x764)]!==null){var _0x54bf3e=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['batteryMeter'][_0x257e31(0x55d)]('.battery-level');if(_0x54bf3e){var _0x24aaf4=parseInt(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['stats'][_0x257e31(0x3fe)][_0x257e31(0x764)])||0x0;_0x24aaf4>0x64&&(_0x24aaf4=0x64);_0x24aaf4<0x0&&(_0x24aaf4=0x0);_0x54bf3e['style'][_0x257e31(0x7bd)]=parseInt(_0x24aaf4)+'%';if(_0x24aaf4<0xa)_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0xb06)][_0x257e31(0x6ce)]('warn'),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0x604));else _0x24aaf4<0x19?(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x4a3)]['classList'][_0x257e31(0x6ce)](_0x257e31(0x604)),_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xafd))):(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)]['classList']['remove']('alert'),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xafd)));_0x24aaf4<0x64&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37)),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0x382)]=_0x24aaf4+_0x257e31(0x689);}}}_0x257e31(0x6ef)in _0xbb8b63[_0x257e31(0x3fe)]&&(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x6ef)]===![]?(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)]['dataset']['plugged']='0',_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37))):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a3)][_0x257e31(0x970)][_0x257e31(0x15c)]='1');}catch(_0xd3caa4){errorlog(_0xd3caa4);}if(_0x257e31(0x26c)in _0xbb8b63['info'])try{_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x26c)]?_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x77c)]=_0xbb8b63[_0x257e31(0x3fe)]['initial_group'][_0x257e31(0x2f9)](','):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['group']=[],_0x1b0378[_0x257e31(0x91b)]?(initGroupButtons(_0x44f8ac),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x77c)][_0x257e31(0x5a7)]&&syncGroup(_0x1b0378['rpcs'][_0x44f8ac]['group'],_0x44f8ac)):_0x1d3c34=!![];}catch(_0x2b7de){errorlog(_0x2b7de);}if(_0x257e31(0x5cd)in _0xbb8b63[_0x257e31(0x3fe)])try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x3c0)]=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x5cd)],(_0x1b0378['showMuteState']||_0x1b0378[_0x257e31(0x1fa)])&&_0x1b0378[_0x257e31(0x85b)]&&(!_0x1b0378[_0x257e31(0x379)]||_0x1b0378['director'])?(!_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement']&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement']=getById('muteStateTemplate')[_0x257e31(0x5f4)](!![]),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement']['id']=_0x257e31(0x52a)+_0x44f8ac,_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]['classList']['remove'](_0x257e31(0xa37)),_0x1d3c34=!![]),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteState']?_0x1b0378['showMuteState']?(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]['classList'][_0x257e31(0x6ce)](_0x257e31(0x62f)),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37))):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xa37)):_0x1b0378[_0x257e31(0x1fa)]?(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0x62f)),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement']['classList'][_0x257e31(0x6ce)](_0x257e31(0xa37))):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement'][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xa37))):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement']['classList'][_0x257e31(0x34e)]('hidden'),pokeIframeAPI(_0x257e31(0xaba),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x3c0)],_0x44f8ac);}catch(_0x821079){errorlog(_0x821079);}if(_0x1b0378[_0x257e31(0x91b)]){try{_0x257e31(0x96e)in _0xbb8b63[_0x257e31(0x3fe)]&&(_0xbb8b63['info'][_0x257e31(0x96e)]==![]&&initRecordingImpossible(_0x44f8ac));}catch(_0x5014e3){errorlog(_0x5014e3);}try{if(_0x257e31(0xa9d)in _0xbb8b63[_0x257e31(0x3fe)]){if(_0xbb8b63['info']['recording_audio_gain']!==![]){let _0x1b4d49=parseInt(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0xa9d)])||0x0;initAudioButtons(_0x1b4d49,_0x44f8ac);}}}catch(_0x2709df){errorlog(_0x2709df);}try{'directorSpeakerMuted'in _0xbb8b63[_0x257e31(0x3fe)]&&(_0xbb8b63['info']['directorSpeakerMuted']&&updateRemoteSpeakerMute(_0x44f8ac));}catch(_0x2e3bd2){errorlog(_0x2e3bd2);}try{'directorDisplayMuted'in _0xbb8b63['info']&&(_0xbb8b63['info'][_0x257e31(0x3ea)]&&updateRemoteDisplayMute(_0x44f8ac));}catch(_0x2c05cf){errorlog(_0x2c05cf);}if(_0x1b0378[_0x257e31(0x39e)]&&_0xbb8b63['info'][_0x257e31(0x6a9)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)])try{_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x6a9)]['forEach'](_0x46e443=>{var _0x8a93f8=_0x257e31,_0x31b5cc=getGuestTargetScene(_0x46e443,_0x1b0378[_0x8a93f8(0x7cc)][_0x44f8ac][_0x8a93f8(0x791)]);_0x31b5cc&&directEnable(_0x31b5cc,!![]);});}catch(_0x5eda35){errorlog(_0x5eda35);}}if(_0x257e31(0x66d)in _0xbb8b63['info'])try{_0x1b0378[_0x257e31(0x91b)]?_0xbb8b63['info'][_0x257e31(0x66d)]&&updateDirectorVideoMute(_0x44f8ac):(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['directorVideoMuted']=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x66d)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['directorVideoMuted']&&(_0x44f8ac in _0x1b0378[_0x257e31(0x7cc)]&&_0x1b0378['requestRateLimit'](0x0,_0x44f8ac)));}catch(_0x5d8d76){errorlog(_0x5d8d76);}if('directorMirror'in _0xbb8b63[_0x257e31(0x3fe)])try{_0x1b0378[_0x257e31(0x91b)]&&(_0xbb8b63[_0x257e31(0x3fe)]['directorMirror']&&(getById(_0x257e31(0x539)+_0x44f8ac)[_0x257e31(0x55d)]('[data-action-type=\x22mirror-guest\x22]')&&(getById(_0x257e31(0x539)+_0x44f8ac)[_0x257e31(0x55d)](_0x257e31(0x4f4))['classList'][_0x257e31(0x34e)](_0x257e31(0x7de)),getById('container_'+_0x44f8ac)[_0x257e31(0x55d)](_0x257e31(0x4f4))[_0x257e31(0x621)]=_0x257e31(0x251)))),_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0xa5f)]=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x300)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)]&&applyMirrorGuest(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['mirrorState'],_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x601)]);}catch(_0x36dd98){errorlog(_0x36dd98);}if('video_muted_init'in _0xbb8b63[_0x257e31(0x3fe)])try{_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x283)]=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0xb3f)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['videoMuted']&&(_0x1b0378[_0x257e31(0x91b)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x545)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37))),pokeIframeAPI('remote-video-mute-state',_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x283)],_0x44f8ac);}catch(_0x80840c){errorlog(_0x80840c);}_0x257e31(0x7cb)in _0xbb8b63[_0x257e31(0x3fe)]&&(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x4da)]!==_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x7cb)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4da)]=_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x7cb)],_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x601)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)][_0x257e31(0x301)]=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['rotate'],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x601)][_0x257e31(0x970)]['rotated']=_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4da)]),_0x1d3c34=!![])),_0x257e31(0x1cd)in _0xbb8b63['info']&&(_0xbb8b63['info'][_0x257e31(0x1cd)]===![]&&soloLinkGeneratorInit(_0x44f8ac)),directorCoDirectorColoring(_0x44f8ac),_0x55f563=!![],pokeAPI(_0x257e31(0x630),getDetailedState(_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x791)])),pokeIframeAPI(_0x257e31(0x49e),_0xbb8b63['info'],_0x44f8ac);}_0x257e31(0x647)in _0xbb8b63&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x36c)]&&_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x36c)][_0x257e31(0x3fe)]&&processMiniInfoUpdate(_0xbb8b63[_0x257e31(0x647)],_0x44f8ac));if(_0xbb8b63['directorSettings']){_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['director']=!![];_0xbb8b63['directorSettings'][_0x257e31(0x213)]&&await checkToken();if(_0x1b0378[_0x257e31(0x63e)]===_0x44f8ac){_0x257e31(0x9f7)in _0xbb8b63[_0x257e31(0x734)]&&(_0x1b0378[_0x257e31(0x9f7)]=parseInt(_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x9f7)])||0x0,_0x1d3c34=!![]);if(_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x1ca)]){if(_0x1b0378[_0x257e31(0x259)]===![]){if(_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x1ca)]===_0x1b0378[_0x257e31(0x791)])_0x1b0378[_0x257e31(0x1c0)]=!![];else for(var _0xbe5923 in _0x1b0378['rpcs']){if(_0x1b0378[_0x257e31(0x7cc)][_0xbe5923]['streamID']===_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x1ca)]){if((_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x8a3)](_0xbe5923)||_0x1b0378[_0x257e31(0x7cc)][_0xbe5923][_0x257e31(0x91b)])&&!_0x1b0378[_0x257e31(0x4ce)])break;_0x1b0378[_0x257e31(0x1c0)]=_0xbe5923;break;}}_0x1d3c34=!![],_0x55f563=!![];}}if(_0x257e31(0x4ce)in _0xbb8b63[_0x257e31(0x734)]){if(_0x1b0378[_0x257e31(0x333)]!==![]){if(_0x1b0378[_0x257e31(0x4ce)])_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4ce)]=_0x1b0378['showDirector'];else _0xbb8b63['directorSettings'][_0x257e31(0x4ce)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4ce)]=_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x4ce)]);}}if(_0x1b0378[_0x257e31(0x333)]!==![]){if(_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x333)])for(var _0xbe5923 in _0xbb8b63[_0x257e31(0x734)][_0x257e31(0x333)]){setTimeout(function(_0x5e2719){var _0x4a0269=_0x257e31;_0x1b0378[_0x4a0269(0xa25)](_0x5e2719);},0x3e8,_0xbb8b63['directorSettings'][_0x257e31(0x333)][_0xbe5923]);}if(_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x2e1)])for(var _0xbe5923 in _0xbb8b63[_0x257e31(0x734)]['mute']){setTimeout(function(_0x38e733){_0x1b0378['directorActions'](_0x38e733);},0x3e8,_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x2e1)][_0xbe5923]);}}if(_0x257e31(0x5bf)in _0xbb8b63[_0x257e31(0x734)])for(var _0x5121f7=0x0;_0x5121f7<_0xbb8b63[_0x257e31(0x734)]['addCoDirector']['length'];_0x5121f7++){!_0x1b0378['directorList'][_0x257e31(0x8a3)](_0xbb8b63[_0x257e31(0x734)]['addCoDirector'][_0x5121f7][_0x257e31(0x6f5)])&&(_0x1b0378[_0x257e31(0x27e)]['push'](_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x5bf)][_0x5121f7][_0x257e31(0x6f5)]()),addDirectorBlue(_0xbb8b63[_0x257e31(0x734)][_0x257e31(0x5bf)][_0x5121f7][_0x257e31(0x6f5)]()));}}}if(_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x7ce)](_0x44f8ac)>=0x0){if(_0x1b0378[_0x257e31(0x333)]!==![]){_0x257e31(0xae0)in _0xbb8b63&&_0x1b0378[_0x257e31(0xa25)](_0xbb8b63);if(_0x257e31(0x50d)in _0xbb8b63&&_0xbb8b63[_0x257e31(0x7e8)])for(var _0xbe5923 in _0x1b0378[_0x257e31(0x7cc)]){if(_0x1b0378['rpcs'][_0xbe5923][_0x257e31(0x791)]===_0xbb8b63[_0x257e31(0x7e8)]){_0xbb8b63['audioOutputChannel']?(_0x1b0378[_0x257e31(0x7cc)][_0xbe5923]['channelOffset']=parseInt(_0xbb8b63[_0x257e31(0x50d)])||![],_0x1b0378['rpcs'][_0xbe5923][_0x257e31(0x24e)]-=0x1):_0x1b0378[_0x257e31(0x7cc)][_0xbe5923][_0x257e31(0x24e)]=![];updateIncomingVideoElement(_0xbe5923,![],!![]);break;}}}'directorSettings'in _0xbb8b63&&_0xbb8b63[_0x257e31(0x734)]['blindAllGuests']&&(!_0x1b0378['director']&&(_0x1b0378['scene']===![]&&(_0x1b0378[_0x257e31(0x3ea)]=!![],_0x1b0378['directorDisplayMute']())));if(_0x257e31(0xa9c)in _0xbb8b63&&_0x257e31(0x72d)in _0xbb8b63){if(_0xbb8b63[_0x257e31(0x72d)]&&_0xbb8b63[_0x257e31(0x72d)]===!![]){_0x1b0378[_0x257e31(0x651)]=_0xbb8b63[_0x257e31(0xa9c)],applyMirror(_0x1b0378[_0x257e31(0x5c4)]);if(_0x1b0378['director']){if(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x300)]){if(getById(_0x257e31(0x72b))[_0x257e31(0x55d)]('[data-action-type=\x22mirror-guest\x22]'))getById(_0x257e31(0x72b))['querySelector']('[data-action-type=\x22mirror-guest\x22]')[_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0x7de)),getById(_0x257e31(0x72b))[_0x257e31(0x55d)](_0x257e31(0x4f4))[_0x257e31(0x621)]=_0x257e31(0x251);else getById('container_director')['querySelector'](_0x257e31(0x4f4))&&(getById(_0x257e31(0x72b))[_0x257e31(0x55d)](_0x257e31(0x4f4))[_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0x7de)),getById(_0x257e31(0x72b))[_0x257e31(0x55d)](_0x257e31(0x4f4))['ariaPressed']=_0x257e31(0x48f));}}}else{if(_0xbb8b63[_0x257e31(0x72d)]&&_0xbb8b63[_0x257e31(0x72d)]in _0x1b0378[_0x257e31(0x7cc)]){_0x1b0378[_0x257e31(0x7cc)][_0xbb8b63['mirrorGuestTarget']]['mirrorState']=_0xbb8b63[_0x257e31(0xa9c)];_0x1b0378[_0x257e31(0x7cc)][_0xbb8b63[_0x257e31(0x72d)]][_0x257e31(0x601)]&&applyMirrorGuest(_0xbb8b63[_0x257e31(0xa9c)],_0x1b0378[_0x257e31(0x7cc)][_0xbb8b63[_0x257e31(0x72d)]][_0x257e31(0x601)]);if(_0x1b0378[_0x257e31(0x91b)]){if(_0xbb8b63[_0x257e31(0x3fe)][_0x257e31(0x300)])getById(_0x257e31(0x539)+_0x44f8ac)[_0x257e31(0x55d)]('[data-action-type=\x22mirror-guest\x22]')&&(getById(_0x257e31(0x539)+_0x44f8ac)['querySelector']('[data-action-type=\x22mirror-guest\x22]')[_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0x7de)),getById('container_'+_0x44f8ac)[_0x257e31(0x55d)](_0x257e31(0x4f4))[_0x257e31(0x621)]=_0x257e31(0x251));else getById(_0x257e31(0x539)+_0x44f8ac)[_0x257e31(0x55d)]('[data-action-type=\x22mirror-guest\x22]')&&(getById(_0x257e31(0x539)+_0x44f8ac)['querySelector'](_0x257e31(0x4f4))[_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0x7de)),getById(_0x257e31(0x539)+_0x44f8ac)[_0x257e31(0x55d)](_0x257e31(0x4f4))[_0x257e31(0x621)]=_0x257e31(0x48f));}}}}if(_0x257e31(0x32d)in _0xbb8b63){_0x1b0378[_0x257e31(0x731)]=_0xbb8b63['directorState'],log(_0xbb8b63);for(var _0x30c8b0 in _0x1b0378[_0x257e31(0x731)]){syncSceneState(_0x30c8b0),syncOtherState(_0x30c8b0);}pokeAPI(_0x257e31(0x630),_0xbb8b63[_0x257e31(0x32d)]);}if(_0x257e31(0x4db)in _0xbb8b63){_0x1b0378['widget']=_0xbb8b63[_0x257e31(0x4db)]||![];let _0x21c51f=document['getElementById'](_0x257e31(0x856));try{_0x21c51f?!_0x1b0378['widget']?(document[_0x257e31(0x1bb)]('widget')[_0x257e31(0x6ce)](),_0x1d3c34=!![]):_0x21c51f[_0x257e31(0x8f3)]=parseURL4Iframe(_0x1b0378[_0x257e31(0x856)]):_0x1d3c34=!![],_0x1b0378[_0x257e31(0x91b)]&&(getById(_0x257e31(0x523))[_0x257e31(0x75b)]=_0x1b0378[_0x257e31(0x856)]||'');}catch(_0x5d3332){errorlog(_0x5d3332);}pokeIframeAPI(_0x257e31(0x6ab),_0x1b0378[_0x257e31(0x856)],_0x44f8ac);}if(_0x257e31(0x97c)in _0xbb8b63){_0x1b0378[_0x257e31(0x32c)]=_0xbb8b63[_0x257e31(0x97c)];_0x1b0378[_0x257e31(0x91b)]&&updateSlotUI();if(_0x1b0378[_0x257e31(0xb1b)])try{let _0x36491e=_0x1b0378[_0x257e31(0x32c)][_0x1b0378[_0x257e31(0xb1b)]];if(_0x36491e)_0x1b0378[_0x257e31(0x33d)]&&!_0x1b0378[_0x257e31(0x33d)][_0x36491e]&&(_0x1b0378[_0x257e31(0x33d)]={[_0x36491e]:{'h':0x64,'w':0x64,'x':0x0,'y':0x0,'c':_0x1b0378['cover']}},updateMixer());else _0x1b0378[_0x257e31(0x33d)]&&Object[_0x257e31(0x69e)](_0x1b0378[_0x257e31(0x33d)])[_0x257e31(0x5a7)]&&(_0x1b0378[_0x257e31(0x33d)]={},updateMixer());}catch(_0x1f99fb){errorlog(_0x1f99fb);}else!_0x1b0378['obsSceneSync']()&&_0x1b0378[_0x257e31(0x424)]&&(_0x1b0378[_0x257e31(0x64a)]&&(_0x1b0378['layout']=combinedLayout(_0x1b0378[_0x257e31(0x64a)]),updateMixer()),_0x1b0378[_0x257e31(0x33d)]&&(_0x1b0378[_0x257e31(0x33d)]=combinedLayoutSimple(_0x1b0378['layout']),updateMixer()));warnlog(_0xbb8b63);}_0x257e31(0x395)in _0xbb8b63&&(_0x1b0378['layouts']=_0xbb8b63[_0x257e31(0x395)],'obsSceneTriggers'in _0xbb8b63?(_0x1b0378[_0x257e31(0x995)]=_0xbb8b63['obsSceneTriggers'],_0x1b0378[_0x257e31(0x279)]()):_0x1b0378['obsSceneTriggers']=![]);}if('order'in _0xbb8b63){_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x305)]=parseInt(_0xbb8b63[_0x257e31(0x305)])||0x0;_0x44f8ac in _0x1b0378['pcs']&&(_0x1b0378[_0x257e31(0x71c)][_0x44f8ac]['order']=parseInt(_0xbb8b63['order'])||0x0);if(_0x1b0378['director']){var _0x5367d5=document[_0x257e31(0x480)](_0x257e31(0x9ae)+_0x44f8ac+'\x22]');_0x5367d5[0x0]&&(_0x5367d5[0x0][_0x257e31(0x557)]=parseInt(_0xbb8b63[_0x257e31(0x305)])||0x0);}_0x1d3c34=!![];}if(_0x257e31(0x620)in _0xbb8b63){log(_0x257e31(0x23a));if(_0x257e31(0x75b)in _0xbb8b63){log(_0x257e31(0x5c6));if(typeof _0xbb8b63[_0x257e31(0x75b)]==_0x257e31(0x22a)){_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a1)]=sanitizeLabel(_0xbb8b63[_0x257e31(0x75b)]);_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a1)]['length']==0x0&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x4a1)]=![]);applyStyleEffect(_0x44f8ac);if(_0x1b0378['director'])updateLabelDirectors(_0x44f8ac);else _0x1b0378['showlabels']&&(_0x1d3c34=!![]);}else{_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x4a1)]=![],applyStyleEffect(_0x44f8ac);if(_0x1b0378[_0x257e31(0x91b)])updateLabelDirectors2(_0x44f8ac);else _0x1b0378[_0x257e31(0xb41)]&&(_0x1d3c34=!![]);}_0x55f563=!![],pokeIframeAPI(_0x257e31(0x719),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['label'],_0x44f8ac);}}_0x257e31(0x1d8)in _0xbb8b63&&(log(_0xbb8b63),_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x3c0)]=_0xbb8b63['muteState'],_0x1b0378['requestRateLimit'](![],_0x44f8ac),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x36c)][_0x257e31(0x3fe)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x36c)]['info'][_0x257e31(0x5cd)]=_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x3c0)]),(_0x1b0378[_0x257e31(0x705)]||_0x1b0378[_0x257e31(0x1fa)])&&_0x1b0378[_0x257e31(0x85b)]&&(!_0x1b0378['cleanOutput']||_0x1b0378[_0x257e31(0x91b)])?(!_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]=getById('muteStateTemplate')[_0x257e31(0x5f4)](!![]),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]['id']=_0x257e31(0x52a)+_0x44f8ac,_0x1d3c34=!![]),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x3c0)]?_0x1b0378['showMuteState']||_0x1b0378[_0x257e31(0x333)]===![]?(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement']['classList'][_0x257e31(0x6ce)]('unmuted'),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37))):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteElement'][_0x257e31(0xb06)][_0x257e31(0x34e)]('hidden'):_0x1b0378['showUnMuteState']?(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0x62f)),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37))):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xa37)),_0x55f563=!![]):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb0d)][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xa37)),pokeAPI(_0x257e31(0x18d),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteMuteState'],_0x1b0378['rpcs'][_0x44f8ac][_0x257e31(0x791)]),pokeIframeAPI(_0x257e31(0xaba),_0xbb8b63[_0x257e31(0x1d8)],_0x44f8ac));if(_0x257e31(0xa47)in _0xbb8b63){var _0x2439e2=getChromiumVersion();_0x2439e2&&(_0x2439e2<0x50&&(_0x1d3c34=!![]));}if(_0x257e31(0x283)in _0xbb8b63){log('videoMuted:\x20'+_0xbb8b63[_0x257e31(0x283)]),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x283)]=_0xbb8b63[_0x257e31(0x283)];_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x283)]?(!_0x1b0378[_0x257e31(0x7c2)]&&_0x1b0378[_0x257e31(0x54e)](0x0,_0x44f8ac),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['imageElement']&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x8ec)][_0x257e31(0xa37)]=!![],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x8ec)][_0x257e31(0x90b)]['visibility']=_0x257e31(0xa37))):(!_0x1b0378['switchMode']&&applyQualityDirector(_0x44f8ac),updateIncomingVideoElement(_0x44f8ac,!![],![]));_0x1d3c34=!![];_0x1b0378['director']&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x283)]?_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteVideoMuteElement'][_0x257e31(0xb06)][_0x257e31(0x6ce)](_0x257e31(0xa37)):_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['remoteVideoMuteElement'][_0x257e31(0xb06)][_0x257e31(0x34e)](_0x257e31(0xa37)));if(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x992)]&&_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac]['videoMuted'])setTimeout(function(){activeSpeaker();},0x0);else!_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x283)]&&setTimeout(function(){activeSpeaker();},0x0);_0x55f563=!![],pokeAPI(_0x257e31(0x24d),_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x283)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x791)]),pokeIframeAPI(_0x257e31(0xb2f),_0xbb8b63[_0x257e31(0x283)],_0x44f8ac);}if(_0x257e31(0x28a)in _0xbb8b63){if(_0x44f8ac+_0x257e31(0x906)in _0x1b0378['rpcs']){_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac+'_screen'][_0x257e31(0x27b)]=_0xbb8b63['screenStopped'];try{_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac+'_screen'][_0x257e31(0x27b)]&&(!(SafariVersion&&SafariVersion>0x10)&&(iPad||iOS)&&(_0x1b0378['rpcs'][_0x44f8ac+_0x257e31(0x906)][_0x257e31(0x601)][_0x257e31(0x959)]=!![]));}catch(_0x2b86e7){}_0x1b0378['director']&&(_0xbb8b63[_0x257e31(0x28a)]?getById(_0x257e31(0x539)+_0x44f8ac+_0x257e31(0x906))['classList'][_0x257e31(0x34e)]('screenshareNotActive'):getById('container_'+_0x44f8ac+'_screen')['classList'][_0x257e31(0x6ce)]('screenshareNotActive')),_0x1d3c34=!![],_0x55f563=!![];}}'screenShareState'in _0xbb8b63&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0xb10)]=_0xbb8b63['screenShareState'],_0x1d3c34=!![],pokeIframeAPI(_0x257e31(0x3bf),_0xbb8b63[_0x257e31(0xb10)],_0x44f8ac));if(_0x257e31(0x1e5)in _0xbb8b63){if(!_0x1b0378[_0x257e31(0x91b)]){if(_0x257e31(0xa69)in _0xbb8b63){if(_0x1b0378['directorList'][_0x257e31(0x7ce)](_0x44f8ac)>=0x0){var _0x1531c3=_0xbb8b63[_0x257e31(0xa69)];if(_0x1531c3===!![])_0x1b0378[_0x257e31(0x66d)]=_0xbb8b63[_0x257e31(0x1e5)];else _0x1531c3 in _0x1b0378[_0x257e31(0x7cc)]&&(_0x1b0378['rpcs'][_0x1531c3][_0x257e31(0x66d)]=_0xbb8b63[_0x257e31(0x1e5)],_0x1b0378['rpcs'][_0x1531c3][_0x257e31(0x66d)]&&_0x1b0378[_0x257e31(0x54e)](0x0,_0x1531c3),_0x1d3c34=!![]);}}}_0x55f563=!![];}'virtualHangup'in _0xbb8b63&&(!_0x1b0378[_0x257e31(0x91b)]&&(_0x1b0378[_0x257e31(0x27e)][_0x257e31(0x7ce)](_0x44f8ac)>=0x0&&(_0x44f8ac in _0x1b0378[_0x257e31(0x7cc)]&&(_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x27b)]=_0xbb8b63[_0x257e31(0x27b)],_0x1b0378[_0x257e31(0x7cc)][_0x44f8ac][_0x257e31(0x27b)]&&(_0x44f8ac in _0x1b0378['rpcs']&&_0x1b0378[_0x257e31(0x54e)](0x0,_0x44f8ac)),_0x1d3c34=!![]))),_0x55f563=!![]);if(_0x257e31(0x53a)in _0xbb8b63){log(_0x257e31(0x89a));try{_0x1b0378[_0x257e31(0x70a)](_0x44f8ac,_0xbb8b63[_0x257e31(0x53a)]);}catch(_0xba1b4b){errorlog(_0xba1b4b);}}_0x257e31(0x800)in _0xbb8b63&&remoteStats(_0xbb8b63,_0x44f8ac);if(_0x1d3c34)setTimeout(function(){updateMixer(),updateUserList();},0x1);else _0x55f563&&updateUserList();},_0x1b0378[_0x488f0e(0x7cc)][_0x2013f3][_0x488f0e(0x215)]['onclose']=()=>{var _0xbca012=_0x488f0e;warnlog(_0xbca012(0x2c1));};},_0x1b0378[_0x9089b0(0x7cc)][_0x2013f3][_0x9089b0(0x170)]=_0x2ac0db=>{var _0x3ee8b5=_0x9089b0;warnlog(_0x3ee8b5(0x49c)),_0x1b0378[_0x3ee8b5(0x2e3)](_0x2ac0db,_0x2013f3);},log('setup\x20peer\x20complete');},_0x1b0378[_0x2f55f4(0x5ee)]=function(_0x3a0195,_0x2cd348){var _0x298260=_0x2f55f4;log(_0x298260(0xb31));if(!_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x1b4)]){_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)]={},_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x42b)]=_0x2cd348,_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x1b4)]=createVideoElement(),_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x1b4)][_0x298260(0x959)]=![],_0x1b0378['rpcs'][_0x2cd348][_0x298260(0x1b4)][_0x298260(0x35f)](_0x298260(0x78d),_0x3171f6=>{var _0x5a729a=_0x298260;log(_0x5a729a(0x4b7)),_0x3171f6[_0x5a729a(0xa69)][_0x5a729a(0x959)]=![];}),_0x1b0378['rpcs'][_0x2cd348][_0x298260(0x1b4)][_0x298260(0x318)]=createMediaStream(),_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x601)]=_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x1b4)],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x97f)]=createMediaStream();_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x791)]&&(_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x791)]=_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x791)]+':s');_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x36c)]={},_0x1b0378['rpcs'][_0x2cd348][_0x298260(0x36c)][_0x298260(0x4f6)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x7a7)]=function(){return new Promise((_0x5d6b30,_0xf1b00c)=>{_0x5d6b30([]);});},_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x4d2)]=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x60a)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x61d)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x566)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x992)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0xa07)]=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x4bd)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x64e)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x38e)]=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)]['codirectorRequested']=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0xad0)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x277)]=-0x1,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x255)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x4ce)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x24e)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x3d3)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen']['targetBandwidth']=-0x1,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x25b)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x8ec)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x558)]=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x77c)]=_0x1b0378['rpcs'][_0x2cd348][_0x298260(0x77c)]||[],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x283)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x710)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen']['directorVideoMuted']=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x27b)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x3c0)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0xb0d)]=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)]['lockedVideoBitrate']=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)]['lockedAudioBitrate']=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x757)]=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x848)]=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x91a)]=null,_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x9a2)]=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0xa5f)]=null,_0x1b0378['rpcs'][_0x2cd348+'_screen'][_0x298260(0x58c)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x5c0)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x20a)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x54a)]=![],_0x1b0378['rpcs'][_0x2cd348+'_screen']['volumeControl']=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)]['screenIndexes']=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)]['screenShareState']=!![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x4fd)]=0x64,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x6b3)]=0x0,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x798)]=0x0,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x7a6)]='1',_0x1b0378['rpcs'][_0x2cd348+'_screen'][_0x298260(0x3a9)]='1',_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen']['obsControl']=![],_0x1b0378['rpcs'][_0x2cd348+'_screen'][_0x298260(0x804)]=0x0,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x4a1)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x305)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)]['canvasCtx']=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0xb20)]=null,_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x81a)]={},_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)]['iframeSrc']=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x753)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0xaf7)]=Date[_0x298260(0x56b)](),_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x9d0)]=![],_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x956)]=![],_0x1b0378['rpcs'][_0x2cd348+'_screen'][_0x298260(0x41e)]=![];(_0x1b0378[_0x298260(0x786)]==0x2||_0x1b0378['activeSpeaker']==0x4)&&(_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x64e)]=!![]);_0x1b0378['rpcs'][_0x2cd348]['smallScreen']?_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x6e1)]=!![]:_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)]['smallScreen']=![];if(_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x566)]){_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x566)]=_0x1b0378[_0x298260(0x7cc)][_0x2cd348][_0x298260(0x566)];try{_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)]&&_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen']['videoElement'][_0x298260(0xacd)]&&_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)][_0x298260(0xacd)]();}catch(_0x2674cd){errorlog(_0x2674cd);}}_0x1b0378[_0x298260(0x7cc)][_0x2cd348+'_screen'][_0x298260(0x601)][_0x298260(0x970)][_0x298260(0x7b3)]=_0x2cd348+'_screen',_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)]['videoElement']['id']=_0x298260(0x6cd)+_0x2cd348+_0x298260(0x906),_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x791)]&&(_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)][_0x298260(0x970)][_0x298260(0x7e8)]=_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x791)]),_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)][_0x298260(0x52e)]=![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x558)]=![],setupIncomingScreenTracking(_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)],_0x2cd348+_0x298260(0x906)),_0x3a0195[_0x298260(0x6fb)](function(_0x2b4ef9){var _0xf80e49=_0x298260;_0x1b0378[_0xf80e49(0x7cc)][_0x2cd348][_0xf80e49(0x1b4)][_0xf80e49(0x318)]['addTrack'](_0x2b4ef9),_0x1b0378[_0xf80e49(0x7cc)][_0x2cd348+_0xf80e49(0x906)][_0xf80e49(0x97f)][_0xf80e49(0x428)](_0x2b4ef9);}),_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)][_0x298260(0x363)]=!![],_0x1b0378['rpcs'][_0x2cd348+_0x298260(0x906)][_0x298260(0x601)]['setAttribute'](_0x298260(0xa4b),''),mediaSourceUpdated(_0x2cd348+_0x298260(0x906),_0x1b0378[_0x298260(0x7cc)][_0x2cd348+_0x298260(0x906)][_0x298260(0x791)]);}else _0x3a0195['forEach'](function(_0x5ac7c5){var _0xd43666=_0x298260,_0x20d29a=![];_0x1b0378['rpcs'][_0x2cd348][_0xd43666(0x1b4)][_0xd43666(0x318)][_0xd43666(0xa5c)]()[_0xd43666(0x6fb)](function(_0x2c86f7){var _0x425f3c=_0xd43666;_0x2c86f7['id']==_0x5ac7c5['id']&&_0x2c86f7[_0x425f3c(0x759)]==_0x5ac7c5[_0x425f3c(0x759)]&&(_0x20d29a=!![]);});!_0x20d29a&&_0x1b0378['rpcs'][_0x2cd348]['screenElement'][_0xd43666(0x318)][_0xd43666(0x428)](_0x5ac7c5);var _0x20d29a=![];_0x1b0378[_0xd43666(0x7cc)][_0x2cd348+'_screen'][_0xd43666(0x97f)][_0xd43666(0xa5c)]()[_0xd43666(0x6fb)](function(_0x4836f4){var _0x47dab8=_0xd43666;_0x4836f4['id']==_0x5ac7c5['id']&&_0x4836f4['kind']==_0x5ac7c5[_0x47dab8(0x759)]&&(_0x20d29a=!![]);}),!_0x20d29a&&_0x1b0378['rpcs'][_0x2cd348+'_screen']['streamSrc'][_0xd43666(0x428)](_0x5ac7c5);});},_0x1b0378;}());function _0x52ce(){var _0x3a35a7=['security','blindAllGuests','door','wss://','currentTarget','chunked-inbound','guess','stringify','screenshareStereo','counterWebCodec','pitch','changeOrder','except','dataMode','remoteFocus','PCM\x20STARTED','midiOut','center','whipOutScreenShareCodec','notifyScreenShare','avatar','search','remote-mute-state','You\x27ve\x20been\x20transferred','ifs','invite','sendOnNewConnect','tallyStyle','end-view-connection','crease','dtx','sendingBuffer','OPEN','pip','guest','main','preferVideoCodec','.webm','A\x20Guest\x20joined\x20the\x20room','constant','follow','syncDrawOnVideo','video','ArrayBufferDataStream\x27s\x20pos\x20lies\x20beyond\x20end\x20of\x20buffer','buffer','requestCoDirector','degradationPreference','codirectorSettings','restartChunkedMode','waitPage','null\x20ice\x20rpcs','seedStream','AndroidFix','noREMB','bitrateTimeout','updateTime','spoke','requestKeyframe','all','changeURL','action','slip','meshcastCode','before','such','miconly','h264profile','made','support','setResolution','shift','chatmessage','pong','sleep','bandwidth\x20set\x20c!\x20','createDataChannel','screensharefps','him','settle','far','decodeRemote','toLowerCase','soil','startTime','readAsArrayBuffer','hostname','board','mile','effectValue_default','warn','street','processDescription','his','predAudio','women','every','tall','animatedMoves','classList','set','card','useragent','station','showRoomTime','whipOutAudioCodec','remoteMuteElement','fair','said','screenShareState','setBitrate','draw','filter','sing','shoulder','a=extmap:3\x20urn:3gpp:video-orientation\x0d\x0a','resolution\x20scale:\x20','disableNACK','Bearer\x20','onicegatheringstatechange','viewslot','writeU8','hand','EOF1','reconnectSpeed','canvas','studioSoftware','nextQueue','isolateChannel','choose','pipWindow','localVoiceMeter','iceTimer','dropped\x20candidate\x20due\x20to\x20filter','nodirectoraudio','took','aspectRatio','WebRTC\x20Connection\x20Closed.\x20Clean\x20up.\x20657','buffer_vals','motion','remote-video-mute-state','maxBufferSize','session.setupScreenShareAddon','encoder','audioDevice','either','iceTransportPolicy','gathering','RPCS\x20for\x20MESHCAST\x20ISNT\x20MADE\x20YET??','head4','then','chunkedChannels','allowScreenVideo','life','scale\x20set!','bandwidth\x20set\x20e!\x20','video_muted_init','boat','showlabels','Adjusting\x20Gain;\x20only\x20track\x200\x20in\x20all\x20likely\x20hood,\x20unless\x20more\x20than\x20track\x200\x20support\x20is\x20added.','visibility','\x20query\x20is\x20not\x20defined;\x20skipping.','maintain-resolution','got','turns:www.turn.vdo.ninja:443','controlTimer','industry','ten','vdo.ninja','screenshareAutogain','noise','init_video','isConfigSupported','disableREMB','activatedStreamsQueue','story','teach','label_','VDO-Ninja','forceRetry','mainmenu','paragraph','yes','vb_url','closeRPC','nochunk','noMeshcast','targetBitrate','added\x20video\x20track','does\x20any\x20audio\x20exist?','disconnect','groupAudio','just','screenShareLabel','requestAudioHack','borderColor','thick','bandwidth\x20set\x20i!\x20','plugged','digest','playChannel','webrtc-is-blocked','audioLatency','video/webm','seedAttempts','success','baby','dance','slot','hat','hurry','request','screenshareAEC','particular','sendVideoChunk','addALabel','selected','wss://pipe.vdo.ninja:9001/','ontrack','Safari\x20','guestFeeds','character','hangup','remotePan','fun','controls','people','requestChangeLowcut','recording','anysend','observe','getVideoBitrates','bear','onnegotiationneeded\x20triggered;\x20creating\x20offer','byteLength','requesting\x20stream','onconnectionstatechange\x20pcs\x20ice\x20--\x20disconnected,\x20but\x20not\x20yet\x20closed?\x20','you-are-a-codirector','woman','infocus2','mono','ceil','createWritable','volumeControl','codirector\x20request\x20hash\x20failed','record','\x20---\x20we\x20will\x20ask\x20again','remoteMuted','room-is-claimed-codirector','configure','also','couldn\x27t\x20set\x20preferred\x20video\x20codec','grabFaceData','single','resumeClock','rtc.ninja','row','audienceToken','stream-id-detected','cold','slice','wear','youtubeKey','proper','obsState','dad','keyname','speakerMuted','onaudioprocess','floor','not\x20allowed\x20to\x20show\x20the\x20director','dead','shore','msg','savedBitrate','whipOutScale','say','realTimeVideo','tiny','totalSceneBitrate','Audio\x20isn\x27t\x20setup\x20yet.','#000','recordLocal','fr1','stereo','bigmutebutton','screenElement','SETUP\x20INCOMING','difficult','undo','max','readable','mine','getElementById','ccColored','motionRecord','deal','could','infocus','wss','listen','disableBackground','quart','Video\x20Bitrate\x20is\x20locked;\x20can\x27t\x20update','Remote\x20user\x20is\x20a\x20director','send\x20channel\x20closed','encryptMessage','.hidden2','soloVideo','eventPlayActive','outputLatency','room_init','planet','machine','PONGED','Disconnected','allowscreenaudio','offerSDP','optionalMicOnly','screenshareid','\x20x\x20','not\x20record\x20button\x20detected;\x20can\x27t\x20update\x20time\x20since\x20started\x20recording','muteState','star','noFEC','field','room-is-claimed','setupYourOwnPlease','compare','girl','bind','Restarting\x20since\x20closed','writeEBMLVarInt','earth','sharperScreen','directVideoMuted','disconnectedTimeout','website','went','WHY\x20ARE\x20YOU\x20GOD\x20DAMN\x20BEEPING','screenIndexes','well','allowdrawing','video_2_init_frameRate','PCMSource','end','quiet','option','head','waitImageTimeout','debug.vdo.ninja','hidesololinks','audioContentHint','pushEffectsData','videoMargin','ICE:\x20','showUnMuteState','streamid-already-published','closing\x2012','log','fresh','maxBitrate','doNotSeed','cent','drink','Requested_resolution','realtime','./media/bg_sample2.webp','paper','setRequestHeader','sharpness','decrypted','scaleSnap','screenShareElement','flipped','especially','codirectorRequested','listing','LOADING\x20UP\x20WAITING\x20WATCH\x20STREAM:\x20','other','screenSrc','tokenDirector','sticky','receiveChannel','open','dbx','https://temp.vdo.ninja/','master','playbackheader','quietOthers','de1','experiment','round','hidden2','near','forceNoAudioWhipIn','may','decode','buffer_baseLatency','needsPublishing','moment','\x20as\x20preferred\x20codec\x20by\x20viewer\x20via\x20API','able','SCREENS','string','watchTimeoutList','noiframe','area','led','FileSystemWritableFileStream','money','time_seconds','outboundAudioBitrate','viewheight','VP8','randomize','always','borderRadius','timestamp','totalRoomBitrate_default','Change\x20Label','return\x20','startsWith','queued','dear','\x20else\x20if\x20(encoder.state\x20==\x20\x27closed\x27','readyState','good','URL','nodirectorvideo','whipWait','buffer_outputLatency','solo-scene-connected','hideDirector','death','obsControls','rub','fill','Mute\x20video\x203306','remoteVideoMuted','channelOffset','allow','candidate','true','clear','setClock','group-set-updated','bandwidthMuted','closeTimeout\x20cancelled;\x203','pipe','sendHeader','broadcast','trackNumber','manualBandwidth','sending\x20message\x20via\x20server','Bitrate\x20request:\x20','options','wss://wss.vdo.ninja:443','Content-Type','vdav','seeding\x20!!','electric','between','showControls','There\x27s\x20a\x20new\x20incoming\x20connection.','sceneDisplay','gridlayout','videoEncoder','getChannelData','decimal','initial_group','init_audio','meant','bandwidth\x20set\x20d!\x20','bell','hangupbutton','retryScenes','subarray','abc123','onconnectionstatechange','correct','bandwidth','wind','obsSceneSync','remoteRaisedHandElement','virtualHangup','Websockets\x20timed\x20out;\x20','pfecAudio','directorList','\x20(ok)','optimize','fileWriter','RTCRtpSender','videoMuted','brightness','push','Someone\x20is\x20trying\x20to\x20transfer\x20a\x20guest','channels','Members\x20in\x20Room','will','screenStopped','clicked','retransmitChunkedStream','felt','wonder','divide','udp','promise_audio','config','third','slow','same','createOscillator','inch','recordConfig','overlay','double','prototype','getWriter','track','iceServers','rtc\x20state:\x20','Generate\x20Some\x20Crypto\x20keys\x20first','getUint32','codirector','createOffer','permaid','maxconnections','CLOSED','similar','straight','skill','talk','touch','past','createResourceChannel','midiHotkeys','turn:turn-eu2.obs.ninja:3478','obsninja','stood','limitTotalBitrate_defaultMax','measureUnsignedInt','resolve','wont','\x20attempts','showSettings','retryTimeout','doNotSeed!','lowMobileBitrate','realTime','stopClock','successfully\x20sent\x20message\x20vis\x20WebRTC\x20instead\x20of\x20WSS','gyro','twilio','AES-CBC','rpc\x20datachannel\x20closed','rejoining\x20room','codecGroupFlag','session.watchTimeoutList\x20no\x20longer\x20exists;\x20won\x27t\x20retry.','visit','oncanplay','steel','done','meshcastMenu','west','allowResources','molecule','agree','newMainDirectorSetup','ruleOfThirds','indicate','audioPromise','35cdKeEU','help','Max\x20bandwidth\x20NOT\x20being\x20capped:\x20','control','Remote\x20peer\x20disconnected.\x20Due\x20to\x20enhanced\x20security,\x20please\x20refresh\x20to\x20create\x20a\x20new\x20connection.','magnet','already\x20closed\x20PCS','post','collect','only-main-director','add-a-label','allowWebp','starting\x20some\x20preload\x20bitrate\x20','createAnswer','fat','mute','pastSlots','onTrack','GDRIVE_FOLDERNAME','layout-updated','connectPeer','detailsSent','forceNoVideoWhipIn','claim','jitter','left','music','determine','joy','download','feed','prompt-access-request','limitTotalBitrate','document','supported','UN-MUTED','optimizedBitrate','joinroom','broadcast=','split','answer','remote','bank','ctrl','ping','manualSink','directorMirror','rotated','coast','penalty','span','order','division','shout','frameWriter','sendframes','rail','couldn\x27t\x20send\x20a\x20request\x20to\x20specified\x20publishe\x20via\x20p2p:\x20','has','ride','chunked-mode\x20KEY\x20FRAME\x20REQUESTED\x20BY\x20A\x20VIEWER','figure','apiserver','needKeyFrame','tire','sister','webAudios','mid','setScale','remoteZoom','srcObject','until','createElement','removeChild','removeOrientationFlag','raw','channelCount','join','meat','dictionary','pose','nosettings','autorecordremote','nohistory','','coDirectorEnable','downloads','subtle','excite','bought','currentSlots','directorState','game','sendRequest','noon','frameReader.read().then(function','closeTimeout\x20cancelled;\x206\x27\x20retry\x20in\x203s?','scene','focusDistance','SET\x20SCALING\x20IS\x20FIRING,\x20which\x20is\x20GOOD\x20!!!!!!\x20','stop','status','seven','SDP\x20Sessions\x20Match.\x20I\x20assume\x20ADDING\x20TRACKS.\x20RPCS','already\x20connected\x201','silence','TRYING\x20TO\x20SYNC\x20WITH\x20SENDING:\x20','layout','text','request-failed','audiobitrate','have','iceConnectionState','cloud','ice','allowVideo','nocursor','might','enhance','api','requestChangeMicDelay','showall','fakeFeeds','processFrame','add','note','triangle','enough','iOS\x20devices\x20do\x20not\x20support\x20dynamic\x20bitrates\x20correctly;\x20skipping','last','closed','least','SHA-256','preferredVideoErrorCorrection','welcomeHTML','surface','flagship','transfer','method','steve','video_bitrate_kbps','addEventListener','maintain-framerate','plant','noScaling','autoplay','jump','\x20as\x20preferred\x20video\x20codec\x20by\x20viewer\x20via\x20API\x20(offer)','167464fSgUqm','nodownloads','sign','contentHint','updateurl','chunked_mode_video','stats','de2','targetBandwidth','dynamicScale','turn:turn-eu4.vdo.ninja:3478','create\x20offer\x20worked','fire','effectValue','brother','matter','Answer\x20SDP\x20does\x20not\x20have\x20a\x20matching\x20session\x20ID','pan','echoCancellation','cleanOutput','prefer-software','already\x20watching\x20stream','timecode','UUID\x20not\x20found;\x20can\x27t\x20close.','product','No\x20meshcast\x20server\x20found\x20that\x20worked','colony','obsControl','title','believe','streamSrcClone','match','include','createGain','BlobBuffer','chunkedBuffer','refreshMicrophone','-kbps','url','pick','canvasIntervalAction','overlayControls','someonejoined','charAt','strange','nofullwindowbutton','sudden','layouts','zoom','measureEBMLVarInt','shape','BYE','chunkRates','locked','vdoninja','plan','openscene','Stream\x20ID\x20is\x20already\x20in\x20use.','crypto','early','was','ICE\x20DISCONNECTED','ring','limitBitrate','can\x27t\x20change\x20bitrate;\x20no\x20video\x20senders\x20found','createJavaScriptNode','arrange','opacityMuted','chunkedTransferChannels','legacywebrtc','bufferSize','muted_activeSpeaker','lyraCodecModule','enhanceAudio','tokens-did-not-match','&code=','UUID\x20in\x20session.chunkedTransferChannels\x20already','whole','mykey','currentCameraConstraints','which','micIsolated','abs','data\x20channel\x20being\x20used\x20in\x20reverse;\x20this\x20shouldn\x27t\x20really\x20happen,\x20except\x20if\x20maybe\x20doing\x20a\x20file\x20transfer','location','chunkedRecorder','New\x20viewers:\x20','metal','supply','remote-screenshare-state','remoteMuteState','writeByte','those','ready','empty\x20ice..','packetLoss','above','leavetone','noWidget','sceneSync','ori','session.limitMaxBandwidth\x20running:\x20','fast','http://','playback_audio_samplerate','chunked-outbound','cbr','10356NycVIn','suppressLocalAudioPlayback','channelWidth','chat','Can\x27t\x20play\x20your\x20own\x20stream\x20ID','isView','stashed','gain','videosource','video_2_init_width','backup.vdo.ninja/','midiIn','recordings','yard','disableWebAudio','localMuteElement','enemy','requestChangeEQ','sharp','develop','welcomeMessage','slots','copyTo','the','enhance_audio','directorDisplayMuted','instrument','**\x20connected','wild','forward','none','best','chunkIframe','most','toFixed','heat','part','preferAudioCodec','/status','deep','audioInputChannels','video_encoder','winter','altUUID','audioMeterGuest','info','liquid','body','make','stream_configVideo','Not\x20director','pair','canvasCtx','select','real','obsstudio','pol1','cameraConstraints','responseText','score','IchBinSteveDerNinja','FORCING\x20A\x20KEY\x20FRAME:\x20','setOpusAttributes','EastSideRepresentZ','basic','main-director','promise','request\x20rate\x20limit:\x20','country','width_url','start','did','unit','stack','not\x20an\x20object\x20or\x20array','view_set','fine','pseudoguest','processIceBundle','obsStateSync','modifyDescLyra','seem','wss://api.vdo.ninja:443','updateOnSlotChange','PolandPirat','recorder','usw2','addTrack','application/sdp','wave','realUUID','frameRate','setRemoteDescription','videoMutedFlag','this\x20unverified\x20director\x20was\x20already\x20connected;\x20not\x20going\x20to\x20send\x20my\x20director\x20state\x20to\x20them','sheet','both','lin','maxvb_url','level','beauty','spot','their','baseLatency','maxMobileBitrate','PASSED','hit','filetransfer',')\x20failed\x20due\x20to\x20permissions\x20or\x20it\x20was\x20rejected\x20by\x20the\x20user','face','Handshake\x20has\x20a\x20vector?\x20But\x20we\x20don\x27t\x20have\x20a\x20password.\x20This\x20is\x20probably\x20going\x20to\x20fail...','PUBLISHER\x27s\x20RTC\x20Connection\x20seems\x20to\x20be\x20dead?\x20','ice\x20timer\x20no\x20longer\x20exists','dataframe\x20has\x20no\x20type','setLocalDescription','already\x20connected\x20to\x20websocket\x20server','scaleResolutionDownBy','min','read','consonant','audio\x20bandwidth\x20set\x20f!','CPU','calculateOptimalBufferSize','discard','preloadbitrate','micIsolatedAutoMute','Transfer\x20was\x20completed\x20successfully','opposite','step','still','turn:turn-cae1.vdo.ninja:3478','joining-room','sat','Does\x20Local\x20Stream\x20Source\x20EXIST?','connected','coDirector','disableOBS','retryWatchInterval','hair','vp09.00.10.08','Decryption\x20error:','plain','setValueAtTime','Lowered\x20hand','closing\x206','channel','getAudioSettings','An\x20RTC\x20error\x20occured','bird','lowcut','onreadystatechange','contentType','cleaning\x20up\x20lost\x20connection','webCodecAudio','ease','applyIsolatedChat','infocusForceMode','vDAv','gpGPU','writeEBMLVarIntWidth','house','vdo.ninja/','webm','oniceconnectionstatechange','detune','midiDevice','disablePLI','bitrate\x20timeout;\x20ios/firefox\x20specific:\x20','error','charCodeAt','optimizeBitrate','interest','max_bandwidth_capped_kbps','getOBSOptimization','stretch','querySelectorAll','buffer_delta','grew','black','group_alt','screenshareDenoise','Unknown','reject','question','egg','separate','valley','outputDevice','power','hss-connection','false','resources','salt','bandwidth\x20set\x20g!\x20','fillDataBuffer','href','camp','glad','checking','Transfer\x20was\x20cnacelled\x20by\x20remote\x20user;\x20parital\x20file\x20saved.','New\x20Label:\x20','You\x20might\x20already\x20be\x20connected\x20to\x20this\x20chunked\x20video\x20stream','common','New\x20ON\x20TRACK\x20event','BITRATE\x202:\x20','view-connection-info','activeSpeakerTimeout','stay','label','timedelta','batteryMeter','this-is-you','sendMsg','Error\x20in\x20debug\x20logging:','enc','exercise','chunkedtransfer\x20OPEN','iframetarget','\x27\x20target=\x27_blank\x27>','outboundSampleRate','pushLoudness','though','restricted','Utf8','safemode','walk','destination','audioCtx','way','automute','incoming\x20screen\x20share\x20started\x20loading','substance','generateStreamID','continent','audioMutedOverride','vp8','activelySpeaking','section','year','minptime','subtract','defaultForegroundImages','bright','stereo\x20inbound\x20enabled','https://turnservers.rtc.ninja/','setVideoBitrates','bone','video_2_init_height','father','relaywss','lowerhand','alreadyJoinedMembers','set-video-bitrate','showDirector','startClock','network_type','age','getStatsTimeout','replace','know','ICE\x20GATHER\x20START','Someone\x20Joined\x20the\x20Room','second','frameMeta','copying\x20key:\x20','rotate','widgetSrc','sensorData','knew','voiceMeterTemplate','processIce','TrackNumber\x20must\x20be\x20>\x200\x20and\x20<\x20127','sampleRate','Not\x20supported;\x20expected\x20\x27filetransfer\x27','approved:\x20','sourceActive','screen-share-state','perhaps','stopping\x20some\x20preload\x20bitrate\x20','roombitrate','addFrame','Encryption\x20is\x20required\x20for\x20non-default\x20passwords\x20setups.\x20No\x20encryption\x20found.\x0a\x0aNote:\x20If\x20you\x27d\x20like\x20to\x20allow\x20it\x20regardless,\x20add\x20&unsafe\x20to\x20your\x20URL\x20to\x20allow\x20connections\x20made\x20with\x20a\x20password\x20that\x20does\x20not\x20encryption.','processIce2','AV1','broadcast_mode','push-connection','century','720','hash\x20is\x20','speak','director-share','[data-action-type=\x22mirror-guest\x22]','266008VWTnWc','Audio_Loudness','sky','writer','picture','exposure','quality_room','processDescription2','directorVolumeState','configAudio','localNetworkOnly','No\x20reconnect\x20even\x20after\x203s;\x20closing','drop','boy','right','remoteDescription','Second\x20Thread\x20Waiting\x20for\x20TURN\x20LIST\x20to\x20load','object','cmd','encodings','requestPublisherUpdate','sendPeers','pcm','micSampleRate','audioOutputChannel','relay','closing\x2020','excludeaudio','Failed\x20attempt\x20to\x20connect\x20as\x20co-director','postMessage','directorDisplayMute','badStreamList','applySoloChat','requested-stream','introButton','crowd','showList','code','pcs\x20RTC\x20CLOSED','nacks_per_second','videoPromise','king','middle','defaultBackgroundImages','soon','revokeObjectURL','widgetURL','less','chart','pos','getVideoTracks','Created\x20transfer\x20channel','sound','remoteMuteState_','audioBitrate','requestUpload','corner','screenshare','safe','warnUserTriggered','self','stream_configAudio','fecAudio','json','upstreamChannel','onended','refreshScale','hot','container_','requestFile','chief','PINGED','reach','cover','mobile','no\x20pc[UUID]\x20found','came','school','Remote\x20request\x20failed\x20to\x20decode;\x20continuing\x20still.','hands_','remoteVideoMuteElement','son','zoomedBitrate','trade','whipOutCodec','signalMeter','getSenders','whipOutVideoBitrate','hill','requestRateLimit','und','hope','summer','fruit','decoder','orientation','VP9','fall','innerText','voiceMeter','turn:www.turn.vdo.ninja:3478','lockedAudioBitrate','position','enqueue','querySelector','autoGainControl','nopreview','stereo\x20enabled','proxy','createBuffer','happy','https://www.youtube.com/','allowVideos','allowDrawing','major','Media','chunkedVideoEnabled','continue','now','autorecordlocal','never','ICE\x20closed?','whose','mix','doctor','day','iframeSrcs','maxsamplerate','broke','localDescription','new\x20connection\x20is\x20contained\x20in\x20badStreamList!\x20This\x20might\x20be\x20the\x20director\x27s\x20video/audio\x20->\x20this\x20a\x20scene?','videoErrorCorrection','new','width','videoOptions','behind','requesting\x20via\x20relaywss','turn:turn-eu1.vdo.ninja:3478','modifyDescPCM','allowscreenvideo','previewToggleState','images','subject','quality_ss','audioEncoder','carry','defaultPassword','version','interval','initialDirectorSync','appear','scaleHeight','against','voiceIsolation','dont','dog','screenStream','grow','couldn\x27t\x20find\x20matching\x20pc\x20for\x20incoming\x20\x20mid','RE\x20TRANSMISSIONS\x20STARTED','you','sending\x20message\x20via\x20WSS\x20as\x20WebRTC\x20failed\x20to\x20send\x20message','SEND\x20BYE','streams','\x20(full)','migrate','fileList','brown','session.newMainDirectorSetup','generator','\x20---\x20we\x20will\x20not\x20ask\x20again;\x20we\x27re\x20already\x20connected','ended','auth','devicePixelRatio','law','Not\x20a\x20scene','tool','\x20/\x20','length','obs.ninja/','while','serve','noaudio','again','PROBLEM,\x20Senders\x20is\x20more\x20than\x200:\x20','bandwidth\x20set\x20a!\x20','whepWait','allowDirectorGraph','four','forceTcpMode','can\x27t\x20change\x20bitrate;\x20no\x20video\x20sender\x20found','seeding-started','ctrlKey','err','recordingInterval','pingTimeout','smell','writeUnsignedIntBE','six','equalizer','verb','opacity','addCoDirector','scaleWidth','east','sort','place','mirrorExclude','original','value\x20there','find','are','description','Chunked_video','man','video_session','muted','Max\x20bandwidth\x20being\x20capped:\x20','party','message','out','simple','platform','possible','GOT\x20ICES!!','token-room-is-claimed','student','whiteBalance','closeTimeout\x20cancelled;\x204','parse','buffer_realTime','range','viewwidth','contain','video_init_height','set-audio-bitrate','midiOffset','directorBox','what','soloChatUUID','chunksQueue','./media/bg_sample.webp','condition','screenshareType','pauseClock','flat','Audio\x20Bitrate\x20is\x20locked;\x20can\x27t\x20update','timeOffset','webCodec','setupScreenShareAddon','servers','wheel','remoteInterfaceAPI','Someone\x20Joined\x20the\x20Room\x20with\x20a\x20video','gun','cloneNode','vision-disabled',',\x20mc?:\x20','bundlePolicy','localhost','cry','requestVideoRecord','allowchunked','sdpSemantics','win','stereo_url','big','[data-action-type=\x27recorder-local\x27][data--u-u-i-d=\x27','videoElement','chunkedInQueue','afraid','alert','obs_control','TFJSModel','autorecord','maxviewers','nocaptionlabels','allowGraphs','keep','exclude','requestResolution','ACTION\x20REJECTED:\x20','The\x20request\x20(','transcript','caught','captain','getLocalStream','publish','broadcastChannelID','share','animal','resolution','broadcastTransfer','hole','opus','stone','allowMIDI','Caller:\x20','thousand','changeLabel','ariaPressed','some','loadend','unified-plan','password','Removed\x20','42001f','isDirector\x20','screen','closing\x208','Incoming\x20Ice\x20Offer\x20does\x20not\x20match\x20Session','&start=','stopping\x20old\x20track','iceCandidatesPromise','unmuted','details','queueList','through','adjustBitrate','result','close','encodeRemote','joinRoom','bye','iFramesAllowed','here','Can\x27t\x20change\x20the\x20location\x20once\x20started\x20streaming','requestAudioRateLimit','buffer_timestamp','directorUUID','intime','shine','allowNoGroup','sessionUri','neighbor','cae1','tell','Video\x20encdoder\x20closed','miniInfo','vdAv','addVsSentRate','layout_array','whepInputToken','muted_savedState','noisegateSettings','loudest','wide','changeCamera','permaMirrored','market','must','Failed\x20to\x20connect\x20to\x20service:\x20Error\x20503Possibly\x20too\x20many\x20connections\x20from\x20the\x20same\x20address\x20tried\x20to\x20connect.Visit\x20https://discord.vdo.ninja\x20for\x20support.','write','ontimeout','beepToNotify','much','rtc\x20data\x20channel\x20error:\x20','guest-connected','obsCommand','applyIsolatedVolume','could\x20not\x20be\x20sent;\x20queuing\x20it','cost','state','audioBuffer','your','seed','atom','application/json;\x20charset=utf-8','why','undefined','concat','sdp','speech','whepSettings','top','turnlist','directorVideoMuted','changeParams','GOT\x20ICE!!','directorSpeakerMute','time_second\x20missing','WebMWriter','oil','requestChangeGating','offset','three','ptime','operate','writeString','mass','directorBlue','children','hostedTransfers','meterStyle','directorViewBitrate','half','segment','not-the-director','spread','language','imagine','send\x20channel\x20open\x20pcs','noiseSuppression','form','%\x20battery\x20remaining','motionRecordTimeout','pass','forceRetryTimeout','clearDrawing','mind','wss://proxywss.rtc.ninja:443','added\x20audio\x20track','click','showClock','few','organ','FORCING\x20A\x20CHUNKED\x20KEY\x20FRAME:\x20','closeTimeout\x20cancelled;\x207','sceneType2','Couldn\x27t\x20parse\x20JSON;\x20will\x20attempt\x20as\x20ArrayBuffer\x20UINT8ARRAY','announceCoDirector','break','gold','box','scaleResolution','keys','whipout','requestChangeCompressor','cpuLimited','processFrameVideo','degree','vowel','gotGenericData','labelstyle','crop','onnegotiationneeded','requestScenes','ON\x20FOCUS\x20NOT\x20FOUND','widget-src','allowwhipout','dress','instant','screenshare_url','mediafileShare','playback_audio_volume_meter','maxBandwidth','directorMutedState','land','welcomeImage','human','mystery-message-recieved-2','seek','isArray','waiting\x20for\x20keyframe','screensharequality','differ','each','inputBuffer','loadoutID','scaleResolutionDownBy\x20set\x202b!','bufferedAmount','lead','batteryState','requestAs','circle','fake\x20ice\x20restart\x20faked','autoSyncObject','thin','bypass','available_outgoing_bitrate_kbps','letter','arraybuffer','videosource_','remove','Waiting\x20for\x20audio\x20header\x20before\x20sending\x20raw\x20audio\x20data','sit','night','allowScreen','occur','\x20:\x20','currentAudioConstraints','smile','showmeta','h264','virtualcam','allowBroadcast','class','late','listPromise','cat','noPLIs','mirrored','smallScreen','getSettings','publicKey','very','shoe','lowBitrateCutoff','seat','h264profile\x20being\x20modified','new-co-director','PUBLISHER\x27s\x20RTC\x20Connection\x20seems\x20to\x20be\x20dead?\x202','closePC','experimental','reason','outboundVideoBitrate','plugged_in','defaultOverlayMedia','radio','signData','versus.cam','No\x20video\x20element\x20yet?','toString','audioNode','Someone','currentTime','Unmute\x20video',',\x20isDirector:\x20','forEach','one','WEBRTC\x20CONNECTION\x20OPEN','new-view-connection','turns:www.turn.obs.ninja:443','setUint32','creating\x20answer','forceAspectRatio','found','replaceAll','showMuteState','midi','screenShareBitrate','pow','name','sendFile','stopWriter','nothing','delayNode','low','govern','iframeVideo','Chrome\x20for\x20iOS','invent','pay','number','remote-peer-connected','innerHTML','garden','midiIframe','remote-label-changed','connectionState','iframeDetails_','pcs','force','provideFileList','allowChunked','selfBrowserSurface','nature','minute','Bad\x20EBML\x20datatype\x20','whipServerURL','thought','chance','buffer_buffer','turn:turn-use1.vdo.ninja:3478','sceneList','ROOMID\x20ENABLED','container_director','directorBlindButton','mirrorGuestTarget','flower','waitImageTimeoutObject','blue','syncState','any','includeRTT','directorSettings','utf-8','usual','WHIP\x20OUT\x20SET\x20SCALING\x20IS\x20FIRING,\x20which\x20is\x20GOOD\x20!!!!!!','friend','statsInterval','whip','band','load','encodedInsertableStreams','audiobitratePRO','sail','samplingFrequency','Pinging','enhanceaudio','with','sendGenericData','onmessage','delta','initialPublish','discordHookSensitive','gentle','cow','deleteme','present','reportbutton','suit','tuning','fakeUser','playing','EBML\x20VINT\x20size\x20not\x20supported\x20','iframeEle','chair','dataOffset','hear','closeTimeout','EncodedVideoChunk','kind','time','value','audioEffects','requestscenes','postInterval','describe','what\x20is\x20this?','PCS:\x20ICE\x20Disconnected;\x20wait\x20for\x20retry?\x20pcs','bottom','anyrequest','power_level','mediamtx','obs','socialstream.ninja','for','miss','Bad\x20UINT\x20size\x20','Refreshing\x20scale','requestCoMigrate','active','GET','hasOwnProperty','RETRANSMIT\x20chunkedtransfer\x20OPEN','Found\x20target\x20for\x20scene\x20change','null','couldn\x27t\x20set\x20rate\x20limit','sense','InvalidOperationException','suggest','videoDevice','data','midiChannel','function','sitePassword','group','wife','startWriter','processPCSOnMessage','sendChannel','showTime','bad','obsfix','muteStateTemplate','deviceId','activeSpeaker','requestStats','Shared\x20website:\x20\x20failed;\x20will\x20try\x20ice\x20reconnect\x20or\x20such','own','codecs','wssid','defaultSpeaker','video_init_frameRate','call','obsSceneTriggers','border','2273031EcTWoF','together','audioContext','closing\x203','even','recording_audio_compressor_type','audience','block','rmid','gdrive','token','mutedStateScene','streamid-already-published-obvious','Encryption\x20is\x20required,\x20but\x20none\x20found.\x20Cancelling.','videos','bat','ISSUING\x20CALLBACK:\x20','office','2012175UuITvD','no\x20pcs[UUID]','began','remote-token-rejected','candidate\x20callback\x20finished\x20in\x20totalilty','[data-action-type=\x22order-value\x22][data--u-u-i-d=\x22','createMediaStreamDestination','\x20seconds','BYE\x20RPCS','use1','allowWidget','iframeSrc','\x20(good)','meshcast','popupChat','realTimeAudio','drive','noNacks','during','try','writeBytes','canvasSource','colorVideosBackground','front','focus','home','element','mount','snow','viewDirectorOnly','12CDFMKS','sendKeyFrameScenes','WebSocket\x20Error:','iceBundle','company','waitingWatchList','queue','direct','905540MhsIui','settings','requestStream','disabled','finger','song','deferring\x20with\x20a\x20promise','No\x20vector?\x20uh\x20oh\x20--\x20might\x20be\x20raspberry\x20ninja\x20or\x20some\x20other\x20simpler\x20implementation,\x20so\x20lets\x20move\x20on.\x20We\x27re\x20using\x20the\x20default\x20password,\x20so\x20we\x27re\x20going\x20to\x20allow\x20it','word','fear','joiningRoom','modern','clock','wssSetViaUrl','postURL','meta','connect','firefox','totalBitrate:\x20','whipOutAudioBitrate','already\x20connected\x202.\x20disconnecting..','next','timeout','preferCodec','hangupDirector','NOT\x20IN\x20VIEW\x20SET','table','Room\x20is\x20full','lot','shouldn\x27t\x20happen','clothe','enter','print','enhanceAudioEncoder','bar','selfVolume','whipOut','flow','disableHotKeys','this.connectionState:\x20','totalRoomBitrate','preLimitedBitrate','limitAudio','chunks','canvasWebGL','think','smid','Video\x20File','allowAudio','act','message\x20could\x20not\x20be\x20sent;\x20queuing\x20it','videoWriter','writable','micIsolate','?ts=','meshcastAudioBitrate','motionDetectionInterval','justResetting','red','#obsRemotePassword>input','leftMiniPreview','novideo','jointone','CONNECTEED!','equate','charging','allowDownloads','hssConnection','configVideo','whipoutSettings','hidedirector','keyframeRate','audioCtxOutbound','img','UUID\x20not\x20found;\x20cant\x27\x20close','morning','cpu','encodering\x20being\x20kicked','pipeTo','slave','audioTime','retrying\x20at\x20an\x20interval','failed','please','connected\x20to\x20video\x20server','processRPCSOnMessage','directorActions','setAudioBitrate','whipCallback','slotmode','queueType','first','laugh','bitrateTimeoutFirefox','change','get','numberOfChannels','maxptime','googleDriveRecord','yourDirectorStatus','Raised\x20hand','scaleFactor','av01.0.04M.08','successfully\x20sent\x20message\x20vis\x20WebRTC\x20instead\x20of\x20WSS\x20to\x20all\x20RTC\x20Peers','hidden','total','room=','like','whipCallback2','40yZsvML','term','weather','bread','syllable','11598xsjcXs','acc','allowmidi','appendChild','noisegate','couldn\x27t\x20set\x20preferred\x20audio\x20codec','requestSceneUpdate','light','audioOptions','splice','playsinline','fadein','piece','micDelay','receive','die','limitTotalBitrateGuests','retransmit','roomTimer','too','director-denied','nochunkaudio','getTimezoneOffset','theyBeSharksHere','example','no\x20upstreamChannel\x202','war','getTracks','obsRemotePassword','count','mirrorState','roll','isScene','OPTIMIZED\x20AUDIO\x20ENABLED;\x20zero\x20bitrate','switchMode','no\x20UUID\x20in\x20msg','targetAudioBitrate','selectedImage_contents','broad','AudioContext','target','does','and','filterOBSscenes','idea','dream','cut','webcamonly','userAgent','depend','chunkedStream','list','enhacing\x20audio\x20encoder','\x20---\x20PC\x20TIMED\x20OUT,\x20but\x20still\x20alive.\x20Killing\x20it.\x20via\x20disconnected\x20state','updateLocalStatsInterval','saw','remoteHash','preferred','lockWindowSize','mixMinus','engine','degrade','tainted','current','where','Chunked_audio','broadcastIFrame','TOO\x20MANY\x20PUBLISHING\x20PEERS','lay','whepHost','born','random','capital','getParameters','tube','book','https://meshcast.io/servers.json?ts=','busy','28PKSPMa','whep','Trying\x20to\x20set\x20','changeSpeaker','voice','port','parentNode','videoWorker','sell','steveseguin.github.io','sending\x20request\x20via\x20server','GOT\x20ICEs!!','bed','mirrorGuestState','recording_audio_gain','save\x20bandwidth:\x20','endViewConnection','line','cleanDirector','mediaDevices','verify'];_0x52ce=function(){return _0x3a35a7;};return _0x52ce();}var meshcastServer=![],meshcastServerList=![];const meshcastPingResults=new Map();function selectMeshcast(_0x4af192){var _0x45416b=_0x443a17;meshcastServer={};const _0x9e832b=_0x4af192[_0x45416b(0x25e)][_0x4af192['selectedIndex']];meshcastServer[_0x45416b(0x38c)]=_0x9e832b[_0x45416b(0x38c)],meshcastServer[_0x45416b(0x51a)]=_0x9e832b[_0x45416b(0x51a)]||null,meshcastServer['id']=_0x9e832b['id']||null;}async function pingMeshcast(_0x29334c,_0x237b2b){return new Promise(_0x575fad=>{var _0xb22edb=_0x374f;const _0xc8ade3=new XMLHttpRequest();_0xc8ade3['onload']=function(){var _0x313ffd=_0x374f;const _0x56a050=parseFloat(this[_0x313ffd(0x40b)]);if(_0x56a050>=0x0){meshcastPingResults['set'](_0x29334c['id']||_0x29334c[_0x313ffd(0x51a)],{'load':_0x56a050,'failed':![],'option':_0x29334c});if(_0x56a050>0x46)_0x29334c[_0x313ffd(0x716)]+=_0x313ffd(0x599);else{if(_0x56a050>0x28)_0x29334c[_0x313ffd(0x716)]+='\x20(fair)';else{if(_0x56a050>0xa)_0x29334c['innerHTML']+=_0x313ffd(0x27f);else _0x56a050>0x0?_0x29334c['innerHTML']+=_0x313ffd(0x9b5):handleMeshcastFailure(_0x29334c);}}_0x575fad(!![]);}else handleMeshcastFailure(_0x29334c),_0x575fad(![]);},_0xc8ade3['onerror']=()=>{handleMeshcastFailure(_0x29334c),_0x575fad(![]);},_0xc8ade3[_0xb22edb(0x9e5)]=0x7d0,_0xc8ade3[_0xb22edb(0x656)]=()=>{handleMeshcastFailure(_0x29334c,'timeout'),_0x575fad(![]);},_0xc8ade3['open'](_0xb22edb(0x76e),_0x237b2b,!![]),_0xc8ade3[_0xb22edb(0x8b0)]();});}function handleMeshcastFailure(_0x47f332,_0x359405='fail'){var _0x5821b8=_0x443a17;meshcastPingResults['set'](_0x47f332['id']||_0x47f332[_0x5821b8(0x51a)],{'load':Infinity,'failed':!![],'option':_0x47f332}),_0x47f332['disabled']=!![],_0x47f332['innerHTML']+='\x20('+_0x359405+')';}function sortMeshcastOptions(){var _0x25dcc0=_0x443a17;const _0x247da4=document[_0x25dcc0(0x1bb)]('edgelist'),_0x5abd23=Array['from'](_0x247da4[_0x25dcc0(0x25e)]);_0x5abd23[_0x25dcc0(0x5c2)]((_0x29d35c,_0x53deeb)=>{var _0x4efd5b=_0x25dcc0;const _0x2cce4a=meshcastPingResults[_0x4efd5b(0xa2e)](_0x29d35c['id']||_0x29d35c[_0x4efd5b(0x51a)])||{'load':Infinity,'failed':!![]},_0x569cdf=meshcastPingResults['get'](_0x53deeb['id']||_0x53deeb[_0x4efd5b(0x51a)])||{'load':Infinity,'failed':!![]};if(_0x2cce4a['failed']&&!_0x569cdf['failed'])return 0x1;if(!_0x2cce4a[_0x4efd5b(0xa21)]&&_0x569cdf[_0x4efd5b(0xa21)])return-0x1;const _0x1b1a58=meshcastServerList[_0x4efd5b(0x5c7)](_0x3b850f=>(_0x3b850f['id']||_0x3b850f[_0x4efd5b(0x51a)])===(_0x29d35c['id']||_0x29d35c['code'])),_0x4407ec=meshcastServerList[_0x4efd5b(0x5c7)](_0x27f685=>(_0x27f685['id']||_0x27f685[_0x4efd5b(0x51a)])===(_0x53deeb['id']||_0x53deeb[_0x4efd5b(0x51a)])),_0x23ee45=_0x2cce4a[_0x4efd5b(0x73c)]+(_0x1b1a58[_0x4efd5b(0x746)]||0x0)/0x28,_0x4c907d=_0x569cdf[_0x4efd5b(0x73c)]+(_0x4407ec['delta']||0x0)/0x28;return _0x29d35c['dataset'][_0x4efd5b(0x40c)]=_0x23ee45,_0x53deeb[_0x4efd5b(0x970)][_0x4efd5b(0x40c)]=_0x4c907d,_0x29d35c['dataset']['load']=_0x2cce4a[_0x4efd5b(0x73c)],_0x53deeb['dataset'][_0x4efd5b(0x73c)]=_0x569cdf['load'],_0x29d35c[_0x4efd5b(0x970)][_0x4efd5b(0x746)]=(_0x1b1a58['delta']||0x0)/0x28,_0x53deeb[_0x4efd5b(0x970)][_0x4efd5b(0x746)]=(_0x4407ec[_0x4efd5b(0x746)]||0x0)/0x28,_0x23ee45-_0x4c907d;}),_0x5abd23['forEach'](_0x1a40bf=>_0x247da4[_0x25dcc0(0xa44)](_0x1a40bf));}function selectBestMeshcastServer(){var _0xe512b0=_0x443a17;const _0x162a63=document[_0xe512b0(0x1bb)](_0xe512b0(0x7dd));let _0x531f79=Array['from'](_0x162a63[_0xe512b0(0x25e)])[_0xe512b0(0x5c7)](_0x562210=>_0x562210[_0xe512b0(0xa7a)]&&!_0x562210[_0xe512b0(0x9d2)]);!_0x531f79&&(_0x531f79=Array[_0xe512b0(0x922)](_0x162a63[_0xe512b0(0x25e)])['find'](_0x4ec67d=>!_0x4ec67d[_0xe512b0(0x9d2)])),_0x531f79?(_0x531f79[_0xe512b0(0x16e)]=!![],selectMeshcast(_0x162a63)):console[_0xe512b0(0x479)](_0xe512b0(0x7aa));}async function queryMeshcastServers(_0x25acaf=![]){var _0x2497cd=_0x443a17;try{const _0x2b9254=new Date(),_0x1d6edb=urlParams[_0x2497cd(0x30c)]('tz')?parseInt(urlParams['get']('tz')):_0x2b9254[_0x2497cd(0xa57)](),_0x504a95=await fetch(_0x2497cd(0xa8d)+Date[_0x2497cd(0x56b)]()),_0x64dc5e=await _0x504a95[_0x2497cd(0x534)]();meshcastServerList=_0x64dc5e,meshcastServerList=meshcastServerList[_0x2497cd(0x8ef)](_0x4b1870=>{var _0x37dd73=_0x2497cd;let _0x1207e3=Math['abs'](_0x4b1870['tz']-_0x1d6edb);return Math[_0x37dd73(0x3b8)](_0x1207e3-0x3c*0x18)<_0x1207e3&&(_0x1207e3=Math[_0x37dd73(0x3b8)](_0x1207e3-0x3c*0x18)),_0x4b1870[_0x37dd73(0x746)]=_0x1207e3+(_0x4b1870[_0x37dd73(0x303)]||0x0),(_0x4b1870[_0x37dd73(0x51a)]&&session[_0x37dd73(0xae2)]&&session[_0x37dd73(0xae2)]!==_0x4b1870[_0x37dd73(0x51a)]||_0x4b1870['code']&&!session['meshcastCode']&&session['meshcast']!==_0x4b1870[_0x37dd73(0x51a)]||_0x4b1870['id']&&session[_0x37dd73(0xae2)]&&session['meshcastCode']!==_0x4b1870['id']||_0x4b1870['id']&&!session[_0x37dd73(0xae2)]&&session[_0x37dd73(0x9b6)]!==_0x4b1870['id'])&&(_0x4b1870[_0x37dd73(0x746)]+=0xa1220),_0x4b1870['preferred']=!!(session[_0x37dd73(0xae2)]&&(_0x4b1870['id']===session[_0x37dd73(0xae2)]||session[_0x37dd73(0xae2)]===_0x4b1870[_0x37dd73(0x51a)])),_0x4b1870;})['sort']((_0x5e1bdc,_0x3da37f)=>_0x5e1bdc[_0x2497cd(0x746)]-_0x3da37f['delta']);const _0x51f77d=meshcastServerList['map'](_0x5b1968=>{var _0x1b3ae6=_0x2497cd;const _0x492584=document['createElement'](_0x1b3ae6(0x1f1));if(_0x5b1968['code'])_0x492584[_0x1b3ae6(0x51a)]=_0x5b1968[_0x1b3ae6(0x51a)];if(_0x5b1968['id'])_0x492584['id']=_0x5b1968['id'];return _0x492584['url']=_0x5b1968[_0x1b3ae6(0x38c)],_0x492584[_0x1b3ae6(0x716)]=_0x5b1968[_0x1b3ae6(0x4a1)],_0x492584[_0x1b3ae6(0xa7a)]=_0x5b1968[_0x1b3ae6(0xa7a)],document['getElementById'](_0x1b3ae6(0x7dd))[_0x1b3ae6(0xa44)](_0x492584),_0x492584;}),_0x1c48ba=meshcastServerList[_0x2497cd(0x8ef)]((_0x3e1fa7,_0x35299a)=>pingMeshcast(_0x51f77d[_0x35299a],_0x3e1fa7['url']+_0x2497cd(0x3f7)));await Promise[_0x2497cd(0xade)](_0x1c48ba),sortMeshcastOptions(),selectBestMeshcastServer(),_0x25acaf&&_0x25acaf(),session[_0x2497cd(0x91b)]&&!session[_0x2497cd(0x379)]&&!session[_0x2497cd(0xaa1)]&&document[_0x2497cd(0x1bb)](_0x2497cd(0x2c9))['classList'][_0x2497cd(0x6ce)]('hidden');}catch(_0x426180){console[_0x2497cd(0x479)](_0x2497cd(0x859),_0x426180);}}async function meshcast(_0x2ada82=![]){var _0x3a51e2=_0x443a17;if(!session[_0x3a51e2(0x9b6)])return;if(_0x2ada82){await queryMeshcastServers();return;}if(session['whipoutSettings']!==![])return;if(!session[_0x3a51e2(0x91c)]&&!session[_0x3a51e2(0x601)][_0x3a51e2(0x318)])return;session[_0x3a51e2(0xa14)]=null;const _0x1a8ab6=[],_0x2eca08=session['generateStreamID'](0xe);async function _0x1cad97(){var _0x590f48=_0x3a51e2;document[_0x590f48(0x1bb)](_0x590f48(0x7dd))[_0x590f48(0x9d2)]=!![],document[_0x590f48(0x1bb)](_0x590f48(0x7dd))[_0x590f48(0x382)]=_0x590f48(0x63b);!meshcastServer&&meshcastServerList&&meshcastServerList[_0x590f48(0x5a7)]&&(meshcastServer=meshcastServerList['shift']());if(!meshcastServer){handleMeshcastError();return;}meshcastServer['id']&&(session[_0x590f48(0x79b)]=meshcastServer[_0x590f48(0x38c)]+'/'+_0x2eca08+'/whip',session[_0x590f48(0xa14)]={'type':'whep','url':meshcastServer[_0x590f48(0x38c)]+'/'+_0x2eca08+'/whep','started':![]},whipOut());}!meshcastServerList?await queryMeshcastServers(_0x1cad97):await _0x1cad97();}function handleMeshcastError(){var _0x1533c2=_0x443a17;errorlog(_0x1533c2(0x37f));if(!session['cleanOutput']){const _0x4d690f=window[_0x1533c2(0x3ba)]['href'];_0x4d690f[_0x1533c2(0x8a3)]('?')?warnUser(_0x1533c2(0x94e)+(_0x1533c2(0x878)+_0x4d690f+'&meshcastfailed\x27>Click\x20here\x20to\x20reload\x20without\x20Meshcast\x20enabled'),![],![]):warnUser('Failed\x20to\x20connect\x20to\x20Meshcast.\x0a\x0aCheck\x20your\x20connection\x20or\x20switch\x20to\x20peer-to-peer\x20mode\x20instead.');}}async function whepWatch(_0x200cbc,_0x371679){var _0x1d2157=_0x443a17;if(session['noMeshcast'])return;console[_0x1d2157(0x1fd)](_0x371679);if(_0x371679[_0x1d2157(0x7a5)]==_0x1d2157(0x9b6))meshcastWatch(_0x200cbc,_0x371679);else _0x371679['type']=='whep'&&(_0x371679&&_0x371679[_0x1d2157(0x38c)]&&(_0x371679[_0x1d2157(0x9a1)]?whepIn(_0x371679[_0x1d2157(0x38c)],_0x371679[_0x1d2157(0x9a1)],_0x200cbc):whepIn(_0x371679[_0x1d2157(0x38c)],![],_0x200cbc)));}async function meshcastWatch(_0x3ba63f,_0x121b46){var _0x3614cc=_0x443a17;console[_0x3614cc(0x1fd)]('meshcastWatch\x20called\x20-\x20this\x20meshcast\x20version\x20is\x20deprecated\x20in\x20favour\x20of\x20WHEP.');!(_0x3ba63f in session['rpcs'])&&(session['rpcs'][_0x3ba63f]={},session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x36c)]={},session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x60a)]=![],session[_0x3614cc(0x7cc)][_0x3ba63f]['allowDrawing']=![],session['rpcs'][_0x3ba63f][_0x3614cc(0x81a)]={},session['rpcs'][_0x3ba63f]['channelOffset']=![],session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x3d3)]=![],session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x9d0)]=![],session['rpcs'][_0x3ba63f][_0x3614cc(0x4bd)]=![],session[_0x3614cc(0x7cc)][_0x3ba63f]['defaultSpeaker']=![],session[_0x3614cc(0x7cc)][_0x3ba63f]['mirrorState']=null,session[_0x3614cc(0x7cc)][_0x3ba63f]['motionDetectionInterval']=![],session[_0x3614cc(0x7cc)][_0x3ba63f]['lockedVideoBitrate']=![],session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x55a)]=![],session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0xad0)]=![],session['rpcs'][_0x3ba63f][_0x3614cc(0x25b)]=![],session[_0x3614cc(0x7cc)][_0x3ba63f]['getStatsTimeout']=null,session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x6e1)]=![],session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x41e)]=![],errorlog(_0x3614cc(0xb37)));var _0x720540=!![],_0x320fc5=!![];if(session[_0x3614cc(0xa0c)]!==![]&&!session['novideo'][_0x3614cc(0x8a3)](session[_0x3614cc(0x7cc)][_0x3ba63f]['streamID']))_0x720540=![];else session[_0x3614cc(0x7cc)][_0x3ba63f]['settings']&&!session['rpcs'][_0x3ba63f][_0x3614cc(0x9d0)]['video']&&(_0x720540=![]);if(session[_0x3614cc(0x5ab)]!==![]&&!session[_0x3614cc(0x5ab)][_0x3614cc(0x8a3)](session['rpcs'][_0x3ba63f]['streamID']))_0x320fc5=![];else{if(session[_0x3614cc(0x510)]&&session[_0x3614cc(0x510)][_0x3614cc(0x8a3)](session['rpcs'][_0x3ba63f][_0x3614cc(0x791)]))_0x320fc5=![];else session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x9d0)]&&!session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0x9d0)][_0x3614cc(0x95b)]&&(_0x320fc5=![]);}if(!_0x320fc5&&!_0x720540){errorlog('We\x20will\x20not\x20request\x20the\x20meshcast\x20as\x20no\x20audio\x20or\x20video\x20is\x20requested');return;}disableQualityDirector(_0x3ba63f);!session[_0x3614cc(0x85f)]&&await chooseBestTURN();var _0x3fde30={...session[_0x3614cc(0x85f)]};_0x3fde30[_0x3614cc(0x5f7)]&&delete _0x3fde30[_0x3614cc(0x5f7)];_0x3fde30[_0x3614cc(0x73d)]&&delete _0x3fde30[_0x3614cc(0x73d)];session['encodedInsertableStreams']&&console[_0x3614cc(0x479)]('Notice:\x20Meshcast\x20does\x20not\x20support\x20Insertable\x20Streams\x20(or\x20E2EE)\x20at\x20the\x20moment');try{session[_0x3614cc(0x7cc)][_0x3ba63f]['whep']=new RTCPeerConnection(_0x3fde30);}catch(_0x524281){!session[_0x3614cc(0x379)]&&warnUser('An\x20RTC\x20error\x20occured');}session[_0x3614cc(0x7cc)][_0x3ba63f][_0x3614cc(0xa90)][_0x3614cc(0x170)]=function(_0x2a491f){var _0x59b2b8=_0x3614cc;session['onTrack'](_0x2a491f,_0x3ba63f);let _0x2b329c=null;if(_0x2a491f['streams']&&_0x2a491f[_0x59b2b8(0x598)][0x0])try{let _0x4c2461=_0x2a491f['streams'][0x0];_0x2b329c=_0x4c2461['getVideoTracks']()[0x0];}catch(_0x4984f6){}else _0x2a491f[_0x59b2b8(0x29d)]&&_0x2a491f[_0x59b2b8(0x29d)][_0x59b2b8(0x759)]&&_0x2a491f[_0x59b2b8(0x29d)][_0x59b2b8(0x759)]=='video'&&(_0x2b329c=_0x2a491f[_0x59b2b8(0x29d)]);_0x2b329c&&(log(_0x2b329c),setTimeout(function(_0x47ac4f,_0x412d13){var _0x59f018=_0x59b2b8;if(session[_0x59f018(0x7cc)][_0x412d13]&&_0x47ac4f&&_0x47ac4f['id']){if(session['rpcs'][_0x412d13][_0x59f018(0x36c)]&&session[_0x59f018(0x7cc)][_0x412d13][_0x59f018(0x36c)][_0x47ac4f['id']]&&_0x59f018(0x7d0)in session['rpcs'][_0x412d13][_0x59f018(0x36c)][_0x47ac4f['id']]){}}},0x17d4,_0x2b329c,_0x3ba63f));};var _0x12d80c=session[_0x3614cc(0x4b9)](0xe),_0x2b08a4={};_0x2b08a4['streamID']=_0x121b46[_0x3614cc(0x9a1)],_0x2b08a4['UUID']=_0x12d80c;function _0x58557f(_0x2c8374){var _0x3dc9f5=_0x3614cc,_0x24f100=new XMLHttpRequest();_0x24f100[_0x3dc9f5(0x467)]=function(){var _0x5259b1=_0x3dc9f5;if(this['readyState']==0x4&&(this[_0x5259b1(0x337)]==0xc8||this[_0x5259b1(0x337)]==0xc9)){var _0x298dd6=this[_0x5259b1(0x81c)]('content-type');if(_0x298dd6==_0x5259b1(0x429)){var _0x5418c0={};_0x5418c0[_0x5259b1(0x668)]=this[_0x5259b1(0x40b)],_0x5418c0[_0x5259b1(0x7a5)]=_0x5259b1(0x907),session['localNetworkOnly']&&(_0x5418c0['sdp']=filterSDPLAN(_0x5418c0['sdp'])),session[_0x5259b1(0x89e)]&&(_0x5418c0[_0x5259b1(0x668)]=filterStunOnly(_0x5418c0['sdp'])),session[_0x5259b1(0x7cc)][_0x3ba63f]['whep'][_0x5259b1(0x42d)](_0x5418c0)[_0x5259b1(0xb39)](function(){_0x3153a3();})[_0x5259b1(0x872)](function(_0x456469){log(_0x456469);});}}else log(this);},_0x24f100['open']('POST',_0x121b46[_0x3dc9f5(0x38c)],!![]),_0x24f100['setRequestHeader'](_0x3dc9f5(0x260),_0x3dc9f5(0x664)),_0x24f100[_0x3dc9f5(0x207)]('Authorization',_0x3dc9f5(0xb19)+_0x12d80c),_0x24f100[_0x3dc9f5(0x8b0)](JSON[_0x3dc9f5(0xaab)](_0x2c8374));}function _0x3153a3(){var _0x588f5a=_0x3614cc;session[_0x588f5a(0x7cc)][_0x3ba63f][_0x588f5a(0xa90)][_0x588f5a(0x2df)]()[_0x588f5a(0xb39)](function(_0x137c22){var _0x185044=_0x588f5a;return _0x137c22[_0x185044(0x668)]=CodecsHandler[_0x185044(0x40f)](_0x137c22[_0x185044(0x668)],{'stereo':0x1}),session[_0x185044(0x7cc)][_0x3ba63f][_0x185044(0xa90)]['setLocalDescription'](_0x137c22);})['then'](function(){var _0xc2cf94=_0x588f5a,_0x7384db={};_0x7384db[_0xc2cf94(0x7b3)]=_0x12d80c,_0x7384db[_0xc2cf94(0x2fa)]=session[_0xc2cf94(0x7cc)][_0x3ba63f][_0xc2cf94(0xa90)][_0xc2cf94(0x576)][_0xc2cf94(0x668)],_0x58557f(_0x7384db);})[_0x588f5a(0x872)](function(_0x5cce88){});}_0x58557f(_0x2b08a4);}(function(){'use strict';var _0x58826c=_0x443a17;let _0x59a54f=function(_0x396a5b){var _0x28c155=_0x374f;this[_0x28c155(0x778)]=new Uint8Array(_0x396a5b),this[_0x28c155(0x526)]=0x0;};_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x6b8)]=function(_0x14718b){this['pos']=_0x14718b;},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x9bd)]=function(_0x40775e){var _0x308f67=_0x58826c;for(let _0x3c4421=0x0;_0x3c4421<_0x40775e[_0x308f67(0x5a7)];_0x3c4421++){this[_0x308f67(0x778)][this['pos']++]=_0x40775e[_0x3c4421];}},_0x59a54f['prototype']['writeByte']=function(_0x427e89){var _0x4b02d4=_0x58826c;this[_0x4b02d4(0x778)][this['pos']++]=_0x427e89;},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0xb1c)]=_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x3c1)],_0x59a54f['prototype']['writeU16BE']=function(_0x16bb75){var _0x3035eb=_0x58826c;this[_0x3035eb(0x778)][this[_0x3035eb(0x526)]++]=_0x16bb75>>0x8,this[_0x3035eb(0x778)][this[_0x3035eb(0x526)]++]=_0x16bb75;},_0x59a54f['prototype'][_0x58826c(0x8e8)]=function(_0x4924dc){var _0x18bc8e=_0x58826c;let _0x3c1526=new Uint8Array(new Float64Array([_0x4924dc])[_0x18bc8e(0xad0)]);for(let _0xa83620=_0x3c1526['length']-0x1;_0xa83620>=0x0;_0xa83620--){this[_0x18bc8e(0x3c1)](_0x3c1526[_0xa83620]);}},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x887)]=function(_0x671b0a){var _0x1447bb=_0x58826c;let _0x210b27=new Uint8Array(new Float32Array([_0x671b0a])['buffer']);for(let _0x283006=_0x210b27['length']-0x1;_0x283006>=0x0;_0x283006--){this[_0x1447bb(0x3c1)](_0x210b27[_0x283006]);}},_0x59a54f['prototype'][_0x58826c(0x679)]=function(_0x2a05e0){var _0x44174f=_0x58826c;for(let _0x183fc9=0x0;_0x183fc9<_0x2a05e0['length'];_0x183fc9++){this['data'][this['pos']++]=_0x2a05e0[_0x44174f(0x47a)](_0x183fc9);}},_0x59a54f[_0x58826c(0x29b)]['writeEBMLVarIntWidth']=function(_0x591bab,_0x10b985){var _0x4ceaf2=_0x58826c;switch(_0x10b985){case 0x1:this['writeU8'](0x1<<0x7|_0x591bab);break;case 0x2:this['writeU8'](0x1<<0x6|_0x591bab>>0x8),this[_0x4ceaf2(0xb1c)](_0x591bab);break;case 0x3:this['writeU8'](0x1<<0x5|_0x591bab>>0x10),this[_0x4ceaf2(0xb1c)](_0x591bab>>0x8),this[_0x4ceaf2(0xb1c)](_0x591bab);break;case 0x4:this['writeU8'](0x1<<0x4|_0x591bab>>0x18),this['writeU8'](_0x591bab>>0x10),this[_0x4ceaf2(0xb1c)](_0x591bab>>0x8),this[_0x4ceaf2(0xb1c)](_0x591bab);break;case 0x5:this[_0x4ceaf2(0xb1c)](0x1<<0x3|_0x591bab/0x100000000&0x7),this[_0x4ceaf2(0xb1c)](_0x591bab>>0x18),this[_0x4ceaf2(0xb1c)](_0x591bab>>0x10),this[_0x4ceaf2(0xb1c)](_0x591bab>>0x8),this[_0x4ceaf2(0xb1c)](_0x591bab);break;default:throw new Error('Bad\x20EBML\x20VINT\x20size\x20'+_0x10b985);}},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x397)]=function(_0x9e4245){var _0x574d87=_0x58826c;if(_0x9e4245<(0x1<<0x7)-0x1)return 0x1;else{if(_0x9e4245<(0x1<<0xe)-0x1)return 0x2;else{if(_0x9e4245<(0x1<<0x15)-0x1)return 0x3;else{if(_0x9e4245<(0x1<<0x1c)-0x1)return 0x4;else{if(_0x9e4245<0x7ffffffff)return 0x5;else throw new Error(_0x574d87(0x752)+_0x9e4245);}}}}},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x1e2)]=function(_0x1818dd){var _0x2dea19=_0x58826c;this[_0x2dea19(0x470)](_0x1818dd,this['measureEBMLVarInt'](_0x1818dd));},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x5ba)]=function(_0x4b3f09,_0x9b751f){var _0x32de49=_0x58826c;_0x9b751f===undefined&&(_0x9b751f=this['measureUnsignedInt'](_0x4b3f09));switch(_0x9b751f){case 0x5:this[_0x32de49(0xb1c)](Math[_0x32de49(0x1a3)](_0x4b3f09/0x100000000));case 0x4:this[_0x32de49(0xb1c)](_0x4b3f09>>0x18);case 0x3:this['writeU8'](_0x4b3f09>>0x10);case 0x2:this[_0x32de49(0xb1c)](_0x4b3f09>>0x8);case 0x1:this[_0x32de49(0xb1c)](_0x4b3f09);break;default:throw new Error(_0x32de49(0x76a)+_0x9b751f);}},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x2b3)]=function(_0x3b2d75){if(_0x3b2d75<0x1<<0x8)return 0x1;else{if(_0x3b2d75<0x1<<0x10)return 0x2;else{if(_0x3b2d75<0x1<<0x18)return 0x3;else return _0x3b2d75<0x100000000?0x4:0x5;}}},_0x59a54f[_0x58826c(0x29b)][_0x58826c(0x8c9)]=function(){var _0x4a1fb5=_0x58826c;if(this[_0x4a1fb5(0x526)]this[_0x74ddda(0x5a7)])throw new Error(_0x74ddda(0x936));this[_0x74ddda(0x526)]=_0x4a9e22;},this['write']=function(_0x2bae32){var _0x2236ad=_0x287935;let _0x5ca435={'offset':this['pos'],'data':_0x2bae32,'length':_0x44343f(_0x2bae32)},_0x56554a=_0x5ca435[_0x2236ad(0x675)]>=this[_0x2236ad(0x5a7)];this[_0x2236ad(0x526)]+=_0x5ca435[_0x2236ad(0x5a7)],this[_0x2236ad(0x5a7)]=Math['max'](this[_0x2236ad(0x5a7)],this[_0x2236ad(0x526)]),_0x4691a7=_0x4691a7['then'](async function(){var _0x3cce6c=_0x2236ad;if(_0x355d13)return new Promise(function(_0xb45ef3,_0xf4a067){var _0xf1b4b2=_0x374f;_0x52ae40(_0x5ca435[_0xf1b4b2(0x778)])[_0xf1b4b2(0xb39)](function(_0x1054a8){var _0x3c460a=_0xf1b4b2;let _0x516f25=0x0,_0x3b479d=Buffer[_0x3c460a(0x922)](_0x1054a8[_0x3c460a(0xad0)]),_0x4c021a=function(_0x10c936,_0x4e2e12,_0x2acef6){var _0x2372b=_0x3c460a;_0x516f25+=_0x4e2e12,_0x516f25>=_0x2acef6[_0x2372b(0x5a7)]?_0xb45ef3():_0x444bc9['write'](_0x355d13,_0x2acef6,_0x516f25,_0x2acef6[_0x2372b(0x5a7)]-_0x516f25,_0x5ca435['offset']+_0x516f25,_0x4c021a);};_0x444bc9[_0x3c460a(0x655)](_0x355d13,_0x3b479d,0x0,_0x3b479d[_0x3c460a(0x5a7)],_0x5ca435['offset'],_0x4c021a);});});else{if(_0x1deb70)return new Promise(function(_0x522946,_0x37a00c){var _0x50a0ae=_0x374f;_0x1deb70[_0x50a0ae(0x6b8)](_0x5ca435[_0x50a0ae(0x675)])[_0x50a0ae(0xb39)](()=>{var _0x394cd7=_0x50a0ae;_0x1deb70[_0x394cd7(0x655)](new Blob([_0x5ca435[_0x394cd7(0x778)]]));})[_0x50a0ae(0xb39)](()=>{_0x522946();});});else{if(!_0x56554a)for(let _0x34381e=0x0;_0x34381e<_0x411197[_0x3cce6c(0x5a7)];_0x34381e++){let _0x4cf270=_0x411197[_0x34381e];if(!(_0x5ca435[_0x3cce6c(0x675)]+_0x5ca435[_0x3cce6c(0x5a7)]<=_0x4cf270[_0x3cce6c(0x675)]||_0x5ca435[_0x3cce6c(0x675)]>=_0x4cf270['offset']+_0x4cf270['length'])){if(_0x5ca435['offset']<_0x4cf270[_0x3cce6c(0x675)]||_0x5ca435['offset']+_0x5ca435['length']>_0x4cf270[_0x3cce6c(0x675)]+_0x4cf270[_0x3cce6c(0x5a7)])throw new Error('Overwrite\x20crosses\x20blob\x20boundaries');if(_0x5ca435['offset']==_0x4cf270[_0x3cce6c(0x675)]&&_0x5ca435[_0x3cce6c(0x5a7)]==_0x4cf270[_0x3cce6c(0x5a7)]){_0x4cf270[_0x3cce6c(0x778)]=_0x5ca435[_0x3cce6c(0x778)];return;}else return _0x52ae40(_0x4cf270['data'])[_0x3cce6c(0xb39)](function(_0x5e3bce){var _0x3bb44d=_0x3cce6c;return _0x4cf270['data']=_0x5e3bce,_0x52ae40(_0x5ca435[_0x3bb44d(0x778)]);})[_0x3cce6c(0xb39)](function(_0x420624){var _0x469c5e=_0x3cce6c;_0x5ca435['data']=_0x420624,_0x4cf270[_0x469c5e(0x778)][_0x469c5e(0xb07)](_0x5ca435['data'],_0x5ca435[_0x469c5e(0x675)]-_0x4cf270[_0x469c5e(0x675)]);});}}}}_0x411197[_0x3cce6c(0x285)](_0x5ca435);});},this[_0x287935(0x96b)]=function(_0x24d688){var _0x245b58=_0x287935;return _0x355d13||_0x1deb70?_0x4691a7=_0x4691a7['then'](function(){return null;}):_0x4691a7=_0x4691a7[_0x245b58(0xb39)](function(){var _0x4a8723=_0x245b58;let _0x5d0a48=[];for(let _0x3887be=0x0;_0x3887be<_0x411197[_0x4a8723(0x5a7)];_0x3887be++){_0x5d0a48[_0x4a8723(0x285)](_0x411197[_0x3887be][_0x4a8723(0x778)]);}return new Blob(_0x5d0a48,{'type':_0x24d688});}),_0x4691a7;};};};window['BlobBuffer']=_0x5a8926(null);}()),(function(){'use strict';var _0x463005=_0x443a17;function _0x510c95(_0x4ecede){var _0x8bb9c1=_0x374f;this[_0x8bb9c1(0x75b)]=_0x4ecede;}function _0x43dd0f(_0x1665b3,_0x1c25f0){var _0x21b6eb=_0x374f;let _0x53d05f={};return[_0x1665b3,_0x1c25f0][_0x21b6eb(0x6fb)](function(_0x2f940d){var _0x1d5e98=_0x21b6eb;for(let _0x3a5bd4 in _0x2f940d){Object[_0x1d5e98(0x29b)]['hasOwnProperty'][_0x1d5e98(0x994)](_0x2f940d,_0x3a5bd4)&&(_0x53d05f[_0x3a5bd4]=_0x2f940d[_0x3a5bd4]);}}),_0x53d05f;}function _0x2f145b(_0x4d1765,_0x4604ba,_0x4cc821){var _0x46381d=_0x374f;if(Array[_0x46381d(0x6b9)](_0x4cc821))for(let _0x5ba624=0x0;_0x5ba624<_0x4cc821[_0x46381d(0x5a7)];_0x5ba624++){_0x2f145b(_0x4d1765,_0x4604ba,_0x4cc821[_0x5ba624]);}else{if(typeof _0x4cc821==='string')_0x4d1765['writeString'](_0x4cc821);else{if(_0x4cc821 instanceof Uint8Array)_0x4d1765[_0x46381d(0x9bd)](_0x4cc821);else{if(_0x4cc821['id']){_0x4cc821[_0x46381d(0x675)]=_0x4d1765[_0x46381d(0x526)]+_0x4604ba,_0x4d1765['writeUnsignedIntBE'](_0x4cc821['id']);if(Array[_0x46381d(0x6b9)](_0x4cc821[_0x46381d(0x778)])){let _0x5bf5e5,_0x4e67a5,_0x1c716a;_0x4cc821[_0x46381d(0x84f)]===-0x1?_0x4d1765['writeByte'](0xff):(_0x5bf5e5=_0x4d1765[_0x46381d(0x526)],_0x4d1765['writeBytes']([0x0,0x0,0x0,0x0])),_0x4e67a5=_0x4d1765['pos'],_0x4cc821[_0x46381d(0x755)]=_0x4e67a5+_0x4604ba,_0x2f145b(_0x4d1765,_0x4604ba,_0x4cc821[_0x46381d(0x778)]),_0x4cc821[_0x46381d(0x84f)]!==-0x1&&(_0x1c716a=_0x4d1765['pos'],_0x4cc821[_0x46381d(0x84f)]=_0x1c716a-_0x4e67a5,_0x4d1765[_0x46381d(0x6b8)](_0x5bf5e5),_0x4d1765['writeEBMLVarIntWidth'](_0x4cc821[_0x46381d(0x84f)],0x4),_0x4d1765['seek'](_0x1c716a));}else{if(typeof _0x4cc821['data']==='string')_0x4d1765[_0x46381d(0x1e2)](_0x4cc821[_0x46381d(0x778)][_0x46381d(0x5a7)]),_0x4cc821['dataOffset']=_0x4d1765[_0x46381d(0x526)]+_0x4604ba,_0x4d1765[_0x46381d(0x679)](_0x4cc821[_0x46381d(0x778)]);else{if(typeof _0x4cc821[_0x46381d(0x778)]===_0x46381d(0x714))!_0x4cc821[_0x46381d(0x84f)]&&(_0x4cc821[_0x46381d(0x84f)]=_0x4d1765[_0x46381d(0x2b3)](_0x4cc821[_0x46381d(0x778)])),_0x4d1765[_0x46381d(0x1e2)](_0x4cc821[_0x46381d(0x84f)]),_0x4cc821[_0x46381d(0x755)]=_0x4d1765[_0x46381d(0x526)]+_0x4604ba,_0x4d1765[_0x46381d(0x5ba)](_0x4cc821[_0x46381d(0x778)],_0x4cc821[_0x46381d(0x84f)]);else{if(_0x4cc821['data']instanceof _0x510c95)_0x4d1765['writeEBMLVarInt'](0x8),_0x4cc821[_0x46381d(0x755)]=_0x4d1765[_0x46381d(0x526)]+_0x4604ba,_0x4d1765[_0x46381d(0x8e8)](_0x4cc821[_0x46381d(0x778)]['value']);else{if(_0x4cc821[_0x46381d(0x778)]instanceof _0x510c95)_0x4d1765[_0x46381d(0x1e2)](0x4),_0x4cc821[_0x46381d(0x755)]=_0x4d1765[_0x46381d(0x526)]+_0x4604ba,_0x4d1765['writeFloatBE'](_0x4cc821['data'][_0x46381d(0x75b)]);else{if(_0x4cc821[_0x46381d(0x778)]instanceof Uint8Array)_0x4d1765[_0x46381d(0x1e2)](_0x4cc821[_0x46381d(0x778)][_0x46381d(0x180)]),_0x4cc821['dataOffset']=_0x4d1765['pos']+_0x4604ba,_0x4d1765[_0x46381d(0x9bd)](_0x4cc821[_0x46381d(0x778)]);else throw new Error('Bad\x20EBML\x20datatype\x20'+typeof _0x4cc821['data']);}}}}}}else throw new Error(_0x46381d(0x723)+typeof _0x4cc821[_0x46381d(0x778)]);}}}}let _0x1ac71e=function(_0x3c9452,_0x3eb520){return function(_0x37b667){var _0x5586f5=_0x374f;let _0x3b451b=0x1388,_0x1fafa4=![],_0x448f53=0x0,_0x26f389=0x0,_0x24b1ba=!![],_0x546a79=0x0,_0x229cd0=0xbb80,_0x333350=0x1,_0x8c325d=[],_0x575172=0x0,_0x5d4438=0x0,_0x333381=0x0,_0x5553ae={'fileWriter':null,'codec':_0x37b667[_0x5586f5(0x8a4)]||_0x5586f5(0x555)},_0x10dfd9,_0x393fed={'id':0x4489,'data':new _0x510c95(0x0)},_0x1935e9=new _0x3eb520(_0x37b667[_0x5586f5(0x281)]);function _0x1de981(_0x5b0067,_0x4ed2c7){var _0x3ff424=_0x5586f5;return _0x4ed2c7=new Uint8Array(_0x4ed2c7),_0x7cfb7f(_0x1e1a2a(_0x5b0067),_0x523c47(_0x4ed2c7[_0x3ff424(0x180)]),_0x4ed2c7);}function _0x7cfb7f(){var _0x2490a8=_0x5586f5,_0x432926,_0x1c04d7=0x0,_0x333b18;for(_0x432926=0x0;_0x432926>>0x18&0xff,_0x21d812>>>0x10&0xff,_0x21d812>>>0x8&0xff,_0x21d812&0xff]);if((_0x21d812&0xff0000)!=0x0)return new Uint8Array([_0x21d812>>>0x10&0xff,_0x21d812>>>0x8&0xff,_0x21d812&0xff]);if((_0x21d812&0xff00)!=0x0)return new Uint8Array([_0x21d812>>>0x8&0xff,_0x21d812&0xff]);if((_0x21d812&0xff)!=0x0)return new Uint8Array([_0x21d812&0xff]);throw _0x5271c2(0x775);}function _0x523c47(_0xa24f25){if(_0xa24f25<=0x7f)return new Uint8Array([0x80|_0xa24f25&0x7f]);if(_0xa24f25<=0x3fff)return new Uint8Array([0x40|_0xa24f25>>0x8&0x3f,_0xa24f25&0xff]);return new Uint8Array([0x8,_0xa24f25>>>0x18&0xff,_0xa24f25>>>0x10&0xff,_0xa24f25>>>0x8&0xff,_0xa24f25&0xff]);}function _0x50f7b6(_0x5df426,_0x2c0885){var _0x17fdc8=new DataView(new ArrayBuffer(0x4));return _0x17fdc8['setFloat32'](0x0,_0x2c0885,![]),_0x1de981(_0x5df426,new Uint8Array(_0x17fdc8['buffer']));}function _0x2f224c(_0x3830a6){var _0x32e6fe=_0x5586f5;if(_0x3830a6<=0xff)return new Uint8Array([_0x3830a6&0xff]);if(_0x3830a6<=0xffff)return new Uint8Array([_0x3830a6>>>0x8&0xff,_0x3830a6&0xff]);if(_0x3830a6<=0xffffff)return new Uint8Array([_0x3830a6>>0x10&0xff,_0x3830a6>>0x8&0xff,_0x3830a6&0xff]);return new Uint8Array([_0x3830a6>>>0x18&0xff,_0x3830a6>>>0x10&0xff,_0x3830a6>>>0x8&0xff,_0x3830a6&0xff]);var _0x4a400c=new DataView(new ArrayBuffer(0x4));return _0x4a400c[_0x32e6fe(0x700)](0x0,_0x3830a6,![]),_0x4a400c;}function _0x5d6196(_0x827398,_0x12c63f){return _0x1de981(_0x827398,_0x2f224c(_0x12c63f));}function _0x2ba54d(_0x4bbb9c,_0x3872f6){return _0x1de981(_0x4bbb9c,new TextEncoder()['encode'](_0x3872f6));}function _0x8d2d1c(){var _0x5459f4=_0x5586f5;let _0x2d23dc={'id':0x1a45dfa3,'data':[_0x5d6196(0x4286,0x1),_0x5d6196(0x42f7,0x1),_0x5d6196(0x42f2,0x4),_0x5d6196(0x42f3,0x8),_0x2ba54d(0x4282,_0x5459f4(0x473)),_0x5d6196(0x4287,0x4),_0x5d6196(0x4285,0x2)]},_0x5ef0c8={'id':0x1549a966,'data':[_0x5d6196(0x2ad7b1,0xf4240),_0x2ba54d(0x4d80,_0x5459f4(0xb55)),_0x2ba54d(0x5741,_0x5459f4(0xb55)),_0x393fed]},_0x233534=[{'id':0xb0,'data':_0x448f53},{'id':0xba,'data':_0x26f389}],_0x59e743={'id':0x1654ae6b,'data':[{'id':0xae,'data':[_0x5d6196(0xd7,0x1),_0x5d6196(0x73c5,0x1),_0x5d6196(0x9c,0x0),_0x2ba54d(0x22b59c,_0x5459f4(0x54f)),_0x2ba54d(0x86,'V_'+_0x37b667[_0x5459f4(0x8a4)]),_0x5d6196(0x83,0x1),{'id':0xe0,'data':[_0x5d6196(0xb0,_0x448f53),_0x5d6196(0xba,_0x26f389)]}]},{'id':0xae,'data':[_0x5d6196(0xd7,0x2),_0x5d6196(0x73c5,0x2),_0x5d6196(0x9c,0x0),_0x2ba54d(0x22b59c,_0x5459f4(0x54f)),_0x2ba54d(0x86,'A_OPUS'),_0x5d6196(0x83,0x2),{'id':0xe1,'data':[_0x50f7b6(0xb5,_0x229cd0),_0x5d6196(0x9f,_0x333350)]},_0x1de981(0x63a2,new Uint8Array(['O'['charCodeAt'](0x0),'p'['charCodeAt'](0x0),'u'[_0x5459f4(0x47a)](0x0),'s'[_0x5459f4(0x47a)](0x0),'H'[_0x5459f4(0x47a)](0x0),'e'[_0x5459f4(0x47a)](0x0),'a'['charCodeAt'](0x0),'d'[_0x5459f4(0x47a)](0x0),0x1,_0x333350&0xff,0x38,0x1,_0x229cd0>>>0x0&0xff,_0x229cd0>>>0x8&0xff,_0x229cd0>>>0x10&0xff,_0x229cd0>>>0x18&0xff,0x0,0x0,0x0]))]}]};_0x10dfd9={'id':0x18538067,'size':-0x1,'data':[_0x5ef0c8,_0x59e743]};let _0x33afb9=new _0x3c9452(0x200);_0x2f145b(_0x33afb9,_0x1935e9[_0x5459f4(0x526)],[_0x2d23dc,_0x10dfd9]),_0x1935e9[_0x5459f4(0x655)](_0x33afb9[_0x5459f4(0x8c9)]()),_0x1fafa4=!![];}function _0x36db13(_0x1b617e){var _0x18e675=_0x5586f5;let _0x5928c1=new _0x3c9452(0x1+0x2+0x1);if(!(_0x1b617e['trackNumber']>0x0&&_0x1b617e[_0x18e675(0x25a)]<0x7f))throw new Error(_0x18e675(0x4e0));return _0x5928c1['writeEBMLVarInt'](_0x1b617e[_0x18e675(0x25a)]),_0x5928c1['writeU16BE'](_0x1b617e[_0x18e675(0x37c)]),_0x5928c1[_0x18e675(0x3c1)]((_0x1b617e[_0x18e675(0x7a5)]=='key'?0x1:0x0)<<0x7),{'id':0xa3,'data':[_0x5928c1[_0x18e675(0x8c9)](),_0x1b617e['frame']]};}function _0x2a5283(_0x15d30c){var _0x3a95bc=_0x5586f5;return{'id':0x1f43b675,'data':[{'id':0xe7,'data':Math[_0x3a95bc(0x21e)](_0x15d30c[_0x3a95bc(0x37c)])}]};}function _0x2c3b32(){var _0x25bfde=_0x5586f5;if(_0x8c325d[_0x25bfde(0x5a7)]===0x0)return;let _0x5cc8f2=0x0;for(let _0x3fe614=0x0;_0x3fe614<_0x8c325d[_0x25bfde(0x5a7)];_0x3fe614++){_0x5cc8f2+=_0x8c325d[_0x3fe614]['frame']['byteLength'];}let _0xae34f0=new _0x3c9452(_0x5cc8f2+_0x8c325d[_0x25bfde(0x5a7)]*0x40),_0x1fa3c0=_0x2a5283({'timecode':Math[_0x25bfde(0x21e)](_0x575172)});for(let _0x1276ca=0x0;_0x1276ca<_0x8c325d[_0x25bfde(0x5a7)];_0x1276ca++){_0x1fa3c0[_0x25bfde(0x778)][_0x25bfde(0x285)](_0x36db13(_0x8c325d[_0x1276ca]));}_0x2f145b(_0xae34f0,_0x1935e9[_0x25bfde(0x526)],_0x1fa3c0),_0x1935e9[_0x25bfde(0x655)](_0xae34f0[_0x25bfde(0x8c9)]()),_0x8c325d=[],_0x5d4438=0x0;}function _0x39c032(_0x170ba9,_0x376765){var _0x30396a=_0x5586f5;_0x170ba9[_0x30396a(0x25a)]=_0x376765;var _0x2a84e6=_0x170ba9[_0x30396a(0x63f)]/0x3e8;_0x24b1ba?(_0x546a79=_0x2a84e6,_0x2a84e6=0x0,_0x24b1ba=![]):_0x2a84e6=_0x2a84e6-_0x546a79;_0x333381=_0x2a84e6;if(_0x5d4438==0x0)_0x575172=_0x2a84e6;_0x170ba9[_0x30396a(0x37c)]=Math['round'](_0x2a84e6-_0x575172),_0x8c325d[_0x30396a(0x285)](_0x170ba9),_0x5d4438=_0x170ba9[_0x30396a(0x37c)]+0x1,_0x5d4438>=_0x3b451b&&_0x2c3b32();}function _0x3c63f3(){var _0x1d929c=_0x5586f5;let _0x3bf823=new _0x3c9452(seekHead[_0x1d929c(0x84f)]),_0x207d5d=_0x1935e9[_0x1d929c(0x526)];_0x2f145b(_0x3bf823,seekHead['dataOffset'],seekHead[_0x1d929c(0x778)]),_0x1935e9[_0x1d929c(0x6b8)](seekHead[_0x1d929c(0x755)]),_0x1935e9[_0x1d929c(0x655)](_0x3bf823['getAsDataArray']()),_0x1935e9[_0x1d929c(0x6b8)](_0x207d5d);}function _0x68394f(){var _0x49a80d=_0x5586f5;let _0x4ecabe=new _0x3c9452(0x8),_0x519dfd=_0x1935e9[_0x49a80d(0x526)];_0x4ecabe[_0x49a80d(0x8e8)](_0x333381),_0x1935e9['seek'](_0x393fed[_0x49a80d(0x755)]),_0x1935e9[_0x49a80d(0x655)](_0x4ecabe['getAsDataArray']()),_0x1935e9['seek'](_0x519dfd);}this[_0x5586f5(0x4e9)]=function(_0x51ded8){var _0x3a7706=_0x5586f5;!_0x1fafa4&&(_0x448f53=_0x37b667[_0x3a7706(0x57a)],_0x26f389=_0x37b667[_0x3a7706(0x7bd)],_0x229cd0=_0x37b667[_0x3a7706(0x740)],_0x333350=_0x37b667[_0x3a7706(0x287)],_0x8d2d1c());if(_0x51ded8[_0x3a7706(0x870)][_0x3a7706(0x709)]=='EncodedVideoChunk'){let _0x576e7e=new Uint8Array(_0x51ded8[_0x3a7706(0x180)]);_0x51ded8['copyTo'](_0x576e7e),_0x39c032({'frame':_0x576e7e,'intime':_0x51ded8[_0x3a7706(0x238)],'type':_0x51ded8[_0x3a7706(0x7a5)]},0x1);return;}else{if(_0x51ded8['constructor'][_0x3a7706(0x709)]=='EncodedAudioChunk'){let _0x393680=new Uint8Array(_0x51ded8[_0x3a7706(0x180)]);_0x51ded8['copyTo'](_0x393680),_0x39c032({'frame':_0x393680,'intime':_0x51ded8[_0x3a7706(0x238)],'type':_0x51ded8[_0x3a7706(0x7a5)]},0x2);return;}}},this[_0x5586f5(0x96b)]=function(){var _0x2010ce=_0x5586f5;return!_0x1fafa4&&_0x8d2d1c(),_0x24b1ba=!![],_0x2c3b32(),_0x68394f(),_0x1935e9[_0x2010ce(0x96b)](_0x2010ce(0x161));},this[_0x5586f5(0x963)]=function(){return _0x1935e9['length'];},_0x37b667=_0x43dd0f(_0x5553ae,_0x37b667||{});};};window[_0x463005(0x672)]=_0x1ac71e(window['ArrayBufferDataStream'],window[_0x463005(0x388)]);}()); \ No newline at end of file