CoolFace
Datasetpublic

basant307/AI_Governance_Project

sourceHugging Faceapache-2.0updated 2mo agoView on Hugging Face
0likes48downloads
protobuf.min.js.map1 linesDownload Raw Back to light
1{"version":3,"sources":["lib/prelude.js","../node_modules/@protobufjs/aspromise/index.js","../node_modules/@protobufjs/base64/index.js","../node_modules/@protobufjs/codegen/index.js","../node_modules/@protobufjs/eventemitter/index.js","../node_modules/@protobufjs/fetch/index.js","../node_modules/@protobufjs/fetch/util/fs.js","../node_modules/@protobufjs/float/index.js","../node_modules/@protobufjs/path/index.js","../node_modules/@protobufjs/pool/index.js","../node_modules/@protobufjs/utf8/index.js","../src/converter.js","../src/decoder.js","../src/encoder.js","../src/enum.js","../src/field.js","../src/index-light","../src/index-minimal.js","../src/mapfield.js","../src/message.js","../src/method.js","../src/namespace.js","../src/object.js","../src/oneof.js","../src/reader.js","../src/reader_buffer.js","../src/root.js","../src/roots.js","../src/rpc.js","../src/rpc/service.js","../src/service.js","../src/type.js","../src/types.js","../src/util.js","../src/util/fs.js","../src/util/longbits.js","../src/util/minimal.js","../src/util/patterns.js","../src/verifier.js","../src/wrappers.js","../src/writer.js","../src/writer_buffer.js"],"names":["undefined","modules","cache","protobuf","1","require","module","exports","fn","ctx","params","Array","arguments","length","offset","index","pending","Promise","resolve","reject","err","apply","base64","string","p","n","Math","ceil","b64","s64","i","encode","buffer","start","end","t","parts","chunk","j","b","push","String","fromCharCode","slice","join","invalidEncoding","decode","c","charCodeAt","Error","test","codegen","reservedRe","functionParams","functionName","body","Codegen","formatStringOrScope","source","toString","verbose","console","log","scopeKeys","Object","keys","scopeParams","scopeValues","scopeOffset","Function","formatParams","formatOffset","replace","$0","$1","value","Number","floor","JSON","stringify","functionNameOverride","name","EventEmitter","this","_listeners","create","prototype","on","evt","off","listeners","splice","emit","args","fetch","asPromise","fs","filename","options","callback","xhr","readFile","contents","XMLHttpRequest","binary","onreadystatechange","readyState","status","response","responseText","Uint8Array","overrideMimeType","responseType","open","send","readFileSync","e","factory","writeFloat_ieee754","writeUint","val","buf","pos","sign","isNaN","round","exponent","LN2","pow","readFloat_ieee754","readUint","uint","mantissa","NaN","Infinity","writeFloat_f32_cpy","f32","f8b","writeFloat_f32_rev","readFloat_f32_cpy","readFloat_f32_rev","f64","le","writeDouble_ieee754","off0","off1","readDouble_ieee754","lo","hi","writeDouble_f64_cpy","writeDouble_f64_rev","readDouble_f64_cpy","readDouble_f64_rev","Float32Array","writeFloatLE","writeFloatBE","readFloatLE","readFloatBE","bind","writeUintLE","writeUintBE","readUintLE","readUintBE","Float64Array","writeDoubleLE","writeDoubleBE","readDoubleLE","readDoubleBE","isAbsolute","path","normalize","split","absolute","prefix","shift","originPath","includePath","alreadyNormalized","alloc","size","SIZE","MAX","slab","call","utf8","len","read","str","c3","c2","t2","write","c1","Enum","util","genValuePartial_fromObject","gen","field","fieldIndex","prop","defaultAlreadyEmitted","resolvedType","values","typeDefault","repeated","fullName","isUnsigned","type","genValuePartial_toObject","converter","fromObject","mtype","fields","fieldsArray","safeProp","map","toObject","sort","compareFieldsById","repeatedFields","mapFields","normalFields","partOf","arrayDefault","valuesById","long","low","high","unsigned","toNumber","bytes","hasKs2","_fieldsArray","indexOf","filter","ref","id","types","defaults","keyType","basic","packed","delimited","rfield","required","wireType","mapKey","genTypePartial","optional","ReflectionObject","Namespace","constructor","className","comment","comments","valuesOptions","TypeError","_valuesFeatures","reserved","_resolveFeatures","edition","_edition","forEach","key","parentFeaturesCopy","merge","_features","features","fromJSON","json","enm","_defaultEdition","toJSON","toJSONOptions","keepComments","Boolean","_editionToJSON","add","isString","isInteger","isReservedId","isReservedName","allow_alias","remove","Field","Type","ruleRe","rule","extend","isObject","toLowerCase","message","defaultValue","Long","extensionField","declaringField","defineProperty","get","field_presence","message_encoding","repeated_field_encoding","setOption","ifNotSet","resolved","parent","lookupTypeOrEnum","proto3_optional","fromNumber","freeze","newBuffer","emptyObject","emptyArray","ctor","_inferLegacyProtoFeatures","pop","group","getOption","d","fieldId","fieldType","fieldRule","decorateType","decorateEnum","fieldName","default","_configure","Type_","build","load","root","Root","loadSync","encoder","decoder","verifier","OneOf","MapField","Service","Method","Message","wrappers","configure","Writer","BufferWriter","Reader","BufferReader","rpc","roots","resolvedKeyType","fieldKeyType","fieldValueType","properties","$type","writer","encodeDelimited","reader","decodeDelimited","verify","object","requestType","requestStream","responseStream","parsedOptions","resolvedRequestType","resolvedResponseType","lookupType","arrayToJSON","array","obj","nested","_nestedArray","_lookupCache","_needsRecursiveFeatureResolution","_needsRecursiveResolve","clearCache","namespace","depth","checkDepth","addJSON","toArray","nestedArray","nestedJson","names","methods","hasOwnProperty","getEnum","prev","setOptions","onAdd","onRemove","define","isArray","recursionLimit","ptr","part","resolveAll","_resolveFeaturesRecursive","lookup","filterTypes","parentAlreadyChecked","flatPath","found","_fullyQualifiedObjects","_lookupImpl","current","exact","lookupEnum","lookupService","Service_","Enum_","editions2023Defaults","enum_type","json_format","utf8_validation","proto2Defaults","proto3Defaults","_featuresResolved","defineProperties","unshift","_handleAdd","_handleRemove","protoFeatures","assign","lexicalParentFeaturesCopy","setProperty","setParsedOption","propName","opt","newOpt","find","newValue","Root_","fieldNames","oneof","addFieldsToParent","oneofName","oneOfGetter","set","oneOfSetter","LongBits","indexOutOfRange","writeLength","RangeError","Buffer","isBuffer","create_array","readLongVarint","bits","readFixed32_end","readFixed64","_slice","subarray","uint32","int32","sint32","bool","fixed32","sfixed32","float","double","nativeBuffer","skip","skipType","BufferReader_","int64","uint64","sint64","zzDecode","fixed64","sfixed64","utf8Slice","min","parse","common","deferred","files","SYNC","resolvePath","self","sync","finish","cb","getBundledFileName","idx","lastIndexOf","altname","substring","process","parsed","imports","weakImports","queued","weak","setTimeout","isNode","exposeRe","tryHandleExtension","sisterField","extendedType","parse_","common_","rpcImpl","requestDelimited","responseDelimited","rpcCall","method","requestCtor","responseCtor","request","endedByRPC","_methodsArray","service","inherited","methodsArray","rpcService","lcFirst","oneofs","extensions","_fieldsById","_oneofsArray","_ctor","fieldsById","oneofsArray","generateConstructor","ctorProperties","nestingLimit","setup","originalThis","wrapper","fork","ldelim","typeName","target","s","bake","o","patterns","camelCaseRe","isReserved","ucFirst","toUpperCase","decorateEnumIndex","camelCase","a","decorateRoot","enumerable","dst","setProp","isUnsafeProperty","prevValue","concat","zero","zzEncode","zeroHash","from","parseInt","fromString","toLong","fromHash","hash","toHash","mask","part0","part1","part2","limit","src","newError","CustomError","captureStackTrace","stack","writable","configurable","pool","global","versions","node","window","isFinite","isset","isSet","utf8Write","_Buffer_from","_Buffer_allocUnsafe","sizeOrArray","dcodeIO","isLong","key2Re","key32Re","key64Re","longToHash","longFromHash","fromBits","makeProp","ProtocolError","fieldMap","longs","enums","encoding","allocUnsafe","numberRe","typeRefRe","seenFirstField","oneofProp","invalid","genVerifyValue","expected","type_url","messageName","Op","next","noop","State","head","tail","states","writeByte","VarintOp","writeVarint64","writeFixed32","_push","writeBytes","reset","BufferWriter_","writeStringBuffer","writeBytesBuffer","copy","byteLength","$require","$module","amd"],"mappings":"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","file":"protobuf.min.js","sourcesContent":["(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 minification-friendly `undefined` var plus a global \"use strict\" directive\n    // 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    var protobuf = $require(entries[0]);\n\n    // Expose globally\n    protobuf.util.global.protobuf = protobuf;\n\n    // Be nice to AMD\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    // Be nice to CommonJS\n    if (typeof module === \"object\" && module && module.exports)\n        module.exports = protobuf;\n\n})/* end of prelude */","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n    var params  = new Array(arguments.length - 1),\r\n        offset  = 0,\r\n        index   = 2,\r\n        pending = true;\r\n    while (index < arguments.length)\r\n        params[offset++] = arguments[index++];\r\n    return new Promise(function executor(resolve, reject) {\r\n        params[offset] = function callback(err/*, varargs */) {\r\n            if (pending) {\r\n                pending = false;\r\n                if (err)\r\n                    reject(err);\r\n                else {\r\n                    var params = new Array(arguments.length - 1),\r\n                        offset = 0;\r\n                    while (offset < params.length)\r\n                        params[offset++] = arguments[offset];\r\n                    resolve.apply(null, params);\r\n                }\r\n            }\r\n        };\r\n        try {\r\n            fn.apply(ctx || null, params);\r\n        } catch (err) {\r\n            if (pending) {\r\n                pending = false;\r\n                reject(err);\r\n            }\r\n        }\r\n    });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n    var p = string.length;\r\n    if (!p)\r\n        return 0;\r\n    var n = 0;\r\n    while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n        ++n;\r\n    return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n    s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n    var parts = null,\r\n        chunk = [];\r\n    var i = 0, // output index\r\n        j = 0, // goto index\r\n        t;     // temporary\r\n    while (start < end) {\r\n        var b = buffer[start++];\r\n        switch (j) {\r\n            case 0:\r\n                chunk[i++] = b64[b >> 2];\r\n                t = (b & 3) << 4;\r\n                j = 1;\r\n                break;\r\n            case 1:\r\n                chunk[i++] = b64[t | b >> 4];\r\n                t = (b & 15) << 2;\r\n                j = 2;\r\n                break;\r\n            case 2:\r\n                chunk[i++] = b64[t | b >> 6];\r\n                chunk[i++] = b64[b & 63];\r\n                j = 0;\r\n                break;\r\n        }\r\n        if (i > 8191) {\r\n            (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n            i = 0;\r\n        }\r\n    }\r\n    if (j) {\r\n        chunk[i++] = b64[t];\r\n        chunk[i++] = 61;\r\n        if (j === 1)\r\n            chunk[i++] = 61;\r\n    }\r\n    if (parts) {\r\n        if (i)\r\n            parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n        return parts.join(\"\");\r\n    }\r\n    return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n    var start = offset;\r\n    var j = 0, // goto index\r\n        t;     // temporary\r\n    for (var i = 0; i < string.length;) {\r\n        var c = string.charCodeAt(i++);\r\n        if (c === 61 && j > 1)\r\n            break;\r\n        if ((c = s64[c]) === undefined)\r\n            throw Error(invalidEncoding);\r\n        switch (j) {\r\n            case 0:\r\n                t = c;\r\n                j = 1;\r\n                break;\r\n            case 1:\r\n                buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n                t = c;\r\n                j = 2;\r\n                break;\r\n            case 2:\r\n                buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n                t = c;\r\n                j = 3;\r\n                break;\r\n            case 3:\r\n                buffer[offset++] = (t & 3) << 6 | c;\r\n                j = 0;\r\n                break;\r\n        }\r\n    }\r\n    if (j === 1)\r\n        throw Error(invalidEncoding);\r\n    return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n    return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\nvar reservedRe = /^(?: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)$/;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n    /* istanbul ignore if */\r\n    if (typeof functionParams === \"string\") {\r\n        functionName = functionParams;\r\n        functionParams = undefined;\r\n    }\r\n\r\n    var body = [];\r\n\r\n    /**\r\n     * Appends code to the function's body or finishes generation.\r\n     * @typedef Codegen\r\n     * @type {function}\r\n     * @param {string|Object.<string,*>} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n     * @param {...*} [formatParams] Format parameters\r\n     * @returns {Codegen|Function} Itself or the generated function if finished\r\n     * @throws {Error} If format parameter counts do not match\r\n     */\r\n\r\n    function Codegen(formatStringOrScope) {\r\n        // note that explicit array handling below makes this ~50% faster\r\n\r\n        // finish the function\r\n        if (typeof formatStringOrScope !== \"string\") {\r\n            var source = toString();\r\n            if (codegen.verbose)\r\n                console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n            source = \"return \" + source;\r\n            if (formatStringOrScope) {\r\n                var scopeKeys   = Object.keys(formatStringOrScope),\r\n                    scopeParams = new Array(scopeKeys.length + 1),\r\n                    scopeValues = new Array(scopeKeys.length),\r\n                    scopeOffset = 0;\r\n                while (scopeOffset < scopeKeys.length) {\r\n                    scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n                    scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n                }\r\n                scopeParams[scopeOffset] = source;\r\n                return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n            }\r\n            return Function(source)(); // eslint-disable-line no-new-func\r\n        }\r\n\r\n        // otherwise append to body\r\n        var formatParams = new Array(arguments.length - 1),\r\n            formatOffset = 0;\r\n        while (formatOffset < formatParams.length)\r\n            formatParams[formatOffset] = arguments[++formatOffset];\r\n        formatOffset = 0;\r\n        formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n            var value = formatParams[formatOffset++];\r\n            switch ($1) {\r\n                case \"d\": case \"f\": return String(Number(value));\r\n                case \"i\": return String(Math.floor(value));\r\n                case \"j\": return JSON.stringify(value);\r\n                case \"s\": return String(value);\r\n            }\r\n            return \"%\";\r\n        });\r\n        if (formatOffset !== formatParams.length)\r\n            throw Error(\"parameter count mismatch\");\r\n        body.push(formatStringOrScope);\r\n        return Codegen;\r\n    }\r\n\r\n    function toString(functionNameOverride) {\r\n        return \"function \" + safeFunctionName(functionNameOverride || functionName) + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n  \" + body.join(\"\\n  \") + \"\\n}\";\r\n    }\r\n\r\n    Codegen.toString = toString;\r\n    return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n\r\nfunction safeFunctionName(name) {\r\n    if (!name)\r\n        return \"\";\r\n    name = String(name).replace(/[^\\w$]/g, \"\");\r\n    if (!name)\r\n        return \"\";\r\n    if (/^\\d/.test(name))\r\n        name = \"_\" + name;\r\n    return reservedRe.test(name) ? name + \"_\" : name;\r\n}\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n    /**\r\n     * Registered listeners.\r\n     * @type {Object.<string,*>}\r\n     * @private\r\n     */\r\n    this._listeners = Object.create(null);\r\n}\r\n\r\n/**\r\n * Event listener as used by {@link util.EventEmitter}.\r\n * @typedef EventEmitterListener\r\n * @type {function}\r\n * @param {...*} args Arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {EventEmitterListener} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {this} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n    (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n        fn  : fn,\r\n        ctx : ctx || this\r\n    });\r\n    return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {EventEmitterListener} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {this} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n    if (evt === undefined)\r\n        this._listeners = Object.create(null);\r\n    else {\r\n        if (fn === undefined)\r\n            this._listeners[evt] = [];\r\n        else {\r\n            var listeners = this._listeners[evt];\r\n            if (!listeners)\r\n                return this;\r\n            for (var i = 0; i < listeners.length;)\r\n                if (listeners[i].fn === fn)\r\n                    listeners.splice(i, 1);\r\n                else\r\n                    ++i;\r\n        }\r\n    }\r\n    return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {this} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n    var listeners = this._listeners[evt];\r\n    if (listeners) {\r\n        var args = [],\r\n            i = 1;\r\n        for (; i < arguments.length;)\r\n            args.push(arguments[i++]);\r\n        for (i = 0; i < listeners.length;)\r\n            listeners[i].fn.apply(listeners[i++].ctx, args);\r\n    }\r\n    return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(1),\r\n    fs        = require(6);\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @interface IFetchOptions\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {IFetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n    if (typeof options === \"function\") {\r\n        callback = options;\r\n        options = {};\r\n    } else if (!options)\r\n        options = {};\r\n\r\n    if (!callback)\r\n        return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n    // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n    if (!options.xhr && fs && fs.readFile)\r\n        return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n            return err && typeof XMLHttpRequest !== \"undefined\"\r\n                ? fetch.xhr(filename, options, callback)\r\n                : err\r\n                ? callback(err)\r\n                : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n        });\r\n\r\n    // use the XHR version otherwise.\r\n    return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {IFetchOptions} [options] Fetch options\r\n * @returns {Promise<string|Uint8Array>} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n    var xhr = new XMLHttpRequest();\r\n    xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n        if (xhr.readyState !== 4)\r\n            return undefined;\r\n\r\n        // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n        // reliably distinguished from an actually empty file for security reasons. feel free\r\n        // to send a pull request if you are aware of a solution.\r\n        if (xhr.status !== 0 && xhr.status !== 200)\r\n            return callback(Error(\"status \" + xhr.status));\r\n\r\n        // if binary data is expected, make sure that some sort of array is returned, even if\r\n        // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n        if (options.binary) {\r\n            var buffer = xhr.response;\r\n            if (!buffer) {\r\n                buffer = [];\r\n                for (var i = 0; i < xhr.responseText.length; ++i)\r\n                    buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n            }\r\n            return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n        }\r\n        return callback(null, xhr.responseText);\r\n    };\r\n\r\n    if (options.binary) {\r\n        // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n        if (\"overrideMimeType\" in xhr)\r\n            xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n        xhr.responseType = \"arraybuffer\";\r\n    }\r\n\r\n    xhr.open(\"GET\", filename);\r\n    xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nvar fs = null;\r\ntry {\r\n    fs = require(11);\r\n    if (!fs || !fs.readFile || !fs.readFileSync)\r\n        fs = null;\r\n} catch (e) {\r\n    // `fs` is unavailable in browsers and browser-like bundles.\r\n}\r\nmodule.exports = fs;\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n    // float: typed array\r\n    if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n        var f32 = new Float32Array([ -0 ]),\r\n            f8b = new Uint8Array(f32.buffer),\r\n            le  = f8b[3] === 128;\r\n\r\n        function writeFloat_f32_cpy(val, buf, pos) {\r\n            f32[0] = val;\r\n            buf[pos    ] = f8b[0];\r\n            buf[pos + 1] = f8b[1];\r\n            buf[pos + 2] = f8b[2];\r\n            buf[pos + 3] = f8b[3];\r\n        }\r\n\r\n        function writeFloat_f32_rev(val, buf, pos) {\r\n            f32[0] = val;\r\n            buf[pos    ] = f8b[3];\r\n            buf[pos + 1] = f8b[2];\r\n            buf[pos + 2] = f8b[1];\r\n            buf[pos + 3] = f8b[0];\r\n        }\r\n\r\n        /* istanbul ignore next */\r\n        exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n        /* istanbul ignore next */\r\n        exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n        function readFloat_f32_cpy(buf, pos) {\r\n            f8b[0] = buf[pos    ];\r\n            f8b[1] = buf[pos + 1];\r\n            f8b[2] = buf[pos + 2];\r\n            f8b[3] = buf[pos + 3];\r\n            return f32[0];\r\n        }\r\n\r\n        function readFloat_f32_rev(buf, pos) {\r\n            f8b[3] = buf[pos    ];\r\n            f8b[2] = buf[pos + 1];\r\n            f8b[1] = buf[pos + 2];\r\n            f8b[0] = buf[pos + 3];\r\n            return f32[0];\r\n        }\r\n\r\n        /* istanbul ignore next */\r\n        exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n        /* istanbul ignore next */\r\n        exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n    // float: ieee754\r\n    })(); else (function() {\r\n\r\n        function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n            var sign = val < 0 ? 1 : 0;\r\n            if (sign)\r\n                val = -val;\r\n            if (val === 0)\r\n                writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n            else if (isNaN(val))\r\n                writeUint(2143289344, buf, pos);\r\n            else if (val > 3.4028234663852886e+38) // +-Infinity\r\n                writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n            else if (val < 1.1754943508222875e-38) // denormal\r\n                writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n            else {\r\n                var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n                    mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n                writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n            }\r\n        }\r\n\r\n        exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n        exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n        function readFloat_ieee754(readUint, buf, pos) {\r\n            var uint = readUint(buf, pos),\r\n                sign = (uint >> 31) * 2 + 1,\r\n                exponent = uint >>> 23 & 255,\r\n                mantissa = uint & 8388607;\r\n            return exponent === 255\r\n                ? mantissa\r\n                ? NaN\r\n                : sign * Infinity\r\n                : exponent === 0 // denormal\r\n                ? sign * 1.401298464324817e-45 * mantissa\r\n                : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n        }\r\n\r\n        exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n        exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n    })();\r\n\r\n    // double: typed array\r\n    if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n        var f64 = new Float64Array([-0]),\r\n            f8b = new Uint8Array(f64.buffer),\r\n            le  = f8b[7] === 128;\r\n\r\n        function writeDouble_f64_cpy(val, buf, pos) {\r\n            f64[0] = val;\r\n            buf[pos    ] = f8b[0];\r\n            buf[pos + 1] = f8b[1];\r\n            buf[pos + 2] = f8b[2];\r\n            buf[pos + 3] = f8b[3];\r\n            buf[pos + 4] = f8b[4];\r\n            buf[pos + 5] = f8b[5];\r\n            buf[pos + 6] = f8b[6];\r\n            buf[pos + 7] = f8b[7];\r\n        }\r\n\r\n        function writeDouble_f64_rev(val, buf, pos) {\r\n            f64[0] = val;\r\n            buf[pos    ] = f8b[7];\r\n            buf[pos + 1] = f8b[6];\r\n            buf[pos + 2] = f8b[5];\r\n            buf[pos + 3] = f8b[4];\r\n            buf[pos + 4] = f8b[3];\r\n            buf[pos + 5] = f8b[2];\r\n            buf[pos + 6] = f8b[1];\r\n            buf[pos + 7] = f8b[0];\r\n        }\r\n\r\n        /* istanbul ignore next */\r\n        exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n        /* istanbul ignore next */\r\n        exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n        function readDouble_f64_cpy(buf, pos) {\r\n            f8b[0] = buf[pos    ];\r\n            f8b[1] = buf[pos + 1];\r\n            f8b[2] = buf[pos + 2];\r\n            f8b[3] = buf[pos + 3];\r\n            f8b[4] = buf[pos + 4];\r\n            f8b[5] = buf[pos + 5];\r\n            f8b[6] = buf[pos + 6];\r\n            f8b[7] = buf[pos + 7];\r\n            return f64[0];\r\n        }\r\n\r\n        function readDouble_f64_rev(buf, pos) {\r\n            f8b[7] = buf[pos    ];\r\n            f8b[6] = buf[pos + 1];\r\n            f8b[5] = buf[pos + 2];\r\n            f8b[4] = buf[pos + 3];\r\n            f8b[3] = buf[pos + 4];\r\n            f8b[2] = buf[pos + 5];\r\n            f8b[1] = buf[pos + 6];\r\n            f8b[0] = buf[pos + 7];\r\n            return f64[0];\r\n        }\r\n\r\n        /* istanbul ignore next */\r\n        exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n        /* istanbul ignore next */\r\n        exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n    // double: ieee754\r\n    })(); else (function() {\r\n\r\n        function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n            var sign = val < 0 ? 1 : 0;\r\n            if (sign)\r\n                val = -val;\r\n            if (val === 0) {\r\n                writeUint(0, buf, pos + off0);\r\n                writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n            } else if (isNaN(val)) {\r\n                writeUint(0, buf, pos + off0);\r\n                writeUint(2146959360, buf, pos + off1);\r\n            } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n                writeUint(0, buf, pos + off0);\r\n                writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n            } else {\r\n                var mantissa;\r\n                if (val < 2.2250738585072014e-308) { // denormal\r\n                    mantissa = val / 5e-324;\r\n                    writeUint(mantissa >>> 0, buf, pos + off0);\r\n                    writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n                } else {\r\n                    var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n                    if (exponent === 1024)\r\n                        exponent = 1023;\r\n                    mantissa = val * Math.pow(2, -exponent);\r\n                    writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n                    writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n                }\r\n            }\r\n        }\r\n\r\n        exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n        exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n        function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n            var lo = readUint(buf, pos + off0),\r\n                hi = readUint(buf, pos + off1);\r\n            var sign = (hi >> 31) * 2 + 1,\r\n                exponent = hi >>> 20 & 2047,\r\n                mantissa = 4294967296 * (hi & 1048575) + lo;\r\n            return exponent === 2047\r\n                ? mantissa\r\n                ? NaN\r\n                : sign * Infinity\r\n                : exponent === 0 // denormal\r\n                ? sign * 5e-324 * mantissa\r\n                : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n        }\r\n\r\n        exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n        exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n    })();\r\n\r\n    return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n    buf[pos    ] =  val        & 255;\r\n    buf[pos + 1] =  val >>> 8  & 255;\r\n    buf[pos + 2] =  val >>> 16 & 255;\r\n    buf[pos + 3] =  val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n    buf[pos    ] =  val >>> 24;\r\n    buf[pos + 1] =  val >>> 16 & 255;\r\n    buf[pos + 2] =  val >>> 8  & 255;\r\n    buf[pos + 3] =  val        & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n    return (buf[pos    ]\r\n          | buf[pos + 1] << 8\r\n          | buf[pos + 2] << 16\r\n          | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n    return (buf[pos    ] << 24\r\n          | buf[pos + 1] << 16\r\n          | buf[pos + 2] << 8\r\n          | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n    return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n    path = path.replace(/\\\\/g, \"/\")\r\n               .replace(/\\/{2,}/g, \"/\");\r\n    var parts    = path.split(\"/\"),\r\n        absolute = isAbsolute(path),\r\n        prefix   = \"\";\r\n    if (absolute)\r\n        prefix = parts.shift() + \"/\";\r\n    for (var i = 0; i < parts.length;) {\r\n        if (parts[i] === \"..\") {\r\n            if (i > 0 && parts[i - 1] !== \"..\")\r\n                parts.splice(--i, 2);\r\n            else if (absolute)\r\n                parts.splice(i, 1);\r\n            else\r\n                ++i;\r\n        } else if (parts[i] === \".\")\r\n            parts.splice(i, 1);\r\n        else\r\n            ++i;\r\n    }\r\n    return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n    if (!alreadyNormalized)\r\n        includePath = normalize(includePath);\r\n    if (isAbsolute(includePath))\r\n        return includePath;\r\n    if (!alreadyNormalized)\r\n        originPath = normalize(originPath);\r\n    return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n    var SIZE   = size || 8192;\r\n    var MAX    = SIZE >>> 1;\r\n    var slab   = null;\r\n    var offset = SIZE;\r\n    return function pool_alloc(size) {\r\n        if (size < 1 || size > MAX)\r\n            return alloc(size);\r\n        if (offset + size > SIZE) {\r\n            slab = alloc(SIZE);\r\n            offset = 0;\r\n        }\r\n        var buf = slice.call(slab, offset, offset += size);\r\n        if (offset & 7) // align to 32 bit\r\n            offset = (offset | 7) + 1;\r\n        return buf;\r\n    };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports,\r\n    replacementChar = \"\\ufffd\";\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n    var len = 0,\r\n        c = 0;\r\n    for (var i = 0; i < string.length; ++i) {\r\n        c = string.charCodeAt(i);\r\n        if (c < 128)\r\n            len += 1;\r\n        else if (c < 2048)\r\n            len += 2;\r\n        else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n            ++i;\r\n            len += 4;\r\n        } else\r\n            len += 3;\r\n    }\r\n    return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n    if (end - start < 1) {\r\n        return \"\";\r\n    }\r\n\r\n    var str = \"\";\r\n    for (var i = start; i < end;) {\r\n        var t = buffer[i++];\r\n        if (t <= 0x7F) {\r\n            str += String.fromCharCode(t);\r\n        } else if (t >= 0xC0 && t < 0xE0) {\r\n            var c2 = (t & 0x1F) << 6 | buffer[i++] & 0x3F;\r\n            str += c2 >= 0x80 ? String.fromCharCode(c2) : replacementChar;\r\n        } else if (t >= 0xE0 && t < 0xF0) {\r\n            var c3 = (t & 0xF) << 12 | (buffer[i++] & 0x3F) << 6 | buffer[i++] & 0x3F;\r\n            str += c3 >= 0x800 ? String.fromCharCode(c3) : replacementChar;\r\n        } else if (t >= 0xF0) {\r\n            var t2 = (t & 7) << 18 | (buffer[i++] & 0x3F) << 12 | (buffer[i++] & 0x3F) << 6 | buffer[i++] & 0x3F;\r\n            if (t2 < 0x10000 || t2 > 0x10FFFF)\r\n                str += replacementChar;\r\n            else {\r\n                t2 -= 0x10000;\r\n                str += String.fromCharCode(0xD800 + (t2 >> 10));\r\n                str += String.fromCharCode(0xDC00 + (t2 & 0x3FF));\r\n            }\r\n        }\r\n    }\r\n\r\n    return str;\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n    var start = offset,\r\n        c1, // character 1\r\n        c2; // character 2\r\n    for (var i = 0; i < string.length; ++i) {\r\n        c1 = string.charCodeAt(i);\r\n        if (c1 < 128) {\r\n            buffer[offset++] = c1;\r\n        } else if (c1 < 2048) {\r\n            buffer[offset++] = c1 >> 6       | 192;\r\n            buffer[offset++] = c1       & 63 | 128;\r\n        } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n            c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n            ++i;\r\n            buffer[offset++] = c1 >> 18      | 240;\r\n            buffer[offset++] = c1 >> 12 & 63 | 128;\r\n            buffer[offset++] = c1 >> 6  & 63 | 128;\r\n            buffer[offset++] = c1       & 63 | 128;\r\n        } else {\r\n            buffer[offset++] = c1 >> 12      | 224;\r\n            buffer[offset++] = c1 >> 6  & 63 | 128;\r\n            buffer[offset++] = c1       & 63 | 128;\r\n        }\r\n    }\r\n    return offset - start;\r\n};\r\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(15),\n    util = require(34);\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    var defaultAlreadyEmitted = false;\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                // enum unknown values passthrough\n                if (values[keys[i]] === field.typeDefault && !defaultAlreadyEmitted) { gen\n                    (\"default:\")\n                        (\"if(typeof(d%s)===\\\"number\\\"){m%s=d%s;break}\", prop, prop, prop);\n                    if (!field.repeated) gen // fallback to default value only for\n                                             // arrays, to avoid leaving holes.\n                        (\"break\");           // for non-repeated fields, just ignore\n                    defaultAlreadyEmitted = true;\n                }\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(!util.isObject(d%s))\", prop)\n                (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n            (\"m%s=types[%i].fromObject(d%s,n+1)\", 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            case \"fixed64\":\n                isUnsigned = true;\n                // eslint-disable-next-line no-fallthrough\n            case \"int64\":\n            case \"sint64\":\n            case \"sfixed64\": gen\n                (\"if(util.Long)\")\n                    (\"m%s=util.Long.fromValue(d%s,%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 >= 0)\", 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\", \"n\"], 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    (\"if(!util.isObject(d))\")\n        (\"throw TypeError(%j)\", mtype.fullName + \": object expected\")\n    (\"if(n===undefined)n=0\")\n    (\"if(n>util.recursionLimit)\")\n        (\"throw Error(\\\"maximum nesting depth exceeded\\\")\");\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(!util.isObject(d%s))\", 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            gen\n        (\"if(ks[i]===\\\"__proto__\\\")\")\n            (\"util.makeProp(m%s,ks[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]===undefined?m%s:types[%i].values[m%s]):m%s\", prop, fieldIndex, prop, prop, fieldIndex, prop, prop);\n        else gen\n            (\"d%s=types[%i].toObject(m%s,o,q+1)\", 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            case \"fixed64\":\n                isUnsigned = true;\n                // eslint-disable-next-line no-fallthrough\n            case \"int64\":\n            case \"sint64\":\n            case \"sfixed64\": gen\n            (\"if(typeof BigInt!==\\\"undefined\\\"&&o.longs===BigInt)\")\n                (\"d%s=typeof m%s===\\\"number\\\"?BigInt(m%s):util.Long.fromBits(m%s.low>>>0,m%s.high>>>0,%j).toBigInt()\", prop, prop, prop, prop, prop, isUnsigned)\n            (\"else 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\", \"q\"], mtype.name + \"$toObject\")\n    (\"if(!o)\")\n        (\"o={}\")\n    (\"if(q===undefined)q=0\")\n    (\"if(q>util.recursionLimit)\")\n        (\"throw Error(\\\"max depth exceeded\\\")\")\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():typeof BigInt!==\\\"undefined\\\"&&o.longs===BigInt?n.toBigInt():n\", prop)\n        (\"}else\")\n            (\"d%s=o.longs===String?%j:typeof BigInt!==\\\"undefined\\\"&&o.longs===BigInt?BigInt(%j):%i\", prop, field.typeDefault.toString(), field.typeDefault.toString(), field.typeDefault.toNumber());\n            else if (field.bytes) {\n                var arrayDefault = Array.prototype.slice.call(field.typeDefault);\n                gen\n        (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n        (\"else{\")\n            (\"d%s=%j\", prop, arrayDefault)\n            (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n        (\"}\");\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            gen\n        (\"if(ks2[j]===\\\"__proto__\\\")\")\n            (\"util.makeProp(d%s,ks2[j])\", prop);\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&&Object.hasOwnProperty.call(m,%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","\"use strict\";\nmodule.exports = decoder;\n\nvar Enum    = require(15),\n    types   = require(33),\n    util    = require(34);\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\", \"e\", \"n\"], mtype.name + \"$decode\")\n    (\"if(!(r instanceof Reader))\")\n        (\"r=Reader.create(r)\")\n    (\"if(n===undefined)n=0\")\n    (\"if(n>Reader.recursionLimit)\")\n        (\"throw Error(\\\"maximum nesting depth exceeded\\\")\")\n    (\"var c=l===undefined?r.len:r.pos+l,m=new this.ctor\" + (mtype.fieldsArray.filter(function(field) { return field.map; }).length ? \",k,value\" : \"\"))\n    (\"while(r.pos<c){\")\n        (\"var t=r.uint32()\")\n        (\"if(t===e)\")\n            (\"break\")\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                (\"if(%s===util.emptyObject)\", ref)\n                    (\"%s={}\", ref)\n                (\"var c2 = r.uint32()+r.pos\");\n\n            if (types.defaults[field.keyType] !== undefined) gen\n                (\"k=%j\", types.defaults[field.keyType]);\n            else gen\n                (\"k=null\");\n\n            if (types.defaults[type] !== undefined) gen\n                (\"value=%j\", types.defaults[type]);\n            else gen\n                (\"value=null\");\n\n            gen\n                (\"while(r.pos<c2){\")\n                    (\"var tag2=r.uint32()\")\n                    (\"switch(tag2>>>3){\")\n                        (\"case 1: k=r.%s(); break\", field.keyType)\n                        (\"case 2:\");\n\n            if (types.basic[type] === undefined) gen\n                            (\"value=types[%i].decode(r,r.uint32(),undefined,n+1)\", i); // can't be groups\n            else gen\n                            (\"value=r.%s()\", type);\n\n            gen\n                            (\"break\")\n                        (\"default:\")\n                            (\"r.skipType(tag2&7,n)\")\n                            (\"break\")\n                    (\"}\")\n                (\"}\");\n\n            if (types.long[field.keyType] !== undefined) gen\n                (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=value\", ref);\n            else {\n                if (field.keyType === \"string\") gen\n                (\"if(k===\\\"__proto__\\\")\")\n                    (\"util.makeProp(%s,k)\", ref);\n                gen\n                (\"%s[k]=value\", ref);\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.delimited\n                    ? \"%s.push(types[%i].decode(r,undefined,((t&~7)|4),n+1))\"\n                    : \"%s.push(types[%i].decode(r,r.uint32(),undefined,n+1))\", 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.delimited\n                ? \"%s=types[%i].decode(r,undefined,((t&~7)|4),n+1)\"\n                : \"%s=types[%i].decode(r,r.uint32(),undefined,n+1)\", ref, i);\n        else gen\n                (\"%s=r.%s()\", ref, type);\n        gen\n                (\"break\")\n            (\"}\");\n        // Unknown fields\n    } gen\n            (\"default:\")\n                (\"r.skipType(t&7,n)\")\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(!Object.hasOwnProperty.call(m,%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","\"use strict\";\nmodule.exports = encoder;\n\nvar Enum     = require(15),\n    types    = require(33),\n    util     = require(34);\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.delimited\n        ? gen(\"types[%i].encode(%s,w.uint32(%i),q+1).uint32(%i)\", fieldIndex, ref, (field.id << 3 | 3) >>> 0, (field.id << 3 | 4) >>> 0)\n        : gen(\"types[%i].encode(%s,w.uint32(%i).fork(),q+1).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\", \"q\"], mtype.name + \"$encode\")\n    (\"if(!w)\")\n        (\"w=Writer.create()\")\n    (\"if(q===undefined)q=0\")\n    (\"if(q>util.recursionLimit)\")\n        (\"throw Error(\\\"max depth exceeded\\\")\");\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&&Object.hasOwnProperty.call(m,%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(),q+1).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&&Object.hasOwnProperty.call(m,%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","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(23);\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(22),\n    util = require(34);\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 * @param {Object.<string,Object<string,*>>|undefined} [valuesOptions] The value options for this enum\n */\nfunction Enum(name, values, options, comment, comments, valuesOptions) {\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     * Values options, if any\n     * @type {Object<string, Object<string, *>>|undefined}\n     */\n    this.valuesOptions = valuesOptions;\n\n    /**\n     * Resolved values features, if any\n     * @type {Object<string, Object<string, *>>|undefined}\n     */\n    this._valuesFeatures = {};\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 (keys[i] !== \"__proto__\" && 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 * @override\n */\nEnum.prototype._resolveFeatures = function _resolveFeatures(edition) {\n    edition = this._edition || edition;\n    ReflectionObject.prototype._resolveFeatures.call(this, edition);\n\n    Object.keys(this.values).forEach(key => {\n        var parentFeaturesCopy = util.merge({}, this._features);\n        this._valuesFeatures[key] = util.merge(parentFeaturesCopy, this.valuesOptions && this.valuesOptions[key] && this.valuesOptions[key].features || {});\n    });\n\n    return this;\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    if (json.edition)\n        enm._edition = json.edition;\n    enm._defaultEdition = \"proto3\";  // For backwards-compatibility.\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        \"edition\"       , this._editionToJSON(),\n        \"options\"       , this.options,\n        \"valuesOptions\" , this.valuesOptions,\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 * @param {Object.<string, *>|undefined} [options] Options, 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, options) {\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 (name === \"__proto__\")\n        return this;\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    if (options) {\n        if (this.valuesOptions === undefined)\n            this.valuesOptions = {};\n        this.valuesOptions[name] = options || null;\n    }\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    if (this.valuesOptions)\n        delete this.valuesOptions[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","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(23);\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum  = require(15),\n    types = require(33),\n    util  = require(34);\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    var field = new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n    if (json.edition)\n        field._edition = json.edition;\n    field._defaultEdition = \"proto3\";  // For backwards-compatibility.\n    return field;\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    if (rule === \"proto3_optional\") {\n        rule = \"optional\";\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 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     * Comment for this field.\n     * @type {string|null}\n     */\n    this.comment = comment;\n}\n\n/**\n * Determines whether this field is required.\n * @name Field#required\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"required\", {\n    get: function() {\n        return this._features.field_presence === \"LEGACY_REQUIRED\";\n    }\n});\n\n/**\n * Determines whether this field is not required.\n * @name Field#optional\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"optional\", {\n    get: function() {\n        return !this.required;\n    }\n});\n\n/**\n * Determines whether this field uses tag-delimited encoding.  In proto2 this\n * corresponded to group syntax.\n * @name Field#delimited\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"delimited\", {\n    get: function() {\n        return this.resolvedType instanceof Type &&\n            this._features.message_encoding === \"DELIMITED\";\n    }\n});\n\n/**\n * Determines whether this field is packed. Only relevant when repeated.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n    get: function() {\n        return this._features.repeated_field_encoding === \"PACKED\";\n    }\n});\n\n/**\n * Determines whether this field tracks presence.\n * @name Field#hasPresence\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"hasPresence\", {\n    get: function() {\n        if (this.repeated || this.map) {\n            return false;\n        }\n        return this.partOf || // oneofs\n            this.declaringField || this.extensionField || // extensions\n            this._features.field_presence !== \"IMPLICIT\";\n    }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\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        \"edition\" , this._editionToJSON(),\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    } else if (this.options && this.options.proto3_optional) {\n        // proto3 scalar value marked optional; should default to null\n        this.typeDefault = null;\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 !== 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 === \"uint64\" || this.type === \"fixed64\");\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 * Infers field features from legacy syntax that may have been specified differently.\n * in older editions.\n * @param {string|undefined} edition The edition this proto is on, or undefined if pre-editions\n * @returns {object} The feature values to override\n */\nField.prototype._inferLegacyProtoFeatures = function _inferLegacyProtoFeatures(edition) {\n    if (edition !== \"proto2\" && edition !== \"proto3\") {\n        return {};\n    }\n\n    var features = {};\n\n    if (this.rule === \"required\") {\n        features.field_presence = \"LEGACY_REQUIRED\";\n    }\n    if (this.parent && types.defaults[this.type] === undefined) {\n        // We can't use resolvedType because types may not have been resolved yet.  However,\n        // legacy groups are always in the same scope as the field so we don't have to do a\n        // full scan of the tree.\n        var type = this.parent.get(this.type.split(\".\").pop());\n        if (type && type instanceof Type && type.group) {\n            features.message_encoding = \"DELIMITED\";\n        }\n    }\n    if (this.getOption(\"packed\") === true) {\n        features.repeated_field_encoding = \"PACKED\";\n    } else if (this.getOption(\"packed\") === false) {\n        features.repeated_field_encoding = \"EXPANDED\";\n    }\n    return features;\n};\n\n/**\n * @override\n */\nField.prototype._resolveFeatures = function _resolveFeatures(edition) {\n    return ReflectionObject.prototype._resolveFeatures.call(this, this._edition || edition);\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\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n    Type = Type_;\n};\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(39);\nprotobuf.converter        = require(12);\n\n// Reflection\nprotobuf.ReflectionObject = require(23);\nprotobuf.Namespace        = require(22);\nprotobuf.Root             = require(27);\nprotobuf.Enum             = require(15);\nprotobuf.Type             = require(32);\nprotobuf.Field            = require(16);\nprotobuf.OneOf            = require(24);\nprotobuf.MapField         = require(19);\nprotobuf.Service          = require(31);\nprotobuf.Method           = require(21);\n\n// Runtime\nprotobuf.Message          = require(20);\nprotobuf.wrappers         = require(40);\n\n// Utility\nprotobuf.types            = require(33);\nprotobuf.util             = require(34);\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\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(41);\nprotobuf.BufferWriter = require(42);\nprotobuf.Reader       = require(25);\nprotobuf.BufferReader = require(26);\n\n// Utility\nprotobuf.util         = require(37);\nprotobuf.rpc          = require(29);\nprotobuf.roots        = require(28);\nprotobuf.configure    = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n    protobuf.util._configure();\n    protobuf.Writer._configure(protobuf.BufferWriter);\n    protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"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(33),\n    util    = require(34);\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","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(37);\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 = 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            var key = keys[i];\n            if (key === \"__proto__\")\n                continue;\n            this[key] = properties[key];\n        }\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","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(23);\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(34);\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 * @param {Object.<string,*>} [parsedOptions] Declared options, properly parsed into an object\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment, parsedOptions) {\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     * Options properly parsed into an object\n     */\n    this.parsedOptions = parsedOptions;\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 * @property {string} comment Method comments\n * @property {Object.<string,*>} [parsedOptions] Method options properly parsed into an object\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, json.parsedOptions);\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        \"parsedOptions\"  , this.parsedOptions,\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","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(23);\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field    = require(16),\n    util     = require(34),\n    OneOf    = require(24);\n\nvar Type,    // cyclic\n    Service,\n    Enum;\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 * @param {number} [depth] Current nesting depth, defaults to `0`\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json, depth) {\n    depth = util.checkDepth(depth);\n    return new Namespace(name, json.options).addJSON(json.nested, depth);\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    /**\n     * Cache lookup calls for any objects contains anywhere under this namespace.\n     * This drastically speeds up resolve for large cross-linked protos where the same\n     * types are looked up repeatedly.\n     * @type {Object.<string,ReflectionObject|null>}\n     * @private\n     */\n    this._lookupCache = Object.create(null);\n\n    /**\n     * Whether or not objects contained in this namespace need feature resolution.\n     * @type {boolean}\n     * @protected\n     */\n    this._needsRecursiveFeatureResolution = true;\n\n    /**\n     * Whether or not objects contained in this namespace need a resolve.\n     * @type {boolean}\n     * @protected\n     */\n    this._needsRecursiveResolve = true;\n}\n\nfunction clearCache(namespace) {\n    namespace._nestedArray = null;\n    namespace._lookupCache = Object.create(null);\n\n    // Also clear parent caches, since they include nested lookups.\n    var parent = namespace;\n    while(parent = parent.parent) {\n        parent._lookupCache = Object.create(null);\n    }\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|IOneOf}\n */\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 * @param {number} [depth] Current nesting depth, defaults to `0`\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson, depth) {\n    depth = util.checkDepth(depth);\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, depth + 1)\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 && Object.prototype.hasOwnProperty.call(this.nested, name)\n        ? 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 && Object.prototype.hasOwnProperty.call(this.nested, name) && 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 OneOf || object instanceof Enum || object instanceof Service || object instanceof Namespace))\n        throw TypeError(\"object must be a valid nested object\");\n\n    if (object.name === \"__proto__\")\n        return this;\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\n    if (!(this instanceof Type || this instanceof Service || this instanceof Enum || this instanceof Field)) {\n        // This is a package or a root namespace.\n        if (!object._edition) {\n            // Make sure that some edition is set if it hasn't already been specified.\n            object._edition = object._defaultEdition;\n        }\n    }\n\n    this._needsRecursiveFeatureResolution = true;\n    this._needsRecursiveResolve = true;\n\n    // Also clear parent caches, since they need to recurse down.\n    var parent = this;\n    while(parent = parent.parent) {\n        parent._needsRecursiveFeatureResolution = true;\n        parent._needsRecursiveResolve = true;\n    }\n\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    if (path.length > util.recursionLimit)\n        throw Error(\"max depth exceeded\");\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    if (!this._needsRecursiveResolve) return this;\n\n    this._resolveFeaturesRecursive(this._edition);\n\n    var nested = this.nestedArray, i = 0;\n    this.resolve();\n    while (i < nested.length)\n        if (nested[i] instanceof Namespace)\n            nested[i++].resolveAll();\n        else\n            nested[i++].resolve();\n    this._needsRecursiveResolve = false;\n    return this;\n};\n\n/**\n * @override\n */\nNamespace.prototype._resolveFeaturesRecursive = function _resolveFeaturesRecursive(edition) {\n    if (!this._needsRecursiveFeatureResolution) return this;\n    this._needsRecursiveFeatureResolution = false;\n\n    edition = this._edition || edition;\n\n    ReflectionObject.prototype._resolveFeaturesRecursive.call(this, edition);\n    this.nestedArray.forEach(nested => {\n        nested._resolveFeaturesRecursive(edition);\n    });\n    return this;\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    /* 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    var flatPath = path.join(\".\");\n\n    // Start at root if path is absolute\n    if (path[0] === \"\")\n        return this.root.lookup(path.slice(1), filterTypes);\n\n    // Early bailout for objects with matching absolute paths\n    var found = this.root._fullyQualifiedObjects && this.root._fullyQualifiedObjects[\".\" + flatPath];\n    if (found && (!filterTypes || filterTypes.indexOf(found.constructor) > -1)) {\n        return found;\n    }\n\n    // Do a regular lookup at this namespace and below\n    found = this._lookupImpl(path, flatPath);\n    if (found && (!filterTypes || filterTypes.indexOf(found.constructor) > -1)) {\n        return found;\n    }\n\n    if (parentAlreadyChecked)\n        return null;\n\n    // If there hasn't been a match, walk up the tree and look more broadly\n    var current = this;\n    while (current.parent) {\n        found = current.parent._lookupImpl(path, flatPath);\n        if (found && (!filterTypes || filterTypes.indexOf(found.constructor) > -1)) {\n            return found;\n        }\n        current = current.parent;\n    }\n    return null;\n};\n\n/**\n * Internal helper for lookup that handles searching just at this namespace and below along with caching.\n * @param {string[]} path Path to look up\n * @param {string} flatPath Flattened version of the path to use as a cache key\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @private\n */\nNamespace.prototype._lookupImpl = function lookup(path, flatPath) {\n    if(Object.prototype.hasOwnProperty.call(this._lookupCache, flatPath)) {\n        return this._lookupCache[flatPath];\n    }\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    var exact = null;\n    if (found) {\n        if (path.length === 1) {\n            exact = found;\n        } else if (found instanceof Namespace) {\n            path = path.slice(1);\n            exact = found._lookupImpl(path, path.join(\".\"));\n        }\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]._lookupImpl(path, flatPath))) {\n                exact = found;\n                break;\n            }\n    }\n\n    // Set this even when null, so that when we walk up the tree we can quickly bail on repeated checks back down.\n    this._lookupCache[flatPath] = exact;\n    return exact;\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\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n    Type    = Type_;\n    Service = Service_;\n    Enum    = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nconst OneOf = require(24);\nvar util = require(34);\n\nvar Root; // cyclic\n\n/* eslint-disable no-warning-comments */\n// TODO: Replace with embedded proto.\nvar editions2023Defaults = {enum_type: \"OPEN\", field_presence: \"EXPLICIT\", json_format: \"ALLOW\", message_encoding: \"LENGTH_PREFIXED\", repeated_field_encoding: \"PACKED\", utf8_validation: \"VERIFY\"};\nvar proto2Defaults = {enum_type: \"CLOSED\", field_presence: \"EXPLICIT\", json_format: \"LEGACY_BEST_EFFORT\", message_encoding: \"LENGTH_PREFIXED\", repeated_field_encoding: \"EXPANDED\", utf8_validation: \"NONE\"};\nvar proto3Defaults = {enum_type: \"OPEN\", field_presence: \"IMPLICIT\", json_format: \"ALLOW\", message_encoding: \"LENGTH_PREFIXED\", repeated_field_encoding: \"PACKED\", utf8_validation: \"VERIFY\"};\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     * Parsed Options.\n     * @type {Array.<Object.<string,*>>|undefined}\n     */\n    this.parsedOptions = null;\n\n    /**\n     * Unique name within its namespace.\n     * @type {string}\n     */\n    this.name = name;\n\n    /**\n     * The edition specified for this object.  Only relevant for top-level objects.\n     * @type {string}\n     * @private\n     */\n    this._edition = null;\n\n    /**\n     * The default edition to use for this object if none is specified.  For legacy reasons,\n     * this is proto2 except in the JSON parsing case where it was proto3.\n     * @type {string}\n     * @private\n     */\n    this._defaultEdition = \"proto2\";\n\n    /**\n     * Resolved Features.\n     * @type {object}\n     * @private\n     */\n    this._features = {};\n\n    /**\n     * Whether or not features have been resolved.\n     * @type {boolean}\n     * @private\n     */\n    this._featuresResolved = false;\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 * Resolves this objects editions features.\n * @param {string} edition The edition we're currently resolving for.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype._resolveFeaturesRecursive = function _resolveFeaturesRecursive(edition) {\n    return this._resolveFeatures(this._edition || edition);\n};\n\n/**\n * Resolves child features from parent features\n * @param {string} edition The edition we're currently resolving for.\n * @returns {undefined}\n */\nReflectionObject.prototype._resolveFeatures = function _resolveFeatures(edition) {\n    if (this._featuresResolved) {\n        return;\n    }\n\n    var defaults = {};\n\n    /* istanbul ignore if */\n    if (!edition) {\n        throw new Error(\"Unknown edition for \" + this.fullName);\n    }\n\n    var protoFeatures = util.merge({}, this.options && this.options.features,\n        this._inferLegacyProtoFeatures(edition));\n\n    if (this._edition) {\n        // For a namespace marked with a specific edition, reset defaults.\n        /* istanbul ignore else */\n        if (edition === \"proto2\") {\n            defaults = Object.assign({}, proto2Defaults);\n        } else if (edition === \"proto3\") {\n            defaults = Object.assign({}, proto3Defaults);\n        } else if (edition === \"2023\") {\n            defaults = Object.assign({}, editions2023Defaults);\n        } else {\n            throw new Error(\"Unknown edition: \" + edition);\n        }\n        this._features = util.merge(defaults, protoFeatures);\n        this._featuresResolved = true;\n        return;\n    }\n\n    // fields in Oneofs aren't actually children of them, so we have to\n    // special-case it\n    /* istanbul ignore else */\n    if (this.partOf instanceof OneOf) {\n        var lexicalParentFeaturesCopy = util.merge({}, this.partOf._features);\n        this._features = util.merge(lexicalParentFeaturesCopy, protoFeatures);\n    } else if (this.declaringField) {\n        // Skip feature resolution of sister fields.\n    } else if (this.parent) {\n        var parentFeaturesCopy = util.merge({}, this.parent._features);\n        this._features = util.merge(parentFeaturesCopy, protoFeatures);\n    } else {\n        throw new Error(\"Unable to find a parent for \" + this.fullName);\n    }\n    if (this.extensionField) {\n        // Sister fields should have the same features as their extensions.\n        this.extensionField._features = this._features;\n    }\n    this._featuresResolved = true;\n};\n\n/**\n * Infers features from legacy syntax that may have been specified differently.\n * in older editions.\n * @param {string|undefined} edition The edition this proto is on, or undefined if pre-editions\n * @returns {object} The feature values to override\n */\nReflectionObject.prototype._inferLegacyProtoFeatures = function _inferLegacyProtoFeatures(/*edition*/) {\n    return {};\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|undefined} [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 (name === \"__proto__\")\n        return this;\n    if (!this.options)\n        this.options = {};\n    if (/^features\\./.test(name)) {\n        util.setProperty(this.options, name, value, ifNotSet);\n    } else if (!ifNotSet || this.options[name] === undefined) {\n        if (this.getOption(name) !== value) this.resolved = false;\n        this.options[name] = value;\n    }\n\n    return this;\n};\n\n/**\n * Sets a parsed option.\n * @param {string} name parsed Option name\n * @param {*} value Option value\n * @param {string} propName dot '.' delimited full path of property within the option to set. if undefined\\empty, will add a new option with that value\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setParsedOption = function setParsedOption(name, value, propName) {\n    if (name === \"__proto__\")\n        return this;\n    if (!this.parsedOptions) {\n        this.parsedOptions = [];\n    }\n    var parsedOptions = this.parsedOptions;\n    if (propName) {\n        // If setting a sub property of an option then try to merge it\n        // with an existing option\n        var opt = parsedOptions.find(function (opt) {\n            return Object.prototype.hasOwnProperty.call(opt, name);\n        });\n        if (opt) {\n            // If we found an existing option - just merge the property value\n            // (If it's a feature, will just write over)\n            var newValue = opt[name];\n            util.setProperty(newValue, propName, value);\n        } else {\n            // otherwise, create a new option, set its property and add it to the list\n            opt = {};\n            opt[name] = util.setProperty({}, propName, value);\n            parsedOptions.push(opt);\n        }\n    } else {\n        // Always create a new option when setting the value of the option itself\n        var newOpt = {};\n        newOpt[name] = value;\n        parsedOptions.push(newOpt);\n    }\n\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\n/**\n * Converts the edition this object is pinned to for JSON format.\n * @returns {string|undefined} The edition string for JSON representation\n */\nReflectionObject.prototype._editionToJSON = function _editionToJSON() {\n    if (!this._edition || this._edition === \"proto3\") {\n        // Avoid emitting proto3 since we need to default to it for backwards\n        // compatibility anyway.\n        return undefined;\n    }\n    return this._edition;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n    Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(23);\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(16),\n    util  = require(34);\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 * Determines whether this field corresponds to a synthetic oneof created for\n * a proto3 optional field.  No behavioral logic should depend on this, but it\n * can be relevant for reflection.\n * @name OneOf#isProto3Optional\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(OneOf.prototype, \"isProto3Optional\", {\n    get: function() {\n        if (this.fieldsArray == null || this.fieldsArray.length !== 1) {\n            return false;\n        }\n\n        var field = this.fieldsArray[0];\n        return field.options != null && field.options[\"proto3_optional\"] === true;\n    }\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","\"use strict\";\nmodule.exports = Reader;\n\nvar util      = require(37);\n\nvar BufferReader; // cyclic\n\nvar LongBits  = util.LongBits,\n    utf8      = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n    return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n    /**\n     * Read buffer.\n     * @type {Uint8Array}\n     */\n    this.buf = buffer;\n\n    /**\n     * Read buffer position.\n     * @type {number}\n     */\n    this.pos = 0;\n\n    /**\n     * Read buffer length.\n     * @type {number}\n     */\n    this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n    ? function create_typed_array(buffer) {\n        if (buffer instanceof Uint8Array || Array.isArray(buffer))\n            return new Reader(buffer);\n        throw Error(\"illegal buffer\");\n    }\n    /* istanbul ignore next */\n    : function create_array(buffer) {\n        if (Array.isArray(buffer))\n            return new Reader(buffer);\n        throw Error(\"illegal buffer\");\n    };\n\nvar create = function create() {\n    return util.Buffer\n        ? function create_buffer_setup(buffer) {\n            return (Reader.create = function create_buffer(buffer) {\n                return util.Buffer.isBuffer(buffer)\n                    ? new BufferReader(buffer)\n                    /* istanbul ignore next */\n                    : create_array(buffer);\n            })(buffer);\n        }\n        /* istanbul ignore next */\n        : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n    var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n    return function read_uint32() {\n        value = (         this.buf[this.pos] & 127       ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n        value = (value | (this.buf[this.pos] & 127) <<  7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n        value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n        value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n        value = (value | (this.buf[this.pos] &  15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n        /* istanbul ignore if */\n        if ((this.pos += 5) > this.len) {\n            this.pos = this.len;\n            throw indexOutOfRange(this, 10);\n        }\n        return value;\n    };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n    return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n    var value = this.uint32();\n    return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n    // tends to deopt with local vars for octet etc.\n    var bits = new LongBits(0, 0);\n    var i = 0;\n    if (this.len - this.pos > 4) { // fast route (lo)\n        for (; i < 4; ++i) {\n            // 1st..4th\n            bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n            if (this.buf[this.pos++] < 128)\n                return bits;\n        }\n        // 5th\n        bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n        bits.hi = (bits.hi | (this.buf[this.pos] & 127) >>  4) >>> 0;\n        if (this.buf[this.pos++] < 128)\n            return bits;\n        i = 0;\n    } else {\n        for (; i < 3; ++i) {\n            /* istanbul ignore if */\n            if (this.pos >= this.len)\n                throw indexOutOfRange(this);\n            // 1st..3th\n            bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n            if (this.buf[this.pos++] < 128)\n                return bits;\n        }\n        // 4th\n        bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n        return bits;\n    }\n    if (this.len - this.pos > 4) { // fast route (hi)\n        for (; i < 5; ++i) {\n            // 6th..10th\n            bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n            if (this.buf[this.pos++] < 128)\n                return bits;\n        }\n    } else {\n        for (; i < 5; ++i) {\n            /* istanbul ignore if */\n            if (this.pos >= this.len)\n                throw indexOutOfRange(this);\n            // 6th..10th\n            bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n            if (this.buf[this.pos++] < 128)\n                return bits;\n        }\n    }\n    /* istanbul ignore next */\n    throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n    return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n    return (buf[end - 4]\n          | buf[end - 3] << 8\n          | buf[end - 2] << 16\n          | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n    /* istanbul ignore if */\n    if (this.pos + 4 > this.len)\n        throw indexOutOfRange(this, 4);\n\n    return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n    /* istanbul ignore if */\n    if (this.pos + 4 > this.len)\n        throw indexOutOfRange(this, 4);\n\n    return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n    /* istanbul ignore if */\n    if (this.pos + 8 > this.len)\n        throw indexOutOfRange(this, 8);\n\n    return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n    /* istanbul ignore if */\n    if (this.pos + 4 > this.len)\n        throw indexOutOfRange(this, 4);\n\n    var value = util.float.readFloatLE(this.buf, this.pos);\n    this.pos += 4;\n    return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n    /* istanbul ignore if */\n    if (this.pos + 8 > this.len)\n        throw indexOutOfRange(this, 4);\n\n    var value = util.float.readDoubleLE(this.buf, this.pos);\n    this.pos += 8;\n    return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n    var length = this.uint32(),\n        start  = this.pos,\n        end    = this.pos + length;\n\n    /* istanbul ignore if */\n    if (end > this.len)\n        throw indexOutOfRange(this, length);\n\n    this.pos += length;\n    if (Array.isArray(this.buf)) // plain array\n        return this.buf.slice(start, end);\n\n    if (start === end) { // fix for IE 10/Win8 and others' subarray returning array of size 1\n        var nativeBuffer = util.Buffer;\n        return nativeBuffer\n            ? nativeBuffer.alloc(0)\n            : new this.buf.constructor(0);\n    }\n    return 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 * Recursion limit.\n * @type {number}\n */\nReader.recursionLimit = util.recursionLimit;\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @param {number} [depth] Depth of recursion to control nested calls; 0 if omitted\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType, depth) {\n    if (depth === undefined) depth = 0;\n    if (depth > Reader.recursionLimit)\n        throw Error(\"maximum nesting depth exceeded\");\n    switch (wireType) {\n        case 0:\n            this.skip();\n            break;\n        case 1:\n            this.skip(8);\n            break;\n        case 2:\n            this.skip(this.uint32());\n            break;\n        case 3:\n            while ((wireType = this.uint32() & 7) !== 4) {\n                this.skipType(wireType, depth + 1);\n            }\n            break;\n        case 5:\n            this.skip(4);\n            break;\n\n        /* istanbul ignore next */\n        default:\n            throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n    }\n    return this;\n};\n\nReader._configure = function(BufferReader_) {\n    BufferReader = BufferReader_;\n    Reader.create = create();\n    BufferReader._configure();\n\n    var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n    util.merge(Reader.prototype, {\n\n        int64: function read_int64() {\n            return readLongVarint.call(this)[fn](false);\n        },\n\n        uint64: function read_uint64() {\n            return readLongVarint.call(this)[fn](true);\n        },\n\n        sint64: function read_sint64() {\n            return readLongVarint.call(this).zzDecode()[fn](false);\n        },\n\n        fixed64: function read_fixed64() {\n            return readFixed64.call(this)[fn](true);\n        },\n\n        sfixed64: function read_sfixed64() {\n            return readFixed64.call(this)[fn](false);\n        }\n\n    });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(25);\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(37);\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n    Reader.call(this, buffer);\n\n    /**\n     * Read buffer.\n     * @name BufferReader#buf\n     * @type {Buffer}\n     */\n}\n\nBufferReader._configure = function () {\n    /* istanbul ignore else */\n    if (util.Buffer)\n        BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n    var len = this.uint32(); // modifies pos\n    return this.buf.utf8Slice\n        ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n        : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(22);\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field   = require(16),\n    Enum    = require(15),\n    OneOf   = require(24),\n    util    = require(34);\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     * Edition, defaults to proto2 if unspecified.\n     * @type {string}\n     * @private\n     */\n    this._edition = \"proto2\";\n\n    /**\n     * Global lookup cache of fully qualified names.\n     * @type {Object.<string,ReflectionObject>}\n     * @private\n     */\n    this._fullyQualifiedObjects = {};\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Namespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @param {number} [depth] Current nesting depth, defaults to `0`\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root, depth) {\n    depth = util.checkDepth(depth);\n    if (!root)\n        root = new Root();\n    if (json.options)\n        root.setOptions(json.options);\n    return root.addJSON(json.nested, depth).resolveAll();\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/**\n * Fetch content from file path or url\n * This method exists so you can override it with your own logic.\n * @function\n * @param {string} path File path or url\n * @param {FetchCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.fetch = util.fetch;\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\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        }\n        if (sync) {\n            throw err;\n        }\n        if (root) {\n            root.resolveAll();\n        }\n        var cb = callback;\n        callback = null;\n        cb(err, root);\n    }\n\n    // Bundled definition existence checking\n    function getBundledFileName(filename) {\n        var idx = filename.lastIndexOf(\"google/protobuf/\");\n        if (idx > -1) {\n            var altname = filename.substring(idx);\n            if (altname in common) return altname;\n        }\n        return null;\n    }\n\n    // Processes a single file\n    function process(filename, source, depth) {\n        if (depth === undefined)\n            depth = 0;\n        try {\n            if (depth > util.recursionLimit)\n                throw Error(\"max depth exceeded\");\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 = getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))\n                            fetch(resolved, false, depth + 1);\n                if (parsed.weakImports)\n                    for (i = 0; i < parsed.weakImports.length; ++i)\n                        if (resolved = getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))\n                            fetch(resolved, true, depth + 1);\n            }\n        } catch (err) {\n            finish(err);\n        }\n        if (!sync && !queued) {\n            finish(null, self); // only once anyway\n        }\n    }\n\n    // Fetches a single file\n    function fetch(filename, weak, depth) {\n        if (depth === undefined)\n            depth = 0;\n        filename = getBundledFileName(filename) || filename;\n\n        // Skip if already loaded / attempted\n        if (self.files.indexOf(filename) > -1) {\n            return;\n        }\n        self.files.push(filename);\n\n        // Shortcut bundled definitions\n        if (filename in common) {\n            if (sync) {\n                process(filename, common[filename], depth);\n            } else {\n                ++queued;\n                setTimeout(function() {\n                    --queued;\n                    process(filename, common[filename], depth);\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, depth);\n        } else {\n            ++queued;\n            self.fetch(filename, function(err, source) {\n                --queued;\n                /* istanbul ignore if */\n                if (!callback) {\n                    return; // terminated meanwhile\n                }\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, depth);\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    }\n    for (var i = 0, resolved; i < filename.length; ++i)\n        if (resolved = self.resolvePath(\"\", filename[i]))\n            fetch(resolved);\n    if (sync) {\n        self.resolveAll();\n        return self;\n    }\n    if (!queued) {\n        finish(null, self);\n    }\n\n    return self;\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._needsRecursiveResolve) return this;\n\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        //do not allow to extend same field twice to prevent the error\n        if (extendedType.get(sisterField.name)) {\n            return true;\n        }\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    if (object instanceof Type || object instanceof Enum || object instanceof Field) {\n        // Only store types and enums for quick lookup during resolve.\n        this._fullyQualifiedObjects[object.fullName] = object;\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    delete this._fullyQualifiedObjects[object.fullName];\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n    Type   = Type_;\n    parse  = parse_;\n    common = common_;\n};\n","\"use strict\";\nmodule.exports = Object.create(null);\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 across modules.\n * @name roots\n * @type {Object.<string,Root>}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\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(30);\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(37);\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n * @type {function}\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise<Message<TRes>>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n    if (typeof rpcImpl !== \"function\")\n        throw TypeError(\"rpcImpl must be a function\");\n\n    util.EventEmitter.call(this);\n\n    /**\n     * RPC implementation. Becomes `null` once the service is ended.\n     * @type {RPCImpl|null}\n     */\n    this.rpcImpl = rpcImpl;\n\n    /**\n     * Whether requests are length-delimited.\n     * @type {boolean}\n     */\n    this.requestDelimited = Boolean(requestDelimited);\n\n    /**\n     * Whether responses are length-delimited.\n     * @type {boolean}\n     */\n    this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod<TReq,TRes>} method Reflected or static method\n * @param {Constructor<TReq>} requestCtor Request constructor\n * @param {Constructor<TRes>} responseCtor Response constructor\n * @param {TReq|Properties<TReq>} request Request message or plain object\n * @param {rpc.ServiceMethodCallback<TRes>} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message<TReq>\n * @template TRes extends Message<TRes>\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n    if (!request)\n        throw TypeError(\"request must be specified\");\n\n    var self = this;\n    if (!callback)\n        return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n    if (!self.rpcImpl) {\n        setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n        return undefined;\n    }\n\n    try {\n        return self.rpcImpl(\n            method,\n            requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n            function rpcCallback(err, response) {\n\n                if (err) {\n                    self.emit(\"error\", err, method);\n                    return callback(err);\n                }\n\n                if (response === null) {\n                    self.end(/* endedByRPC */ true);\n                    return undefined;\n                }\n\n                if (!(response instanceof responseCtor)) {\n                    try {\n                        response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n                    } catch (err) {\n                        self.emit(\"error\", err, method);\n                        return callback(err);\n                    }\n                }\n\n                self.emit(\"data\", response, method);\n                return callback(null, response);\n            }\n        );\n    } catch (err) {\n        self.emit(\"error\", err, method);\n        setTimeout(function() { callback(err); }, 0);\n        return undefined;\n    }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n    if (this.rpcImpl) {\n        if (!endedByRPC) // signal end to rpcImpl\n            this.rpcImpl(null, null, null);\n        this.rpcImpl = null;\n        this.emit(\"end\").off();\n    }\n    return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(22);\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(21),\n    util   = require(34),\n    rpc    = require(29);\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 * @param {number} [depth] Current nesting depth, defaults to `0`\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json, depth) {\n    depth = util.checkDepth(depth);\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, depth);\n    if (json.edition)\n        service._edition = json.edition;\n    service.comment = json.comment;\n    service._defaultEdition = \"proto3\";  // For backwards-compatibility.\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        \"edition\" , this._editionToJSON(),\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 Object.prototype.hasOwnProperty.call(this.methods, name)\n        ? this.methods[name]\n        : Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n    if (!this._needsRecursiveResolve) return this;\n\n    Namespace.prototype.resolve.call(this);\n    var methods = this.methodsArray;\n    for (var i = 0; i < methods.length; ++i)\n        methods[i].resolve();\n    return this;\n};\n\n/**\n * @override\n */\nService.prototype._resolveFeaturesRecursive = function _resolveFeaturesRecursive(edition) {\n    if (!this._needsRecursiveFeatureResolution) return this;\n\n    edition = this._edition || edition;\n\n    Namespace.prototype._resolveFeaturesRecursive.call(this, edition);\n    this.methodsArray.forEach(method => {\n        method._resolveFeaturesRecursive(edition);\n    });\n    return this;\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\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        if (object.name === \"__proto__\")\n            return this;\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] = (function(method, requestType, responseType) {\n            return function rpcMethod(request, callback) {\n                return rpc.Service.prototype.rpcCall.call(this, method, requestType, responseType, request, callback);\n            };\n        })(method, method.resolvedRequestType.ctor, method.resolvedResponseType.ctor);\n    }\n    return rpcService;\n};\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(22);\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum      = require(15),\n    OneOf     = require(24),\n    Field     = require(16),\n    MapField  = require(19),\n    Service   = require(31),\n    Message   = require(20),\n    Reader    = require(25),\n    Writer    = require(41),\n    util      = require(34),\n    encoder   = require(14),\n    decoder   = require(13),\n    verifier  = require(39),\n    converter = require(12),\n    wrappers  = require(40);\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    name = name.replace(/\\W/g, \"\");\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&&ks[i]!==\\\"__proto__\\\")\") // 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 {Array.<number[]|string>} [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 * @param {number} [depth] Current nesting depth, defaults to `0`\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json, depth) {\n    if (depth === undefined)\n        depth = 0;\n    if (depth > util.nestingLimit)\n        throw Error(\"max depth exceeded\");\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, depth + 1)\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    if (json.edition)\n        type._edition = json.edition;\n    type._defaultEdition = \"proto3\";  // For backwards-compatibility.\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        \"edition\"    , this._editionToJSON(),\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    if (!this._needsRecursiveResolve) return this;\n\n    Namespace.prototype.resolveAll.call(this);\n    var oneofs = this.oneofsArray; i = 0;\n    while (i < oneofs.length)\n        oneofs[i++].resolve();\n    var fields = this.fieldsArray, i = 0;\n    while (i < fields.length)\n        fields[i++].resolve();\n    return this;\n};\n\n/**\n * @override\n */\nType.prototype._resolveFeaturesRecursive = function _resolveFeaturesRecursive(edition) {\n    if (!this._needsRecursiveFeatureResolution) return this;\n\n    edition = this._edition || edition;\n\n    Namespace.prototype._resolveFeaturesRecursive.call(this, edition);\n    this.oneofsArray.forEach(oneof => {\n        oneof._resolveFeatures(edition);\n    });\n    this.fieldsArray.forEach(field => {\n        field._resolveFeatures(edition);\n    });\n    return this;\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n    if (Object.prototype.hasOwnProperty.call(this.fields, name))\n        return this.fields[name];\n    if (this.oneofs && Object.prototype.hasOwnProperty.call(this.oneofs, name))\n        return this.oneofs[name];\n    if (this.nested && Object.prototype.hasOwnProperty.call(this.nested, name))\n        return this.nested[name];\n    return 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    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) || object.name.charAt(0) === \"$\")\n            throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n        if (object.name === \"__proto__\")\n            return 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 (object.name.charAt(0) === \"$\")\n            throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n        if (object.name === \"__proto__\")\n            return this;\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) { // eslint-disable-line no-unused-vars\n    return this.setup().encode.apply(this, arguments); // 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 * @param {number} [end] Expected group end tag, if decoding a group\n * @param {number} [depth] Current nesting depth\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, end, depth) {\n    return this.setup().decode(reader, length, end, depth); // 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 * @param {number} [depth] Current nesting depth\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message, depth) {\n    return this.setup().verify(message, depth); // 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 * @param {number} [depth] Current nesting depth\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object, depth) {\n    return this.setup().fromObject(object, depth);\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 `BigInt`, `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) { // eslint-disable-line no-unused-vars\n    return this.setup().toObject.apply(this, arguments);\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","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(34);\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 = Object.create(null);\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","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(37);\n\nvar roots = require(28);\n\nvar Type, // cyclic\n    Enum;\n\nutil.codegen = require(3);\nutil.fetch   = require(5);\nutil.path    = require(8);\nutil.patterns = require(38);\n\nvar reservedRe = util.patterns.reservedRe;\n\n/**\n * Node's fs module if available.\n * @type {Object.<string,*>}\n */\nutil.fs = require(35);\n\n/**\n * Checks a recursion depth.\n * @param {number|undefined} depth Depth of recursion\n * @returns {number} Depth of recursion\n * @throws {Error} If depth exceeds util.recursionLimit\n */\nutil.checkDepth = function checkDepth(depth) {\n    if (depth === undefined)\n        depth = 0;\n    if (depth > util.recursionLimit)\n        throw Error(\"max depth exceeded\");\n    return depth;\n};\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\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 reservedRe.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) || reservedRe.test(prop))\n        return \"[\" + JSON.stringify(prop) + \"]\";\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(32);\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/**\n * Sets the value of a property by property path. If a value already exists, it is turned to an array\n * @param {Object.<string,*>} dst Destination object\n * @param {string} path dot '.' delimited path of the property to set\n * @param {Object} value the value to set\n * @param {boolean|undefined} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {Object.<string,*>} Destination object\n */\nutil.setProperty = function setProperty(dst, path, value, ifNotSet) {\n    function setProp(dst, path, value) {\n        var part = path.shift();\n        if (util.isUnsafeProperty(part))\n            return dst;\n        if (path.length > 0) {\n            dst[part] = setProp(dst[part] || {}, path, value);\n        } else {\n            var prevValue = dst[part];\n            if (prevValue && ifNotSet)\n                return dst;\n            if (prevValue)\n                value = [].concat(prevValue).concat(value);\n            dst[part] = value;\n        }\n        return dst;\n    }\n\n    if (typeof dst !== \"object\")\n        throw TypeError(\"dst must be an object\");\n    if (!path)\n        throw TypeError(\"path must be specified\");\n\n    path = path.split(\".\");\n    if (path.length > util.recursionLimit)\n        throw Error(\"max depth exceeded\");\n    return setProp(dst, path, value);\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(27))());\n    }\n});\n","\"use strict\";\n\nvar fs = null;\ntry {\n    fs = require(11);\n    if (!fs || !fs.readFile || !fs.readFileSync)\n        fs = null;\n} catch (e) {\n    // `fs` is unavailable in browsers and browser-like bundles.\n}\nmodule.exports = fs;\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(37);\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n    // note that the casts below are theoretically unnecessary as of today, but older statically\n    // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n    /**\n     * Low bits.\n     * @type {number}\n     */\n    this.lo = lo >>> 0;\n\n    /**\n     * High bits.\n     * @type {number}\n     */\n    this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n    if (value === 0)\n        return zero;\n    var sign = value < 0;\n    if (sign)\n        value = -value;\n    var lo = value >>> 0,\n        hi = (value - lo) / 4294967296 >>> 0;\n    if (sign) {\n        hi = ~hi >>> 0;\n        lo = ~lo >>> 0;\n        if (++lo > 4294967295) {\n            lo = 0;\n            if (++hi > 4294967295)\n                hi = 0;\n        }\n    }\n    return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n    if (typeof value === \"number\")\n        return LongBits.fromNumber(value);\n    if (util.isString(value)) {\n        /* istanbul ignore else */\n        if (util.Long)\n            value = util.Long.fromString(value);\n        else\n            return LongBits.fromNumber(parseInt(value, 10));\n    }\n    return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n    if (!unsigned && this.hi >>> 31) {\n        var lo = ~this.lo + 1 >>> 0,\n            hi = ~this.hi     >>> 0;\n        if (!lo)\n            hi = hi + 1 >>> 0;\n        return -(lo + hi * 4294967296);\n    }\n    return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n    return util.Long\n        ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n        /* istanbul ignore next */\n        : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n    if (hash === zeroHash)\n        return zero;\n    return new LongBits(\n        ( charCodeAt.call(hash, 0)\n        | charCodeAt.call(hash, 1) << 8\n        | charCodeAt.call(hash, 2) << 16\n        | charCodeAt.call(hash, 3) << 24) >>> 0\n    ,\n        ( charCodeAt.call(hash, 4)\n        | charCodeAt.call(hash, 5) << 8\n        | charCodeAt.call(hash, 6) << 16\n        | charCodeAt.call(hash, 7) << 24) >>> 0\n    );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n    return String.fromCharCode(\n        this.lo        & 255,\n        this.lo >>> 8  & 255,\n        this.lo >>> 16 & 255,\n        this.lo >>> 24      ,\n        this.hi        & 255,\n        this.hi >>> 8  & 255,\n        this.hi >>> 16 & 255,\n        this.hi >>> 24\n    );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n    var mask =   this.hi >> 31;\n    this.hi  = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n    this.lo  = ( this.lo << 1                   ^ mask) >>> 0;\n    return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n    var mask = -(this.lo & 1);\n    this.lo  = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n    this.hi  = ( this.hi >>> 1                  ^ mask) >>> 0;\n    return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n    var part0 =  this.lo,\n        part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n        part2 =  this.hi >>> 24;\n    return part2 === 0\n         ? part1 === 0\n           ? part0 < 16384\n             ? part0 < 128 ? 1 : 2\n             : part0 < 2097152 ? 3 : 4\n           : part1 < 16384\n             ? part1 < 128 ? 5 : 6\n             : part1 < 2097152 ? 7 : 8\n         : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(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(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(36);\n\n/**\n * Tests if the specified key can affect object prototypes.\n * @memberof util\n * @param {string} key Key to test\n * @returns {boolean} `true` if the key is unsafe\n */\nfunction isUnsafeProperty(key) {\n    return key === \"__proto__\" || key === \"prototype\" || key === \"constructor\";\n}\n\nutil.isUnsafeProperty = isUnsafeProperty;\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n                   && global\n                   && global.process\n                   && global.process.versions\n                   && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n           || typeof window !== \"undefined\" && window\n           || typeof self   !== \"undefined\" && self\n           || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n    return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n    return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n    return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n    var value = obj[prop];\n    if (value != null && Object.hasOwnProperty.call(obj, prop)) // eslint-disable-line eqeqeq\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.global.Buffer;\n        // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n        return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n    } catch (e) {\n        /* istanbul ignore next */\n        return null;\n    }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n    /* istanbul ignore next */\n    return typeof sizeOrArray === \"number\"\n        ? util.Buffer\n            ? util._Buffer_allocUnsafe(sizeOrArray)\n            : new util.Array(sizeOrArray)\n        : util.Buffer\n            ? util._Buffer_from(sizeOrArray)\n            : typeof Uint8Array === \"undefined\"\n                ? sizeOrArray\n                : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor<Uint8Array>}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor<Long>}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n         || /* istanbul ignore next */ util.global.Long\n         || (function() {\n                try {\n                    var Long = require(\"long\");\n                    return Long && Long.isLong ? Long : null;\n                } catch (e) {\n                    /* istanbul ignore next */\n                    return null;\n                }\n            })();\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,*>|boolean)} src Source objects, optionally followed by an `ifNotSet` flag\n * @returns {Object.<string,*>} Destination object\n */\nfunction merge(dst) { // used by converters\n    var ifNotSet = typeof arguments[arguments.length - 1] === \"boolean\",\n        limit = ifNotSet ? arguments.length - 1 : arguments.length;\n    ifNotSet = ifNotSet && arguments[arguments.length - 1];\n    for (var a = 1; a < limit; ++a) {\n        var src = arguments[a];\n        if (!src)\n            continue;\n        for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n            if (!isUnsafeProperty(keys[i]) && (dst[keys[i]] === undefined || !ifNotSet))\n                dst[keys[i]] = src[keys[i]];\n    }\n    return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Schema declaration nesting limit.\n * @memberof util\n * @type {number}\n */\nutil.nestingLimit = 32; // protoc: MaxMessageDeclarationNestingDepth\n\n/**\n * Recursion limit.\n * @memberof util\n * @type {number}\n */\nutil.recursionLimit = 100; // protoc: CodedInputStream::default_recursion_limit_\n\n/**\n * Makes a property safe for assignment as an own property.\n * @memberof util\n * @param {Object.<string,*>} obj Object\n * @param {string} key Property key\n * @returns {undefined}\n */\nutil.makeProp = function makeProp(obj, key) {\n    Object.defineProperty(obj, key, {\n        enumerable: true,\n        configurable: true,\n        writable: true\n    });\n};\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, {\n        constructor: {\n            value: CustomError,\n            writable: true,\n            enumerable: false,\n            configurable: true,\n        },\n        name: {\n            get: function get() { return name; },\n            set: undefined,\n            enumerable: false,\n            // configurable: false would accurately preserve the behavior of\n            // the original, but I'm guessing that was not intentional.\n            // For an actual error subclass, this property would\n            // be configurable.\n            configurable: true,\n        },\n        toString: {\n            value: function value() { return this.name + \": \" + this.message; },\n            writable: true,\n            enumerable: false,\n            configurable: true,\n        },\n    });\n\n    return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message<T>\n * @constructor\n * @param {string} message Error message\n * @param {Object.<string,*>} [properties] Additional properties\n * @example\n * try {\n *     MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n *     if (e instanceof ProtocolError && e.instance)\n *         console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message<T>}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n    var fieldMap = {};\n    for (var i = 0; i < fieldNames.length; ++i)\n        fieldMap[fieldNames[i]] = 1;\n\n    /**\n     * @returns {string|undefined} Set field name, if any\n     * @this Object\n     * @ignore\n     */\n    return function() { // eslint-disable-line consistent-return\n        for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n            if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n                return keys[i];\n    };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n    /**\n     * @param {string} name Field name\n     * @returns {undefined}\n     * @this Object\n     * @ignore\n     */\n    return function(name) {\n        for (var i = 0; i < fieldNames.length; ++i)\n            if (fieldNames[i] !== name)\n                delete this[fieldNames[i]];\n    };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n    longs: String,\n    enums: String,\n    bytes: String,\n    json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n    var Buffer = util.Buffer;\n    /* istanbul ignore if */\n    if (!Buffer) {\n        util._Buffer_from = util._Buffer_allocUnsafe = null;\n        return;\n    }\n    // because node 4.x buffers are incompatible & immutable\n    // see: https://github.com/dcodeIO/protobuf.js/pull/665\n    util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n        /* istanbul ignore next */\n        function Buffer_from(value, encoding) {\n            return new Buffer(value, encoding);\n        };\n    util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n        /* istanbul ignore next */\n        function Buffer_allocUnsafe(size) {\n            return new Buffer(size);\n        };\n};\n","\"use strict\";\n\nvar patterns = exports;\n\npatterns.numberRe    = /^(?![eE])[0-9]*(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/;\npatterns.typeRefRe   = /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*$/;\npatterns.reservedRe  = /^(?: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)$/;\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum      = require(15),\n    util      = require(34);\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,n+1);\", 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\", \"n\"], mtype.name + \"$verify\")\n    (\"if(typeof m!==\\\"object\\\"||m===null)\")\n        (\"return%j\", \"object expected\")\n    (\"if(n===undefined)n=0\")\n    (\"if(n>util.recursionLimit)\")\n        (\"return%j\", \"maximum nesting depth exceeded\");\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&&Object.hasOwnProperty.call(m,%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","\"use strict\";\n\n/**\n * Wrappers for common types.\n * @type {Object.<string,IWrapper>}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(20),\n    util    = require(37);\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, depth) {\n\n        // unwrap value type if mapped\n        if (object && object[\"@type\"]) {\n             // Only use fully qualified type name after the last '/'\n            var name = object[\"@type\"].substring(object[\"@type\"].lastIndexOf(\"/\") + 1);\n            var type = this.lookup(name);\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\"].slice(1) : object[\"@type\"];\n                // type_url prefix is optional, but path seperator is required\n                if (type_url.indexOf(\"/\") === -1) {\n                    type_url = \"/\" + type_url;\n                }\n                return this.create({\n                    type_url: type_url,\n                    value: type.encode(type.fromObject(object, depth === undefined ? 1 : depth + 1)).finish()\n                });\n            }\n        }\n\n        return this.fromObject(object, depth);\n    },\n\n    toObject: function(message, options, depth) {\n        if (depth === undefined)\n            depth = 0;\n        if (depth > util.recursionLimit)\n            throw Error(\"max depth exceeded\");\n\n        // Default prefix\n        var googleApi = \"type.googleapis.com/\";\n        var prefix = \"\";\n        var name = \"\";\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            name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n            // Separate the prefix used\n            prefix = message.type_url.substring(0, message.type_url.lastIndexOf(\"/\") + 1);\n            var type = this.lookup(name);\n            /* istanbul ignore else */\n            if (type)\n                message = type.decode(message.value, undefined, undefined, depth + 1);\n        }\n\n        // wrap value if unmapped\n        if (!(message instanceof this.ctor) && message instanceof Message) {\n            var object = message.$type.toObject(message, options, depth + 1);\n            var messageName = message.$type.fullName[0] === \".\" ?\n                message.$type.fullName.slice(1) : message.$type.fullName;\n            // Default to type.googleapis.com prefix if no prefix is used\n            if (prefix === \"\") {\n                prefix = googleApi;\n            }\n            name = prefix + messageName;\n            object[\"@type\"] = name;\n            return object;\n        }\n\n        return this.toObject(message, options, depth);\n    }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util      = require(37);\n\nvar BufferWriter; // cyclic\n\nvar LongBits  = util.LongBits,\n    base64    = util.base64,\n    utf8      = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n    /**\n     * Function to call.\n     * @type {function(Uint8Array, number, *)}\n     */\n    this.fn = fn;\n\n    /**\n     * Value byte length.\n     * @type {number}\n     */\n    this.len = len;\n\n    /**\n     * Next operation.\n     * @type {Writer.Op|undefined}\n     */\n    this.next = undefined;\n\n    /**\n     * Value to write.\n     * @type {*}\n     */\n    this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n    /**\n     * Current head.\n     * @type {Writer.Op}\n     */\n    this.head = writer.head;\n\n    /**\n     * Current tail.\n     * @type {Writer.Op}\n     */\n    this.tail = writer.tail;\n\n    /**\n     * Current buffer length.\n     * @type {number}\n     */\n    this.len = writer.len;\n\n    /**\n     * Next state.\n     * @type {State|null}\n     */\n    this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n    /**\n     * Current length.\n     * @type {number}\n     */\n    this.len = 0;\n\n    /**\n     * Operations head.\n     * @type {Object}\n     */\n    this.head = new Op(noop, 0, 0);\n\n    /**\n     * Operations tail\n     * @type {Object}\n     */\n    this.tail = this.head;\n\n    /**\n     * Linked forked states.\n     * @type {Object|null}\n     */\n    this.states = null;\n\n    // When a value is written, the writer calculates its byte length and puts it into a linked\n    // list of operations to perform when finish() is called. This both allows us to allocate\n    // buffers of the exact required size and reduces the amount of work we have to do compared\n    // to first calculating over objects and then encoding over objects. In our case, the encoding\n    // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n    return util.Buffer\n        ? function create_buffer_setup() {\n            return (Writer.create = function create_buffer() {\n                return new BufferWriter();\n            })();\n        }\n        /* istanbul ignore next */\n        : function create_array() {\n            return new Writer();\n        };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n    return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n    Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n    this.tail = this.tail.next = new Op(fn, len, val);\n    this.len += len;\n    return this;\n};\n\nfunction writeByte(val, buf, pos) {\n    buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n    while (val > 127) {\n        buf[pos++] = val & 127 | 128;\n        val >>>= 7;\n    }\n    buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n    this.len = len;\n    this.next = undefined;\n    this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n    // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n    // uint32 is by far the most frequently used operation and benefits significantly from this.\n    this.len += (this.tail = this.tail.next = new VarintOp(\n        (value = value >>> 0)\n                < 128       ? 1\n        : value < 16384     ? 2\n        : value < 2097152   ? 3\n        : value < 268435456 ? 4\n        :                     5,\n    value)).len;\n    return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n    return (value |= 0) < 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    var lo = val.lo,\n        hi = val.hi;\n    while (hi) {\n        buf[pos++] = lo & 127 | 128;\n        lo = (lo >>> 7 | hi << 25) >>> 0;\n        hi >>>= 7;\n    }\n    while (lo > 127) {\n        buf[pos++] = lo & 127 | 128;\n        lo = lo >>> 7;\n    }\n    buf[pos++] = lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n    var bits = LongBits.from(value);\n    return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n    var bits = LongBits.from(value).zzEncode();\n    return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n    return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n    buf[pos    ] =  val         & 255;\n    buf[pos + 1] =  val >>> 8   & 255;\n    buf[pos + 2] =  val >>> 16  & 255;\n    buf[pos + 3] =  val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n    return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n    var bits = LongBits.from(value);\n    return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n    return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n    return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n    ? function writeBytes_set(val, buf, pos) {\n        buf.set(val, pos); // also works for plain array values\n    }\n    /* istanbul ignore next */\n    : function writeBytes_for(val, buf, pos) {\n        for (var i = 0; i < val.length; ++i)\n            buf[pos + i] = val[i];\n    };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n    var len = value.length >>> 0;\n    if (!len)\n        return this._push(writeByte, 1, 0);\n    if (util.isString(value)) {\n        var buf = Writer.alloc(len = base64.length(value));\n        base64.decode(value, buf, 0);\n        value = buf;\n    }\n    return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n    var len = utf8.length(value);\n    return len\n        ? this.uint32(len)._push(utf8.write, len, value)\n        : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n    this.states = new State(this);\n    this.head = this.tail = new Op(noop, 0, 0);\n    this.len = 0;\n    return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n    if (this.states) {\n        this.head   = this.states.head;\n        this.tail   = this.states.tail;\n        this.len    = this.states.len;\n        this.states = this.states.next;\n    } else {\n        this.head = this.tail = new Op(noop, 0, 0);\n        this.len  = 0;\n    }\n    return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n    var head = this.head,\n        tail = this.tail,\n        len  = this.len;\n    this.reset().uint32(len);\n    if (len) {\n        this.tail.next = head.next; // skip noop\n        this.tail = tail;\n        this.len += len;\n    }\n    return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n    var head = this.head.next, // skip noop\n        buf  = this.constructor.alloc(this.len),\n        pos  = 0;\n    while (head) {\n        head.fn(head.val, buf, pos);\n        pos += head.len;\n        head = head.next;\n    }\n    // this.head = this.tail = null;\n    return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n    BufferWriter = BufferWriter_;\n    Writer.create = create();\n    BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(41);\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(37);\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n    Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n    /**\n     * Allocates a buffer of the specified size.\n     * @function\n     * @param {number} size Buffer size\n     * @returns {Buffer} Buffer\n     */\n    BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n    BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n        ? function writeBytesBuffer_set(val, buf, pos) {\n          buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n          // also works for plain array values\n        }\n        /* istanbul ignore next */\n        : function writeBytesBuffer_copy(val, buf, pos) {\n          if (val.copy) // Buffer values\n            val.copy(buf, pos, 0, val.length);\n          else for (var i = 0; i < val.length;) // plain array values\n            buf[pos++] = val[i++];\n        };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n    if (util.isString(value))\n        value = util._Buffer_from(value, \"base64\");\n    var len = value.length >>> 0;\n    this.uint32(len);\n    if (len)\n        this._push(BufferWriter.writeBytesBuffer, len, value);\n    return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n    if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n        util.utf8.write(val, buf, pos);\n    else if (buf.utf8Write)\n        buf.utf8Write(val, pos);\n    else\n        buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n    var len = util.Buffer.byteLength(value);\n    this.uint32(len);\n    if (len)\n        this._push(writeStringBuffer, len, value);\n    return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n"],"sourceRoot":"."}
basant307/AI_Governance_Project · CoolFace