livekit-client 0.18.4-RC4 → 0.18.4-RC5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/livekit-client.esm.mjs +10715 -8800
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"livekit-client.umd.js","sources":["../src/logger.ts","../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/livekit_models.ts","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/room/track/create.ts","../src/connect.ts"],"sourcesContent":[null,"/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["LogLevel","root","definition","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","log","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","document","location","indexOf","encodeURIComponent","exec","slice","levels","TRACE","DEBUG","INFO","WARN","ERROR","SILENT","getLevel","setLevel","persist","toUpperCase","persistLevelIfPossible","levelNum","levelName","setDefaultLevel","resetLevel","removeItem","clearPersistedLevel","enableAll","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","module","exports","livekitLogger","log.getLogger","setLogLevel","info","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","isLong","__isLong__","Object","defineProperty","value","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","b00","divide","divisor","approx","res","div_u","div_s","toUnsigned","shru","shr","shl","max","floor","approxRem","log2","ceil","LN2","delta","approxRes","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","fn","ctx","params","Array","offset","index","pending","Promise","resolve","reject","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","t","chunk","j","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","EventEmitter$1","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","moduleName","eval","utf8","len","read","write","c1","c2","pool_1","alloc","SIZE","MAX","slab","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","LongBits$2","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","merge","dst","src","ifNotSet","keys","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","asPromise","require$$1","require$$2","require$$3","inquire","require$$4","require$$5","pool","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","lcFirst","toLowerCase","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","json","_configure","encoding","allocUnsafe","Buffer_allocUnsafe","BufferWriter","writer","Writer","Op","next","State","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","subarray","_push","Writer$1","uint32","int32","sint32","uint64","int64","sint64","bool","fixed32","sfixed32","fixed64","sfixed64","double","writeBytes","set","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeStringBuffer","writeBytesBuffer","copy","byteLength","BufferReader","reader","Reader","indexOutOfRange","writeLength","create_array","isBuffer","readLongVarint","readFixed32_end","readFixed64","Reader$1","_slice","skip","skipType","wireType","BufferReader_","reader_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","callback","response","setTimeout","endedByRPC","roots","protobuf","configure","build","rpc","TrackType","TrackSource","VideoQuality","ConnectionQuality","ClientConfigSetting","ParticipantInfo_State","DataPacket_Kind","ClientInfo_SDK","minimal","globalThis","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","dataPacket_KindFromJSON","RELIABLE","LOSSY","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","_m0.util","_m0.configure","Room","_m0.Writer","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","v","enabledCodecs","Codec","metadata","numParticipants","activeRecording","input","_m0.Reader","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","mime","fmtpLine","ParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantInfo","identity","state","tracks","TrackInfo","joinedAt","version","permission","region","participantInfo_StateToJSON","type","muted","width","height","simulcast","disableDtx","source","layers","VideoLayer","mimeType","mid","_l","_m","quality","bitrate","ssrc","DataPacket","kind","user","UserPacket","speaker","ActiveSpeakerUpdate","dataPacket_KindToJSON","speakers","SpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","arr","bin","byte","btoa","base64FromBytes","ParticipantTracks","trackSids","ClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","clientInfo_SDKToJSON","ClientConfiguration","video","VideoConfiguration","screen","resumeConnection","hardwareEncoder","atob","MAX_SAFE_INTEGER","SignalTarget","StreamState","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","streamStateFromJSON","PAUSED","SignalRequest","offer","SessionDescription","answer","trickle","TrickleRequest","addTrack","AddTrackRequest","mute","MuteTrackRequest","subscription","UpdateSubscription","trackSetting","UpdateTrackSettings","leave","LeaveRequest","updateLayers","UpdateVideoLayers","subscriptionPermission","SubscriptionPermission","syncState","SyncState","simulate","SimulateScenario","SignalResponse","JoinResponse","update","ParticipantUpdate","trackPublished","TrackPublishedResponse","speakersChanged","SpeakersChanged","roomUpdate","RoomUpdate","connectionQuality","ConnectionQualityUpdate","streamStateUpdate","StreamStateUpdate","subscribedQualityUpdate","SubscribedQualityUpdate","subscriptionPermissionUpdate","SubscriptionPermissionUpdate","refreshToken","trackUnpublished","TrackUnpublishedResponse","cid","candidateInit","target","room","participant","otherParticipants","serverVersion","iceServers","ICEServer","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","track","trackSid","sdp","participants","subscribe","participantTracks","disabled","canReconnect","urls","username","credential","ConnectionQualityInfo","score","connectionQualityToJSON","updates","StreamStateInfo","streamStateToJSON","streamStates","SubscribedQuality","enabled","subscribedQualities","TrackPermission","allTracks","allParticipants","trackPermissions","allowed","publishTracks","dataChannels","DataChannelInfo","label","id","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","super","ConnectionError","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","MediaDeviceFailure","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","static","instance","async","requestPermissions","devices","mediaDevices","enumerateDevices","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","getDevices","find","d","mediaDeviceKinds","sleep","duration","isFireFox","isWeb","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","emptyMediaStreamTrack","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","init","eventsModule","events","once","emitter","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","m","existing","warning","newListener","unshift","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","arg","removeEventListener","enumerable","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","pop","spliceOne","removeAllListeners","key","rawListeners","eventNames","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","forEach","parentElement","createElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","existingTracks","srcObject","MediaStream","getAudioTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","getTracks","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getInstance","normalizeDeviceId","setTrackMuted","sender","el","replaceTrack","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","restart","UpstreamPaused","canvas","emptyStream","captureStream","getEmptyMediaStreamTrack","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","getNewAudioContext","AudioContext","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","restartTrack","unmute","startMonitor","audioStats","getStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","timeOffset","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","connect","getByteTimeDomainData","someNoise","sample","close","detectSilence","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","RemoteTrack","streamState","setMuted","setMediaStream","stream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","pauseUpstream","resumeUpstream","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ProtoQuality","Excellent","Good","Poor","qualityFromProto","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","presets","aspect","abs","presetsForResolution","preset","determineAppropriateEncoding","original","midPreset","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","lowPreset","encodingsFromPresets","fromPreset","fps","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Subscribed","NotAllowed","Unsubscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","scale","videoLayersFromEncodings","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","getSenders","LocalTrackUnpublished","unpublishTracks","publications","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","perms","allowAll","allowedTrackSids","trackPermissionToProto","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","onSuccess","onError","origGetUserMedia","cs","DOMException","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","senders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","signalingState","alreadyExists","oldStream","nativeMethod","methodObj","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","streamid","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","preferredMediaSource","mediaSource","shimLocalStreamsAPI","_localStreams","_addTrack","_len","_key","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","random","substr","localCName","generateIdentifier","splitLines","blob","trim","split","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","adapterFactory","passThroughQueueSignals","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","URLSearchParams","createConnectionParams","ws","WebSocket","binaryType","onerror","ev","handleWSError","resp","fetch","ok","msg","text","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","fromQueue","canQueue","canPass","canPassThroughQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","run","rsd","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","channelKind","currentTarget","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getParticipantByIdentity","simulateScenario","elements","setDeviceId","setSinkId","packed","unpackStreamId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","fromParticipantInfo","trackPublication","localDescription","previousSdp","sendUnsub","createLocalTracks","autoManageVideo","logLevel","publishAudio","publishVideo","enableCameraAndMicrophone","errKind","audioErr","originalFactory","rawMethod","configLevel","needLog","silent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"livekit-client.umd.js","sources":["../src/logger.ts","../node_modules/.pnpm/loglevel@1.8.0/node_modules/loglevel/lib/loglevel.js","../node_modules/long/src/long.js","../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js","../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js","../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js","../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js","../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js","../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js","../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/longbits.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/util/minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/writer_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/reader_buffer.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc/service.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/rpc.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/roots.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/src/index-minimal.js","../node_modules/.pnpm/protobufjs@6.11.2/node_modules/protobufjs/minimal.js","../src/proto/livekit_models.ts","../src/proto/google/protobuf/timestamp.ts","../src/proto/livekit_rtc.ts","../src/room/errors.ts","../src/room/events.ts","../src/room/stats.ts","../src/room/DeviceManager.ts","../src/version.ts","../src/room/utils.ts","../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js","../src/room/track/Track.ts","../src/room/track/LocalTrack.ts","../src/room/track/utils.ts","../src/room/track/LocalAudioTrack.ts","../src/room/track/LocalVideoTrack.ts","../src/room/track/RemoteTrack.ts","../src/room/track/RemoteAudioTrack.ts","../node_modules/.pnpm/ts-debounce@3.0.0/node_modules/ts-debounce/dist/src/index.esm.js","../src/room/track/RemoteVideoTrack.ts","../src/room/track/TrackPublication.ts","../src/room/track/LocalTrackPublication.ts","../src/room/track/options.ts","../src/room/participant/Participant.ts","../src/room/participant/publishUtils.ts","../src/room/track/RemoteTrackPublication.ts","../src/room/participant/RemoteParticipant.ts","../src/room/participant/LocalParticipant.ts","../src/room/participant/ParticipantTrackPermission.ts","../src/api/RequestQueue.ts","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/utils.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/.pnpm/sdp@3.0.3/node_modules/sdp/sdp.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/.pnpm/webrtc-adapter@8.1.1/node_modules/webrtc-adapter/src/js/adapter_core.js","../src/api/SignalClient.ts","../src/room/PCTransport.ts","../src/room/RTCEngine.ts","../src/room/track/defaults.ts","../src/room/Room.ts","../src/room/track/create.ts","../src/connect.ts"],"sourcesContent":[null,"/*\n* loglevel - https://github.com/pimterry/loglevel\n*\n* Copyright (c) 2013 Tim Perry\n* Licensed under the MIT license.\n*/\n(function (root, definition) {\n \"use strict\";\n if (typeof define === 'function' && define.amd) {\n define(definition);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = definition();\n } else {\n root.log = definition();\n }\n}(this, function () {\n \"use strict\";\n\n // Slightly dubious tricks to cut down minimized file size\n var noop = function() {};\n var undefinedType = \"undefined\";\n var isIE = (typeof window !== undefinedType) && (typeof window.navigator !== undefinedType) && (\n /Trident\\/|MSIE /.test(window.navigator.userAgent)\n );\n\n var logMethods = [\n \"trace\",\n \"debug\",\n \"info\",\n \"warn\",\n \"error\"\n ];\n\n // Cross-browser bind equivalent that works at least back to IE6\n function bindMethod(obj, methodName) {\n var method = obj[methodName];\n if (typeof method.bind === 'function') {\n return method.bind(obj);\n } else {\n try {\n return Function.prototype.bind.call(method, obj);\n } catch (e) {\n // Missing bind shim or IE8 + Modernizr, fallback to wrapping\n return function() {\n return Function.prototype.apply.apply(method, [obj, arguments]);\n };\n }\n }\n }\n\n // Trace() doesn't print the message in IE, so for that case we need to wrap it\n function traceForIE() {\n if (console.log) {\n if (console.log.apply) {\n console.log.apply(console, arguments);\n } else {\n // In old IE, native console methods themselves don't have apply().\n Function.prototype.apply.apply(console.log, [console, arguments]);\n }\n }\n if (console.trace) console.trace();\n }\n\n // Build the best logging method possible for this env\n // Wherever possible we want to bind, not wrap, to preserve stack traces\n function realMethod(methodName) {\n if (methodName === 'debug') {\n methodName = 'log';\n }\n\n if (typeof console === undefinedType) {\n return false; // No method possible, for now - fixed later by enableLoggingWhenConsoleArrives\n } else if (methodName === 'trace' && isIE) {\n return traceForIE;\n } else if (console[methodName] !== undefined) {\n return bindMethod(console, methodName);\n } else if (console.log !== undefined) {\n return bindMethod(console, 'log');\n } else {\n return noop;\n }\n }\n\n // These private functions always need `this` to be set properly\n\n function replaceLoggingMethods(level, loggerName) {\n /*jshint validthis:true */\n for (var i = 0; i < logMethods.length; i++) {\n var methodName = logMethods[i];\n this[methodName] = (i < level) ?\n noop :\n this.methodFactory(methodName, level, loggerName);\n }\n\n // Define log.log as an alias for log.debug\n this.log = this.debug;\n }\n\n // In old IE versions, the console isn't present until you first open it.\n // We build realMethod() replacements here that regenerate logging methods\n function enableLoggingWhenConsoleArrives(methodName, level, loggerName) {\n return function () {\n if (typeof console !== undefinedType) {\n replaceLoggingMethods.call(this, level, loggerName);\n this[methodName].apply(this, arguments);\n }\n };\n }\n\n // By default, we use closely bound real methods wherever possible, and\n // otherwise we wait for a console to appear, and then try again.\n function defaultMethodFactory(methodName, level, loggerName) {\n /*jshint validthis:true */\n return realMethod(methodName) ||\n enableLoggingWhenConsoleArrives.apply(this, arguments);\n }\n\n function Logger(name, defaultLevel, factory) {\n var self = this;\n var currentLevel;\n defaultLevel = defaultLevel == null ? \"WARN\" : defaultLevel;\n\n var storageKey = \"loglevel\";\n if (typeof name === \"string\") {\n storageKey += \":\" + name;\n } else if (typeof name === \"symbol\") {\n storageKey = undefined;\n }\n\n function persistLevelIfPossible(levelNum) {\n var levelName = (logMethods[levelNum] || 'silent').toUpperCase();\n\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage[storageKey] = levelName;\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=\" + levelName + \";\";\n } catch (ignore) {}\n }\n\n function getPersistedLevel() {\n var storedLevel;\n\n if (typeof window === undefinedType || !storageKey) return;\n\n try {\n storedLevel = window.localStorage[storageKey];\n } catch (ignore) {}\n\n // Fallback to cookies if local storage gives us nothing\n if (typeof storedLevel === undefinedType) {\n try {\n var cookie = window.document.cookie;\n var location = cookie.indexOf(\n encodeURIComponent(storageKey) + \"=\");\n if (location !== -1) {\n storedLevel = /^([^;]+)/.exec(cookie.slice(location))[1];\n }\n } catch (ignore) {}\n }\n\n // If the stored level is not valid, treat it as if nothing was stored.\n if (self.levels[storedLevel] === undefined) {\n storedLevel = undefined;\n }\n\n return storedLevel;\n }\n\n function clearPersistedLevel() {\n if (typeof window === undefinedType || !storageKey) return;\n\n // Use localStorage if available\n try {\n window.localStorage.removeItem(storageKey);\n return;\n } catch (ignore) {}\n\n // Use session cookie as fallback\n try {\n window.document.cookie =\n encodeURIComponent(storageKey) + \"=; expires=Thu, 01 Jan 1970 00:00:00 UTC\";\n } catch (ignore) {}\n }\n\n /*\n *\n * Public logger API - see https://github.com/pimterry/loglevel for details\n *\n */\n\n self.name = name;\n\n self.levels = { \"TRACE\": 0, \"DEBUG\": 1, \"INFO\": 2, \"WARN\": 3,\n \"ERROR\": 4, \"SILENT\": 5};\n\n self.methodFactory = factory || defaultMethodFactory;\n\n self.getLevel = function () {\n return currentLevel;\n };\n\n self.setLevel = function (level, persist) {\n if (typeof level === \"string\" && self.levels[level.toUpperCase()] !== undefined) {\n level = self.levels[level.toUpperCase()];\n }\n if (typeof level === \"number\" && level >= 0 && level <= self.levels.SILENT) {\n currentLevel = level;\n if (persist !== false) { // defaults to true\n persistLevelIfPossible(level);\n }\n replaceLoggingMethods.call(self, level, name);\n if (typeof console === undefinedType && level < self.levels.SILENT) {\n return \"No console available for logging\";\n }\n } else {\n throw \"log.setLevel() called with invalid level: \" + level;\n }\n };\n\n self.setDefaultLevel = function (level) {\n defaultLevel = level;\n if (!getPersistedLevel()) {\n self.setLevel(level, false);\n }\n };\n\n self.resetLevel = function () {\n self.setLevel(defaultLevel, false);\n clearPersistedLevel();\n };\n\n self.enableAll = function(persist) {\n self.setLevel(self.levels.TRACE, persist);\n };\n\n self.disableAll = function(persist) {\n self.setLevel(self.levels.SILENT, persist);\n };\n\n // Initialize with the right level\n var initialLevel = getPersistedLevel();\n if (initialLevel == null) {\n initialLevel = defaultLevel;\n }\n self.setLevel(initialLevel, false);\n }\n\n /*\n *\n * Top-level API\n *\n */\n\n var defaultLogger = new Logger();\n\n var _loggersByName = {};\n defaultLogger.getLogger = function getLogger(name) {\n if ((typeof name !== \"symbol\" && typeof name !== \"string\") || name === \"\") {\n throw new TypeError(\"You must supply a name when creating a logger.\");\n }\n\n var logger = _loggersByName[name];\n if (!logger) {\n logger = _loggersByName[name] = new Logger(\n name, defaultLogger.getLevel(), defaultLogger.methodFactory);\n }\n return logger;\n };\n\n // Grab the current global log variable in case of overwrite\n var _log = (typeof window !== undefinedType) ? window.log : undefined;\n defaultLogger.noConflict = function() {\n if (typeof window !== undefinedType &&\n window.log === defaultLogger) {\n window.log = _log;\n }\n\n return defaultLogger;\n };\n\n defaultLogger.getLoggers = function getLoggers() {\n return _loggersByName;\n };\n\n // ES6 default export, for compatibility\n defaultLogger['default'] = defaultLogger;\n\n return defaultLogger;\n}));\n","module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.<number>} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.<number>} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.<number>} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.<number>} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.<number>} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.<number>} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.<string,*>}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor<Buffer>}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.<string,*>} dst Destination object\n * @param {Object.<string,*>} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor<Error>} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod<Message<{}>,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n",null,null,null,null,null,null,null,null,null,"// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n",null,null,null,null,null,null,null,"function r(r,e,n){var i,t,o;void 0===e&&(e=50),void 0===n&&(n={});var a=null!=(i=n.isImmediate)&&i,u=null!=(t=n.callback)&&t,c=n.maxWait,v=Date.now(),l=[];function f(){if(void 0!==c){var r=Date.now()-v;if(r+e>=c)return c-r}return e}var d=function(){var e=[].slice.call(arguments),n=this;return new Promise(function(i,t){var c=a&&void 0===o;if(void 0!==o&&clearTimeout(o),o=setTimeout(function(){if(o=void 0,v=Date.now(),!a){var i=r.apply(n,e);u&&u(i),l.forEach(function(r){return(0,r.resolve)(i)}),l=[]}},f()),c){var d=r.apply(n,e);return u&&u(d),i(d)}l.push({resolve:i,reject:t})})};return d.cancel=function(r){void 0!==o&&clearTimeout(o),l.forEach(function(e){return(0,e.reject)(r)}),l=[]},d}export{r as debounce};\n//# sourceMappingURL=index.esm.js.map\n",null,null,null,null,null,null,null,null,null,null,null,"/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nexport function extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nexport function wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [nativeEventName,\n wrappedCallback]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function(nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap || !this._eventMap\n || !this._eventMap[eventNameToWrap]) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [nativeEventName,\n unwrappedCb]);\n };\n\n Object.defineProperty(proto, 'on' + eventNameToWrap, {\n get() {\n return this['_on' + eventNameToWrap];\n },\n set(cb) {\n if (this['_on' + eventNameToWrap]) {\n this.removeEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap]);\n delete this['_on' + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(eventNameToWrap,\n this['_on' + eventNameToWrap] = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n}\n\nexport function disableLog(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n logDisabled_ = bool;\n return (bool) ? 'adapter.js logging disabled' :\n 'adapter.js logging enabled';\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nexport function disableWarnings(bool) {\n if (typeof bool !== 'boolean') {\n return new Error('Argument type: ' + typeof bool +\n '. Please use a boolean.');\n }\n deprecationWarnings_ = !bool;\n return 'adapter.js deprecation warnings ' + (bool ? 'disabled' : 'enabled');\n}\n\nexport function log() {\n if (typeof window === 'object') {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== 'undefined' && typeof console.log === 'function') {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nexport function deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(oldMethod + ' is deprecated, please use ' + newMethod +\n ' instead.');\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nexport function detectBrowser(window) {\n // Returned result object.\n const result = {browser: null, version: null};\n\n // Fail early if it's not a browser\n if (typeof window === 'undefined' || !window.navigator) {\n result.browser = 'Not a browser.';\n return result;\n }\n\n const {navigator} = window;\n\n if (navigator.mozGetUserMedia) { // Firefox.\n result.browser = 'firefox';\n result.version = extractVersion(navigator.userAgent,\n /Firefox\\/(\\d+)\\./, 1);\n } else if (navigator.webkitGetUserMedia ||\n (window.isSecureContext === false && window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = 'chrome';\n result.version = extractVersion(navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./, 2);\n } else if (window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)) { // Safari.\n result.browser = 'safari';\n result.version = extractVersion(navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./, 1);\n result.supportsUnifiedPlan = window.RTCRtpTransceiver &&\n 'currentDirection' in window.RTCRtpTransceiver.prototype;\n } else { // Default fallthrough: not supported.\n result.browser = 'Not a supported browser.';\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === '[object Object]';\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nexport function compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function(accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, {[key]: value});\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nexport function walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach(name => {\n if (name.endsWith('Id')) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith('Ids')) {\n base[name].forEach(id => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nexport function filterStats(result, track, outbound) {\n const streamStatsType = outbound ? 'outbound-rtp' : 'inbound-rtp';\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach(value => {\n if (value.type === 'track' &&\n value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach(trackStat => {\n result.forEach(stats => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\nconst logging = utils.log;\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function(c) {\n if (typeof c !== 'object' || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach(key => {\n if (key === 'require' || key === 'advanced' || key === 'mediaSource') {\n return;\n }\n const r = (typeof c[key] === 'object') ? c[key] : {ideal: c[key]};\n if (r.exact !== undefined && typeof r.exact === 'number') {\n r.min = r.max = r.exact;\n }\n const oldname_ = function(prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return (name === 'deviceId') ? 'sourceId' : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === 'number') {\n oc[oldname_('min', key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_('max', key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_('', key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== 'number') {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_('', key)] = r.exact;\n } else {\n ['min', 'max'].forEach(mix => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function(constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === 'object') {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, 'autoGainControl', 'googAutoGainControl');\n remap(constraints.audio, 'noiseSuppression', 'googNoiseSuppression');\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === 'object') {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && ((typeof face === 'object') ? face : {ideal: face});\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if ((face && (face.exact === 'user' || face.exact === 'environment' ||\n face.ideal === 'user' || face.ideal === 'environment')) &&\n !(navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies)) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === 'environment' || face.ideal === 'environment') {\n matches = ['back', 'rear'];\n } else if (face.exact === 'user' || face.ideal === 'user') {\n matches = ['front'];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices()\n .then(devices => {\n devices = devices.filter(d => d.kind === 'videoinput');\n let dev = devices.find(d => matches.some(match =>\n d.label.toLowerCase().includes(match)));\n if (!dev && devices.length && matches.includes('back')) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact ? {exact: dev.deviceId} :\n {ideal: dev.deviceId};\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging('chrome: ' + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function(e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name: {\n PermissionDeniedError: 'NotAllowedError',\n PermissionDismissedError: 'NotAllowedError',\n InvalidStateError: 'NotAllowedError',\n DevicesNotFoundError: 'NotFoundError',\n ConstraintNotSatisfiedError: 'OverconstrainedError',\n TrackStartError: 'NotReadableError',\n MediaDeviceFailedDueToShutdown: 'NotAllowedError',\n MediaDeviceKillSwitchOn: 'NotAllowedError',\n TabCaptureError: 'AbortError',\n ScreenCaptureError: 'AbortError',\n DeviceCaptureError: 'AbortError'\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && ': ') + this.message;\n }\n };\n };\n\n const getUserMedia_ = function(constraints, onSuccess, onError) {\n shimConstraints_(constraints, c => {\n navigator.webkitGetUserMedia(c, onSuccess, e => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(cs) {\n return shimConstraints_(cs, c => origGetUserMedia(c).then(stream => {\n if (c.audio && !stream.getAudioTracks().length ||\n c.video && !stream.getVideoTracks().length) {\n stream.getTracks().forEach(track => {\n track.stop();\n });\n throw new DOMException('', 'NotFoundError');\n }\n return stream;\n }, e => Promise.reject(shimError_(e))));\n };\n }\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\nimport * as utils from '../utils.js';\n\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCPeerConnection && !('ontrack' in\n window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'ontrack', {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener('track', this._ontrack);\n }\n this.addEventListener('track', this._ontrack = f);\n },\n enumerable: true,\n configurable: true\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener('addtrack', te => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === te.track.id);\n } else {\n receiver = {track: te.track};\n }\n\n const event = new Event('track');\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach(track => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers()\n .find(r => r.track && r.track.id === track.id);\n } else {\n receiver = {track};\n }\n const event = new Event('track');\n event.track = track;\n event.receiver = receiver;\n event.transceiver = {receiver};\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener('addstream', this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n if (!e.transceiver) {\n Object.defineProperty(e, 'transceiver',\n {value: {receiver: e.receiver}});\n }\n return e;\n });\n }\n}\n\nexport function shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (typeof window === 'object' && window.RTCPeerConnection &&\n !('getSenders' in window.RTCPeerConnection.prototype) &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype) {\n const shimSenderWithDtmf = function(pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === 'audio') {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach(track => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach(track => {\n const sender = this._senders.find(s => s.track === track);\n if (sender) { // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (typeof window === 'object' && window.RTCPeerConnection &&\n 'getSenders' in window.RTCPeerConnection.prototype &&\n 'createDTMFSender' in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !('dtmf' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, 'dtmf', {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === 'audio') {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n }\n });\n }\n}\n\nexport function shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === 'function') {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (origGetStats.length === 0 && (arguments.length === 0 ||\n typeof selector !== 'function')) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function(response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach(report => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type: {\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[report.type] || report.type\n };\n report.names().forEach(name => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function(stats) {\n return new Map(Object.keys(stats).map(key => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function(response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_,\n selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function(response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n }, reject]);\n }).then(onSucc, onErr);\n };\n}\n\nexport function shimSenderReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender && window.RTCRtpReceiver)) {\n return;\n }\n\n // shim sender stats.\n if (!('getStats' in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then(result =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n utils.filterStats(result, sender.track, true));\n };\n }\n\n // shim receiver stats.\n if (!('getStats' in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc.getStats().then(result =>\n utils.filterStats(result, receiver.track, false));\n };\n }\n\n if (!('getStats' in window.RTCRtpSender.prototype &&\n 'getStats' in window.RTCRtpReceiver.prototype)) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach(s => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach(r => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(new DOMException(\n 'There are more than one sender or receiver for the track.',\n 'InvalidAccessError'));\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(new DOMException(\n 'There is no sender or receiver for the track.',\n 'InvalidAccessError'));\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams)\n .map(streamId => this._shimmedLocalStreams[streamId][0]);\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders()\n .filter(newSender => existingSenders.indexOf(newSender) === -1);\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach(streamId => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nexport function shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams = window.RTCPeerConnection.prototype\n .getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map(stream => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach(track => {\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [(this._streams[stream.id] || stream)]);\n delete this._reverseStreams[(this._streams[stream.id] ?\n this._streams[stream.id].id : stream.id)];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, stream) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n const streams = [].slice.call(arguments, 1);\n if (streams.length !== 1 ||\n !streams[0].getTracks().find(t => t === track)) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n 'The adapter.js addTrack polyfill only supports a single ' +\n ' stream which is associated with the specified track.',\n 'NotSupportedError');\n }\n\n const alreadyExists = this.getSenders().find(s => s.track === track);\n if (alreadyExists) {\n throw new DOMException('Track already exists.',\n 'InvalidAccessError');\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event('negotiationneeded'));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find(s => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, 'g'),\n externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach(internalId => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, 'g'),\n internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp\n });\n }\n ['createOffer', 'createAnswer'].forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n const args = arguments;\n const isLegacyCall = arguments.length &&\n typeof arguments[0] === 'function';\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n }, arguments[2]\n ]);\n }\n return nativeMethod.apply(this, arguments)\n .then(description => replaceInternalStreamId(this, description));\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype, 'localDescription');\n Object.defineProperty(window.RTCPeerConnection.prototype,\n 'localDescription', {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === '') {\n return description;\n }\n return replaceInternalStreamId(this, description);\n }\n });\n\n window.RTCPeerConnection.prototype.removeTrack =\n function removeTrack(sender) {\n if (this.signalingState === 'closed') {\n throw new DOMException(\n 'The RTCPeerConnection\\'s signalingState is \\'closed\\'.',\n 'InvalidStateError');\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.', 'TypeError');\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException('Sender was not created by this connection.',\n 'InvalidAccessError');\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach(streamid => {\n const hasTrack = this._streams[streamid].getTracks()\n .find(track => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event('negotiationneeded'));\n }\n };\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nexport function fixNegotiationNeeded(window, browserDetails) {\n utils.wrapPeerConnectionEvent(window, 'negotiationneeded', e => {\n const pc = e.target;\n if (browserDetails.version < 72 || (pc.getConfiguration &&\n pc.getConfiguration().sdpSemantics === 'plan-b')) {\n if (pc.signalingState !== 'stable') {\n return;\n }\n }\n return e;\n });\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\nexport function shimGetDisplayMedia(window, getSourceId) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== 'function') {\n console.error('shimGetDisplayMedia: getSourceId argument is not ' +\n 'a function');\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n return getSourceId(constraints)\n .then(sourceId => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video &&\n constraints.video.height;\n const frameRateSpecified = constraints.video &&\n constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: 'desktop',\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3\n }\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\n\nexport function shimGetUserMedia(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function(constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n utils.deprecated('navigator.getUserMedia',\n 'navigator.mediaDevices.getUserMedia');\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (!(browserDetails.version > 55 &&\n 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {\n const remap = function(obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.\n bind(navigator.mediaDevices);\n navigator.mediaDevices.getUserMedia = function(c) {\n if (typeof c === 'object' && typeof c.audio === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, 'autoGainControl', 'mozAutoGainControl');\n remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function() {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, 'mozAutoGainControl', 'autoGainControl');\n remap(obj, 'mozNoiseSuppression', 'noiseSuppression');\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function(c) {\n if (this.kind === 'audio' && typeof c === 'object') {\n c = JSON.parse(JSON.stringify(c));\n remap(c, 'autoGainControl', 'mozAutoGainControl');\n remap(c, 'noiseSuppression', 'mozNoiseSuppression');\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport * as utils from '../utils';\nexport {shimGetUserMedia} from './getusermedia';\nexport {shimGetDisplayMedia} from './getdisplaymedia';\n\nexport function shimOnTrack(window) {\n if (typeof window === 'object' && window.RTCTrackEvent &&\n ('receiver' in window.RTCTrackEvent.prototype) &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimPeerConnection(window, browserDetails) {\n if (typeof window !== 'object' ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate']\n .forEach(function(method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {[method]() {\n arguments[0] = new ((method === 'addIceCandidate') ?\n window.RTCIceCandidate :\n window.RTCSessionDescription)(arguments[0]);\n return nativeMethod.apply(this, arguments);\n }};\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n }\n\n const modernStatsTypes = {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats.apply(this, [selector || null])\n .then(stats => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach(stat => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(i, Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type\n }));\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nexport function shimSenderGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach(sender => sender._pc = this);\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track ? this._pc.getStats(this.track) :\n Promise.resolve(new Map());\n };\n}\n\nexport function shimReceiverGetStats(window) {\n if (!(typeof window === 'object' && window.RTCPeerConnection &&\n window.RTCRtpSender)) {\n return;\n }\n if (window.RTCRtpSender && 'getStats' in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach(receiver => receiver._pc = this);\n return receivers;\n };\n }\n utils.wrapPeerConnectionEvent(window, 'track', e => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nexport function shimRemoveStream(window) {\n if (!window.RTCPeerConnection ||\n 'removeStream' in window.RTCPeerConnection.prototype) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n utils.deprecated('removeStream', 'removeTrack');\n this.getSenders().forEach(sender => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nexport function shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nexport function shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck = initParameters &&\n 'sendEncodings' in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if ('rid' in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError('Invalid RID value provided.');\n }\n }\n if ('scaleResolutionDownBy' in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError('scale_resolution_down_by must be >= 1.0');\n }\n }\n if ('maxFramerate' in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError('max_framerate must be >= 0.0');\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const {sender} = transceiver;\n const params = sender.getParameters();\n if (!('encodings' in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(sender.setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n }).catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nexport function shimGetParameters(window) {\n if (!(typeof window === 'object' && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters =\n function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!('encodings' in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nexport function shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === 'object' && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n","/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nexport function shimGetDisplayMedia(window, preferredMediaSource) {\n if (window.navigator.mediaDevices &&\n 'getDisplayMedia' in window.navigator.mediaDevices) {\n return;\n }\n if (!(window.navigator.mediaDevices)) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n function getDisplayMedia(constraints) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException('getDisplayMedia without video ' +\n 'constraints is undefined');\n err.name = 'NotFoundError';\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = {mediaSource: preferredMediaSource};\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n'use strict';\nimport * as utils from '../utils';\n\nexport function shimLocalStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getLocalStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!('addStream' in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream.getAudioTracks().forEach(track => _addTrack.call(this, track,\n stream));\n stream.getVideoTracks().forEach(track => _addTrack.call(this, track,\n stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack =\n function addTrack(track, ...streams) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!('removeStream' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream =\n function removeStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach(sender => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nexport function shimRemoteStreamsAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n if (!('getRemoteStreams' in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!('onaddstream' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'onaddstream', {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener('addstream', this._onaddstream);\n this.removeEventListener('track', this._onaddstreampoly);\n }\n this.addEventListener('addstream', this._onaddstream = f);\n this.addEventListener('track', this._onaddstreampoly = (e) => {\n e.streams.forEach(stream => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n this.dispatchEvent(event);\n });\n });\n }\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener('track', this._onaddstreampoly = function(e) {\n e.streams.forEach(stream => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event('addstream');\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n });\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nexport function shimCallbacksAPI(window) {\n if (typeof window !== 'object' || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer =\n function createOffer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer =\n function createAnswer(successCallback, failureCallback) {\n const options = (arguments.length >= 2) ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function(description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function(description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function(candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nexport function shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (!navigator.getUserMedia && navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints)\n .then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nexport function shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({},\n constraints,\n {video: utils.compactObject(constraints.video)}\n );\n }\n\n return constraints;\n}\n\nexport function shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection =\n function RTCPeerConnection(pcConfig, pcConstraints) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty('urls') &&\n server.hasOwnProperty('url')) {\n utils.deprecated('RTCIceServer.url', 'RTCIceServer.urls');\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if ('generateCertificate' in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, 'generateCertificate', {\n get() {\n return OrigPeerConnection.generateCertificate;\n }\n });\n }\n}\n\nexport function shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (typeof window === 'object' && window.RTCTrackEvent &&\n 'receiver' in window.RTCTrackEvent.prototype &&\n !('transceiver' in window.RTCTrackEvent.prototype)) {\n Object.defineProperty(window.RTCTrackEvent.prototype, 'transceiver', {\n get() {\n return {receiver: this.receiver};\n }\n });\n }\n}\n\nexport function shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer =\n function createOffer(offerOptions) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveAudio =\n !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'audio');\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === 'sendrecv') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('sendonly');\n } else {\n audioTransceiver.direction = 'sendonly';\n }\n } else if (audioTransceiver.direction === 'recvonly') {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection('inactive');\n } else {\n audioTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver) {\n this.addTransceiver('audio', {direction: 'recvonly'});\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== 'undefined') {\n // support bit values\n offerOptions.offerToReceiveVideo =\n !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(transceiver =>\n transceiver.receiver.track.kind === 'video');\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === 'sendrecv') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('sendonly');\n } else {\n videoTransceiver.direction = 'sendonly';\n }\n } else if (videoTransceiver.direction === 'recvonly') {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection('inactive');\n } else {\n videoTransceiver.direction = 'inactive';\n }\n }\n } else if (offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver) {\n this.addTransceiver('video', {direction: 'recvonly'});\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nexport function shimAudioContext(window) {\n if (typeof window !== 'object' || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nconst SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(line => line.trim());\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n const parts = blob.split('\\nm=');\n return parts.map((part, index) => (index > 0 ?\n 'm=' + part : part).trim() + '\\r\\n');\n};\n\n// Returns the session description.\nSDPUtils.getDescription = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// Returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n const sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(line => line.indexOf(prefix) === 0);\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\n// Input can be prefixed with a=.\nSDPUtils.parseCandidate = function(line) {\n let parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n const candidate = {\n foundation: parts[0],\n component: {1: 'rtp', 2: 'rtcp'}[parts[1]] || parts[1],\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (let i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compatibility.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag. Don't overwrite.\n if (candidate[parts[i]] === undefined) {\n candidate[parts[i]] = parts[i + 1];\n }\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\n// This does not include the a= prefix!\nSDPUtils.writeCandidate = function(candidate) {\n const sdp = [];\n sdp.push(candidate.foundation);\n\n const component = candidate.component;\n if (component === 'rtp') {\n sdp.push(1);\n } else if (component === 'rtcp') {\n sdp.push(2);\n } else {\n sdp.push(component);\n }\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n const type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// Sample input:\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses a rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n let parts = line.substr(9).split(' ');\n const parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generates a rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n const channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses a extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1],\n };\n};\n\n// Generates an extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses a fmtp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n const parsed = {};\n let kv;\n const parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (let j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates a fmtp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n let line = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n const params = [];\n Object.keys(codec.parameters).forEach(param => {\n if (codec.parameters[param] !== undefined) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses a rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n const parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' '),\n };\n};\n\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n let lines = '';\n let pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(fb => {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses a RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n const sp = line.indexOf(' ');\n const parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n const colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\n// Parse a ssrc-group line (see RFC 5576). Sample input:\n// a=ssrc-group:semantics 12 34\nSDPUtils.parseSsrcGroup = function(line) {\n const parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(ssrc => parseInt(ssrc, 10)),\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// Returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n const mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\n// Parses a fingerprint line for DTLS-SRTP.\nSDPUtils.parseFingerprint = function(line) {\n const parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1].toUpperCase(), // the definition is upper-case in RFC 4572.\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n let sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(fp => {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n const parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n const parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES parameters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n const lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n const ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n const pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n let sdp = 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n if (params.iceLite) {\n sdp += 'a=ice-lite\\r\\n';\n }\n return sdp;\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n const description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n for (let i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n const pt = mline[i];\n const rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n const codec = SDPUtils.parseRtpMap(rtpmapline);\n const fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(line => {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n let sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(codec => {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(codec => {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n let maxptime = 0;\n caps.codecs.forEach(codec => {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(extension => {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n const encodingParameters = [];\n const description = SDPUtils.parseRtpParameters(mediaSection);\n const hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n const hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n const ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(parts => parts.attribute === 'cname');\n const primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n let secondarySsrc;\n\n const flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(line => {\n const parts = line.substr(17).split(' ');\n return parts.map(part => parseInt(part, 10));\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(codec => {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n let encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red',\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n let bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(params => {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n const rtcpParameters = {};\n\n // Gets the first SSRC. Note that with RTX there might be multiple\n // SSRCs.\n const remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(obj => obj.attribute === 'cname')[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n const rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n const mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\nSDPUtils.writeRtcpParameters = function(rtcpParameters) {\n let sdp = '';\n if (rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n if (rtcpParameters.mux) {\n sdp += 'a=rtcp-mux\\r\\n';\n }\n if (rtcpParameters.ssrc !== undefined && rtcpParameters.cname) {\n sdp += 'a=ssrc:' + rtcpParameters.ssrc +\n ' cname:' + rtcpParameters.cname + '\\r\\n';\n }\n return sdp;\n};\n\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n let parts;\n const spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n const planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(line => SDPUtils.parseSsrcMedia(line))\n .filter(msidParts => msidParts.attribute === 'msid');\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n const mline = SDPUtils.parseMLine(mediaSection);\n const maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n let maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n const sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize,\n };\n }\n const sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n const parts = sctpMapLines[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize,\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n let output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n',\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n',\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boiler plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n let sessionId;\n const version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n const user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n const lines = SDPUtils.splitLines(mediaSection);\n for (let i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n const lines = SDPUtils.splitLines(mediaSection);\n const parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' '),\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n const line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n const parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n const lines = SDPUtils.splitLines(blob);\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n'use strict';\n\nimport SDPUtils from 'sdp';\nimport * as utils from './utils';\n\nexport function shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (!window.RTCIceCandidate || (window.RTCIceCandidate && 'foundation' in\n window.RTCIceCandidate.prototype)) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (typeof args === 'object' && args.candidate &&\n args.candidate.indexOf('a=') === 0) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = SDPUtils.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(nativeCandidate,\n parsedCandidate);\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n utils.wrapPeerConnectionEvent(window, 'icecandidate', e => {\n if (e.candidate) {\n Object.defineProperty(e, 'candidate', {\n value: new window.RTCIceCandidate(e.candidate),\n writable: 'false'\n });\n }\n return e;\n });\n}\n\nexport function shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!('sctp' in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n }\n });\n }\n\n const sctpInDescription = function(description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = SDPUtils.splitSections(description.sdp);\n sections.shift();\n return sections.some(mediaSection => {\n const mLine = SDPUtils.parseMLine(mediaSection);\n return mLine && mLine.kind === 'application'\n && mLine.protocol.indexOf('SCTP') !== -1;\n });\n };\n\n const getRemoteFirefoxVersion = function(description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function(remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === 'firefox') {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize =\n browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function(description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === 'firefox'\n && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = SDPUtils.matchPrefix(description.sdp,\n 'a=max-message-size:');\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === 'firefox' &&\n remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 76) {\n const {sdpSemantics} = this.getConfiguration();\n if (sdpSemantics === 'plan-b') {\n Object.defineProperty(this, 'sctp', {\n get() {\n return typeof this._sctp === 'undefined' ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, 'maxMessageSize', {\n get() {\n return maxMessageSize;\n }\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nexport function shimSendThrowTypeError(window) {\n if (!(window.RTCPeerConnection &&\n 'createDataChannel' in window.RTCPeerConnection.prototype)) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (dc.readyState === 'open' &&\n pc.sctp && length > pc.sctp.maxMessageSize) {\n throw new TypeError('Message too large (can send a maximum of ' +\n pc.sctp.maxMessageSize + ' bytes)');\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n utils.wrapPeerConnectionEvent(window, 'datachannel', e => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nexport function shimConnectionState(window) {\n if (!window.RTCPeerConnection ||\n 'connectionState' in window.RTCPeerConnection.prototype) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, 'connectionState', {\n get() {\n return {\n completed: 'connected',\n checking: 'connecting'\n }[this.iceConnectionState] || this.iceConnectionState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(proto, 'onconnectionstatechange', {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener('connectionstatechange',\n this._onconnectionstatechange);\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener('connectionstatechange',\n this._onconnectionstatechange = cb);\n }\n },\n enumerable: true,\n configurable: true\n });\n\n ['setLocalDescription', 'setRemoteDescription'].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function() {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = e => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event('connectionstatechange', e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener('iceconnectionstatechange',\n this._connectionstatechangepoly);\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nexport function removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === 'chrome' && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === 'safari' && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (desc && desc.sdp && desc.sdp.indexOf('\\na=extmap-allow-mixed') !== -1) {\n const sdp = desc.sdp.split('\\n').filter((line) => {\n return line.trim() !== 'a=extmap-allow-mixed';\n }).join('\\n');\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nexport function shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (((browserDetails.browser === 'chrome' && browserDetails.version < 78)\n || (browserDetails.browser === 'firefox'\n && browserDetails.version < 68)\n || (browserDetails.browser === 'safari'))\n && arguments[0] && arguments[0].candidate === '') {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\n// Note: Make sure to call this ahead of APIs that modify\n// setLocalDescription.length\nexport function shimParameterlessSetLocalDescription(window, browserDetails) {\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n if (!nativeSetLocalDescription || nativeSetLocalDescription.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n let desc = arguments[0] || {};\n if (typeof desc !== 'object' || (desc.type && desc.sdp)) {\n return nativeSetLocalDescription.apply(this, arguments);\n }\n // The remaining steps should technically happen when SLD comes off the\n // RTCPeerConnection's operations chain (not ahead of going on it), but\n // this is too difficult to shim. Instead, this shim only covers the\n // common case where the operations chain is empty. This is imperfect, but\n // should cover many cases. Rationale: Even if we can't reduce the glare\n // window to zero on imperfect implementations, there's value in tapping\n // into the perfect negotiation pattern that several browsers support.\n desc = {type: desc.type, sdp: desc.sdp};\n if (!desc.type) {\n switch (this.signalingState) {\n case 'stable':\n case 'have-local-offer':\n case 'have-remote-pranswer':\n desc.type = 'offer';\n break;\n default:\n desc.type = 'answer';\n break;\n }\n }\n if (desc.sdp || (desc.type !== 'offer' && desc.type !== 'answer')) {\n return nativeSetLocalDescription.apply(this, [desc]);\n }\n const func = desc.type === 'offer' ? this.createOffer : this.createAnswer;\n return func.apply(this)\n .then(d => nativeSetLocalDescription.apply(this, [d]));\n };\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nimport * as utils from './utils';\n\n // Browser shims.\nimport * as chromeShim from './chrome/chrome_shim';\nimport * as firefoxShim from './firefox/firefox_shim';\nimport * as safariShim from './safari/safari_shim';\nimport * as commonShim from './common_shim';\nimport * as sdp from 'sdp';\n\n// Shimming starts here.\nexport function adapterFactory({window} = {}, options = {\n shimChrome: true,\n shimFirefox: true,\n shimSafari: true,\n}) {\n // Utils.\n const logging = utils.log;\n const browserDetails = utils.detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: utils.extractVersion,\n disableLog: utils.disableLog,\n disableWarnings: utils.disableWarnings,\n // Expose sdp as a convenience. For production apps include directly.\n sdp,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case 'chrome':\n if (!chromeShim || !chromeShim.shimPeerConnection ||\n !options.shimChrome) {\n logging('Chrome shim is not included in this adapter release.');\n return adapter;\n }\n if (browserDetails.version === null) {\n logging('Chrome shim can not determine version, not shimming.');\n return adapter;\n }\n logging('adapter.js shimming chrome.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n chromeShim.shimGetUserMedia(window, browserDetails);\n chromeShim.shimMediaStream(window, browserDetails);\n chromeShim.shimPeerConnection(window, browserDetails);\n chromeShim.shimOnTrack(window, browserDetails);\n chromeShim.shimAddTrackRemoveTrack(window, browserDetails);\n chromeShim.shimGetSendersWithDtmf(window, browserDetails);\n chromeShim.shimGetStats(window, browserDetails);\n chromeShim.shimSenderReceiverGetStats(window, browserDetails);\n chromeShim.fixNegotiationNeeded(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n case 'firefox':\n if (!firefoxShim || !firefoxShim.shimPeerConnection ||\n !options.shimFirefox) {\n logging('Firefox shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming firefox.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n firefoxShim.shimGetUserMedia(window, browserDetails);\n firefoxShim.shimPeerConnection(window, browserDetails);\n firefoxShim.shimOnTrack(window, browserDetails);\n firefoxShim.shimRemoveStream(window, browserDetails);\n firefoxShim.shimSenderGetStats(window, browserDetails);\n firefoxShim.shimReceiverGetStats(window, browserDetails);\n firefoxShim.shimRTCDataChannel(window, browserDetails);\n firefoxShim.shimAddTransceiver(window, browserDetails);\n firefoxShim.shimGetParameters(window, browserDetails);\n firefoxShim.shimCreateOffer(window, browserDetails);\n firefoxShim.shimCreateAnswer(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimConnectionState(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n break;\n case 'safari':\n if (!safariShim || !options.shimSafari) {\n logging('Safari shim is not included in this adapter release.');\n return adapter;\n }\n logging('adapter.js shimming safari.');\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n commonShim.shimAddIceCandidateNullOrEmpty(window, browserDetails);\n commonShim.shimParameterlessSetLocalDescription(window, browserDetails);\n\n safariShim.shimRTCIceServerUrls(window, browserDetails);\n safariShim.shimCreateOfferLegacy(window, browserDetails);\n safariShim.shimCallbacksAPI(window, browserDetails);\n safariShim.shimLocalStreamsAPI(window, browserDetails);\n safariShim.shimRemoteStreamsAPI(window, browserDetails);\n safariShim.shimTrackEventTransceiver(window, browserDetails);\n safariShim.shimGetUserMedia(window, browserDetails);\n safariShim.shimAudioContext(window, browserDetails);\n\n commonShim.shimRTCIceCandidate(window, browserDetails);\n commonShim.shimMaxMessageSize(window, browserDetails);\n commonShim.shimSendThrowTypeError(window, browserDetails);\n commonShim.removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging('Unsupported browser!');\n break;\n }\n\n return adapter;\n}\n","/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n/* eslint-env node */\n\n'use strict';\n\nimport {adapterFactory} from './adapter_factory.js';\n\nconst adapter =\n adapterFactory({window: typeof window === 'undefined' ? undefined : window});\nexport default adapter;\n",null,null,null,null,null,null,null],"names":["LogLevel","root","definition","this","noop","undefinedType","isIE","window","navigator","test","userAgent","logMethods","bindMethod","obj","methodName","method","bind","Function","prototype","call","e","apply","arguments","traceForIE","console","log","trace","realMethod","undefined","replaceLoggingMethods","level","loggerName","i","length","methodFactory","debug","enableLoggingWhenConsoleArrives","defaultMethodFactory","Logger","name","defaultLevel","factory","self","currentLevel","storageKey","getPersistedLevel","storedLevel","localStorage","ignore","cookie","document","location","indexOf","encodeURIComponent","exec","slice","levels","TRACE","DEBUG","INFO","WARN","ERROR","SILENT","getLevel","setLevel","persist","toUpperCase","persistLevelIfPossible","levelNum","levelName","setDefaultLevel","resetLevel","removeItem","clearPersistedLevel","enableAll","disableAll","initialLevel","defaultLogger","_loggersByName","getLogger","TypeError","logger","_log","noConflict","getLoggers","module","exports","livekitLogger","setLogLevel","info","long","Long","wasm","WebAssembly","Instance","Module","Uint8Array","low","high","unsigned","isLong","__isLong__","Object","defineProperty","value","INT_CACHE","UINT_CACHE","fromInt","cachedObj","cache","fromBits","fromNumber","isNaN","UZERO","ZERO","TWO_PWR_64_DBL","MAX_UNSIGNED_VALUE","TWO_PWR_63_DBL","MIN_VALUE","MAX_VALUE","neg","TWO_PWR_32_DBL","lowBits","highBits","pow_dbl","Math","pow","fromString","str","radix","Error","RangeError","p","substring","radixToPower","result","size","min","parseInt","power","mul","add","fromValue","val","TWO_PWR_16_DBL","TWO_PWR_24","ONE","UONE","NEG_ONE","LongPrototype","toInt","toNumber","toString","isZero","isNegative","eq","radixLong","div","rem1","sub","rem","remDiv","digits","getHighBits","getHighBitsUnsigned","getLowBits","getLowBitsUnsigned","getNumBitsAbs","bit","eqz","isPositive","isOdd","isEven","equals","other","notEquals","neq","ne","lessThan","comp","lt","lessThanOrEqual","lte","le","greaterThan","gt","greaterThanOrEqual","gte","ge","compare","thisNeg","otherNeg","negate","not","addend","a48","a32","a16","a00","b48","b32","b16","c48","c32","c16","c00","subtract","subtrahend","multiply","multiplier","get_high","b00","divide","divisor","approx","res","div_u","div_s","toUnsigned","shru","shr","shl","max","floor","approxRem","log2","ceil","LN2","delta","approxRes","modulo","rem_u","rem_s","mod","and","or","xor","shiftLeft","numBits","shiftRight","shiftRightUnsigned","shr_u","toSigned","toBytes","toBytesLE","toBytesBE","hi","lo","fromBytes","bytes","fromBytesLE","fromBytesBE","aspromise","fn","ctx","params","Array","offset","index","pending","Promise","resolve","reject","err","base64","string","n","charAt","b64","s64","encode","buffer","start","end","parts","t","chunk","j","b","push","String","fromCharCode","join","invalidEncoding","decode","c","charCodeAt","eventemitter","EventEmitter","_listeners","on","evt","EventEmitter$1","off","listeners","splice","emit","args","float","Float32Array","f32","f8b","writeFloat_f32_cpy","buf","pos","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","writeFloat_ieee754","writeUint","sign","round","exponent","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","f64","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","writeDouble_ieee754","off0","off1","readDouble_ieee754","inquire_1","moduleName","eval","utf8","len","read","write","c1","c2","pool_1","alloc","SIZE","MAX","slab","longbits","LongBits","util","require$$0","zero","zzEncode","zzDecode","zeroHash","from","isString","LongBits$2","toLong","Boolean","fromHash","hash","toHash","mask","part0","part1","part2","merge","dst","src","ifNotSet","keys","newError","CustomError","message","properties","get","captureStackTrace","stack","create","constructor","asPromise","require$$1","require$$2","require$$3","inquire","require$$4","require$$5","pool","require$$6","require$$7","isNode","global","process","versions","node","emptyArray","freeze","emptyObject","isInteger","Number","isFinite","isObject","isset","isSet","prop","hasOwnProperty","isArray","Buffer","utf8Write","_Buffer_from","_Buffer_allocUnsafe","newBuffer","sizeOrArray","dcodeIO","key2Re","key32Re","key64Re","longToHash","longFromHash","bits","lcFirst","toLowerCase","ProtocolError","oneOfGetter","fieldNames","fieldMap","oneOfSetter","toJSONOptions","longs","enums","json","_configure","encoding","allocUnsafe","Buffer_allocUnsafe","BufferWriter","writer","Writer","Op","next","State","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","subarray","_push","Writer$1","uint32","int32","sint32","uint64","int64","sint64","bool","fixed32","sfixed32","fixed64","sfixed64","double","writeBytes","set","fork","reset","ldelim","finish","BufferWriter_","writer_buffer","writeStringBuffer","writeBytesBuffer","copy","byteLength","BufferReader","reader","Reader","indexOutOfRange","writeLength","create_array","isBuffer","readLongVarint","readFixed32_end","readFixed64","Reader$1","_slice","skip","skipType","wireType","BufferReader_","reader_buffer","utf8Slice","service","Service","rpcImpl","requestDelimited","responseDelimited","rpcCall","requestCtor","responseCtor","request","callback","response","setTimeout","endedByRPC","roots","protobuf","configure","build","rpc","TrackType","TrackSource","VideoQuality","ConnectionQuality","ClientConfigSetting","ParticipantInfo_State","DataPacket_Kind","ClientInfo_SDK","minimal","globalThis","trackTypeFromJSON","object","AUDIO","VIDEO","DATA","UNRECOGNIZED","trackTypeToJSON","trackSourceFromJSON","UNKNOWN","CAMERA","MICROPHONE","SCREEN_SHARE","SCREEN_SHARE_AUDIO","trackSourceToJSON","videoQualityFromJSON","LOW","MEDIUM","HIGH","OFF","videoQualityToJSON","connectionQualityFromJSON","POOR","GOOD","EXCELLENT","clientConfigSettingFromJSON","UNSET","DISABLED","ENABLED","clientConfigSettingToJSON","participantInfo_StateFromJSON","JOINING","JOINED","ACTIVE","DISCONNECTED","dataPacket_KindFromJSON","RELIABLE","LOSSY","clientInfo_SDKFromJSON","JS","SWIFT","ANDROID","FLUTTER","GO","UNITY","_m0","Room","sid","emptyTimeout","maxParticipants","creationTime","turnPassword","v","enabledCodecs","Codec","metadata","numParticipants","activeRecording","input","tag","longToNumber","fromJSON","map","toJSON","fromPartial","_a","_b","_c","_d","_e","_f","_g","_h","_j","_k","mime","fmtpLine","ParticipantPermission","canSubscribe","canPublish","canPublishData","hidden","recorder","ParticipantInfo","identity","state","tracks","TrackInfo","joinedAt","version","permission","region","participantInfo_StateToJSON","type","muted","width","height","simulcast","disableDtx","source","layers","VideoLayer","mimeType","mid","_l","_m","quality","bitrate","ssrc","DataPacket","kind","user","UserPacket","speaker","ActiveSpeakerUpdate","dataPacket_KindToJSON","speakers","SpeakerInfo","active","createBaseUserPacket","participantSid","payload","destinationSids","bytesFromBase64","arr","bin","byte","btoa","base64FromBytes","ParticipantTracks","trackSids","ClientInfo","sdk","protocol","os","osVersion","deviceModel","browser","browserVersion","address","clientInfo_SDKToJSON","ClientConfiguration","video","VideoConfiguration","screen","resumeConnection","hardwareEncoder","atob","MAX_SAFE_INTEGER","SignalTarget","StreamState","signalTargetFromJSON","PUBLISHER","SUBSCRIBER","signalTargetToJSON","streamStateFromJSON","PAUSED","SignalRequest","offer","SessionDescription","answer","trickle","TrickleRequest","addTrack","AddTrackRequest","mute","MuteTrackRequest","subscription","UpdateSubscription","trackSetting","UpdateTrackSettings","leave","LeaveRequest","updateLayers","UpdateVideoLayers","subscriptionPermission","SubscriptionPermission","syncState","SyncState","simulate","SimulateScenario","SignalResponse","JoinResponse","update","ParticipantUpdate","trackPublished","TrackPublishedResponse","speakersChanged","SpeakersChanged","roomUpdate","RoomUpdate","connectionQuality","ConnectionQualityUpdate","streamStateUpdate","StreamStateUpdate","subscribedQualityUpdate","SubscribedQualityUpdate","subscriptionPermissionUpdate","SubscriptionPermissionUpdate","refreshToken","trackUnpublished","TrackUnpublishedResponse","cid","candidateInit","target","room","participant","otherParticipants","serverVersion","iceServers","ICEServer","subscriberPrimary","alternativeUrl","clientConfiguration","serverRegion","track","trackSid","sdp","participants","subscribe","participantTracks","disabled","canReconnect","urls","username","credential","ConnectionQualityInfo","score","connectionQualityToJSON","updates","StreamStateInfo","streamStateToJSON","streamStates","SubscribedQuality","enabled","subscribedQualities","TrackPermission","allTracks","allParticipants","trackPermissions","allowed","publishTracks","dataChannels","DataChannelInfo","label","id","speakerUpdate","nodeFailure","migration","serverLeave","LivekitError","code","ConnectionError","super","TrackInvalidError","UnsupportedServer","UnexpectedConnectionState","MediaDeviceFailure","RoomEvent","ParticipantEvent","EngineEvent","TrackEvent","getFailure","error","NotFound","PermissionDenied","DeviceInUse","Other","monitorFrequency","computeBitrate","currentStats","prevStats","bytesNow","bytesPrev","bytesReceived","bytesSent","timestamp","defaultId","DeviceManager","static","instance","getDevices","requestPermissions","devices","mediaDevices","enumerateDevices","some","device","noLabel","isRelevant","permissionsToAcquire","audio","getUserMedia","filter","deviceId","defaultDevice","groupId","temp","async","find","d","mediaDeviceKinds","sleep","duration","isFireFox","isWeb","isMobile","roDispatchCallback","entries","entry","handleResize","ioDispatchCallback","handleVisibilityChanged","resizeObserver","getResizeObserver","ResizeObserver","intersectionObserver","getIntersectionObserver","IntersectionObserver","rootMargin","emptyMediaStreamTrack","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","init","eventsModule","events","once","emitter","errorListener","removeListener","resolver","eventTargetAgnosticAddListener","handler","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","that","_addListener","prepend","m","existing","warning","newListener","unshift","warned","w","count","warn","onceWrapper","fired","wrapFn","_onceWrap","wrapped","unwrap","evlistener","ret","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","arg","removeEventListener","enumerable","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","context","addListener","prependListener","prependOnceListener","list","position","originalListener","shift","pop","spliceOne","removeAllListeners","key","rawListeners","eventNames","recycledElements","Track","mediaTrack","attachedElements","isMuted","_currentBitrate","appVisibilityChangedListener","handleAppVisibilityChanged","mediaStreamTrack","Source","Unknown","isInBackground","visibilityState","currentBitrate","attach","element","elementType","Kind","Video","forEach","parentElement","createElement","includes","attachToElement","HTMLAudioElement","play","then","AudioPlaybackStarted","catch","AudioPlaybackFailed","ElementAttached","detach","detachTrack","idx","recycleElement","ElementDetached","detached","elm","stop","enable","disable","shouldCache","pause","mediaStream","existingTracks","srcObject","MediaStream","getAudioTracks","getVideoTracks","et","removeTrack","HTMLVideoElement","autoplay","playsInline","getTracks","kindToProto","k","Audio","kindFromProto","sourceToProto","s","Camera","Microphone","ScreenShare","ScreenShareAudio","sourceFromProto","streamStateFromProto","ProtoStreamState","Active","Paused","LocalTrack","constraints","_isUpstreamPaused","handleEnded","reacquireTrack","Ended","getConstraints","wasMuted","dimensions","getSettings","isUpstreamPaused","getInstance","normalizeDeviceId","setTrackMuted","replaceTrack","sender","el","restart","streamConstraints","newTrack","Muted","Unmuted","needsReAcquisition","readyState","UpstreamPaused","canvas","emptyStream","captureStream","getEmptyMediaStreamTrack","UpstreamResumed","mergeDefaultOptions","options","audioDefaults","videoDefaults","opts","mergeObjectWithoutOverwriting","mainObject","objectToMerge","constraintsForOptions","videoOptions","resolution","getNewAudioContext","AudioContext","webkitAudioContext","LocalAudioTrack","stopOnMute","monitorSender","stats","getSenderStats","checkForSilence","setDeviceId","restartTrack","unmute","startMonitor","audioStats","getStats","streamId","packetsSent","packetsLost","roundTripTime","jitter","trackIsSilent","timeOffset","analyser","createAnalyser","fftSize","bufferLength","frequencyBinCount","dataArray","createMediaStreamSource","connect","getByteTimeDomainData","someNoise","sample","close","detectSilence","AudioSilenceDetected","LocalVideoTrack","statsMap","Map","rid","totalBitrate","prev","isSimulcast","getParameters","encodings","signalClient","items","vs","frameHeight","frameWidth","firCount","pliCount","nackCount","framesSent","retransmittedPacketsSent","qualityLimitationReason","qualityLimitationResolutionChanges","r","remoteId","setPublishingQuality","maxQuality","qualities","q","setPublishingLayers","hasChanged","videoQualityForRid","subscribedQuality","scaleResolutionDownBy","maxBitrate","maxFrameRate","setParameters","RemoteTrack","streamState","setMuted","setMediaStream","stream","onremovetrack","monitorReceiver","RemoteAudioTrack","getReceiverStats","elementVolume","setVolume","volume","getVolume","receiverStats","concealedSamples","concealmentEvents","silentConcealedSamples","silentConcealmentEvents","totalAudioEnergy","totalSamplesDuration","debounce","func","waitMilliseconds","timeoutId","isImmediate","maxWait","lastInvokeTime","Date","now","promises","nextInvokeTimeout","timeSinceLastInvocation","debouncedFunction","shouldCallNow","clearTimeout","cancel","reason","RemoteVideoTrack","adaptiveStreamSettings","elementInfos","isIntersecting","elementInfo","visible","visibilityChangedAt","updateVisibility","debouncedHandleResize","updateDimensions","isAdaptiveStream","observe","detachedElements","stopObservingElement","framesDecoded","framesDropped","framesReceived","packetsReceived","unobserve","lastVisibilityChange","reduce","isVisible","lastVisible","VisibilityChanged","maxWidth","maxHeight","pixelDensity","pixelDensityValue","devicePixelRatio","currentElementWidth","clientWidth","currentElementHeight","clientHeight","lastDimensions","VideoDimensionsChanged","TrackPublication","metadataMuted","handleMuted","handleUnmuted","trackName","setTrack","isEnabled","isSubscribed","audioTrack","videoTrack","updateInfo","simulcasted","trackInfo","SubscriptionStatus","LocalTrackPublication","ti","handleTrackEnded","pauseUpstream","resumeUpstream","VideoPreset","maxFramerate","frameRate","aspectRatio","AudioPresets","telephone","speech","music","VideoPresets","h90","h180","h216","h360","h540","h720","h1080","h1440","h2160","qvga","vga","qhd","hd","fhd","VideoPresets43","h120","h240","h480","ScreenSharePresets","h360fps3","h720fps5","h720fps15","h1080fps15","h1080fps30","hd_8","hd_15","fhd_15","fhd_30","Participant","audioLevel","isSpeaking","_connectionQuality","audioTracks","videoTracks","values","getTrack","pub","getTrackByName","isCameraEnabled","isMicrophoneEnabled","isScreenShareEnabled","participantInfo","setMetadata","setPermissions","md","changed","prevMetadata","MetadataChanged","ParticipantMetadataChanged","permissions","setIsSpeaking","speaking","lastSpokeAt","IsSpeakingChanged","setConnectionQuality","prevQuality","ProtoQuality","Excellent","Good","Poor","qualityFromProto","ConnectionQualityChanged","addTrackPublication","publication","TrackMuted","TrackUnmuted","mediaTrackToLocalTrack","presets169","presets43","presetsScreenShare","defaultSimulcastPresets169","defaultSimulcastPresets43","videoRids","computeVideoEncodings","isScreenShare","videoEncoding","screenShareEncoding","useSimulcast","presets","aspect","abs","presetsForResolution","preset","determineAppropriateEncoding","original","midPreset","sortPresets","screenShareSimulcastLayers","defaultSimulcastLayers","videoSimulcastLayers","lowPreset","encodingsFromPresets","computeDefaultScreenShareSimulcastPresets","fromPreset","fps","sort","a","aEnc","bEnc","RemoteTrackPublication","_allowed","currentVideoQuality","handleVisibilityChange","emitTrackUpdate","handleVideoDimensionsChange","videoDimensions","setSubscribed","subscribed","subscriptionStatus","Subscribed","NotAllowed","Unsubscribed","setEnabled","isManualOperationAllowed","setVideoQuality","setVideoDimensions","videoQuality","settings","UpdateSettings","RemoteParticipant","pi","rp","sendUpdateTrackSettings","pt","sendUpdateSubscription","TrackUnsubscribed","audioPublication","addSubscribedMediaTrack","triesLeft","getTrackPublication","startsWith","TrackSubscriptionFailed","TrackSubscribed","hasMetadata","alreadyHasMetadata","validTracks","newTracks","TrackPublished","has","unpublishTrack","sendUnpublish","delete","TrackUnpublished","event","_len","_key","LocalParticipant","engine","pendingPublishing","Set","onTrackUnmuted","onTrackMuted","updateMuteStatus","onTrackUpstreamPaused","onTrackUpstreamResumed","handleSubscribedQualityUpdate","roomOptions","dynacast","handleLocalTrackUnpublished","unpublished","onTrackUnpublish","client","onRemoteMuteChanged","onSubscribedQualityUpdate","onLocalTrackUnpublished","lastCameraError","cameraError","lastMicrophoneError","microphoneError","setCameraEnabled","setTrackEnabled","setMicrophoneEnabled","setScreenShareEnabled","prevPermissions","ParticipantPermissionsChanged","localTrack","createTracks","createScreenTracks","publishTrack","MediaDevicesError","all","audioCaptureDefaults","videoCaptureDefaults","isAudio","trackConstraints","conOrBool","videoConstraints","getDisplayMedia","screenVideo","localTracks","screenAudio","_objectSpread","publishDefaults","MediaStreamTrack","existingPublication","stopMicTrackOnMute","req","dtx","scale","videoLayersFromEncodings","audioBitrate","publisher","transceiverInit","direction","sendEncodings","transceiver","pc","addTransceiver","negotiate","videoCodec","setPreferredCodec","LocalTrackPublished","stopOnUnpublish","getPublicationForTrack","stopLocalTrackOnUnpublish","getSenders","LocalTrackUnpublished","unpublishTracks","publications","data","destination","dest","packet","sendDataPacket","setTrackSubscriptionPermissions","allParticipantsAllowed","participantTrackPermissions","sendUpdateSubscriptionPermissions","perms","allowAll","allowedTrackSids","trackPermissionToProto","RTCRtpSender","cap","getCapabilities","selected","codecs","codec","matchesVideoCodec","sdpFmtpLine","setCodecPreferences","publishedTracksInfo","infos","dataChannelsInfo","getInfo","dc","dataChannelForKind","Queue","queue","running","enqueue","cb","dequeue","isRunning","isEmpty","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","match","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","configurable","disableLog","disableWarnings","deprecated","oldMethod","newMethod","detectBrowser","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","supportsUnifiedPlan","RTCRtpTransceiver","compactObject","accumulator","isObj","isEmptyObject","assign","walkStats","base","resultSet","endsWith","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","trackId","logging","utils","shimGetUserMedia","browserDetails","constraintsToChrome_","mandatory","optional","cc","ideal","exact","oldname_","prefix","oc","mix","advanced","shimConstraints_","JSON","parse","stringify","remap","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","dev","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraint","constraintName","onSuccess","onError","origGetUserMedia","cs","DOMException","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","getReceivers","Event","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","addStream","origRemoveStream","removeStream","origGetSenders","senders","shimGetStats","origGetStats","selector","onSucc","onErr","fixChromeStats_","standardReport","report","standardStats","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","replaceInternalStreamId","description","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","signalingState","alreadyExists","oldStream","nativeMethod","methodObj","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","streamid","shimPeerConnection","RTCIceCandidate","fixNegotiationNeeded","getConfiguration","sdpSemantics","getSourceId","sourceId","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","nativeGetUserMedia","nativeGetSettings","applyConstraints","nativeApplyConstraints","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","inboundrtp","outboundrtp","candidatepair","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","setParametersPromises","initParameters","shouldPerformCheck","encodingParam","parseFloat","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","createOffer","finally","shimCreateAnswer","origCreateAnswer","createAnswer","preferredMediaSource","mediaSource","shimLocalStreamsAPI","_localStreams","_addTrack","shimRemoteStreamsAPI","getRemoteStreams","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","addIceCandidate","successCallback","failureCallback","promise","withCallback","candidate","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","server","url","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","offerOptions","offerToReceiveAudio","audioTransceiver","getTransceivers","setDirection","offerToReceiveVideo","videoTransceiver","shimAudioContext","SDPUtils","random","substr","localCName","generateIdentifier","splitLines","blob","trim","split","line","splitSections","part","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","foundation","component","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","preferredPayloadType","parseExtmap","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","iceLite","parseRtpParameters","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","writeRtcpParameters","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","getDirection","getKind","isRejected","parseOLine","sessionVersion","netType","addressType","isValidSDP","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","sdpMid","sdpMLineIndex","writable","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","isFirefox","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","origDataChannelSend","send","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","completed","checking","iceConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","connectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","shimParameterlessSetLocalDescription","nativeSetLocalDescription","shimChrome","shimFirefox","shimSafari","adapter","commonShim","chromeShim","browserShim","firefoxShim","safariShim","adapterFactory","passThroughQueueSignals","SignalClient","useJSON","isConnected","isReconnecting","requestQueue","token","autoSubscribe","publishOnly","adaptiveStream","reconnect","clientInfo","URLSearchParams","createConnectionParams","ws","WebSocket","binaryType","onerror","handleWSError","ev","resp","fetch","ok","msg","text","onopen","onmessage","ArrayBuffer","signalLatency","handleSignalResponse","onclose","onClose","sendOffer","sendRequest","toProtoSessionDescription","sendAnswer","sendIceCandidate","sendMuteTrack","sendAddTrack","sendSyncState","sync","sendUpdateVideoLayers","sendSimulateScenario","scenario","sendLeave","canQueue","canPass","canPassThroughQueue","sd","fromProtoSessionDescription","onAnswer","onOffer","onTrickle","onParticipantUpdate","onLocalTrackPublished","onSpeakersChanged","onLeave","onRoomUpdate","onConnectionQuality","onStreamStateUpdate","onSubscriptionPermissionUpdate","onTokenRefresh","setReconnected","run","rsd","PCTransport","config","pendingCandidates","restartingIce","renegotiate","createAndSendOffer","isICEConnected","remoteDescription","iceRestart","currentSD","lossyDataChannel","reliableDataChannel","maxICEConnectTimeout","PCState","RTCEngine","rtcConfig","pcState","New","isClosed","pendingTrackResolvers","hasPublished","reconnectAttempts","reconnectStart","fullReconnectOnNext","handleDataChannel","_ref","reliableDCSub","lossyDCSub","handleDataMessage","Blob","arrayBuffer","dp","ActiveSpeakersUpdate","DataPacketReceived","handleDataError","channelKind","currentTarget","maxRetransmits","ErrorEvent","handleDisconnect","connection","delay","restartConnection","recoverable","SignalReconnectError","maxReconnectRetries","Disconnected","signalOpts","joinResponse","subscriber","dataSubscriberReadyState","connectedServerAddress","connectedServerAddr","rtcIceServers","iceServer","rtcIceServer","continualGatheringPolicy","TransportsCreated","onicecandidate","primaryPC","ondatachannel","onconnectionstatechange","getConnectedAddress","shouldEmit","Connected","ontrack","MediaTrackAdded","onaddstream","lossyDC","ordered","reliableDC","RTCSdpType","Restarting","waitForPCConnected","Restarted","Resuming","SignalResumed","Resumed","startTime","Reconnecting","ensurePublisherConnected","targetChannel","endTime","getTime","selectedCandidatePairId","candidatePairs","candidates","selectedID","remoteCandidateId","autoGainControl","channelCount","echoCancellation","noiseSuppression","RoomState","_this","activeSpeakers","audioEnabled","createEngine","acquireAudioContext","connOptions","localParticipant","getOrCreateParticipant","StateChanged","connectTimeout","onBeforeUnload","handleDeviceChange","disconnect","stopTracks","handleRestarting","handleParticipantDisconnected","handleRestarted","Reconnected","handleParticipantUpdates","localPubs","participantInfos","remoteParticipant","isNewParticipant","ParticipantConnected","handleActiveSpeakersUpdate","seenSids","ActiveSpeakersChanged","handleSpeakersChanged","speakerUpdates","lastSpeakers","handleStreamStateUpdate","TrackStreamStateChanged","handleSubscriptionPermissionUpdate","TrackSubscriptionPermissionChanged","handleDataPacket","userPacket","DataReceived","handleAudioPlaybackStarted","canPlaybackAudio","AudioPlaybackStatusChanged","handleAudioPlaybackFailed","MediaDevicesChanged","handleRoomUpdate","RoomMetadataChanged","handleConnectionQualityUpdate","expSignalLatency","onTrackAdded","updateSubscriptions","getLocalDevices","getParticipantByIdentity","simulateScenario","elements","setSinkId","packed","unpackStreamId","participantId","shouldStopTracks","clear","audioContext","ParticipantDisconnected","createParticipant","fromParticipantInfo","trackPublication","localDescription","previousSdp","sendUnsub","createLocalTracks","autoManageVideo","logLevel","publishAudio","publishVideo","enableCameraAndMicrophone","errKind","audioErr","originalFactory","rawMethod","configLevel","needLog","silent"],"mappings":"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"}
|