@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 459 kB
Source Map (JSON)
{"version":3,"file":"protobuf.cjs","sources":["../../../../src/pullClient/protobuf/protobuf.js"],"sourcesContent":["/*!\n * protobuf.js v6.8.6 (c) 2016, daniel wirtz\n * compiled mon, 26 feb 2018 11:35:34 utc\n * licensed under the bsd-3-clause license\n * see: https://github.com/dcodeio/protobuf.js for details\n *\n * Modify a list for integration with Bitrix Framework:\n * - removed integration with RequireJS and AMD package builders;\n */\n(function(undefined){\"use strict\";(function prelude(modules, cache, entries) {\n\n // This is the prelude used to bundle protobuf.js for the browser. Wraps up the CommonJS\n // sources through a conflict-free require shim and is again wrapped within an iife that\n // provides a unified `global` and a minification-friendly `undefined` var plus a global\n // \"use strict\" directive so that minification can remove the directives of each module.\n\n function $require(name) {\n var $module = cache[name];\n if (!$module)\n modules[name][0].call($module = cache[name] = { exports: {} }, $require, $module, $module.exports);\n return $module.exports;\n }\n\n // Expose globally (__not__)\n var protobuf = $require(entries[0]);\n\n // Be nice to AMD\n /*/\n if (typeof define === \"function\" && define.amd)\n define([\"long\"], function(Long) {\n if (Long && Long.isLong) {\n protobuf.util.Long = Long;\n protobuf.configure();\n }\n return protobuf;\n });\n //*/\n\n // Be nice to CommonJS\n //*/\n if (typeof module === \"object\" && module && module.exports)\n module.exports = protobuf;\n //*/\n\n})/* end of prelude */({1:[function(require,module,exports){\n\"use strict\";\nmodule.exports = asPromise;\n\n/**\n * Callback as used by {@link util.asPromise}.\n * @typedef asPromiseCallback\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {...*} params Additional arguments\n * @returns {undefined}\n */\n\n/**\n * Returns a promise from a node-style callback function.\n * @memberof util\n * @param {asPromiseCallback} fn Function to call\n * @param {*} ctx Function context\n * @param {...*} params Function arguments\n * @returns {Promise<*>} Promisified function\n */\nfunction asPromise(fn, ctx/*, varargs */) {\n var params = new Array(arguments.length - 1),\n offset = 0,\n index = 2,\n pending = true;\n while (index < arguments.length)\n params[offset++] = arguments[index++];\n return new Promise(function executor(resolve, reject) {\n params[offset] = function callback(err/*, varargs */) {\n if (pending) {\n pending = false;\n if (err)\n reject(err);\n else {\n var params = new Array(arguments.length - 1),\n offset = 0;\n while (offset < params.length)\n params[offset++] = arguments[offset];\n resolve.apply(null, params);\n }\n }\n };\n try {\n fn.apply(ctx || null, params);\n } catch (err) {\n if (pending) {\n pending = false;\n reject(err);\n }\n }\n });\n}\n\n},{}],2:[function(require,module,exports){\n\"use strict\";\n\n/**\n * A minimal base64 implementation for number arrays.\n * @memberof util\n * @namespace\n */\nvar base64 = exports;\n\n/**\n * Calculates the byte length of a base64 encoded string.\n * @param {string} string Base64 encoded string\n * @returns {number} Byte length\n */\nbase64.length = function length(string) {\n var p = string.length;\n if (!p)\n return 0;\n var n = 0;\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\n ++n;\n return Math.ceil(string.length * 3) / 4 - n;\n};\n\n// Base64 encoding table\nvar b64 = new Array(64);\n\n// Base64 decoding table\nvar s64 = new Array(123);\n\n// 65..90, 97..122, 48..57, 43, 47\nfor (var i = 0; i < 64;)\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\n\n/**\n * Encodes a buffer to a base64 encoded string.\n * @param {Uint8Array} buffer Source buffer\n * @param {number} start Source start\n * @param {number} end Source end\n * @returns {string} Base64 encoded string\n */\nbase64.encode = function encode(buffer, start, end) {\n var parts = null,\n chunk = [];\n var i = 0, // output index\n j = 0, // goto index\n t; // temporary\n while (start < end) {\n var b = buffer[start++];\n switch (j) {\n case 0:\n chunk[i++] = b64[b >> 2];\n t = (b & 3) << 4;\n j = 1;\n break;\n case 1:\n chunk[i++] = b64[t | b >> 4];\n t = (b & 15) << 2;\n j = 2;\n break;\n case 2:\n chunk[i++] = b64[t | b >> 6];\n chunk[i++] = b64[b & 63];\n j = 0;\n break;\n }\n if (i > 8191) {\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\n i = 0;\n }\n }\n if (j) {\n chunk[i++] = b64[t];\n chunk[i++] = 61;\n if (j === 1)\n chunk[i++] = 61;\n }\n if (parts) {\n if (i)\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\n return parts.join(\"\");\n }\n return String.fromCharCode.apply(String, chunk.slice(0, i));\n};\n\nvar invalidEncoding = \"invalid encoding\";\n\n/**\n * Decodes a base64 encoded string to a buffer.\n * @param {string} string Source string\n * @param {Uint8Array} buffer Destination buffer\n * @param {number} offset Destination offset\n * @returns {number} Number of bytes written\n * @throws {Error} If encoding is invalid\n */\nbase64.decode = function decode(string, buffer, offset) {\n var start = offset;\n var j = 0, // goto index\n t; // temporary\n for (var i = 0; i < string.length;) {\n var c = string.charCodeAt(i++);\n if (c === 61 && j > 1)\n break;\n if ((c = s64[c]) === undefined)\n throw Error(invalidEncoding);\n switch (j) {\n case 0:\n t = c;\n j = 1;\n break;\n case 1:\n buffer[offset++] = t << 2 | (c & 48) >> 4;\n t = c;\n j = 2;\n break;\n case 2:\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\n t = c;\n j = 3;\n break;\n case 3:\n buffer[offset++] = (t & 3) << 6 | c;\n j = 0;\n break;\n }\n }\n if (j === 1)\n throw Error(invalidEncoding);\n return offset - start;\n};\n\n/**\n * Tests if the specified string appears to be base64 encoded.\n * @param {string} string String to test\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\n */\nbase64.test = function test(string) {\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\n};\n\n},{}],3:[function(require,module,exports){\n\"use strict\";\nmodule.exports = codegen;\n\n/**\n * Begins generating a function.\n * @memberof util\n * @param {string[]} functionParams Function parameter names\n * @param {string} [functionName] Function name if not anonymous\n * @returns {Codegen} Appender that appends code to the function's body\n */\nfunction codegen(functionParams, functionName) {\n\n /* istanbul ignore if */\n if (typeof functionParams === \"string\") {\n functionName = functionParams;\n functionParams = undefined;\n }\n\n var body = [];\n\n /**\n * Appends code to the function's body or finishes generation.\n * @typedef Codegen\n * @type {function}\n * @param {string|Object.<string,*>} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\n * @param {...*} [formatParams] Format parameters\n * @returns {Codegen|Function} Itself or the generated function if finished\n * @throws {Error} If format parameter counts do not match\n */\n\n function Codegen(formatStringOrScope) {\n // note that explicit array handling below makes this ~50% faster\n\n // finish the function\n if (typeof formatStringOrScope !== \"string\") {\n var source = toString();\n if (codegen.verbose)\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\n source = \"return \" + source;\n if (formatStringOrScope) {\n var scopeKeys = Object.keys(formatStringOrScope),\n scopeParams = new Array(scopeKeys.length + 1),\n scopeValues = new Array(scopeKeys.length),\n scopeOffset = 0;\n while (scopeOffset < scopeKeys.length) {\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\n }\n scopeParams[scopeOffset] = source;\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\n }\n return Function(source)(); // eslint-disable-line no-new-func\n }\n\n // otherwise append to body\n var formatParams = new Array(arguments.length - 1),\n formatOffset = 0;\n while (formatOffset < formatParams.length)\n formatParams[formatOffset] = arguments[++formatOffset];\n formatOffset = 0;\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\n var value = formatParams[formatOffset++];\n switch ($1) {\n case \"d\": case \"f\": return String(Number(value));\n case \"i\": return String(Math.floor(value));\n case \"j\": return JSON.stringify(value);\n case \"s\": return String(value);\n }\n return \"%\";\n });\n if (formatOffset !== formatParams.length)\n throw Error(\"parameter count mismatch\");\n body.push(formatStringOrScope);\n return Codegen;\n }\n\n function toString(functionNameOverride) {\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\n }\n\n Codegen.toString = toString;\n return Codegen;\n}\n\n/**\n * Begins generating a function.\n * @memberof util\n * @function codegen\n * @param {string} [functionName] Function name if not anonymous\n * @returns {Codegen} Appender that appends code to the function's body\n * @variation 2\n */\n\n/**\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\n * @name util.codegen.verbose\n * @type {boolean}\n */\ncodegen.verbose = false;\n\n},{}],4:[function(require,module,exports){\n\"use strict\";\nmodule.exports = EventEmitter;\n\n/**\n * Constructs a new event emitter instance.\n * @classdesc A minimal event emitter.\n * @memberof util\n * @constructor\n */\nfunction EventEmitter() {\n\n /**\n * Registered listeners.\n * @type {Object.<string,*>}\n * @private\n */\n this._listeners = {};\n}\n\n/**\n * Registers an event listener.\n * @param {string} evt Event name\n * @param {function} fn Listener\n * @param {*} [ctx] Listener context\n * @returns {util.EventEmitter} `this`\n */\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\n fn : fn,\n ctx : ctx || this\n });\n return this;\n};\n\n/**\n * Removes an event listener or any matching listeners if arguments are omitted.\n * @param {string} [evt] Event name. Removes all listeners if omitted.\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\n * @returns {util.EventEmitter} `this`\n */\nEventEmitter.prototype.off = function off(evt, fn) {\n if (evt === undefined)\n this._listeners = {};\n else {\n if (fn === undefined)\n this._listeners[evt] = [];\n else {\n var listeners = this._listeners[evt];\n for (var i = 0; i < listeners.length;)\n if (listeners[i].fn === fn)\n listeners.splice(i, 1);\n else\n ++i;\n }\n }\n return this;\n};\n\n/**\n * Emits an event by calling its listeners with the specified arguments.\n * @param {string} evt Event name\n * @param {...*} args Arguments\n * @returns {util.EventEmitter} `this`\n */\nEventEmitter.prototype.emit = function emit(evt) {\n var listeners = this._listeners[evt];\n if (listeners) {\n var args = [],\n i = 1;\n for (; i < arguments.length;)\n args.push(arguments[i++]);\n for (i = 0; i < listeners.length;)\n listeners[i].fn.apply(listeners[i++].ctx, args);\n }\n return this;\n};\n\n},{}],5:[function(require,module,exports){\n\"use strict\";\nmodule.exports = fetch;\n\nvar asPromise = require(1),\n inquire = require(7);\n\nvar fs = inquire(\"fs\");\n\n/**\n * Node-style callback as used by {@link util.fetch}.\n * @typedef FetchCallback\n * @type {function}\n * @param {?Error} error Error, if any, otherwise `null`\n * @param {string} [contents] File contents, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Options as used by {@link util.fetch}.\n * @typedef FetchOptions\n * @type {Object}\n * @property {boolean} [binary=false] Whether expecting a binary response\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\n */\n\n/**\n * Fetches the contents of a file.\n * @memberof util\n * @param {string} filename File path or url\n * @param {FetchOptions} options Fetch options\n * @param {FetchCallback} callback Callback function\n * @returns {undefined}\n */\nfunction fetch(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = {};\n } else if (!options)\n options = {};\n\n if (!callback)\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\n\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\n if (!options.xhr && fs && fs.readFile)\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\n return err && typeof XMLHttpRequest !== \"undefined\"\n ? fetch.xhr(filename, options, callback)\n : err\n ? callback(err)\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\n });\n\n // use the XHR version otherwise.\n return fetch.xhr(filename, options, callback);\n}\n\n/**\n * Fetches the contents of a file.\n * @name util.fetch\n * @function\n * @param {string} path File path or url\n * @param {FetchCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n\n/**\n * Fetches the contents of a file.\n * @name util.fetch\n * @function\n * @param {string} path File path or url\n * @param {FetchOptions} [options] Fetch options\n * @returns {Promise<string|Uint8Array>} Promise\n * @variation 3\n */\n\n/**/\nfetch.xhr = function fetch_xhr(filename, options, callback) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\n\n if (xhr.readyState !== 4)\n return undefined;\n\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\n // reliably distinguished from an actually empty file for security reasons. feel free\n // to send a pull request if you are aware of a solution.\n if (xhr.status !== 0 && xhr.status !== 200)\n return callback(Error(\"status \" + xhr.status));\n\n // if binary data is expected, make sure that some sort of array is returned, even if\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\n if (options.binary) {\n var buffer = xhr.response;\n if (!buffer) {\n buffer = [];\n for (var i = 0; i < xhr.responseText.length; ++i)\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\n }\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\n }\n return callback(null, xhr.responseText);\n };\n\n if (options.binary) {\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\n if (\"overrideMimeType\" in xhr)\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\n xhr.responseType = \"arraybuffer\";\n }\n\n xhr.open(\"GET\", filename);\n xhr.send();\n};\n\n},{\"1\":1,\"7\":7}],6:[function(require,module,exports){\n\"use strict\";\n\nmodule.exports = factory(factory);\n\n/**\n * Reads / writes floats / doubles from / to buffers.\n * @name util.float\n * @namespace\n */\n\n/**\n * Writes a 32 bit float to a buffer using little endian byte order.\n * @name util.float.writeFloatLE\n * @function\n * @param {number} val Value to write\n * @param {Uint8Array} buf Target buffer\n * @param {number} pos Target buffer offset\n * @returns {undefined}\n */\n\n/**\n * Writes a 32 bit float to a buffer using big endian byte order.\n * @name util.float.writeFloatBE\n * @function\n * @param {number} val Value to write\n * @param {Uint8Array} buf Target buffer\n * @param {number} pos Target buffer offset\n * @returns {undefined}\n */\n\n/**\n * Reads a 32 bit float from a buffer using little endian byte order.\n * @name util.float.readFloatLE\n * @function\n * @param {Uint8Array} buf Source buffer\n * @param {number} pos Source buffer offset\n * @returns {number} Value read\n */\n\n/**\n * Reads a 32 bit float from a buffer using big endian byte order.\n * @name util.float.readFloatBE\n * @function\n * @param {Uint8Array} buf Source buffer\n * @param {number} pos Source buffer offset\n * @returns {number} Value read\n */\n\n/**\n * Writes a 64 bit double to a buffer using little endian byte order.\n * @name util.float.writeDoubleLE\n * @function\n * @param {number} val Value to write\n * @param {Uint8Array} buf Target buffer\n * @param {number} pos Target buffer offset\n * @returns {undefined}\n */\n\n/**\n * Writes a 64 bit double to a buffer using big endian byte order.\n * @name util.float.writeDoubleBE\n * @function\n * @param {number} val Value to write\n * @param {Uint8Array} buf Target buffer\n * @param {number} pos Target buffer offset\n * @returns {undefined}\n */\n\n/**\n * Reads a 64 bit double from a buffer using little endian byte order.\n * @name util.float.readDoubleLE\n * @function\n * @param {Uint8Array} buf Source buffer\n * @param {number} pos Source buffer offset\n * @returns {number} Value read\n */\n\n/**\n * Reads a 64 bit double from a buffer using big endian byte order.\n * @name util.float.readDoubleBE\n * @function\n * @param {Uint8Array} buf Source buffer\n * @param {number} pos Source buffer offset\n * @returns {number} Value read\n */\n\n// Factory function for the purpose of node-based testing in modified global environments\nfunction factory(exports) {\n\n // float: typed array\n if (typeof Float32Array !== \"undefined\") (function() {\n\n var f32 = new Float32Array([ -0 ]),\n f8b = new Uint8Array(f32.buffer),\n le = f8b[3] === 128;\n\n function writeFloat_f32_cpy(val, buf, pos) {\n f32[0] = val;\n buf[pos ] = f8b[0];\n buf[pos + 1] = f8b[1];\n buf[pos + 2] = f8b[2];\n buf[pos + 3] = f8b[3];\n }\n\n function writeFloat_f32_rev(val, buf, pos) {\n f32[0] = val;\n buf[pos ] = f8b[3];\n buf[pos + 1] = f8b[2];\n buf[pos + 2] = f8b[1];\n buf[pos + 3] = f8b[0];\n }\n\n /* istanbul ignore next */\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\n /* istanbul ignore next */\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\n\n function readFloat_f32_cpy(buf, pos) {\n f8b[0] = buf[pos ];\n f8b[1] = buf[pos + 1];\n f8b[2] = buf[pos + 2];\n f8b[3] = buf[pos + 3];\n return f32[0];\n }\n\n function readFloat_f32_rev(buf, pos) {\n f8b[3] = buf[pos ];\n f8b[2] = buf[pos + 1];\n f8b[1] = buf[pos + 2];\n f8b[0] = buf[pos + 3];\n return f32[0];\n }\n\n /* istanbul ignore next */\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\n /* istanbul ignore next */\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\n\n // float: ieee754\n })(); else (function() {\n\n function writeFloat_ieee754(writeUint, val, buf, pos) {\n var sign = val < 0 ? 1 : 0;\n if (sign)\n val = -val;\n if (val === 0)\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\n else if (isNaN(val))\n writeUint(2143289344, buf, pos);\n else if (val > 3.4028234663852886e+38) // +-Infinity\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\n else if (val < 1.1754943508222875e-38) // denormal\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\n else {\n var exponent = Math.floor(Math.log(val) / Math.LN2),\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\n }\n }\n\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\n\n function readFloat_ieee754(readUint, buf, pos) {\n var uint = readUint(buf, pos),\n sign = (uint >> 31) * 2 + 1,\n exponent = uint >>> 23 & 255,\n mantissa = uint & 8388607;\n return exponent === 255\n ? mantissa\n ? NaN\n : sign * Infinity\n : exponent === 0 // denormal\n ? sign * 1.401298464324817e-45 * mantissa\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\n }\n\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\n\n })();\n\n // double: typed array\n if (typeof Float64Array !== \"undefined\") (function() {\n\n var f64 = new Float64Array([-0]),\n f8b = new Uint8Array(f64.buffer),\n le = f8b[7] === 128;\n\n function writeDouble_f64_cpy(val, buf, pos) {\n f64[0] = val;\n buf[pos ] = f8b[0];\n buf[pos + 1] = f8b[1];\n buf[pos + 2] = f8b[2];\n buf[pos + 3] = f8b[3];\n buf[pos + 4] = f8b[4];\n buf[pos + 5] = f8b[5];\n buf[pos + 6] = f8b[6];\n buf[pos + 7] = f8b[7];\n }\n\n function writeDouble_f64_rev(val, buf, pos) {\n f64[0] = val;\n buf[pos ] = f8b[7];\n buf[pos + 1] = f8b[6];\n buf[pos + 2] = f8b[5];\n buf[pos + 3] = f8b[4];\n buf[pos + 4] = f8b[3];\n buf[pos + 5] = f8b[2];\n buf[pos + 6] = f8b[1];\n buf[pos + 7] = f8b[0];\n }\n\n /* istanbul ignore next */\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\n /* istanbul ignore next */\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\n\n function readDouble_f64_cpy(buf, pos) {\n f8b[0] = buf[pos ];\n f8b[1] = buf[pos + 1];\n f8b[2] = buf[pos + 2];\n f8b[3] = buf[pos + 3];\n f8b[4] = buf[pos + 4];\n f8b[5] = buf[pos + 5];\n f8b[6] = buf[pos + 6];\n f8b[7] = buf[pos + 7];\n return f64[0];\n }\n\n function readDouble_f64_rev(buf, pos) {\n f8b[7] = buf[pos ];\n f8b[6] = buf[pos + 1];\n f8b[5] = buf[pos + 2];\n f8b[4] = buf[pos + 3];\n f8b[3] = buf[pos + 4];\n f8b[2] = buf[pos + 5];\n f8b[1] = buf[pos + 6];\n f8b[0] = buf[pos + 7];\n return f64[0];\n }\n\n /* istanbul ignore next */\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\n /* istanbul ignore next */\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\n\n // double: ieee754\n })(); else (function() {\n\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\n var sign = val < 0 ? 1 : 0;\n if (sign)\n val = -val;\n if (val === 0) {\n writeUint(0, buf, pos + off0);\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\n } else if (isNaN(val)) {\n writeUint(0, buf, pos + off0);\n writeUint(2146959360, buf, pos + off1);\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\n writeUint(0, buf, pos + off0);\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\n } else {\n var mantissa;\n if (val < 2.2250738585072014e-308) { // denormal\n mantissa = val / 5e-324;\n writeUint(mantissa >>> 0, buf, pos + off0);\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\n } else {\n var exponent = Math.floor(Math.log(val) / Math.LN2);\n if (exponent === 1024)\n exponent = 1023;\n mantissa = val * Math.pow(2, -exponent);\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\n }\n }\n }\n\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\n\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\n var lo = readUint(buf, pos + off0),\n hi = readUint(buf, pos + off1);\n var sign = (hi >> 31) * 2 + 1,\n exponent = hi >>> 20 & 2047,\n mantissa = 4294967296 * (hi & 1048575) + lo;\n return exponent === 2047\n ? mantissa\n ? NaN\n : sign * Infinity\n : exponent === 0 // denormal\n ? sign * 5e-324 * mantissa\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\n }\n\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\n\n })();\n\n return exports;\n}\n\n// uint helpers\n\nfunction writeUintLE(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\nfunction writeUintBE(val, buf, pos) {\n buf[pos ] = val >>> 24;\n buf[pos + 1] = val >>> 16 & 255;\n buf[pos + 2] = val >>> 8 & 255;\n buf[pos + 3] = val & 255;\n}\n\nfunction readUintLE(buf, pos) {\n return (buf[pos ]\n | buf[pos + 1] << 8\n | buf[pos + 2] << 16\n | buf[pos + 3] << 24) >>> 0;\n}\n\nfunction readUintBE(buf, pos) {\n return (buf[pos ] << 24\n | buf[pos + 1] << 16\n | buf[pos + 2] << 8\n | buf[pos + 3]) >>> 0;\n}\n\n},{}],7:[function(require,module,exports){\n\"use strict\";\nmodule.exports = inquire;\n\n/**\n * Requires a module only if available.\n * @memberof util\n * @param {string} moduleName Module to require\n * @returns {?Object} Required module if available and not empty, otherwise `null`\n */\nfunction inquire(moduleName) {\n try {\n /**\n * @memo change by shevchik\n *\n * @see https://github.com/protobufjs/protobuf.js/issues/1754\n */\n // var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval ////\n var mod = require(moduleName); // eslint-disable-line no-eval\n if (mod && (mod.length || Object.keys(mod).length))\n return mod;\n } catch (e) {} // eslint-disable-line no-empty\n return null;\n}\n\n},{}],8:[function(require,module,exports){\n\"use strict\";\n\n/**\n * A minimal path module to resolve Unix, Windows and URL paths alike.\n * @memberof util\n * @namespace\n */\nvar path = exports;\n\nvar isAbsolute =\n/**\n * Tests if the specified path is absolute.\n * @param {string} path Path to test\n * @returns {boolean} `true` if path is absolute\n */\npath.isAbsolute = function isAbsolute(path) {\n return /^(?:\\/|\\w+:)/.test(path);\n};\n\nvar normalize =\n/**\n * Normalizes the specified path.\n * @param {string} path Path to normalize\n * @returns {string} Normalized path\n */\npath.normalize = function normalize(path) {\n path = path.replace(/\\\\/g, \"/\")\n .replace(/\\/{2,}/g, \"/\");\n var parts = path.split(\"/\"),\n absolute = isAbsolute(path),\n prefix = \"\";\n if (absolute)\n prefix = parts.shift() + \"/\";\n for (var i = 0; i < parts.length;) {\n if (parts[i] === \"..\") {\n if (i > 0 && parts[i - 1] !== \"..\")\n parts.splice(--i, 2);\n else if (absolute)\n parts.splice(i, 1);\n else\n ++i;\n } else if (parts[i] === \".\")\n parts.splice(i, 1);\n else\n ++i;\n }\n return prefix + parts.join(\"/\");\n};\n\n/**\n * Resolves the specified include path against the specified origin path.\n * @param {string} originPath Path to the origin file\n * @param {string} includePath Include path relative to origin path\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\n * @returns {string} Path to the include file\n */\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\n if (!alreadyNormalized)\n includePath = normalize(includePath);\n if (isAbsolute(includePath))\n return includePath;\n if (!alreadyNormalized)\n originPath = normalize(originPath);\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\n};\n\n},{}],9:[function(require,module,exports){\n\"use strict\";\nmodule.exports = pool;\n\n/**\n * An allocator as used by {@link util.pool}.\n * @typedef PoolAllocator\n * @type {function}\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\n\n/**\n * A slicer as used by {@link util.pool}.\n * @typedef PoolSlicer\n * @type {function}\n * @param {number} start Start offset\n * @param {number} end End offset\n * @returns {Uint8Array} Buffer slice\n * @this {Uint8Array}\n */\n\n/**\n * A general purpose buffer pool.\n * @memberof util\n * @function\n * @param {PoolAllocator} alloc Allocator\n * @param {PoolSlicer} slice Slicer\n * @param {number} [size=8192] Slab size\n * @returns {PoolAllocator} Pooled allocator\n */\nfunction pool(alloc, slice, size) {\n var SIZE = size || 8192;\n var MAX = SIZE >>> 1;\n var slab = null;\n var offset = SIZE;\n return function pool_alloc(size) {\n if (size < 1 || size > MAX)\n return alloc(size);\n if (offset + size > SIZE) {\n slab = alloc(SIZE);\n offset = 0;\n }\n var buf = slice.call(slab, offset, offset += size);\n if (offset & 7) // align to 32 bit\n offset = (offset | 7) + 1;\n return buf;\n };\n}\n\n},{}],10:[function(require,module,exports){\n\"use strict\";\n\n/**\n * A minimal UTF8 implementation for number arrays.\n * @memberof util\n * @namespace\n */\nvar utf8 = exports;\n\n/**\n * Calculates the UTF8 byte length of a string.\n * @param {string} string String\n * @returns {number} Byte length\n */\nutf8.length = function utf8_length(string) {\n var len = 0,\n c = 0;\n for (var i = 0; i < string.length; ++i) {\n c = string.charCodeAt(i);\n if (c < 128)\n len += 1;\n else if (c < 2048)\n len += 2;\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\n ++i;\n len += 4;\n } else\n len += 3;\n }\n return len;\n};\n\n/**\n * Reads UTF8 bytes as a string.\n * @param {Uint8Array} buffer Source buffer\n * @param {number} start Source start\n * @param {number} end Source end\n * @returns {string} String read\n */\nutf8.read = function utf8_read(buffer, start, end) {\n var len = end - start;\n if (len < 1)\n return \"\";\n var parts = null,\n chunk = [],\n i = 0, // char offset\n t; // temporary\n while (start < end) {\n t = buffer[start++];\n if (t < 128)\n chunk[i++] = t;\n else if (t > 191 && t < 224)\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\n else if (t > 239 && t < 365) {\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\n chunk[i++] = 0xD800 + (t >> 10);\n chunk[i++] = 0xDC00 + (t & 1023);\n } else\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\n if (i > 8191) {\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\n i = 0;\n }\n }\n if (parts) {\n if (i)\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\n return parts.join(\"\");\n }\n return String.fromCharCode.apply(String, chunk.slice(0, i));\n};\n\n/**\n * Writes a string as UTF8 bytes.\n * @param {string} string Source string\n * @param {Uint8Array} buffer Destination buffer\n * @param {number} offset Destination offset\n * @returns {number} Bytes written\n */\nutf8.write = function utf8_write(string, buffer, offset) {\n var start = offset,\n c1, // character 1\n c2; // character 2\n for (var i = 0; i < string.length; ++i) {\n c1 = string.charCodeAt(i);\n if (c1 < 128) {\n buffer[offset++] = c1;\n } else if (c1 < 2048) {\n buffer[offset++] = c1 >> 6 | 192;\n buffer[offset++] = c1 & 63 | 128;\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\n ++i;\n buffer[offset++] = c1 >> 18 | 240;\n buffer[offset++] = c1 >> 12 & 63 | 128;\n buffer[offset++] = c1 >> 6 & 63 | 128;\n buffer[offset++] = c1 & 63 | 128;\n } else {\n buffer[offset++] = c1 >> 12 | 224;\n buffer[offset++] = c1 >> 6 & 63 | 128;\n buffer[offset++] = c1 & 63 | 128;\n }\n }\n return offset - start;\n};\n\n},{}],11:[function(require,module,exports){\n\"use strict\";\nmodule.exports = common;\n\nvar commonRe = /\\/|\\./;\n\n/**\n * Provides common type definitions.\n * Can also be used to provide additional google types or your own custom types.\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\n * @param {Object.<string,*>} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\n * @returns {undefined}\n * @property {INamespace} google/protobuf/any.proto Any\n * @property {INamespace} google/protobuf/duration.proto Duration\n * @property {INamespace} google/protobuf/empty.proto Empty\n * @property {INamespace} google/protobuf/field_mask.proto FieldMask\n * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\n * @property {INamespace} google/protobuf/timestamp.proto Timestamp\n * @property {INamespace} google/protobuf/wrappers.proto Wrappers\n * @example\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\n * protobuf.common(\"descriptor\", descriptorJson);\n *\n * // manually provides a custom definition (uses my.foo namespace)\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\n */\nfunction common(name, json) {\n if (!commonRe.test(name)) {\n name = \"google/protobuf/\" + name + \".proto\";\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\n }\n common[name] = json;\n}\n\n// Not provided because of limited use (feel free to discuss or to provide yourself):\n//\n// google/protobuf/descriptor.proto\n// google/protobuf/source_context.proto\n// google/protobuf/type.proto\n//\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\n// the repository or package within the google/protobuf directory.\n\ncommon(\"any\", {\n\n /**\n * Properties of a google.protobuf.Any message.\n * @interface IAny\n * @type {Object}\n * @property {string} [typeUrl]\n * @property {Uint8Array} [bytes]\n * @memberof common\n */\n Any: {\n fields: {\n type_url: {\n type: \"string\",\n id: 1\n },\n value: {\n type: \"bytes\",\n id: 2\n }\n }\n }\n});\n\nvar timeType;\n\ncommon(\"duration\", {\n\n /**\n * Properties of a google.protobuf.Duration message.\n * @interface IDuration\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Duration: timeType = {\n fields: {\n seconds: {\n type: \"int64\",\n id: 1\n },\n nanos: {\n type: \"int32\",\n id: 2\n }\n }\n }\n});\n\ncommon(\"timestamp\", {\n\n /**\n * Properties of a google.protobuf.Timestamp message.\n * @interface ITimestamp\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Timestamp: timeType\n});\n\ncommon(\"empty\", {\n\n /**\n * Properties of a google.protobuf.Empty message.\n * @interface IEmpty\n * @memberof common\n */\n Empty: {\n fields: {}\n }\n});\n\ncommon(\"struct\", {\n\n /**\n * Properties of a google.protobuf.Struct message.\n * @interface IStruct\n * @type {Object}\n * @property {Object.<string,IValue>} [fields]\n * @memberof common\n */\n Struct: {\n fields: {\n fields: {\n keyType: \"string\",\n type: \"Value\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Value message.\n * @interface IValue\n * @type {Object}\n * @property {string} [kind]\n * @property {0} [nullValue]\n * @property {number} [numberValue]\n * @property {string} [stringValue]\n * @property {boolean} [boolValue]\n * @property {IStruct} [structValue]\n * @property {IListValue} [listValue]\n * @memberof common\n */\n Value: {\n oneofs: {\n kind: {\n oneof: [\n \"nullValue\",\n \"numberValue\",\n \"stringValue\",\n \"boolValue\",\n \"structValue\",\n \"listValue\"\n ]\n }\n },\n fields: {\n nullValue: {\n type: \"NullValue\",\n id: 1\n },\n numberValue: {\n type: \"double\",\n id: 2\n },\n stringValue: {\n type: \"string\",\n id: 3\n },\n boolValue: {\n type: \"bool\",\n id: 4\n },\n structValue: {\n type: \"Struct\",\n id: 5\n },\n listValue: {\n type: \"ListValue\",\n id: 6\n }\n }\n },\n\n NullValue: {\n values: {\n NULL_VALUE: 0\n }\n },\n\n /**\n * Properties of a google.protobuf.ListValue message.\n * @interface IListValue\n * @type {Object}\n * @property {Array.<IValue>} [values]\n * @memberof common\n */\n ListValue: {\n fields: {\n values: {\n rule: \"repeated\",\n type: \"Value\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"wrappers\", {\n\n /**\n * Properties of a google.protobuf.DoubleValue message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n DoubleValue: {\n fields: {\n value: {\n type: \"double\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.FloatValue message.\n * @interface IFloatValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FloatValue: {\n fields: {\n value: {\n type: \"float\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int64Value message.\n * @interface IInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n Int64Value: {\n fields: {\n value: {\n type: \"int64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt64Value message.\n * @interface IUInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n UInt64Value: {\n fields: {\n value: {\n type: \"uint64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int32Value message.\n * @interface IInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n Int32Value: {\n fields: {\n value: {\n type: \"int32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt32Value message.\n * @interface IUInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n UInt32Value: {\n fields: {\n value: {\n type: \"uint32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BoolValue message.\n * @interface IBoolValue\n * @type {Object}\n * @property {boolean} [value]\n * @memberof common\n */\n BoolValue: {\n fields: {\n value: {\n type: \"bool\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.StringValue message.\n * @interface IStringValue\n * @type {Object}\n * @property {string} [value]\n * @memberof common\n */\n StringValue: {\n fields: {\n value: {\n type: \"string\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BytesValue message.\n * @interface IBytesValue\n * @type {Object}\n * @property {Uint8Array} [value]\n * @memberof common\n */\n BytesValue: {\n fields: {\n value: {\n type: \"bytes\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"field_mask\", {\n\n /**\n * Properties of a google.protobuf.FieldMask message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FieldMask: {\n fields: {\n paths: {\n rule: \"repeated\",\n type: \"string\",\n id: 1\n }\n }\n }\n});\n\n/**\n * Gets the root definition of the specified common proto file.\n *\n * Bundled definitions are:\n * - google/protobuf/any.proto\n * - google/protobuf/duration.proto\n * - google/protobuf/empty.proto\n * - google/protobuf/field_mask.proto\n * - google/protobuf/struct.proto\n * - google/protobuf/timestamp.proto\n * - google/protobuf/wrappers.proto\n *\n * @param {string} file Proto file name\n * @returns {INamespace|null} Root definition or `null` if not defined\n */\ncommon.get = function get(file) {\n return common[file] || null;\n};\n\n},{}],12:[function(require,module,exports){\n\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(15),\n util = require(37);\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(d%s){\", prop);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(d%s)\", prop, fieldIndex, prop);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(d%s)\", prop, prop); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=d%s>>>0\", prop, prop);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=d%s|0\", prop, prop);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\n (\"m%s=parseInt(d%s,10)\", prop, prop)\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\n (\"m%s=d%s\", prop, prop)\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\n (\"m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof d%s===\\\"string\\\")\", prop)\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\n (\"else if(d%s.length)\", prop)\n (\"m%s=d%s\", prop, prop);\n break;\n case \"string\": gen\n (\"m%s=String(d%s)\", prop, prop);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(d%s)\", prop, prop);\n break;\n /* default: gen\n (\"m%s=d%s\", prop, prop);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){\", prop);\n genValuePartial_fromObject(gen, field, /* not sorted */ i, prop + \"[ks[i]]\")\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) { gen\n (\"if(d%s){\", prop)\n (\"if(!Array.isArray(d%s))\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": array expected\")\n (\"m%s=[]\", prop)\n (\"for(var i=0;i<d%s.length;++i){\", prop);\n genValuePartial_fromObject(gen, field, /* not sorted */ i, prop + \"[i]\")\n (\"}\")\n (\"}\");\n\n // Non-repeated fields\n } else {\n if (!(field.resolvedType instanceof Enum)) gen // no need to test for null/undefined if an enum (uses switch)\n (\"if(d%s!=null){\", prop); // !== undefined && !== null\n genValuePartial_fromObject(gen, field, /* not sorted */ i, prop);\n if (!(field.resolvedType instanceof Enum)) gen\n (\"}\");\n }\n } return gen\n (\"return m\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n};\n\n/**\n * Generates a partial value toObject converter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_toObject(gen, field, fieldIndex, prop) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?types[%i].values[m%s]:m%s\", prop, fieldIndex, prop, prop);\n else gen\n (\"d%s=types[%i].toObject(m%s,o)\", prop, fieldIndex, prop);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"d%s=o.json&&!isFinite(m%s)?String(m%s):m%s\", prop, prop, prop, prop);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(typeof m%s===\\\"number\\\")\", prop)\n (\"d%s=o.longs===String?String(m%s):m%s\", prop, prop, prop)\n (\"else\") // Long-like\n (\"d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) gen\n (\"d%s=o.bytes===String?%j:%s\", prop, String.fromCharCode.apply(String, field.typeDefault), \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\");\n else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j<ks2.length;++j){\");\n genValuePartial_toObject(gen, field, /* sorted */ index, prop + \"[ks2[j]]\")\n (\"}\");\n } else if (field.repeated) { gen\n (\"if(m%s&&m%s.length){\", prop, prop)\n (\"d%s=[]\", prop)\n (\"for(var j=0;j<m%s.length;++j){\", prop);\n genValuePartial_toObject(gen, field, /* sorted */ index, prop + \"[j]\")\n (\"}\");\n } else { gen\n (\"if(m%s!=null&&m.hasOwnProperty(%j)){\", prop, field.name); // !== undefined && !== null\n genValuePartial_toObject(gen, field, /* sorted */ index, prop);\n if (field.partOf) gen\n (\"if(o.oneofs)\")\n (\"d%s=%j\", util.safeProp(field.partOf.name), field.name);\n }\n gen\n (\"}\");\n }\n return gen\n (\"return d\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n};\n\n},{\"15\":15,\"37\":37}],13:[function(require,module,exports){\n\"use strict\";\nmodule.exports = decoder;\n\nvar Enum = require(15),\n types = require(36),\n util = require(37);\n\nfunction missing(field) {\n return \"missing required '\" + field.name + \"'\";\n}\n\n/**\n * Generates a decoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction decoder(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"r\", \"l\"], mtype.name + \"$decode\")\n (\"if(!(r instanceof Reader))\")\n (\"r=Reader.create(r)\")\n (\"var c=l===undefined?r.len:r.pos+l,m=new this.ctor\" + (mtype.fieldsArray.filter(function(field) { return field.map; }).length ? \",k\" : \"\"))\n (\"while(r.pos<c){\")\n (\"var t=r.uint32()\");\n if (mtype.group) gen\n (\"if((t&7)===4)\")\n (\"break\");\n gen\n (\"switch(t>>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"r.skip().pos++\") // assumes id 1 + key wireType\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"k=r.%s()\", field.keyType)\n (\"r.pos++\"); // assumes id 2 + value wireType\n if (types.long[field.keyType] !== undefined) {\n if (types.basic[type] === undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=r.%s()\", ref, type);\n } else {\n if (types.basic[type] === undefined) gen\n (\"%s[k]=types[%i].decode(r,r.uint32())\", ref, i); // can't be groups\n else gen\n (\"%s[k]=r.%s()\", ref, type);\n }\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos<c2)\")\n (\"%s.push(r.%s())\", ref, type)\n (\"}else\");\n\n // Non-packed\n if (types.basic[type] === undefined) gen(field.resolvedType.group\n ? \"%s.push(types[%i].decode(r))\"\n : \"%s.push(types[%i].decode(r,r.uint32()))\", ref, i);\n else gen\n (\"%s.push(r.%s())\", ref, type);\n\n // Non-repeated\n } else if (types.basic[type] === undefined) gen(field.resolvedType.group\n ? \"%s=types[%i].decode(r)\"\n : \"%s=types[%i].decode(r,r.uint32())\", ref, i);\n else gen\n (\"%s=r.%s()\", ref, type);\n gen\n (\"break\");\n // Unknown fields\n } gen\n (\"default:\")\n (\"r.skipType(t&7)\")\n (\"break\")\n\n (\"}\")\n (\"}\");\n\n // Field presence\n for (i = 0; i < mtype._fieldsArray.length; ++i) {\n var rfield = mtype._fieldsArray[i];\n if (rfield.required) gen\n (\"if(!m.hasOwnProperty(%j))\", rfield.name)\n (\"throw util.ProtocolError(%j,{instance:m})\", missing(rfield));\n }\n\n return gen\n (\"return m\");\n /* eslint-enable no-unexpected-multiline */\n}\n\n},{\"15\":15,\"36\":36,\"37\":37}],14:[function(require,module,exports){\n\"use strict\";\nmodule.exports = encoder;\n\nvar Enum = require(15),\n types = require(36),\n util = require(37);\n\n/**\n * Generates a partial message type encoder.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genTypePartial(gen, field, fieldIndex, ref) {\n return field.resolvedType.group\n ? gen(\"types[%i].encode(%s,w.uint32(%i)).uint32(%i)\", fieldIndex, ref, (field.id << 3 | 3) >>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i<ks.length;++i){\", ref)\n (\"w.uint32(%i).fork().uint32(%i).%s(ks[i])\", (field.id << 3 | 2) >>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) { gen\n (\"if(%s!=null&&%s.length){\", ref, ref); // !== undefined && !== null\n\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", ref)\n (\"w.%s(%s[i])\", type, ref)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", ref);\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n},{\"15\":15,\"36\":36,\"37\":37}],15:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(23),\n util = require(37);\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.<string,number>} [values] Enum values as an object, by name\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.<string,string>} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.<number,string>}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.<string,number>}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.<string,string>}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.<number[]|string>}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.<string,number>} values Enum values\n * @property {Object.<string,*>} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n},{\"23\":23,\"24\":24,\"37\":37}],16:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(15),\n types = require(36),\n util = require(37);\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.<string,*>} [rule=\"optional\"] Field rule\n * @param {string|Object.<string,*>} [extend] Extended type if different from parent\n * @param {Object.<string,*>} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.<string,*>} [rule=\"optional\"] Field rule\n * @param {string|Object.<string,*>} [extend] Extended type if different from parent\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.<string,*>} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor<T>|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message<T>\n * @variation 2\n */\n// like Field.d but without a default value\n\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n\n},{\"15\":15,\"24\":24,\"36\":36,\"37\":37}],17:[function(require,module,exports){\n\"use strict\";\nvar protobuf = module.exports = require(18);\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise<Root>} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise<Root>\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(14);\nprotobuf.decoder = require(13);\nprotobuf.verifier = require(40);\nprotobuf.converter = require(12);\n\n// Reflection\nprotobuf.ReflectionObject = require(24);\nprotobuf.Namespace = require(23);\nprotobuf.Root = require(29);\nprotobuf.Enum = require(15);\nprotobuf.Type = require(35);\nprotobuf.Field = require(16);\nprotobuf.OneOf = require(25);\nprotobuf.MapField = require(20);\nprotobuf.Service = require(33);\nprotobuf.Method = require(22);\n\n// Runtime\nprotobuf.Message = require(21);\nprotobuf.wrappers = require(41);\n\n// Utility\nprotobuf.types = require(36);\nprotobuf.util = require(37);\n\n// Configure reflection\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n\n},{\"12\":12,\"13\":13,\"14\":14,\"15\":15,\"16\":16,\"18\":18,\"20\":20,\"21\":21,\"22\":22,\"23\":23,\"24\":24,\"25\":25,\"29\":29,\"33\":33,\"35\":35,\"36\":36,\"37\":37,\"40\":40,\"41\":41}],18:[function(require,module,exports){\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(42);\nprotobuf.BufferWriter = require(43);\nprotobuf.Reader = require(27);\nprotobuf.BufferReader = require(28);\n\n// Utility\nprotobuf.util = require(39);\nprotobuf.rpc = require(31);\nprotobuf.roots = require(30);\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.Reader._configure(protobuf.BufferReader);\n protobuf.util._configure();\n}\n\n// Configure serialization\nprotobuf.Writer._configure(protobuf.BufferWriter);\nconfigure();\n\n},{\"27\":27,\"28\":28,\"30\":30,\"31\":31,\"39\":39,\"42\":42,\"43\":43}],19:[function(require,module,exports){\n\"use strict\";\nvar protobuf = module.exports = require(17);\n\nprotobuf.build = \"full\";\n\n// Parser\nprotobuf.tokenize = require(34);\nprotobuf.parse = require(26);\nprotobuf.common = require(11);\n\n// Configure parser\nprotobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common);\n\n},{\"11\":11,\"17\":17,\"26\":26,\"34\":34}],20:[function(require,module,exports){\n\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(16);\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(36),\n util = require(37);\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n\n},{\"16\":16,\"36\":36,\"37\":37}],21:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Message;\n\nvar util = require(39);\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties<T>} [properties] Properties to set\n * @template T extends object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.<string,*>} [properties] Properties to set\n * @returns {Message<T>} Message instance\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.<string,*>} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.<string,*>} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.<string,*>} object Plain object\n * @returns {T} Message instance\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n * @template T extends Message<T>\n * @this Constructor<T>\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.<string,*>} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/\n},{\"39\":39}],22:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(37);\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.<string,*>} [requestStream] Whether the request is streamed\n * @param {boolean|Object.<string,*>} [responseStream] Whether the response is streamed\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] The comment for this method\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.<string,*>} [options] Method options\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\n},{\"24\":24,\"37\":37}],23:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Enum = require(15),\n Field = require(16),\n util = require(37);\n\nvar Type, // cyclic\n Service; // \"\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.<string,*>} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.<string,*>} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.<string,*>|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.<number[]|string>|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] >= id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.<number[]|string>|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.<string,*>} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.<string,ReflectionObject>|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.<string,*>} [options] Namespace options\n * @property {Object.<string,AnyNestedObject>} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.<string,AnyNestedObject>} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.<string,number>} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\nNamespace._configure = function(Type_, Service_) {\n Type = Type_;\n Service = Service_;\n};\n\n},{\"15\":15,\"16\":16,\"24\":24,\"37\":37}],24:[function(require,module,exports){\n\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(37);\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.<string,*>} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.<string,*>|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.<string,*>} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.<string,*>} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n\n},{\"37\":37}],25:[function(require,module,exports){\n\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(24);\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(16),\n util = require(37);\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.<string,*>} [fieldNames] Field names\n * @param {Object.<string,*>} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.<string>} oneof Oneof field names\n * @property {Object.<string,*>} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n\n},{\"16\":16,\"24\":24,\"37\":37}],26:[function(require,module,exports){\n\"use strict\";\nmodule.exports = parse;\n\nparse.filename = null;\nparse.defaults = { keepCase: false };\n\nvar tokenize = require(34),\n Root = require(29),\n Type = require(35),\n Field = require(16),\n MapField = require(20),\n OneOf = require(25),\n Enum = require(15),\n Service = require(33),\n Method = require(22),\n types = require(36),\n util = require(37);\n\nvar base10Re = /^[1-9][0-9]*$/,\n base10NegRe = /^-?[1-9][0-9]*$/,\n base16Re = /^0[x][0-9a-fA-F]+$/,\n base16NegRe = /^-?0[x][0-9a-fA-F]+$/,\n base8Re = /^0[0-7]+$/,\n base8NegRe = /^-?0[0-7]+$/,\n numberRe = /^(?![eE])[0-9]*(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,\n nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/,\n typeRefRe = /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,\n fqTypeRefRe = /^(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;\n\n/**\n * Result object returned from {@link parse}.\n * @interface IParserResult\n * @property {string|undefined} package Package name, if declared\n * @property {string[]|undefined} imports Imports, if any\n * @property {string[]|undefined} weakImports Weak imports, if any\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\n * @property {Root} root Populated root instance\n */\n\n/**\n * Options modifying the behavior of {@link parse}.\n * @interface IParseOptions\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\n * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments.\n */\n\n/**\n * Options modifying the behavior of JSON serialization.\n * @interface IToJSONOptions\n * @property {boolean} [keepComments=false] Serializes comments.\n */\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @param {string} source Source contents\n * @param {Root} root Root to populate\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n */\nfunction parse(source, root, options) {\n /* eslint-disable callback-return */\n if (!(root instanceof Root)) {\n options = root;\n root = new Root();\n }\n if (!options)\n options = parse.defaults;\n\n var tn = tokenize(source, options.alternateCommentMode || false),\n next = tn.next,\n push = tn.push,\n peek = tn.peek,\n skip = tn.skip,\n cmnt = tn.cmnt;\n\n var head = true,\n pkg,\n imports,\n weakImports,\n syntax,\n isProto3 = false;\n\n var ptr = root;\n\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\n\n /* istanbul ignore next */\n function illegal(token, name, insideTryCatch) {\n var filename = parse.filename;\n if (!insideTryCatch)\n parse.filename = null;\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line + \")\");\n }\n\n function readString() {\n var values = [],\n token;\n do {\n /* istanbul ignore if */\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\n throw illegal(token);\n\n values.push(next());\n skip(token);\n token = peek();\n } while (token === \"\\\"\" || token === \"'\");\n return values.join(\"\");\n }\n\n function readValue(acceptTypeRef) {\n var token = next();\n switch (token) {\n case \"'\":\n case \"\\\"\":\n push(token);\n return readString();\n case \"true\": case \"TRUE\":\n return true;\n case \"false\": case \"FALSE\":\n return false;\n }\n try {\n return parseNumber(token, /* insideTryCatch */ true);\n } catch (e) {\n\n /* istanbul ignore else */\n if (acceptTypeRef && typeRefRe.test(token))\n return token;\n\n /* istanbul ignore next */\n throw illegal(token, \"value\");\n }\n }\n\n function readRanges(target, acceptStrings) {\n var token, start;\n do {\n if (acceptStrings && ((token = peek()) === \"\\\"\" || token === \"'\"))\n target.push(readString());\n else\n target.push([ start = parseId(next()), skip(\"to\", true) ? parseId(next()) : start ]);\n } while (skip(\",\", true));\n skip(\";\");\n }\n\n function parseNumber(token, insideTryCatch) {\n var sign = 1;\n if (token.charAt(0) === \"-\") {\n sign = -1;\n token = token.substring(1);\n }\n switch (token) {\n case \"inf\": case \"INF\": case \"Inf\":\n return sign * Infinity;\n case \"nan\": case \"NAN\": case \"Nan\": case \"NaN\":\n return NaN;\n case \"0\":\n return 0;\n }\n if (base10Re.test(token))\n return sign * parseInt(token, 10);\n if (base16Re.test(token))\n return sign * parseInt(token, 16);\n if (base8Re.test(token))\n return sign * parseInt(token, 8);\n\n /* istanbul ignore else */\n if (numberRe.test(token))\n return sign * parseFloat(token);\n\n /* istanbul ignore next */\n throw illegal(token, \"number\", insideTryCatch);\n }\n\n function parseId(token, acceptNegative) {\n switch (token) {\n case \"max\": case \"MAX\": case \"Max\":\n return 536870911;\n case \"0\":\n return 0;\n }\n\n /* istanbul ignore if */\n if (!acceptNegative && token.charAt(0) === \"-\")\n throw illegal(token, \"id\");\n\n if (base10NegRe.test(token))\n return parseInt(token, 10);\n if (base16NegRe.test(token))\n return parseInt(token, 16);\n\n /* istanbul ignore else */\n if (base8NegRe.test(token))\n return parseInt(token, 8);\n\n /* istanbul ignore next */\n throw illegal(token, \"id\");\n }\n\n function parsePackage() {\n\n /* istanbul ignore if */\n if (pkg !== undefined)\n throw illegal(\"package\");\n\n pkg = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(pkg))\n throw illegal(pkg, \"name\");\n\n ptr = ptr.define(pkg);\n skip(\";\");\n }\n\n function parseImport() {\n var token = peek();\n var whichImports;\n switch (token) {\n case \"weak\":\n whichImports = weakImports || (weakImports = []);\n next();\n break;\n case \"public\":\n next();\n // eslint-disable-line no-fallthrough\n default:\n whichImports = imports || (imports = []);\n break;\n }\n token = readString();\n skip(\";\");\n whichImports.push(token);\n }\n\n function parseSyntax() {\n skip(\"=\");\n syntax = readString();\n isProto3 = syntax === \"proto3\";\n\n /* istanbul ignore if */\n if (!isProto3 && syntax !== \"proto2\")\n throw illegal(syntax, \"syntax\");\n\n skip(\";\");\n }\n\n function parseCommon(parent, token) {\n switch (token) {\n\n case \"option\":\n parseOption(parent, token);\n skip(\";\");\n return true;\n\n case \"message\":\n parseType(parent, token);\n return true;\n\n case \"enum\":\n parseEnum(parent, token);\n return true;\n\n case \"service\":\n parseService(parent, token);\n return true;\n\n case \"extend\":\n parseExtension(parent, token);\n return true;\n }\n return false;\n }\n\n function ifBlock(obj, fnIf, fnElse) {\n var trailingLine = tn.line;\n if (obj) {\n obj.comment = cmnt(); // try block-type comment\n obj.filename = parse.filename;\n }\n if (skip(\"{\", true)) {\n var token;\n while ((token = next()) !== \"}\")\n fnIf(token);\n skip(\";\", true);\n } else {\n if (fnElse)\n fnElse();\n skip(\";\");\n if (obj && typeof obj.comment !== \"string\")\n obj.comment = cmnt(trailingLine); // try line-type comment if no block\n }\n }\n\n function parseType(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"type name\");\n\n var type = new Type(token);\n ifBlock(type, function parseType_block(token) {\n if (parseCommon(type, token))\n return;\n\n switch (token) {\n\n case \"map\":\n parseMapField(type, token);\n break;\n\n case \"required\":\n case \"optional\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"oneof\":\n parseOneOf(type, token);\n break;\n\n case \"extensions\":\n readRanges(type.extensions || (type.extensions = []));\n break;\n\n case \"reserved\":\n readRanges(type.reserved || (type.reserved = []), true);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n\n push(token);\n parseField(type, \"optional\");\n break;\n }\n });\n parent.add(type);\n }\n\n function parseField(parent, rule, extend) {\n var type = next();\n if (type === \"group\") {\n parseGroup(parent, rule);\n return;\n }\n\n /* istanbul ignore if */\n if (!typeRefRe.test(type))\n throw illegal(type, \"type\");\n\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n name = applyCase(name);\n skip(\"=\");\n\n var field = new Field(name, parseId(next()), type, rule, extend);\n ifBlock(field, function parseField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\n // parsing proto2 descriptors without the option, where applicable. This must be done for\n // all known packable types and anything that could be an enum (= is not a basic type).\n if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined))\n field.setOption(\"packed\", false, /* ifNotSet */ true);\n }\n\n function parseGroup(parent, rule) {\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n var fieldName = util.lcFirst(name);\n if (name === fieldName)\n name = util.ucFirst(name);\n skip(\"=\");\n var id = parseId(next());\n var type = new Type(name);\n type.group = true;\n var field = new Field(fieldName, id, name, rule);\n field.filename = parse.filename;\n ifBlock(type, function parseGroup_block(token) {\n switch (token) {\n\n case \"option\":\n parseOption(type, token);\n skip(\";\");\n break;\n\n case \"required\":\n case \"optional\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n /* istanbul ignore next */\n default:\n throw illegal(token); // there are no groups with proto3 semantics\n }\n });\n parent.add(type)\n .add(field);\n }\n\n function parseMapField(parent) {\n skip(\"<\");\n var keyType = next();\n\n /* istanbul ignore if */\n if (types.mapKey[keyType] === undefined)\n throw illegal(keyType, \"type\");\n\n skip(\",\");\n var valueType = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(valueType))\n throw illegal(valueType, \"type\");\n\n skip(\">\");\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n skip(\"=\");\n var field = new MapField(applyCase(name), parseId(next()), keyType, valueType);\n ifBlock(field, function parseMapField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseMapField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n }\n\n function parseOneOf(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var oneof = new OneOf(applyCase(token));\n ifBlock(oneof, function parseOneOf_block(token) {\n if (token === \"option\") {\n parseOption(oneof, token);\n skip(\";\");\n } else {\n push(token);\n parseField(oneof, \"optional\");\n }\n });\n parent.add(oneof);\n }\n\n function parseEnum(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var enm = new Enum(token);\n ifBlock(enm, function parseEnum_block(token) {\n switch(token) {\n case \"option\":\n parseOption(enm, token);\n skip(\";\");\n break;\n\n case \"reserved\":\n readRanges(enm.reserved || (enm.reserved = []), true);\n break;\n\n default:\n parseEnumValue(enm, token);\n }\n });\n parent.add(enm);\n }\n\n function parseEnumValue(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token))\n throw illegal(token, \"name\");\n\n skip(\"=\");\n var value = parseId(next(), true),\n dummy = {};\n ifBlock(dummy, function parseEnumValue_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(dummy, token); // skip\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseEnumValue_line() {\n parseInlineOptions(dummy); // skip\n });\n parent.add(token, value, dummy.comment);\n }\n\n function parseOption(parent, token) {\n var isCustom = skip(\"(\", true);\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token;\n if (isCustom) {\n skip(\")\");\n name = \"(\" + name + \")\";\n token = peek();\n if (fqTypeRefRe.test(token)) {\n name += token;\n next();\n }\n }\n skip(\"=\");\n parseOptionValue(parent, name);\n }\n\n function parseOptionValue(parent, name) {\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\n do {\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n if (peek() === \"{\")\n parseOptionValue(parent, name + \".\" + token);\n else {\n skip(\":\");\n if (peek() === \"{\")\n parseOptionValue(parent, name + \".\" + token);\n else\n setOption(parent, name + \".\" + token, readValue(true));\n }\n } while (!skip(\"}\", true));\n } else\n setOption(parent, name, readValue(true));\n // Does not enforce a delimiter to be universal\n }\n\n function setOption(parent, name, value) {\n if (parent.setOption)\n parent.setOption(name, value);\n }\n\n function parseInlineOptions(parent) {\n if (skip(\"[\", true)) {\n do {\n parseOption(parent, \"option\");\n } while (skip(\",\", true));\n skip(\"]\");\n }\n return parent;\n }\n\n function parseService(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"service name\");\n\n var service = new Service(token);\n ifBlock(service, function parseService_block(token) {\n if (parseCommon(service, token))\n return;\n\n /* istanbul ignore else */\n if (token === \"rpc\")\n parseMethod(service, token);\n else\n throw illegal(token);\n });\n parent.add(service);\n }\n\n function parseMethod(parent, token) {\n var type = token;\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token,\n requestType, requestStream,\n responseType, responseStream;\n\n skip(\"(\");\n if (skip(\"stream\", true))\n requestStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n requestType = token;\n skip(\")\"); skip(\"returns\"); skip(\"(\");\n if (skip(\"stream\", true))\n responseStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n responseType = token;\n skip(\")\");\n\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\n ifBlock(method, function parseMethod_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(method, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n });\n parent.add(method);\n }\n\n function parseExtension(parent, token) {\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"reference\");\n\n var reference = token;\n ifBlock(null, function parseExtension_block(token) {\n switch (token) {\n\n case \"required\":\n case \"repeated\":\n case \"optional\":\n parseField(parent, token, reference);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n push(token);\n parseField(parent, \"optional\", reference);\n break;\n }\n });\n }\n\n var token;\n while ((token = next()) !== null) {\n switch (token) {\n\n case \"package\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parsePackage();\n break;\n\n case \"import\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseImport();\n break;\n\n case \"syntax\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseSyntax();\n break;\n\n case \"option\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseOption(ptr, token);\n skip(\";\");\n break;\n\n default:\n\n /* istanbul ignore else */\n if (parseCommon(ptr, token)) {\n head = false;\n continue;\n }\n\n /* istanbul ignore next */\n throw illegal(token);\n }\n }\n\n parse.filename = null;\n return {\n \"package\" : pkg,\n \"imports\" : imports,\n weakImports : weakImports,\n syntax : syntax,\n root : root\n };\n}\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @name parse\n * @function\n * @param {string} source Source contents\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n * @variation 2\n */\n\n},{\"15\":15,\"16\":16,\"20\":20,\"22\":22,\"25\":25,\"29\":29,\"33\":33,\"34\":34,\"35\":35,\"36\":36,\"37\":37}],27:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(39);\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\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 = 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\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 do { // eslint-disable-line no-constant-condition\n if ((wireType = this.uint32() & 7) === 4)\n break;\n this.skipType(wireType);\n } while (true);\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\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\n},{\"39\":39}],28:[function(require,module,exports){\n\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(27);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(39);\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\n/* istanbul ignore else */\nif (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice(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\n},{\"27\":27,\"39\":39}],29:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(23);\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(16),\n Enum = require(15),\n OneOf = require(25),\n util = require(37);\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.<string,*>} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = self.resolvePath(filename, parsed.imports[i]))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = self.resolvePath(filename, parsed.weakImports[i]))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Strip path if this file references a bundled definition\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common)\n filename = altname;\n }\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n util.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise<Root>} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise<Root>\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n\n},{\"15\":15,\"16\":16,\"23\":23,\"25\":25,\"37\":37}],30:[function(require,module,exports){\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\n},{}],31:[function(require,module,exports){\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(32);\n\n},{\"32\":32}],32:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Service;\n\nvar util = require(39);\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\n},{\"39\":39}],33:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(23);\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(22),\n util = require(37),\n rpc = require(31);\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.<string,*>} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.<string,Method>}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.<string,IMethod>} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\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 * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n\n},{\"22\":22,\"23\":23,\"31\":31,\"37\":37}],34:[function(require,module,exports){\n\"use strict\";\nmodule.exports = tokenize;\n\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\n\nvar setCommentRe = /^ *[*/]+ */,\n setCommentAltRe = /^\\s*\\*?\\/*/,\n setCommentSplitRe = /\\n/g,\n whitespaceRe = /\\s/,\n unescapeRe = /\\\\(.?)/g;\n\nvar unescapeMap = {\n \"0\": \"\\0\",\n \"r\": \"\\r\",\n \"n\": \"\\n\",\n \"t\": \"\\t\"\n};\n\n/**\n * Unescapes a string.\n * @param {string} str String to unescape\n * @returns {string} Unescaped string\n * @property {Object.<string,string>} map Special characters map\n * @memberof tokenize\n */\nfunction unescape(str) {\n return str.replace(unescapeRe, function($0, $1) {\n switch ($1) {\n case \"\\\\\":\n case \"\":\n return $1;\n default:\n return unescapeMap[$1] || \"\";\n }\n });\n}\n\ntokenize.unescape = unescape;\n\n/**\n * Gets the next token and advances.\n * @typedef TokenizerHandleNext\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Peeks for the next token.\n * @typedef TokenizerHandlePeek\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Pushes a token back to the stack.\n * @typedef TokenizerHandlePush\n * @type {function}\n * @param {string} token Token\n * @returns {undefined}\n */\n\n/**\n * Skips the next token.\n * @typedef TokenizerHandleSkip\n * @type {function}\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] If optional\n * @returns {boolean} Whether the token matched\n * @throws {Error} If the token didn't match and is not optional\n */\n\n/**\n * Gets the comment on the previous line or, alternatively, the line comment on the specified line.\n * @typedef TokenizerHandleCmnt\n * @type {function}\n * @param {number} [line] Line number\n * @returns {string|null} Comment text or `null` if none\n */\n\n/**\n * Handle object returned from {@link tokenize}.\n * @interface ITokenizerHandle\n * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof)\n * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof)\n * @property {TokenizerHandlePush} push Pushes a token back to the stack\n * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\n * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\n * @property {number} line Current line number\n */\n\n/**\n * Tokenizes the given .proto source and returns an object with useful utility functions.\n * @param {string} source Source contents\n * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode.\n * @returns {ITokenizerHandle} Tokenizer handle\n */\nfunction tokenize(source, alternateCommentMode) {\n /* eslint-disable callback-return */\n source = source.toString();\n\n var offset = 0,\n length = source.length,\n line = 1,\n commentType = null,\n commentText = null,\n commentLine = 0,\n commentLineEmpty = false;\n\n var stack = [];\n\n var stringDelim = null;\n\n /* istanbul ignore next */\n /**\n * Creates an error for illegal syntax.\n * @param {string} subject Subject\n * @returns {Error} Error created\n * @inner\n */\n function illegal(subject) {\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\n }\n\n /**\n * Reads a string till its end.\n * @returns {string} String read\n * @inner\n */\n function readString() {\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\n re.lastIndex = offset - 1;\n var match = re.exec(source);\n if (!match)\n throw illegal(\"string\");\n offset = re.lastIndex;\n push(stringDelim);\n stringDelim = null;\n return unescape(match[1]);\n }\n\n /**\n * Gets the character at `pos` within the source.\n * @param {number} pos Position\n * @returns {string} Character\n * @inner\n */\n function charAt(pos) {\n return source.charAt(pos);\n }\n\n /**\n * Sets the current comment text.\n * @param {number} start Start offset\n * @param {number} end End offset\n * @returns {undefined}\n * @inner\n */\n function setComment(start, end) {\n commentType = source.charAt(start++);\n commentLine = line;\n commentLineEmpty = false;\n var lookback;\n if (alternateCommentMode) {\n lookback = 2; // alternate comment parsing: \"//\" or \"/*\"\n } else {\n lookback = 3; // \"///\" or \"/**\"\n }\n var commentOffset = start - lookback,\n c;\n do {\n if (--commentOffset < 0 ||\n (c = source.charAt(commentOffset)) === \"\\n\") {\n commentLineEmpty = true;\n break;\n }\n } while (c === \" \" || c === \"\\t\");\n var lines = source\n .substring(start, end)\n .split(setCommentSplitRe);\n for (var i = 0; i < lines.length; ++i)\n lines[i] = lines[i]\n .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, \"\")\n .trim();\n commentText = lines\n .join(\"\\n\")\n .trim();\n }\n\n function isDoubleSlashCommentLine(startOffset) {\n var endOffset = findEndOfLine(startOffset);\n\n // see if remaining line matches comment pattern\n var lineText = source.substring(startOffset, endOffset);\n // look for 1 or 2 slashes since startOffset would already point past\n // the first slash that started the comment.\n var isComment = /^\\s*\\/{1,2}/.test(lineText);\n return isComment;\n }\n\n function findEndOfLine(cursor) {\n // find end of cursor's line\n var endOffset = cursor;\n while (endOffset < length && charAt(endOffset) !== \"\\n\") {\n endOffset++;\n }\n return endOffset;\n }\n\n /**\n * Obtains the next token.\n * @returns {string|null} Next token or `null` on eof\n * @inner\n */\n function next() {\n if (stack.length > 0)\n return stack.shift();\n if (stringDelim)\n return readString();\n var repeat,\n prev,\n curr,\n start,\n isDoc;\n do {\n if (offset === length)\n return null;\n repeat = false;\n while (whitespaceRe.test(curr = charAt(offset))) {\n if (curr === \"\\n\")\n ++line;\n if (++offset === length)\n return null;\n }\n\n if (charAt(offset) === \"/\") {\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n if (charAt(offset) === \"/\") { // Line\n if (!alternateCommentMode) {\n // check for triple-slash comment\n isDoc = charAt(start = offset + 1) === \"/\";\n\n while (charAt(++offset) !== \"\\n\") {\n if (offset === length) {\n return null;\n }\n }\n ++offset;\n if (isDoc) {\n setComment(start, offset - 1);\n }\n ++line;\n repeat = true;\n } else {\n // check for double-slash comments, consolidating consecutive lines\n start = offset;\n isDoc = false;\n if (isDoubleSlashCommentLine(offset)) {\n isDoc = true;\n do {\n offset = findEndOfLine(offset);\n if (offset === length) {\n break;\n }\n offset++;\n } while (isDoubleSlashCommentLine(offset));\n } else {\n offset = Math.min(length, findEndOfLine(offset) + 1);\n }\n if (isDoc) {\n setComment(start, offset);\n }\n line++;\n repeat = true;\n }\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\n // check for /** (regular comment mode) or /* (alternate comment mode)\n start = offset + 1;\n isDoc = alternateCommentMode || charAt(start) === \"*\";\n do {\n if (curr === \"\\n\") {\n ++line;\n }\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n prev = curr;\n curr = charAt(offset);\n } while (prev !== \"*\" || curr !== \"/\");\n ++offset;\n if (isDoc) {\n setComment(start, offset - 2);\n }\n repeat = true;\n } else {\n return \"/\";\n }\n }\n } while (repeat);\n\n // offset !== length if we got here\n\n var end = offset;\n delimRe.lastIndex = 0;\n var delim = delimRe.test(charAt(end++));\n if (!delim)\n while (end < length && !delimRe.test(charAt(end)))\n ++end;\n var token = source.substring(offset, offset = end);\n if (token === \"\\\"\" || token === \"'\")\n stringDelim = token;\n return token;\n }\n\n /**\n * Pushes a token back to the stack.\n * @param {string} token Token\n * @returns {undefined}\n * @inner\n */\n function push(token) {\n stack.push(token);\n }\n\n /**\n * Peeks for the next token.\n * @returns {string|null} Token or `null` on eof\n * @inner\n */\n function peek() {\n if (!stack.length) {\n var token = next();\n if (token === null)\n return null;\n push(token);\n }\n return stack[0];\n }\n\n /**\n * Skips a token.\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] Whether the token is optional\n * @returns {boolean} `true` when skipped, `false` if not\n * @throws {Error} When a required token is not present\n * @inner\n */\n function skip(expected, optional) {\n var actual = peek(),\n equals = actual === expected;\n if (equals) {\n next();\n return true;\n }\n if (!optional)\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\n return false;\n }\n\n /**\n * Gets a comment.\n * @param {number} [trailingLine] Line number if looking for a trailing comment\n * @returns {string|null} Comment text\n * @inner\n */\n function cmnt(trailingLine) {\n var ret = null;\n if (trailingLine === undefined) {\n if (commentLine === line - 1 && (alternateCommentMode || commentType === \"*\" || commentLineEmpty)) {\n ret = commentText;\n }\n } else {\n /* istanbul ignore else */\n if (commentLine < trailingLine) {\n peek();\n }\n if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === \"/\")) {\n ret = commentText;\n }\n }\n return ret;\n }\n\n return Object.defineProperty({\n next: next,\n peek: peek,\n push: push,\n skip: skip,\n cmnt: cmnt\n }, \"line\", {\n get: function() { return line; }\n });\n /* eslint-enable callback-return */\n}\n\n},{}],35:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(23);\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(15),\n OneOf = require(25),\n Field = require(16),\n MapField = require(20),\n Service = require(33),\n Message = require(21),\n Reader = require(27),\n Writer = require(42),\n util = require(37),\n encoder = require(14),\n decoder = require(13),\n verifier = require(40),\n converter = require(12),\n wrappers = require(41);\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.<string,*>} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.<string,Field>}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.<string,OneOf>}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.<number[]|string>}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.<number,Field>|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.<number,Field>}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)\") // omit undefined or null\n (\"this[ks[i]]=p[ks[i]]\");\n /* eslint-enable no-unexpected-multiline */\n};\n\nfunction clearCache(type) {\n type._fieldsById = type._fieldsArray = type._oneofsArray = null;\n delete type.encode;\n delete type.decode;\n delete type.verify;\n return type;\n}\n\n/**\n * Message type descriptor.\n * @interface IType\n * @extends INamespace\n * @property {Object.<string,IOneOf>} [oneofs] Oneof descriptors\n * @property {Object.<string,IField>} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.<string,*>} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.<string,*>} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.<string,*>} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.<string,*>} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.<string,*>} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor<T>} target Target constructor\n * @returns {undefined}\n * @template T extends Message<T>\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator<T>} Decorator function\n * @template T extends Message<T>\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n\n},{\"12\":12,\"13\":13,\"14\":14,\"15\":15,\"16\":16,\"20\":20,\"21\":21,\"23\":23,\"25\":25,\"27\":27,\"33\":33,\"37\":37,\"40\":40,\"41\":41,\"42\":42}],36:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(37);\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.<string,number>}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.<string,*>}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.<number>} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.<string,number>}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.<string,number>}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.<string,number>}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n\n},{\"37\":37}],37:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(39);\n\nvar roots = require(30);\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(3);\nutil.fetch = require(5);\nutil.path = require(8);\n\n/**\n * Node's fs module if available.\n * @type {Object.<string,*>}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.<string,*>} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.<string,*>} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor<T>} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message<T>\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(35);\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(15);\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(29))());\n }\n});\n\n},{\"15\":15,\"29\":29,\"3\":3,\"30\":30,\"35\":35,\"39\":39,\"5\":5,\"8\":8}],38:[function(require,module,exports){\n\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(39);\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\n},{\"39\":39}],39:[function(require,module,exports){\n\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(1);\n\n// converts to / from base64 encoded strings\nutil.base64 = require(2);\n\n// base class of rpc.Service\nutil.EventEmitter = require(4);\n\n// float handling accross browsers\nutil.float = require(6);\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(7);\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(10);\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(9);\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(38);\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 * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n * @const\n */\nutil.isNode = Boolean(global.process && global.process.versions && global.process.versions.node);\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 */ global.dcodeIO && /* istanbul ignore next */ global.dcodeIO.Long || 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\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\n},{\"1\":1,\"10\":10,\"2\":2,\"38\":38,\"4\":4,\"6\":6,\"7\":7,\"9\":9}],40:[function(require,module,exports){\n\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(15),\n util = require(37);\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i<k.length;++i){\");\n genVerifyKey(gen, field, \"k[i]\");\n genVerifyValue(gen, field, i, ref + \"[k[i]]\")\n (\"}\");\n\n // repeated fields\n } else if (field.repeated) { gen\n (\"if(!Array.isArray(%s))\", ref)\n (\"return%j\", invalid(field, \"array\"))\n (\"for(var i=0;i<%s.length;++i){\", ref);\n genVerifyValue(gen, field, i, ref + \"[i]\")\n (\"}\");\n\n // required or present fields\n } else {\n if (field.partOf) {\n var oneofProp = util.safeProp(field.partOf.name);\n if (seenFirstField[field.partOf.name] === 1) gen\n (\"if(p%s===1)\", oneofProp)\n (\"return%j\", field.partOf.name + \": multiple values\");\n seenFirstField[field.partOf.name] = 1;\n gen\n (\"p%s=1\", oneofProp);\n }\n genVerifyValue(gen, field, i, ref);\n }\n if (field.optional) gen\n (\"}\");\n }\n return gen\n (\"return null\");\n /* eslint-enable no-unexpected-multiline */\n}\n},{\"15\":15,\"37\":37}],41:[function(require,module,exports){\n\"use strict\";\n\n/**\n * Wrappers for common types.\n * @type {Object.<string,IWrapper>}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(21);\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.<string,*>} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.<string,*>} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n var type = this.lookup(object[\"@type\"]);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n return this.create({\n type_url: \"/\" + type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n var name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n object[\"@type\"] = message.$type.fullName;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n\n},{\"21\":21}],42:[function(require,module,exports){\n\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(39);\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\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 = 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 * 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};\n\n},{\"39\":39}],43:[function(require,module,exports){\n\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(42);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(39);\n\nvar Buffer = util.Buffer;\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\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\nBufferWriter.alloc = function alloc_buffer(size) {\n return (BufferWriter.alloc = util._Buffer_allocUnsafe)(size);\n};\n\nvar writeBytesBuffer = Buffer && Buffer.prototype instanceof Uint8Array && 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 * @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(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\n buf.utf8Write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = 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\n},{\"39\":39,\"42\":42}]},{},[19])\n\n})();"],"names":["undefined","require","module","params","offset","i","exports","isAbsolute","path","normalize","size","field","token","create_array","buffer","filename","resolved","source","err","global","Buffer"],"mappings":"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"}